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 |