Está en la página 1de 46

Analisis y Diseo con UML

Fase de Diseo

FASE DE DISEO
DISEO DEL SISTEMA

Particin en subsistemas y asignacin a subaplicaciones Definir todos los procesos. Las clases del anlisis se promueven a clases especificas Disear las clases necesarias Integrar clases ya existentes al diseo Se define la arquitectura
Proceso UML 2

DISEO DE OBJETOS

DISEO ARQUITECTONICO

INTEGRIDAD
DEBERAN GARANTIZAR QUE LOS MODELOS GENERADOS SON CONSISTENTES 1) DIAGRAMAS DE CLASES VS. TARJETAS CRC 2) MODELOS DINMICO VS. TARJETAS CRC 3) DIAGRAMAS DE CLASES VS. PROTOTIPO DE DISEO

Proceso UML

DISEO DEL SISTEMA


Descomposicin en subsistemas de modo que el acoplamiento sea mnimo. Asignar subsistemas a procesos. Se establece la arquitectura de alto nivel del sistema, que conecta subsistemas. Considerar tecnologa para implementar los distintos componentes. Asignar datos y procesamiento: clienteservidor
Proceso UML 4

DISEO DE OBJETOS
A partir de las clases y asociaciones de los diagramas de clase del anlisis, definimos clases de la aplicacin (o partes no visuales). Definir clases interface o visuales (partes visuales) Existirn otras clases sin correspondencia directa con elementos del anlisis: clases del diseo

Acceso a bases de datos Estructuras de datos Relacionadas con patrones de diseo

Proceso UML

DISEO DE OBJETOS
Poltica para representar atributos derivados, clasificacin mltiple, clasificacin dinmica,.. Poltica para validacin de datos de entrada del usuario: objeto-servidor u objeto-cliente Posibilidad de utilizar diseo por contrato

Proceso UML

PROPUESTA DE DISEO
Fase Elaboracin Modelo de Requerimientos Modelo del Dominio Diagramas de Clase conceptual y diagramas de actividad Modelo de Casos de Uso Valorar riesgos tcnologicos Decisiones de Diseo sobre la arquitectura Planificacin

Proceso UML

PROPUESTA DISEO
Fase Construccin Iterativa e incremental En cada iteracin se realiza anlisis, diseo, implementacin y test Cada etapa acaba con un prototipo Comenzar con las partes crticas

Proceso UML

Diseo de Clases
Cuestiones a analizar: Efectos laterales en funciones Nmero de argumentos en los mtodos Tamao de las clases Estructuras de datos activas Exportacin selectiva Documentacin de una clase Tratamiento de casos excepcionales
Proceso UML 9

Diagramas de Paquetes

Uso de paquetes
Paquete: conjunto de elementos de cualquier tipo pertenecientes al modelo (clases, casos de uso, diagramas de colaboracin u otros paquetes).

Esto es un paquete

Proceso UML

11

