Modelado estructural
Se describen los tipos de objetos de un sistema y las relaciones estáticas que existen entre ellos.
Clases
Interfaces
Relaciones de dependencia, realización, generalización y asociación (agregación, composición)
También pueden incluir paquetes.
Un diagrama de clase es una representación gráfica de un modelo estructural.
Modelado estructural
Diferentes perspectivas.
Modelado Conceptual
Conceptos del dominio del problema: atributos, restricciones y relaciones entre ellos.
Modelo del Análisis
Clases que corresponden a conceptos del dominio
Atributos y métodos
Modelo de Diseño
Incluye clases que corresponden a decisiones del diseño
Modelo de Implementación
Clases que corresponden a un lenguaje de programación
Modelo Conceptual
Modelo Análisis
Modelo de diseño
Modelo del
Comportamiento
Modelado estructural y del comportamiento
Colaboraciones y Patrones de diseño tienen una parte estructural y otra de comportamiento.
Patrón de diseño (parte estática)
(Gp:) Observer
(Gp:) Update()
(Gp:) Subject
(Gp:) subjectState
(Gp:) Attach()
(Gp:) Detach()
(Gp:) Notify()
(Gp:) 1..*
(Gp:) 1..1
(Gp:) 1..*
(Gp:) +observers
(Gp:) 1..1
(Gp:) ConcreteSubject
(Gp:) subjectState
(Gp:) getState()
(Gp:) setState()
(Gp:) ConcreteObserver
(Gp:) observerState
(Gp:) update()
(Gp:) +subject
(Gp:) observerState=
(Gp:) subject.getState()
(Gp:) for all o in observers
(Gp:) {o.update()}
Patrón de diseño (parte dinámica)
Ingeniería directa e inversa
Ingeniería directa
Transformar modelos en código en un lenguaje de programación determinado
Ingeniería inversa
Obtener un modelo a partir de código.
Más difícil ya que hay pérdida de información al pasar de los modelos al código.
Clases
Atributos
Operaciones
No se tienen por qué mostrar todos las propiedades
Se pueden agrupar operaciones: <>, <>
Clases
Clases y métodos abstractos
Multiplicidad
Variables y métodos de clase
1
Interfaces
Una interfaz es una colección de operaciones que especifica los servicios de una clase o componente.
nombre:
nombre del atributo
tipo:
tipo del atributo
valor_inicial:
valor inicial o por defecto
[visibilidad] nombre [: tipo] [‘[‘multiplicidad’]’] [= valor_inicial ]
[property-string {‘,’ property-string}]
propiedades: {frozen} {addOnly}
Atributos
(Gp:)
(Gp:) visibilidad
(Gp:) + = pública
(Gp:) # = protegida
(Gp:) – = privada
(Gp:) ~ = package
Atributos : Ejemplos
origen
+ origen
origen : Punto
nombre : String [0..30]
origen : Punto = (0,0)
id : Integer {readOnly}
nombre:
nombre de la operación
lista_parámetros:
lista de parámetros separados por comas
tipo retorno:
tipo de valor devuelto por la operación
propiedades:
{isQuery}, {sequential}, {concurrent}
[visibilidad] nombre [‘(‘lista_parametros’)’] [: tipo_retorno]
[property-string {‘,’ property-string}]
Operaciones
(Gp:)
(Gp:) visibilidad
(Gp:) + = pública
(Gp:) # = protegida
(Gp:) – = privada
(Gp:) ~ = package
Página siguiente |