Upload
nguyenthuan
View
213
Download
1
Embed Size (px)
Citation preview
CLASE 6: MODELO CONCEPTUAL/MODELO DE DOMINIO
Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Carolina Martínez
Qué es un Modelo de Dominio
“Un Modelo de Dominio es una representación visual de clases conceptuales o de objetos reales en un dominio de interés” [MO95].
Un Modelo de Dominio consiste en un conjunto de diagramas de clases, sin definición de operaciones.
Qué es un Modelo de Dominio?
Entrada: Descripción del problema, Casos de Uso
Salida: Un conjunto de diagramas de clases
El modelo de dominio es un diccionario visual
El modelo de dominio proporciona una perspectiva conceptual Objetos del dominio o clases conceptuales Asociaciones entre clases conceptuales Atributos de las clases conceptuales
La información que contienen también puede ser expresada en forma de texto plano.
Objetos
Un objeto es una cosa con identidad única en un dominio de problema. Carlos Pérez, USB, Venezuela son objetos
Todos los objetos tienen una identidad y son distiguibles.
Los objetos se distinguen por su existencia inherente y no por las propiedades descriptivas que puedan tener Dos manzanas con el mismo color, forma y textura siguen
siendo manzanas individuales.
Clases y Objetos
Una clase describe un grupo de objetos con las mismas propiedades, comportamientos y relaciones posibles. Un objeto es una instancia de una clase. Persona, Universidad y País son clases.
Los objetos de un dominio son el foco del modelado. Por qué clases conceptuales?
El poder de la abstracción. El nivel de abstracción es un asunto de “juicio” y está
relacionado con la aplicación. La descripción de un cliente de un futuro sistema
puede tener una combinación de clases y objetos.
Clases y clases conceptuales
El modelo de dominio es una visualización de elementos de un dominio de interes en el mundo real.
Los modelos de dominio no deben mostrar clases de software
Modelo de Dominio vs. Modelo de Datos
Modelo de Datos - datos persistentes a ser almacenados en algún lugar
El modelo de dominio tambien incluye: Objetos temporales Objetos sin atributos
Motivación
Ayudan a comprender los conceptos clave de un negocio o un dominio de problema.
Disminuyen la brecha de representación entre como ven los clientes el problema y la representación en software de la solución, usando modelado Orientado por Objetos.
Cómo crear un modelo de dominio
Pasos: 1. Hallar las clases conceptuales. 2. Dibujar las clases conceptuales como
clases de un diagrama de clases UML. 3. Añadir asociaciones y atributos.
Hallar clases conceptuales
Tres estrategias: Reusar o modificar modelos existentes
Existen modelos de dominio y de datos publicados y bien elaborados para dominios comunes: inventario, finanzas, salud, etc.
Fowler, Analysis patterns Hay, Data Model Patterns Silverston, Data Model Resource Book
Usar una lista de categorías. Identificar sustantivos/frases nominales
Listas de Categorías
Objetos físicos y tangibles TDPV Especificaciones o descripciones de cosas EspecificaciónDeProducto Lugares Tienda Transacciones Venta, Pago Línea o reglón de elemento de transacciones
VentasLineaDeProducto
Listas de Categorías
Roles de personas Cajero Contenedores de otras cosas Tienda Cosas dentro de un contenedor Producto Otros Sistemas Sistema de Autorización de tarjetas de crédito
La lista completa de categorías se encuentra en la tabla 10.1 del Larman.
Identificar Sustantivos
Identficación de sustantivos Analizar la descripción textual de dominio Identificar sustantivos (nombres) y frases nominales.
Estos indican candidatos a clases, objetos y atributos.
Ejemplo: PDV
Caso de Estudio: PDV Identificar y dibujar clases conceptuales Entrada: Caso de Uso en formato extendido. Estrategia: lista de categorías, identificación
de sustanivos.
Asociaciones
Una Asociación es una relación entre objetos que indica alguna conección con significado e interesante.
Los objetos usualmente están relacionados por conecciones físicas o concptuale. El cajero Pedro Pérez trabaja en el TPDV “12”
Cuándo mostrar una asociación
Cuando el conociminto de la relación necesita ser presentado durante algún tiempo. Ejemplo:
PDV: Necesitamos recordar cuáles instancias LíneasDeProductosVenta están asociados con una Venta.
Se deben evitar mostrar demasiadas asociaciones.
Valores de multiplicidad
La multiplicidad se enfoca en la relación en un momento particular.
Ejemplo: “Casado con”
Sobre asociaciones
Pueden existir múltiples asociaciones entre dos clases. Ejm: “el vuelo 1087 va de Caracas a Maracaibo”
Una clase conceptual puede estar relacionada consigo misma. Ejemplo: “Un directorio puede contener otros
directorios”.
Encontrando Asociaciones
Usar la lista de asociaciones comunes: A es una parte física de B Caja-TDPV A es una parte lógica de B VentasLineaDeProducto-Venta A está contenido físicamente en B TDPV-Tienda A está contenido lógicamente en B DescripciónDeProducto - Producto A es una descripción de B DescripciónDeProducto - Producto
Encontrando Asociaciones
A es un elemento de línea en una transacción o reporte B VentasLineaDeProducto-Venta A se conoce/introduce/registra/presenta/captura B Venta-TDPV A es miembro de B Cajero-Tienda A es una sub-unidad organizacional de B Departamento-Tienda
La lista completa puede consultarse en la tabla 11.1 del Larman 2ed.
Atributos
Un atributo es un valor de datos lógico de un objeto.
Cuándo mostrar un atributo? Son sugeridos por los requerimientos Implican una información que debe recordarse.
Ejm: Venta necesita un atributo horaVenta Tienda necesita nombre y dirección.
Atributos
En UML se puede indicar el tipo y alguna otra información adicional.
No deben colocarse atributos derivados. Ejm: totalVenta.
Clases o Atributos
Si no pensamos en una clase conceptual X como un número o un texto en el mundo real, X es probablemente una clase conceptual, no un atributo.