Analisis y Diseño con UML Fase de Diseño

Anuncio
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.
DISEÑO DE OBJETOS



Las clases del análisis se promueven a clases
especificas
Diseñar las clases necesarias
Integrar clases ya existentes al diseño
DISEÑO ARQUITECTONICO

Se define la arquitectura
Proceso UML
2
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
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).
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 conProceso
patrones
de diseño
UML

5
DISEÑO DE OBJETOS
Política para representar atributos derivados,
clasificación múltiple, clasificación
dinámica,..
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
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
PROPUESTA DISEÑO
Fase Construcción
 Iterativa e incremental
 En cada iteración se realiza análisis,
diseño, implementación y test
 Cada etapa acaba con un prototipo
 Comenzar con las partes críticas
Proceso UML
8
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
Uso de paquetes
• Paquete: conjunto de elementos de
cualquier tipo pertenecientes al modelo
(clases, casos de uso, diagramas de
colaboración 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
colaboración u otros paquetes).
Otro paquete
Esto es un paquete cuyo
interior no especifico
Proceso UML
+A
-B
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 básica para “testing”.
Proceso UML
13
En lugar de...
Frame
Presentación
Procesamiento
Dominio
Facturas
Servicios
Interfaz BD
Almacenamiento
Albaranes
Generador de informes
Base de datos
Proceso UML
14
...utilizar:
Presentación
Procesamiento
Presentación
Dominio
Servicios
Almacenamiento
Dominio
Servicios
Almacenamiento
Proceso UML
15
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.
Proceso UML
16
D IA G R A M A S D E P A Q U E T E S
U N P A Q UE TE P UE D E C O N TE N E R A O TR O S P A Q UE TE S
Editor
Controlador
Elementos
de diagrama
Núcleo
Gráfico
Sistemas de
Ventanas
Proceso UML
17
D IA G R A M A S D E P AQ U E T E S
R elació n de D ep e nde ncia
U n item p ued e ser im portado e n un paq uete si
e s visible (e xportado) por el paquete do nde se
declara.
Clientes
Banco: ChequandoCuenta
«imports»
Banco
ChequandoCuenta
Proceso UML
18
Pertenencias y referencias
• Un elemento del modelo estará incluido en
un sólo paquete, pero puede ser
referenciado desde otros.
Dominio
Almacenamiento
Cliente
Mensaje
0..*
0..*
almacena
1
1
Servidor
Buzón
Proceso UML
Dominio::Buzón
19
Dependencias entre paquetes
• Denotan que algún elemento de un paquete
depende de los elementos en otro paquete.
Dominio
{autor: Paco Pil}
Almacenamiento
Proceso UML
20
Dependencia de importación
Dominio
+Cliente
Presentación
+FrameCliente
AWT
+Frame
-AWT::Frame
«importa»
«importa»
+Label
«importa»
Proceso UML
21
Generalización
AWT
+Frame
#Label
MiAWT
+Frame
#AWT::Label
Proceso UML
22
En la arquitectura multinivel...
Presentación
Procesamiento
Dominio
Servicios
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,
bibliotecas, runtimes, etc.).
• La única relación 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 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..
• Diseño 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)
Especificación de subprograma
Cuerpo de subprograma
Componente
en general
Los subprogramas
son conjuntos de
rutinas, de suerte
que no incluyen
especificaciones de
clases.
Proceso UML
29
Tipos de componentes (II)
Programa principal
Especificación de paquete
Contiene el
nodo raíz del
programa
Por ejemplo,
un .H de C++
Proceso UML
Cuerpo de paquete
Por ejemplo, un
.CPP de C++
30
Tipos de componentes (III)
Especificación de tarea
Cuerpo de tarea
Representan tareas
independientes (p.ej., un
.EXE)
Proceso UML
31
Relaciones de dependencia
Factura.CPP
LineaFactura.H
Factura.H
LineaFactura.CPP
Proceso UML
32
Ejemplos
servidor
realiza
FServidor.java
Servidor.java
Cliente.java
servidor.java
servidor.java
FServidor.java
Proceso UML
Servidor.java
Cliente.java
33
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
Diagramas de Despliegue
• Muestra las relaciones físicas entre el
hardware y el software del sistema
construído.Elementos:
Nodos: Dispositivo hardware
Conexiones entre nodos
Componentes: Módulos de código.
Dependencias entre paquetes
Proceso UML
37
D IA G R A M A S D E D E S P L IE G U E (II)
TCP / IP
Servidor Diabetes
BDOO
Conexión
Dominio del
Cuidado de la Salud
Servidor Hígado
BDOO
Dominio del
Cuidado de la Salud
«comunicación»
Información
Aplicación sobre el
Hígado
Nodo
Pacientes
Objetos contenidos
Interface
Proceso UML
38
Diagrama de Despliege
modem
Internet
Procesador
Servidor
Servidor
Web
Red Local
Procesador
Cache
Procesador
DNS
Proceso UML
Procesador
Direcc.
39
Patrón “Tablas como objetos”
• Definir una tabla (en BB.DD.RR.) para cada
clase de objetos persistente
• Dificultad de relaciones entre objetos
:Persona
Personas
Nombre
Apellidos
Paco
Pil
Bruja
Avería
Nombre: Paco
Apellido: Pil
:Persona
Nombre: Bruja
Apellido: Avería
Proceso UML
40
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 Aplicación 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
mCliente=new Cliente(title);
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
Descargar