Unidad 5 Mad Modelado Analisis Modelo Conceptual

36
13 de jun de 2022 Sergio Sánchez Rios Metodologías de Análisis y Diseño Unidad V Análisis y UML “Modelo Conceptual” Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática Docente Jornada Parcial Universidad Viña del Mar

Transcript of Unidad 5 Mad Modelado Analisis Modelo Conceptual

Page 1: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Metodologías de Análisis y DiseñoUnidad V

Análisis y UML

“Modelo Conceptual”

Sergio Sánchez Rios.

Ingeniero en Informática – Licenciado en Informática

Docente Jornada Parcial Universidad Viña del Mar

Page 2: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Introducción

El modelo del dominio muestra (a los modeladores) clases conceptuales significativas en un dominio del problema; es el artefacto más importante que se crea durante el análisis orientado a objetos.

Idea Clave : “Un modelo del dominio es una representación de las clases conceptuales del mundo real, no de componentes del software. No se trata de un conjunto de diagramas que describen clases de software, u objetos de software con responsabilidad.

UML: Modelo del Dominio Visualización de Conceptos

Page 3: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Modelos del Dominio

La etapa orientada a objeto esencial del análisis es la descomposición de un dominio de interés en clases conceptuales individuales u objetos – las cosas de las que somos conscientes -.

El modelo de dominio es una representación visual de las clases conceptuales u objetos del mundo real en un dominio de interés.

Utilizando la notación UML, un modelo de dominio se representa con un conjunto de diagramas de clases en los que no se define ninguna operación.

UML: Modelo del Dominio Visualización de Conceptos

Page 4: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Modelos del Dominio

Los modelos de dominio pueden mostrar:

Objetos del dominio o clases conceptuales.

Asociaciones entre las clases conceptuales.

Atributos de las clases conceptuales.

UML: Modelo del Dominio Visualización de Conceptos

Page 5: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Modelos del Dominio

Ejemplo:

Concepto u objeto del dominio

Concepto u objeto del dominio

AtributosAtributos

AsociaciónAsociación

UML: Modelo del Dominio Visualización de Conceptos

Page 6: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Idea clave: Modelo del dominio – un diccionario visual de abstracciones.

El modelo del ejemplo muestra un vista parcial, o abstracción, e ignora detalles sin interés (para el modelador).

Es fácil entender los distintos elementos y sus relaciones mediante este lenguaje visual, puesto que un porcentaje significativo del cerebro toma parte en el proceso visual – cualidad de los humanos -.

Por esto el modelo del dominio podría considerarse como un diccionario visual de abstracciones relevantes, vocabulario del dominio e información del dominio.

UML: Modelo del Dominio Visualización de Conceptos

Page 7: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Los modelos del dominio no son modelos de componentes de software

Un modelo del dominio , es un representación de las cosas del mundo real del dominio de interés, no de componentes del software. Por lo tanto, los siguientes elementos no son adecuados en un modelo de dominio:

Artefactos de software, como una ventana o base de datos, a menos que el dominio que se este modelando sea de conceptos de software, como un modelo de interfaces de usuario grafica.

Responsabilidades o métodos

UML: Modelo del Dominio Visualización de Conceptos

Page 8: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

“Una clase conceptual es una idea, cosa u objeto”. Más formalmente, una clase conceptual podría considerarse en términos de un símbolo, intención, y extensión.

Símbolo: palabras o imágenes que representan una clase conceptual.

Intención: la definición de una clase conceptual.

Extensión: el conjunto de ejemplos a los que se aplica la clase conceptual.

UML: Modelo del Dominio Clases Conceptuales

Page 9: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Por ejemplo considerar la clase conceptual para el evento de una transacción de compra.

VentaFecha

hora

Símbolo del Concepto

“Una venta representa el hecho de una transición de compra. Sucede un día y a una hora”

“Una venta representa el hecho de una transición de compra. Sucede un día y a una hora”

Intención del concepto

