Analisis y Diseño con UML

Fase de Diseño

FASE DE DISEÑO
DISEÑO DEL SISTEMA
 

Partición en subsistemas y asignación a subaplicaciones Definir todos los procesos. Las clases del análisis se promueven a clases especificas Diseñar las clases necesarias Integrar clases ya existentes al diseño Se define la arquitectura
Proceso UML 2

DISEÑO DE OBJETOS
  

DISEÑO ARQUITECTONICO

INTEGRIDAD
DEBERÍAN GARANTIZAR QUE LOS MODELOS GENERADOS SON CONSISTENTES 1) DIAGRAMAS DE CLASES VS. TARJETAS CRC 2) MODELOS DINÁMICO VS. TARJETAS CRC 3) DIAGRAMAS DE CLASES VS. PROTOTIPO DE DISEÑO

Proceso UML

3

DISEÑO DEL SISTEMA
Descomposición en subsistemas de modo que el acoplamiento sea mínimo. Asignar subsistemas a procesos. Se establece la arquitectura de alto nivel del sistema, que conecta subsistemas. Considerar tecnología para implementar los distintos componentes. Asignar datos y procesamiento: clienteservidor
Proceso UML 4

Definir clases interface o visuales (partes visuales) Existirán otras clases sin correspondencia directa con elementos del análisis: clases del diseño    Acceso a bases de datos Estructuras de datos Relacionadas con patrones de diseño Proceso UML 5 .DISEÑO DE OBJETOS A partir de las clases y asociaciones de los diagramas de clase del análisis. definimos clases de la aplicación (o partes no visuales).

. Política para validación de datos de entrada del usuario: objeto-servidor u objeto-cliente Posibilidad de utilizar “diseño por contrato” Proceso UML 6 . clasificación dinámica.DISEÑO DE OBJETOS Política para representar atributos derivados. clasificación múltiple..

PROPUESTA DE DISEÑO Fase Elaboración  Modelo de Requerimientos  Modelo del Dominio  Diagramas de Clase conceptual y diagramas de actividad  Modelo de Casos de Uso  Valorar riesgos técnologicos  Decisiones de Diseño sobre la arquitectura  Planificación Proceso UML 7 .

implementación y test  Cada etapa acaba con un prototipo  Comenzar con las partes críticas Proceso UML 8 .PROPUESTA DISEÑO Fase Construcción  Iterativa e incremental  En cada iteración se realiza análisis. diseño.

Diseño de Clases • Cuestiones a analizar: – Efectos laterales en funciones – Número de argumentos en los métodos – Tamaño de las clases – Estructuras de datos activas – Exportación selectiva – Documentación de una clase – Tratamiento de casos excepcionales Proceso UML 9 .

Diagramas de Paquetes .

