Está en la página 1de 41

MODELO CONCEPTUAL/

MODELO DE DOMINIO
MODELAMIENTO Y REQUISITOS DE SOFTWARE
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Qué es un Modelo de Dominio?

 Entrada:
Descripcióndel problema,
Casos de Uso

 Salida:
Un conjunto de diagramas de clases

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Ejemplo

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
CONSTRUCCION DE UN MODELO CONCEPTUAL

Conocimiento de la nomenclatura del dominio


Los Modelos Conceptuales permiten:
 Descomponer el espacio del problema en unidades comprensibles (conceptos),
 Además, contribuye a esclarecer la terminología o nomenclatura del dominio.

Podemos verlo como un modelo que comunica (a los interesados como pueden serlo los
desarrolladores) cuáles son los términos importantes y cómo se relacionan entre sí.

Los modelos conceptuales no son modelos de diseño de software.


No corresponden al Modelo conceptual:
 Los artefactos del software, como una ventana o una base de datos, salvo que el dominio a
modelar se refiera a conceptos de software; por ejemplo, un modelo de interfaces gráficas para el
usuario.
 Las responsabilidades o métodos.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
CONSTRUCCION DE UN MODELO CONCEPTUAL

Los modelos conceptuales no son modelos de diseño de software.

Hay que evitar:

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
CONSTRUCCION DE UN MODELO CONCEPTUAL

Conceptos:
En términos informales el concepto es una idea, cosa u objeto.
En un lenguaje más formal, podemos considerarlo a partir de su símbolo,
intensión y extensión.
Símbolo: palabras o imágenes que representan un concepto.
Intensión: la definición del concepto.
Extensión: el conjunto de ejemplos a que se aplica el concepto.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
CONSTRUCCION DE UN MODELO CONCEPTUAL

Los modelos conceptuales y la descomposición:

 En el análisis estructurado la dimensión de la descomposición se realiza media


procesos o funciones,
 En cambio en el análisis orientado a objetos, se lleva a cabo fundamentalmente
conceptos (objetos).
Por lo tanto, unas tarea primordial de la fase de análisis
consiste en:
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniería de Software
Identificar varios conceptos en el dominio del problema y
documentar los resultados en un modelo conceptual
CONSTRUCCION DE UN MODELO CONCEPTUAL

Estrategias para identificar los conceptos:


Obtención de conceptos a partir de una lista de categorías de conceptos
Obtención de conceptos a partir de la identificación de frases nominales

Categoría de concepto Ejemplos


Objetos físicos o tangibles Puesto de venta Avión

Especificaciones, diseño o descripciones de cosas EspecificaciondeProducto Descripcionde Vuelo

Lugares Tienda Aeropuerto

Transacciones Venta, Pago Reservación

Línea o renglón de elemento de transacciones VentasLineadeProducto


Papel de personas Cajero Piloto

Contenedores de cosas Tienda, Cesto Avión

Cosas dentro de un contenedor Producto Pasajero

Otro sistemas de cómputos Electromecánicos SistemadeAutorizaciondeTarjetadeCredito


externos
Universidad Nacional al de
Mayor sistema
San Marcos ControldeTraficoAereo
E.A.P. de Ingeniería de Software
Categoría de concepto Ejemplos
Otro sistemas de cómputos SistemadeAutorizaciondeTarjetadeCredito
Electromecánicos externos al sistema ControldeTraficoAereo
Conceptos de nombres abstractos Hambre Acrofobia

Organizaciones Departamentode VentasObj etoLineaAerea

Procesos (a menudo no están repre sentados VentaUnProduct ReservaAsiento


como conceptos, pero pueden estarlo)

Reglas y Políticas PoliticadeReembolso PoliticadeCancelaciones

Catálogos CatalogodeProducto Catalogodepartes

Registro de finanzas, de trabajo, de Recibo, Mayor, ContratodeEmpleo


contratos de asuntos legales BitácoradeMantenimiento
Instrumentos y servicios financieros LineadeCredito Existencia

Manuales, libros ManualdePersonal ManualdeReparaciones

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería 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

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Motivación

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Ejemplo de Identificar Sustantivos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Escenario principal
•El cliente llega a un puesto de venta con mercaderías y/o servicios que
comprar.
•El cajero comienza una nueva venta.
•El cajero introduce el identificador del artículo.
•El sistema registra la línea de venta y presenta la descripción del artículo,
precio y suma parcial.
El cajero repite los pasos 3 y 4 hasta que se indique.
•El sistema presenta el total con los impuestos calculados.
•El cajero le dice al cliente el total y solicita el pago.
Clases conceptuales candidatas para el dominio de ventas
Cliente, puesto de venta, mercadería, servicio, cajero, venta, identificador de
artículo, sistema, línea de venta, descripción de artículo, precio, etc..
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniería de Software
Errores Comunes

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Ejemplo: PDV. Entrada: CU

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
PDV. Modelo de Dominio Inicial.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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”

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Valores de multiplicidad

 La multiplicidad se
enfoca en la relación
en un momento
particular.
 Ejemplo: “Casado
con”

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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”.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Encontrando Asociaciones

 Usar la lista de asociaciones comunes:


A es una par te física de B
Caja-TDPV
A es una par te 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

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Encontrando Asociaciones

A es un elemento de línea en una transacción o repor te 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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
TDPV. Modelo de Domnio Parcial

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Atributos

 En UML se puede indicar el tipo y alguna otra


información adicional.
 No deben colocarse atributos derivados. Ejm:
totalVenta.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Atributos adecuados

 Muchos tipos atributos deben pensarse como


tipos “primitivos”

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
Atributos Adecuados

 Relacionar clases conceptuales con asociaciones, no


con atributos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
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.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software
TDPV: Modelo de dominio

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniería de Software