Venta-1

Venta-2Venta-nExtensión del concepto

UML: Modelo del Dominio Clases Conceptuales

Page 10: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Cuando se crea un modelo del dominio, normalmente, el símbolo y la vista intencional de la clase conceptual son los que tienen un mayor interés práctico.

UML: Modelo del Dominio Clases Conceptuales

Page 11: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

La tarea central es identificar las clases conceptuales relacionadas con el escenario que se está diseñado.

Estrategias para identificar clases conceptuales:

1. Utilizar una lista de categorías clases conceptuales.

2. Identificación de frases nominales.

3. Otra excelente técnica para el modelado del dominio es el uso de patrones de análisis, que son modelos de dominios parciales existentes creados por expertos.

UML: Modelo del DominioIdentificación de Clases Conceptuales

Page 12: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Utilización de una lista de categorías

Categoría de clases conceptuales Ejemplos (dominio tiendas y reservas de vuelo)

Objetos tangibles o físicos Registro, Avión

Especificaciones, diseños, o descripciones de las cosas

EspecificaciondelProducto, DescripciondelVuelo

Lugares Tienda

Transacciones Venta, Pago, Reserva

Líneas de la transacción LineadeVenta

Roles de la gente Cajero, Piloto

Contenedores de otras cosas Tienda, Lata, Avión

Cosas en un contenedor Articulo, Pasajero

Otros sistemas informáticos o electromagnéticos SistemaautorizacionPagoCredito, ControlTraficoAereo

UML: Modelo del DominioIdentificación de Clases Conceptuales

Page 13: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Utilización de una lista de categorías

Categoría de clases conceptuales Ejemplos (dominio tiendas y reservas de vuelo)

Organizaciones DepartamentodeVenta, CompañiaArea

Hechos Venta, Pago, Runión,Vuelo,Colision,Aterrizaje

Procesos (normalmente no se presentan como conceptos)

VentadeUnProducto, ReservaUnAsiento

Reglas y políticas PoliticadeReintegro, PoliticadeCancelación

Catálogos CatalogodeProductos, CatalogodePiezas

Registro de finazas, trabajo, contratos, cuestiones legales

Recibo, LibroMayor, ContratoEmpleo, RegistroMantención

Instrumentos y servicio financieros LineadeCredito, Stock

Manuales, documentos, artículos de referencia, libros

ListaDeCambiosDePReciosDiarios, ManualReparaciones

UML: Modelo del DominioIdentificación de Clases Conceptuales

Page 14: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Identificación mediante frases nominales

Otra técnica útil (debido a su simplicidad) recomendada es el análisis lingüístico: identificar los nombres y frases nominales en las descripciones textuales de un dominio, y considerarlos como clases conceptuales o atributos candidatos.

Se debe tener cuidado con este método; no es posible realizar una correspondencia mecánica de nombres a clases , y las palabras en lenguaje natural son ambiguas.

UML: Modelo del DominioIdentificación de Clases Conceptuales

Page 15: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Identificación mediante frases nominales (Ejemplo)

Escenario Principal de Éxito (Procesar Venta)

1. El cliente llega a un terminal PDV con mercancías

2. El cajero comienza una nueva venta

3. El cajero introduce el identificador del artículo.

4. El sistema registra la línea de la venta y presenta la descripción del articulo, precio y suma parcial. El cajero repite el paso 3 y 4 hasta que termine

5. El sistema presenta el total con los impuestos calculados

6. El Cajero le dice al cliente el total y solicita el pago

7. El cliente paga y el sistema gestiona el pago

8. El sistema registra la venta completa y envía la información de la venta y el pago al sistema de contabilidad externo y al sistema de inventario.

9. El sistema presenta el recibo

10. El cliente se va con el recibo y las mercancías (si es el caso)

UML: Modelo del DominioIdentificación de Clases Conceptuales

Page 16: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Ejemplo: Dominio de ventas