Esto es un paquete Proceso UML 11 . casos de uso. diagramas de colaboración u otros paquetes).Uso de paquetes • Paquete: conjunto de elementos de cualquier tipo pertenecientes al modelo (clases.

Paquete • Paquete: conjunto de elementos de cualquier tipo pertenecientes al modelo (clases. casos de uso. diagramas de colaboración u otros paquetes). Otro paquete Esto es un paquete cuyo interior no especifico +A -B Proceso UML 12 .

Diagramas de Paquetes • Un paquete agrupa un conjunto de componentes relacionados. • Unidad básica para “testing”. • Permiten simplificar diagramas de clase complejos. • Un diagrama de paquetes muestra muestra paquetes de clases y las dependencias entre ellas. Proceso UML 13 .

. Presentación Dominio Servicios Frame Facturas Interfaz BD Base de datos Albaranes Generador de informes Procesamiento Almacenamiento Proceso UML 14 .En lugar de..

...utilizar: Presentación Presentación Procesamiento Dominio Servicios Dominio Servicios Almacenamiento Almacenamiento Proceso UML 15 .

Proceso UML 16 .De modo que: Dominio Facturas Albaranes Los elementos de un paquete pueden representarse mediante “particiones”: una partición representa un conjunto de subsistemas más o menos independientes dentro de una capa.

DIAGRAMAS DE PAQUETES UN PAQUETE PUEDE CONTENER A OTROS PAQUETES Editor Controlador Elementos de diagrama Núcleo Gráfico Sistemas de Ventanas Proceso UML 17 .

Clientes Banco: ChequandoCuenta «imports» Banco ChequandoCuenta Proceso UML 18 .DIAGRAMAS DE PAQUETES Relación de Dependencia Un item puede ser importado en un paquete si es visible (exportado) por el paquete donde se declara.

.* almacena 1 Servidor Buzón Proceso UML Dominio::Buzón 19 . Dominio Almacenamiento Cliente 0.* 1 Mensaje 0.Pertenencias y referencias • Un elemento del modelo estará incluido en un sólo paquete.. pero puede ser referenciado desde otros.

Dominio {autor: Paco Pil} Almacenamiento Proceso UML 20 .Dependencias entre paquetes • Denotan que algún elemento de un paquete depende de los elementos en otro paquete.

Dependencia de importación Dominio +Cliente Presentación +FrameCliente AWT +Frame +Label «importa» Proceso UML 21 -AWT::Frame «importa» «importa» .

Generalización AWT +Frame #Label MiAWT +Frame #AWT::Label Proceso UML 22 .

En la arquitectura multinivel... Procesamiento Dominio Servicios Presentación Almacenamiento Proceso UML 23 .

Consideraciones • Dentro de un paquete pueden incluirse los elementos que: – Están relacionados conceptualmente o tienen un objetivo común – Pertenecen a un mismo árbol de herencia – Pertenecen al mismo caso de uso – Tienen relaciones conceptuales muy fuertes Proceso UML 24 .

Diagramas de Componentes .

Componentes • Un componente es un módulo físico de código (ficheros con código fuente. Proceso UML 26 . bibliotecas. con la que denotamos que un componente debe ser compilado antes que otro. runtimes. • La única relación posible entre componentes es la dependencia. etc.).

Componente • Los componentes son “paquetes físicos” de otros elementos lógicos • Estereotipos predefinidos: – – – – – Ejecutable Biblioteca (library) Tabla (de BD) Fichero Documento Proceso UML 27 .

Conceptos • Componente: parte física y reemplazable de un sistema que implementa y suministra ciertos conjuntos de interfaces.. Proceso UML 28 . adaptando y conectando componentes preexistentes. • Diseño Basado en Componentes: forma de desarrollar el software en la que todos sus productos pueden ser construidos ensamblando.

de suerte que no incluyen e specificacione s de clases. Proceso UML 29 .Tipos de componentes (I) E sp e ci fi ca ció n de su b p r o gra ma Cu e r p o d e s u bp r o gra ma Componente en general Los subprogramas son conjunto s de rutinas.

un .C PP de C ++ Proceso UML 30 . un .Tipos de componentes (II) Pro g ra ma p rin cip a l Esp e cifica ció n d e p a q u e te C u e rp o d e p a q u e te C ontiene el nod o raíz del program a Por ejemplo.H de C++ Por ejemplo.

EXE) Proceso UML 31 ..Tipos de componentes (III) Esp e cifica ció n d e ta re a C u e rp o d e ta re a Representan tareas independientes (p. un .ej.

Relaciones de dependencia F ac tura.C P P L in e a F a ctu ra .H L in e a Fa c tu r a.H F ac tura .C P P Proceso UML 32 .

java Cliente.java servidor.java Cliente.java FServidor.java servidor.java Servidor.java Servidor.java Proceso UML 33 .Ejemplos servidor realiza FServidor.

Ventajas • • • • Reutilización Unidades de mantenimiento y actualización Desarrollo en paralelo Escalabilidad (facilidad de añadir nuevos servicios) • Independencia del lenguaje • Componentes distribuidos Proceso UML 34 .

Especificación de un componente • • • • • • Servicios prestados (interfaces) Servicios requeridos (interfaces) Especificación externa Código ejecutable Código de validación Documentos de diseño Proceso UML 35 .

Diagramas de Despliege .

Elementos: Nodos: Dispositivo hardware Conexiones entre nodos Componentes: Módulos de código.Diagramas de Despliegue • Muestra las relaciones físicas entre el hardware y el software del sistema construído. Dependencias entre paquetes Proceso UML 37 .

DIAGRAMAS DE DESPLIEGUE (II) TCP / IP Conexión Servidor Diabetes BDOO Servidor Hígado Dominio del Cuidado de la Salud Dominio del Cuidado de la Salud BDOO «comunicación» Información Nodo Objetos contenidos Aplicación sobre el Hígado Pacientes Interface Proceso UML 38 .

Diagrama de Despliege modem Internet Procesador Servidor Red Local Servidor Web Procesador Cache Procesador DNS Proceso UML Procesador Direcc. 39 .

Patrón “Tablas como objetos” • Definir una tabla (en BB.DD.) para cada clase de objetos persistente • Dificultad de relaciones entre objetos :Persona Nombre: Paco Apellido: Pil :Persona Nombre: Bruja Apellido: Avería Proceso UML 40 Personas Nombre Apellidos Paco Pil Bruja Avería .RR.

) {at1..metodo1(. … public void metodo1(.metodo2} … } class Ximplem implements X {…} Proceso UML 41 .Ejemplo Java class B extends A implements X { Ximplem at1..) {return at1.)} public int metodo2(..

end.put(e. ne: Integer) is do estado_asociado.Ejemplo Delphi class Aplicación creation make feature {None} transicion: ARRAY2[Integer].m: Integer) is do !!transicion.make(1. estado_asociado: ARRAY[Estado] feature make(n. put_estado (e: Estado. establecer_inicial (ne: Integer) is do inicial:= ne.n) end.m).make(1. inicial: Integer.n.1. !!estado_asociado. ne) end Proceso UML 42 .

salario: INTEGER. incremento_salario(v:INTEGER) is do salario:= salario + v. suma_salarios.Ejemplo Eifel • Ejemplo de variable de clase class TRABAJADOR suma_salarios: REF_INTEGER is once !!Result end. end Proceso UML 43 .add(v) end ….

public class FrameCliente extends Frame implements Inicio { private Cliente mCliente. setTitle(title).. public FrameCliente() { . } public FrameCliente(String title) { this().. Proceso UML 44 .

private int mCapacidad. private boolean mConectado..public class Servidor { private Cliente mClientes[].. private InterfazServidor mInterfaz. . public String mNombre. Proceso UML 45 . private int mConectados.

public void setInterfaz(InterfazServidor interfaz) { mInterfaz=interfaz. ... private InterfazServidor mInterfaz. private int mCapacidad. public String mNombre. } Proceso UML 46 . private boolean mConectado.public class Servidor { private Cliente mClientes[]. private int mConectados.

Sign up to vote on this title
UsefulNot useful