34
CLASE 6: MODELO CONCEPTUAL/ MODELO DE DOMINIO Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Carolina Martínez

CLASE 6: MODELO CONCEPTUAL/ MODELO DE …martinez/cursos/ci3715/clase6_AJ2010.pdfLos objetos de un dominio son el foco del modelado. ... elaborados para dominios comunes: ... Una clase

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

Ejemplo

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.

Motivación

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 de Identificar Sustantivos

Errores Comunes

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.

Ejemplo: PDV. Entrada: CU

PDV. Modelo de Dominio Inicial.

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.

TDPV. Modelo de Domnio Parcial

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.

Atributos adecuados

 Muchos tipos atributos deben pensarse como tipos “primitivos”

Atributos Adecuados

  Relacionar clases conceptuales con asociaciones, no con atributos

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.

TDPV: Modelo de dominio