A partir del análisis de la Lista de Categorías de Clases Conceptuales y las frases nominales, se genera una lista de clases conceptuales candidatas del dominio. La lista está restringida a el escenario evaluado y sus requisitos.

Registro, Articulo, Tienda, Venta, Pago, EspecificaciondelProducto, LineaDeVenta, Cajero, Cliente, Encargado, CatalogodeProductos

No existe una lista “correcta”. Es una restricción algo arbitraria de abstraciones y vocabulario del dominio que el modelador considera relevante.

UML: Modelo del DominioIdentificación de Clases Conceptuales

Page 17: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Aplique los siguientes pasos:

1. Liste las clases conceptuales candidatas, utilizando las técnicas de la lista de categorías de clases conceptuales y la identificación de frases nominales, relacionadas con los requisitos actuales en estudio.

2. Represéntalo en un modelo de dominio.

3. Añada las asociaciones necesarias para registrar las relaciones que hay que mantener en memoria.

4. Añada los atributos necesarios para satisfacer los requisitos de información.

UML: Modelo del DominioCómo hacer un modelo del dominio

Page 18: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

El error más típico al crear un modelo del dominio es representar algo como un atributo cuando debería haber sido un concepto.

Ejemplo: ¿debería ser el destino un atributo de vuelo, o una clase conceptual separada de Vuelo?

UML: Modelo del DominioErrores típicos en la identificación

En caso de duda, considérelo un concepto separado. Los atributos deberían ser bastante raros en un modelo de dominio.

Page 19: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

UML: Modelo del DominioClases Conceptuales de especificación o descripción

Page 20: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Son necesarias cuando:

Se necesita la descripción de un articulo o servicio, independiente de la existencia actual.

La eliminación de las instancias de las cosas que describen dan como resultado una perdida de información.

Reduce información redundante y duplicada.

UML: Modelo del DominioClases Conceptuales de especificación o descripción

Page 21: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Es una relación entre tipos (o más concretamente instancias de estos tipos) que indica alguna conexión significativa e interesante.

UML: Modelo del DominioAsociaciones

Page 22: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Considere la inclusión de las asociaciones en un modelo de dominio en los siguientes casos:

Asociaciones de las que es necesario conservar el conocimiento de la relación durante algún tiempo (asociaciones “necesito-conocer”).

Asociaciones derivadas de la lista de asociaciones comunes.

En un modelo de dominio con n clases conceptuales, pueden existir n(n-1) asociaciones entre diferentes clases conceptuales. Muchos líneas en un diagrama añadirán “ruido visual” y lo hará menos comprensible.

UML: Modelo del DominioAsociaciones

Page 23: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Notación de las asociaciones en UML

Se representa como una línea entre clases con un nombre de asociación. La asociación es inherentemente bidireccional.

Nombre AsociaciónMultiplicidad Flecha dirección lectura opcional

UML: Modelo del DominioAsociaciones

Page 24: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Comience la inclusión de asociaciones utilizando la siguiente tabla

Categorías Ejemplos

A es una parte física de B Caja-TPDV

A es una parte lógica de B VentasLíneadeProducto-Venta

A está físicamente contenido en B TPDV-Tienda, Producto-Estante

A está contenido lógicamente en B DescripcióndeProducto-Catálogo

A es una descripción de B DescripcióndeProducto-Producto

A es un elemento de línea (o renglón) en una transacción o reporte B

VentasLíneadeProducto-Venta

A se conoce/introduce/registra/presenta/captura en B

Venta-TPDV

A es miembro de B Cajero-Tienda

A es una unidad organizacional de B Departamento-Tienda

UML: Modelo del DominioLocalización de las Asociaciones

Page 25: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Categorías Ejemplos

A usa o dirige a B Cajero-TPDV

A se comunica con B Cliente-Cajero

A se relaciona con una transacción B Pago-Venta

A es una transacción relacionada con otra transacción B

Pago-Venta

A es propiedad de B TPDV-Tienda