Paquete
Paquete: conjunto de elementos de cualquier tipo pertenecientes al modelo (clases, casos de uso, diagramas de colaboracin 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. Un diagrama de paquetes muestra muestra paquetes de clases y las dependencias entre ellas. Permiten simplificar diagramas de clase complejos. Unidad bsica para testing.
Proceso UML 13

En lugar de...

Presentacin Dominio Servicios

Frame Facturas Interfaz BD Base de datos Albaranes Generador de informes

Procesamiento

Almacenamiento

Proceso UML

14

...utilizar:

Presentacin

Presentacin

Procesamiento

Dominio Servicios

Dominio Servicios

Almacenamiento

Almacenamiento
Proceso UML 15

De modo que:
Dominio

Facturas

Albaranes

Los elementos de un paquete pueden representarse mediante particiones: una particin representa un conjunto de subsistemas ms o menos independientes dentro de una capa.
Proceso UML 16

DIAGRAMAS DE PAQUETES
UN PAQUETE PUEDE CONTENER A OTROS PAQUETES

Editor

Controlador

Elementos de diagrama Ncleo Grfico Sistemas de Ventanas

Proceso UML

17

DIAGRAMAS DE PAQUETES
Relacin de Dependencia Un item puede ser importado en un paquete si es visible (exportado) por el paquete donde se declara.
Clientes Banco: ChequandoCuenta imports Banco ChequandoCuenta

Proceso UML

18

Pertenencias y referencias
Un elemento del modelo estar incluido en un slo paquete, pero puede ser referenciado desde otros.
Dominio Almacenamiento

Cliente
0..* 1

Mensaje
0..* almacena 1

Servidor

Buzn
Proceso UML

Dominio::Buzn
19

Dependencias entre paquetes


Denotan que algn elemento de un paquete depende de los elementos en otro paquete.

Dominio {autor: Paco Pil}

Almacenamiento

Proceso UML

20

Dependencia de importacin
Dominio +Cliente Presentacin +FrameCliente AWT +Frame +Label importa
Proceso UML 21

-AWT::Frame importa

importa

Generalizacin
AWT +Frame #Label

MiAWT +Frame #AWT::Label


Proceso UML 22

En la arquitectura multinivel...

Procesamiento
Dominio Servicios

Presentacin

Almacenamiento

Proceso UML

23

Consideraciones
Dentro de un paquete pueden incluirse los elementos que:
Estn relacionados conceptualmente o tienen un objetivo comn 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 mdulo fsico de cdigo (ficheros con cdigo fuente, bibliotecas, runtimes, etc.). La nica relacin posible entre componentes es la dependencia, con la que denotamos que un componente debe ser compilado antes que otro.
Proceso UML 26

Componente
Los componentes son paquetes fsicos de otros elementos lgicos Estereotipos predefinidos:
Ejecutable Biblioteca (library) Tabla (de BD) Fichero Documento
Proceso UML 27

Conceptos
Componente: parte fsica y reemplazable de un sistema que implementa y suministra ciertos conjuntos de interfaces.. Diseo Basado en Componentes: forma de desarrollar el software en la que todos sus productos pueden ser construidos ensamblando, adaptando y conectando componentes preexistentes.
Proceso UML 28

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, de suerte que no incluyen e specificacione s de clases.

Proceso UML

29

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 raz del program a

Por ejemplo, un .H de C++

Por ejemplo, un .C PP de C ++

Proceso UML

30

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.ej., un .EXE)

Proceso UML

31

Relaciones de dependencia
F ac tura.C P P
L in e a F a ctu ra .H

F ac tura .H

L in e a Fa c tu r a.C P P

Proceso UML

32

Ejemplos
servidor
realiza FServidor.java Servidor.java Cliente.java servidor.java servidor.java

FServidor.java

Servidor.java

Cliente.java

Proceso UML

33

Ventajas
Reutilizacin Unidades de mantenimiento y actualizacin Desarrollo en paralelo Escalabilidad (facilidad de aadir nuevos servicios) Independencia del lenguaje Componentes distribuidos
Proceso UML 34

Especificacin de un componente
Servicios prestados (interfaces) Servicios requeridos (interfaces) Especificacin externa Cdigo ejecutable Cdigo de validacin Documentos de diseo
Proceso UML 35

Diagramas de Despliege

Diagramas de Despliegue
Muestra las relaciones fsicas entre el hardware y el software del sistema construdo.Elementos: Nodos: Dispositivo hardware Conexiones entre nodos Componentes: Mdulos de cdigo. Dependencias entre paquetes
Proceso UML 37

DIAGRAMAS DE DESPLIEGUE (II)


TCP / IP Conexin Servidor Diabetes BDOO

Servidor Hgado Dominio del Cuidado de la Salud

Dominio del Cuidado de la Salud

BDOO comunicacin Informacin Nodo Objetos contenidos

Aplicacin sobre el Hgado

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

Patrn Tablas como objetos


Definir una tabla (en BB.DD.RR.) para cada clase de objetos persistente Dificultad de relaciones entre objetos
:Persona Nombre: Paco Apellido: Pil :Persona Nombre: Bruja Apellido: Avera
Proceso UML 40

Personas Nombre Apellidos Paco Pil Bruja Avera

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

Proceso UML

41

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

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

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

44

public class Servidor {


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

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

También podría gustarte