Académique Documents
Professionnel Documents
Culture Documents
SESION 07
UNIVERSIDAD NACIONAL DE INGENIERIA Facultad de Ingeniera Industrial y de Sistemas Ing. Jess Walter Antaurco Trujillo Wantaurco@yahoo.com
Objetivos de la clase
Contenidos
1. Modelado Estructural
Diagramas de Clases
Modelado Estructural
Modelado estructural
Se describen los tipos de objetos de un sistema y las relaciones estticas que existen entre ellos.
Clases Interfaces Relaciones de dependencia, realizacin, generalizacin y asociacin (agregacin, composicin) Tambin pueden incluir paquetes y colaboraciones
Modelado Conceptual
Conceptos del dominio del problema: atributos, restricciones y relaciones entre ellos. Clases que corresponden a conceptos del dominio Atributos y operaciones (mtodos) Incluye clases que corresponden a decisiones del diseo Clases que corresponden a un lenguaje de programacin
Modelo de Diseo
Modelo de Implementacin
Modelo Conceptual
IteradorCuenta
Modelo de diseo
Domiciliacion
Cuenta 1 0..n
Ahorro
: MostrarProductos
: Aadir
: CarroCompras
6: [!nuevoItem]incrementarUnidades()
10: [nuevoItem]put(codigo,i)
5: i:=getItemCarro(codigo)
7: [nuevoItem]p:=get(codigo)
9: [nuevoItem]i:=creaItem(p)
: ItemCarro
: Producto
Ingeniera directa
Transformar modelos en cdigo en un lenguaje de programacin determinado Obtener un modelo a partir de cdigo. Ms difcil ya que hay prdida de informacin al pasar de los modelos al cdigo.
Ingeniera inversa
Clases
Atributos
Operaciones
No se tienen por qu mostrar todos las propiedades Se pueden agrupar operaciones: <<constructor>>, <<query>>
Interfaces
Una interfaz es una coleccin de operaciones que especifica los servicios de una clase o componente.
<<Interface>> Collection add() remove() size() contains() iterator()
Atributos
[visibilidad] nombre [: tipo] [= valor_inicial ] [{propiedades}] visibilidad Nombre Tipo
+ = pblica # = protegida - = privada
Atributos
Nivel Conceptual: Los clientes tienen un nombre Nivel de Especificacin: El cliente puede almacenar y consultar su nombre Nivel de Implementacin: Una instancia de Cliente tiene un campo de tipo String que almacena su nombre y un mtodo que lo devuelve
Operaciones
[visibilidad] nombre [(lista_parametros)] [: tipo_retorno] [{propiedades}] visibilidad
+ = pblica # = protegida - = privada
nombre: nombre de la operacin lista_parmetros: lista de parmetros separados por comas tipo retorno: propiedades: tipo de valor devuelto por la operacin {isQuery}, {sequential}, {concurrent}
Operaciones
Atributos
Operaciones
Relaciones
Dependencia
PlanDelCurso
Clock
Nodo <<friend>>
Lista
import: un paquete importa los elementos de otro. extend: para casos de uso
Relaciones
Generalizacin
Es-un-tipo-de
Cuenta
Window
CuentaAhorro
CuentaCorriente
TextWindow
BoxDialog
Generalizacin
Nivel Conceptual
Todas las instancias de CuentaCorriente son instancias de Cuenta La interfaz de CuentaCorriente incluye la interfaz de Cuenta
Nivel Especificacin
Asociacin
Asociacin
Relacin estructural que especifica que los objetos de un tipo estn conectados con los de otro.
Persona
+empleado 1..*
+patron *
Empresa
Curso
*
impartido
1..*
Profesor
Asociaciones
Agregacin
* Departamento
Asociaciones
Nivel Conceptual
Muestran la relacin conceptual entre dos clases. Un cliente tiene varios pedidos Representan responsabilidades Detectamos los mensajes del protocolo de una clase con respecto a la otra Establecer atributos: navegabilidad
Nivel de Especificacin
Nivel de Implementacin
Asociaciones
Especificacin:
class Pedido { public Cliente getCliente(); public Set getLineaPedido(); ... }
Implementacin
_cliente; _lineasPedido;
Navegacin
Posibilidad de limitar la navegacin a una sola direccin Determina si una clase de la asociacin tiene conocimiento de la otra. Nivel de especificacin o implementacin
Curso *
impartido 1..*
Profesor
A
A
B
B
No se usa No se usa
Visibilidad
GrupoUsuarios * *
Usuario
+propietario
1..1
-clave
*
Clave
Agregacin
Dos criterios:
Dependencia:
La existencia de una parte va ligada a la del agregado?
Exclusividad:
Una parte puede pertenecer a ms de un agregado?
Composicin
Las partes pueden crearse despus del agregado compuesta al que pertenecen, pero una vez creadas viven y mueren con ella. La parte slo puede formar parte de un agregado. El agregado gestiona la creacin y destruccin de las partes. Las partes se pueden eliminar antes de eliminar el agregado.
Composicin
Ventana
agregado /todo
1..1
composicin
* Marco
parte
Composicin
POLIGONO 1 Relleno:Diseo
Punto
Clases Asociacin
Una asociacin que tambin es una clase Una clase asociacin aade una restriccin: Slo puede existir una instancia de la asociacin entre cualquiera par de objetos participantes
No podramos modelar que una persona tiene diferentes contratos para una misma compaa a lo largo del tiempo.
Cuenta
{or}
Persona
{subconjunto}
+miembro 1..* Persona +Director 1..1
Paquetes
Elemento organizativo Puede agrupar elementos de cualquier tipo. Un elemento es exclusivo a un paquete. Establece un espacio de nombres Posibilidad de anidar paquetes.
Modelo
Modelo
Importacin/Exportacin en paquetes
Los paquetes permiten controlar la complejidad del manejo de un gran nmero de abstracciones, controlando los accesos mediante la importacin.
Relaciones de importacin, acceso y generalizacin La parte pblica de un paquete son sus exportaciones. Las partes pblicas son visibles en los paquetes que importan al paquete contenedor. La importacin no es transitiva. Los paquetes anidados pueden ver todo lo que ven los paquetes que los contienen.
<<import>>
Politicas + ReglasPedidos + GUI:Ventana
<<import>>
Generalizacin de Paquetes
GUI + Ventana + Formulario # GestorEventos
MacGUI
Paquetes
ser cohesivo estar poco acoplado pocos anidamientos conjunto equilibrado de elementos
<<model>> Diseo
<<framework>> Struts
Un modelo es un paquete incluyendo todos los elementos que constituyen una particular vista del sistema modelado.