Las asociaciones de prioridad alta, que será útiles incluirlas en el modelo de dominio son: A es una parte lógica o física de B, A está contenida física o lógicamente en b, A se registra en B.

UML: Modelo del DominioLocalización de las Asociaciones

Page 26: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Centrase en aquellas asociaciones para las que se necesita conservar el conocimiento de la relación durante el tiempo.

Es más importante identificar clases conceptuales que asociaciones.

Demasiadas asociaciones tienden a confundir el modelo.

Evite mostrar asociaciones redundantes o derivadas.

UML: Modelo del DominioGuía para las Asociaciones

Page 27: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Roles

Los extremos de las asociaciones se denominan roles. Pueden tener opcionalmente Nombre, Expresiones de Multiplicidad, Navegabilidad.

Multiplicidad

Define cuantas instancias de una clase A pueden asociarse con una instancia de la clase B.

* cero o más “muchos”

1..* uno o más

1..40 de uno a 40

UML: Modelo del DominioAsociaciones en detalle

Page 28: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Multiplicidad

5 exactamente 5

3,5,8 exactamente 3,5,8

Multiplicidad

UML: Modelo del DominioAsociaciones en detalle

Page 29: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Asignación de nombres a las asociaciones

Deben comenzar con mayúscula.

La dirección por defecto para la lectura de los nombres de la asociación es de izquierda a derecha o de arriba a bajo.

Asociación e Implementación

Durante el modelo de dominio, una asociación, es una manifestación de que una relación es significativa en un sentido puramente conceptual – en el mundo real -. Se pueden definir asociaciones que no existan en la implementación.

UML: Modelo del DominioAsociaciones en detalle

Page 30: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

UML: Modelo del DominioEjemplo Asociaciones

Page 31: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Atributos

Atributo es el valor de datos lógico de un objeto.

Incluir los siguientes atributos en un modelo del dominio: aquellas para que los requisitos (ej: casos de uso) sugieran o impliquen una necesidad de registrar información.

Notación de UML

Venta

horafecha : fecha

AtributosAtributosTipo de datos opcionalTipo de datos opcional

UML: Modelo del DominioAtributos

Page 32: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Mantenga atributos simples

Intuitivamente, la mayoría de los atributos simples son los que, a menudo, se conocen como los tipos de datos primitivos, como los números. El tipo de un atributo, normalmente no debería ser un concepto de dominio complejo, como Venta o Aeropuerto.

UML: Modelo del DominioTipos de Atributos válidos

Page 33: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Mantenga atributos simples

Los atributos en un modelo de dominio deberían ser preferiblemente, atributos simples o tipos de datos (boolean, fecha, número, string, hora).

Se recomienda que se relacionen las clases conceptuales por asociaciones no con atributos

En caso de duda, defina algo como una clase conceptual aparte en lugar de cómo atributo.

UML: Modelo del DominioTipos de Atributos válidos

Page 34: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Deslizar a Diseño ningún atributo como clave ajena.

La violación más típica de este principio es añadir un tipo de atributo de clave ajena, como se hace en el modelado de base de datos relacionales.

Clave AJENAClave AJENA

UML: Modelo del DominioTipos de Atributos válidos

Page 35: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

UML: Modelo del DominioModelo Conceptual Final

Page 36: Unidad 5 Mad Modelado Analisis   Modelo Conceptual

13 de abr de 2023 Sergio Sánchez Rios

Guía del Tópico:

Software Engineering 6a. ed.– Ian Sommerville – Pearson Education – 2000. (Cap. 6)Ingeniería de Software Teoría y Práctica – Shari Lawrence Pfleeger – Pearson Education – 2002.Utilización de UML en ingeniería del software con objetos y componentes – Perdita Stevens & Rob Pooley – Addison Wesley – 2002. UML y Patrones una introducción al análisis y diseño orientados a objeto y al proceso unificado – Craig Larman – Prentice Hall - 2002.

Bibliografía