You are on page 1of 40

03/01/2012

Modelo Conceptual o de  Dominio

Agenda
• • • • ¿Qué es el modelo conceptual o de  d i i ? dominio? ¿Cómo encontrar clases conceptuales? Atributos de clases Relaciones entre clases

1

03/01/2012

¿QUÉ É ES EL MODELO CONCEPTUAL  O DE DOMINIO?

¿Qué es el modelo conceptual o  de dominio?
• Es una representación visual de clases conceptuales u  objetos  “reales” en el dominio de la información que j q  se  requiere para un sistema. • Muestra los conceptos básicos del sistema: sus partes y  relaciones. • Es una representación de las relaciones entre clases  entidad. • No representan clases de implementación de software.
p , ni  – No se representan  clases como ventanas o interfaces, controladoras. – No se representan métodos de implementación.

• Se utiliza un diagrama de clases del UML simplificado.

2

03/01/2012

Clase conceptual
• Nivel superior de abstracción. • Representa a un conjunto de elementos con  características o detalles comunes. • Informalmente representan una idea, cosa o  objeto del que se requiere información. • Formalmente una clase conceptual debe ser  considerada en términos de su símbolo,  intensión y extensión.

Clase conceptual
• Símbolo: Palabras o imágenes que la representan • Intención: Definición de la clase • Extensión: Conjunto de ejemplos en donde la clase se  aplica.
Venta fecha setVenta
Venta 1 Venta V t 2 Venta 3 ….. Venta n

Una venta representa el evento de una transacción comercial en la cual el cliente adquiere bienes o servicios

Símbolo

Intención

Extensión

3

03/01/2012

Clase conceptual
• Es la descripción de un grupo de objetos con:
– – – – Una semántica en común ( (nombre): ) Propiedades en común (atributos). Forma específica de relacionarse   (asociaciones). De forma opcional pueden representarse operaciones (que  no se van a implementar realmente).

Nombre

¿CÓMO Ó  ENCONTRAR CLASES  CONCEPTUALES?

4

– Se pueden usar modelos de datos que se  pueden transformar en modelos conceptuales. – Existen modelos de dominio publicados de  inventarios. educativos. • Uso de listas de categorías • Identificación  y filtro de sustantivos en las  especificaciones de casos de uso. – Esto ya lo vimos en la clase anterior cuando  estuvimos inspeccionando especificaciones de  casos de uso para encontrar clases de análisis. finanzas. salud. 5 . – Es la forma más fácil. etc.03/01/2012 Estrategias para encontrar clases • Reuso o modificación de modelos  i t t existentes. Estrategias para encontrar clases • Reuso o modificación de modelos  i t t existentes.

03/01/2012 Identificar conceptos de  información del sistema • Uso de listas de categorías C t í Categoría Transacciones comerciales Detalle de transacciones Productos o servicios Roles Lugares L Eventos Objetos físicos Descripciones  Contenedores Ej l Ejemplos Venta. Viaje Pieza. Nombre atributo Nombre atributo operacion operación () 6 . • Parte 2: Se colocan los atributos. clase   • Parte 1 1: Se coloca el nombre de la clase. Horario Tienda. Aula Ruta. Piloto Aeropuerto A t Vuelo. Cliente. Pago. Pasajero. Asiento Cajero. Asiento. Avión. Vuelo. Reservación Detalle de ventas Artículo. Ómnibus Identificación de clases  conceptuales • Se representa en tres partes. • Parte 3: Se especifican las operaciones (opcional).

03/01/2012 Identificación de clases  conceptuales Factura Cliente Pais FacturaDetalle Producto ATRIBUTOS 7 .

objetos Atributos de una clase • No representan: – Conexiones a través de llaves foráneas. 8 . • El conjunto de los atributos y sus valores  establecen la diferencia entre los objetos. • Información almacenada y actualizada por  la clase. o “categoría” son atributos o deben ser  modelados en otras clases y relaciones  especiales.03/01/2012 Atributos de una clase • Representan características estáticas de la  l clase. – Estados – Se debe considerar si los atributos de nombre  “tipo”.

El atributo es visible para el interior y para  las clases de un mismo paquete. Solo sus métodos pueden  accederlo. Valor inicial. Tipo de dato. Símbolo  UML Símbolo  SW – # + ~ 9 .03/01/2012 Atributos de una clase • Por cada atributo debe definirse: – – – – Visibilidad.  Visibilidad Privado Protegido Público Paquete Implementación Descripción El atributo es visible solo para el interior  de la clase. • Sintaxis. El atributo es visible solo para el interior  de la clase. Sintaxis – visibilidad  nombre:  tipoDato = valorInicial Atributos de una clase • Visibilidad: Establece la proporción en que otras clases  pueden utilizar el atributo de la clase. Nombre. no para los objetos de la clase. El atributo es visible para el interior y  exterior de la clase. El atributo es visible para el interior  de la  clase y sus subclases.

– Debe dar una clara idea de la unidad de información que  representa. Date • Valor inicial:  Es el valor que el atributo adquiere por defecto. Atributos de una clase • Nombre:  Es el nombre del atributo – Usar sustantivos claros y precisos.  precioProducto • Tipo de dato:  Es la estructura física primitiva del atributo.  – Ejemplos:  String. – Para nombres compuestos:  el primer sustantivo empieza con  minúsculo y los subsiguientes empiezan con mayúscula.03/01/2012 Atributos de una clase • El icono al comienzo del nombre del  visibilidad atributo señala el tipo de visibilidad. – Deben ser escritas de forma continua. Integer. 10 . – Utilizar letra minúscula y de forma continua en su redacción. – Ejemplos:  nombreCliente.

03/01/2012 Atributos de una clase Atributos de una clase • Errores comunes – Los atributos deben definirse en  correspondencia con los necesarios para  representar los objetos del mundo real y no son  componentes de software. 11 .

  modele como clase  sus p posibles valores Vuelo fecha Ciudad nombre Atributos de una clase • Errores comunes Ll f á N  utilizar tili  atributos t ib t  que sean  – Llaves  foráneas:  No llaves foráneas. Utilice asociaciones Vuelo idPiloto idPiloto es una llave  foránea. modele una  asociación con la  clase Piloto 12 . Utilizar  asociaciones. Vuelo destino Destino es complejo.03/01/2012 Atributos de una clase • Errores Comunes At ib t  que son en verdad d d clases: l N  utilizar tili   – Atributos  No atributos complejos (que son objetos).

Vuelo tipoVuelo Existe otra forma de  Modelarlos. generalmente  no se modelan como tales. “Estado”.03/01/2012 Atributos de una clase • Errores comunes At ib t  que representan t  especializaciones i li i   y  – Atributos diferenciación entre objetos:  Los atributos  “Tipo”. “Categoría”. Modelarlos Son objetos con  comportamientos distintos RELACIONES 13 .

03/01/2012 Relaciones entre clases • Identificaremos: – – – – – Asociaciones Autoasociaciones Clases asociativas Agregaciones y composiciones Herencia Relaciones entre clases • Una asociación entre dos clases significa: – Algún vínculo o conexión significativa.. • Se representa a través de una línea continua. – Los objetos de ambas necesitan comunicarse durante la ejecución  del caso de uso del sistema. emite 1 Cliente 0.n PedidoVenta 14 . • Se identifica una asociación bidireccional entre cada clase del sistema.

bli i • Se utiliza solo cuando  mejora la comprensión de  la asociación.n PedidoVenta Se El cliente S lee: l li t solicita li it Pedidos de Venta (generalmente del uno al muchos) 15 . Tipo. emite 1 0.. • No es un elemento  obligatorio.03/01/2012 Relaciones entre clases • Los elementos que definen la asociación son: – – – – Nombre Nombre. Multiplicidad.n PedidoVenta Relaciones entre clases Nombre erbal  precisa que q e  • Frase verbal refleja el propósito de la  Cliente relación. emite 1 Cliente 0. Navegabilidad. • Describe la manera en que  ocurre la asociación..

.x 16 . Un objeto de una clase se asocia a ninguno o un objeto de la  otra clase. Un objeto de una clase se asocia a ninguno. uno o más de un  objeto ilimitadamente de la otra clase.* * 0. • Se coloca en cada extremo de  la asociación.03/01/2012 Relaciones entre clases Multiplicidad o cardinalidad • Especifica  la cardinalidad de  p la asociación. emite 1 Cliente 0... 0 0.. Un objeto de una clase se asocia a ninguno.n 0.  tiempo • Se representa a través de una  numeración.n PedidoVenta Relaciones entre clases • Tipos de multiplicidad o cardinalidad Tipo Descripción Un objeto de una clase no se asocia a ningún objeto de la  otra. • Modela la cantidad de  objetos de un extremo de la  asociación que se asocian a  un objeto del otro durante el  p  de vida del sistema. uno o hasta un  máximo de x objetos de la otra clase..1 0 n / 0 0.

hace 1 Cliente 0..n / 1.x x Relaciones entre clases Multiplicidad o cardinalidad. – ¿Cuántos clientes puede tener asociados un pedido? • Un solo cliente siempre.03/01/2012 Relaciones entre clases • Tipos de multiplicidad o cardinalidad Tipo Descripción Un objeto de una clase se asocia a únicamente a un objeto  de la otra clase..* 1. Un objeto de una clase se asocia a uno como mínimo o hasta  un máximo de x objetos de la otra clase... uno o muchos pedidos. Un objeto de una clase se asocia a uno como mínimo o más  de un objeto ilimitadamente de la otra clase. 1 1. • Para este ejemplo se hacen las preguntas: – ¿Cuántos pedidos puede hacer un cliente? • Ninguno. clase Un objeto de una clase se asocia a x exactos objetos de la  otra clase.n Pedido 17 .

.n Pedido 18 . Relaciones entre clases Navegabilidad é significa i ifi  este ejemplo? j l • ¿Qué • Significa que: – Para acceder a un pedido hay que hacerlo a través del cliente. • Define el sentido u orientación de la comunicación o  intercambio entre las clases. – El pedido no conoce a qué cliente pertenece. • Las asociaciones son unidireccionales o bidireccionales. hace 1 Cliente 0.03/01/2012 Relaciones entre clases Navegabilidad fi  el l sentido id  u orientación i ió  de d  l i ió  o  • Define la comunicación intercambio entre las clases. p  a través de una línea continua con una  • Se representa flecha en el extremo que indique la dirección deseada solo  cuando es unidireccional.

hace 1 Cliente 0.n Pedido 19 .. – Para acceder a un pedido hay que hacerlo a través del cliente y  viceversa.03/01/2012 Relaciones entre clases Navegabilidad é significa i ifi  en este ejemplo? j l • ¿Qué • Significa que: – El pedido conoce a qué cliente pertenece  – Para localizar los pedidos de un cliente hay que hacerlo a través de  la colección de pedidos hace 1 0..n Cliente Pedido Relaciones entre clases Navegabilidad ¿Q é significa en este ejemplo? • ¿Qué • Significa que: – El pedido conoce a qué cliente pertenece y viceversa.

hace 1 Cliente 0. • Auto agregación.n Pedido 20 .. • Existen 5 tipos de asociaciones. – Composición (Agregación por Valor). • Se representa a través de una flecha a la línea continua de la  asociación en el extremo que indique la dirección solo si la  navegabilidad es unidireccional. – Asociación de clases.03/01/2012 Relaciones entre clases Tipo q e ocurre oc rre el intercambio entre las  • Define la manera en que clases que intervienen en la asociación. – Asociación simple. – Generalización. • Auto asociación. Generalización – Agregación (Agregación por Referencia). Relaciones entre clases Asociación Simple • Representa una relación o conexión semántica simple entre  dos clases.

03/01/2012 Relaciones entre clases • Asociación Simple (Ejemplo) Relaciones entre clases • Asociación Simple (Ejemplo) 21 .

• Significa que una instancia de la clase se asocia con otras  de la misma clase.. Relaciones entre clases Asociación Simple (Auto asociación) • Representa una relación o conexión semántica simple a  i l una misma  clase.n Está subordinado a 22 .03/01/2012 Relaciones entre clases • Asociación Simple (Ejemplo). Empleado 1 0.

03/01/2012 Relaciones entre clases Asociación de clases ¿En que clase deberían estar los siguientes atributos? • Regalia • TemasEscritos Relaciones entre clases Asociación de clases ¿Qué significarían los atributos en el Libro? 23 .

• Los objetos de la clase múltiple existen después de  que los de l las clases l  objetos bj t  d l  origen ig  se asocien i  y se  active la asociación simple respectiva. • Produce  clase – Características (atributos). 24 . • Se representa a través de una línea discontinua  que parte de la asociación simple hasta la nueva  clase.03/01/2012 Relaciones entre clases Asociación de clases ¿Qué significarían los atributos en el Autor? Relaciones entre clases Asociación de clases que conllevan información P d  una tercera t l  nueva: clase l  asociativa i ti . – Asociaciones. – Comportamiento (operaciones).

03/01/2012 Relaciones entre clases Clase  Asociativa Relaciones entre clases Herencia o Generalización/Especialización 25 .

• Se crea una clase nueva (superclase) que asume dicho  comportamiento común. • Se representa a través de una línea continua con un  triángulo transparente desde la subclase hasta la superclase.03/01/2012 Relaciones entre clases Herencia • Modela la necesidad de establecer jerarquía entre clases. – Tener comportamiento específico (Estos serán subclases). • Identifica conceptos que se caracterizan por: – Tener comportamiento general (Este será la superclase). • Se encuentra en aquellas clases que tienen ciertos atributos  y operaciones en común. Relaciones entre clases • Herencia  (Ej l ) (Ejemplo) 26 .

03/01/2012 Relaciones entre clases Niveles de  abstracción Terrestre Vehiculo Las clases deben ser modeladas de d a un mismo i acuerdo nivel de abstracción Aéreo Ford Camion Avion Helicoptero Relaciones entre clases • Agregación y Asociación Computadora Monitor CPU Parlante Teclado Raton DiscoDuro RAM UnidadCD TarjetaVideo TarjetaSonido Boton Bola 27 .

• Es una relación débil entre las clases “todo” y “partes”. • Cuando deja de existir la clase “todo” no tiene que dejar  de existir las clases “parte” de la agregación. p  de vida de la clase “todo” no define el tiempo p   • El tiempo de vida de las clases “parte”. • Se representa a través de un rombo transparente en el  extremo de la clase “todo”.03/01/2012 Relaciones entre clases Agregación y Asociación Computadora Monitor CPU Parlantes Teclado Raton DiscoDuro RAM UnidadCD TarjetaVideo TarjetaSonido Boton Bola Relaciones entre clases Agregación (Agregación por Referencia) • Es una relación que implica en su significado que una  clase “contiene a” o “agrupa a” otras clases  independientes. • Es una asociación de “todo / parte”. 28 .

• Significa que un objeto de una clase se forma de otros  objetos de la misma clase. • La clase “todo” y la clase “parte” son la misma.n Producto 1 está formado por 29 .03/01/2012 Relaciones entre clases Agregación (Agregación por Referencia) Computadora Monitor CPU Parlantes Teclado Raton DiscoDuro RAM UnidadCD TarjetaVideo TarjetaSonido Boton Bola Relaciones entre clases Agregación (Auto Agregación) • Representa una asociación de agregación. 0..

• Es una asociación de “todo / parte”. Relaciones entre clases Composición (Agregación por Valor) Persona Brazo Cabeza Pierna Cuerpo Ojo Boca Nariz Oreja Pelo 30 . • Es una agregación fuerte. en la que se cumple lo  siguiente: – La destrucción de la clase “todo” implica la destrucción de la  clase “parte”. • Se representa a través de un rombo relleno en el extremo  de la clase “todo”.03/01/2012 Relaciones entre clases Composición (Agregación por Valor) na relación que q e implica en su s  significado que q e una na  • Es una clase “contiene totalmente a” otras clases  independientes. – El tiempo de vida de la clase “todo” define el tiempo de vida de  las clases “parte”.

 se mueven sus puertas 31 .03/01/2012 Relaciones entre clases • Composición  (Agregación por Valor) – Ejemplo ¿Cómo identificar agregaciones? • ¿Para describir la relación se usa la frase “es  t  d ”?  parte de”? – Una puerta “es parte de” un  Carro • ¿Hay operaciones sobre el todo que se  aplican automáticamente a las partes? – Al mover el carro.

– La agregación representa la relación “tiene a”... sus puertas son azules • ¿Existe una asimetría intrínseca en la  relación donde una clase está subordinada  a la otra?  – Las puertas SON parte del carro. f d • Usualmente – La herencia representa una relación “es un”... • Esta palabras clave ayudan a aclarar la  relación 32 .03/01/2012 ¿Cómo identificar agregaciones? • ¿Hay valores de atributos que se propagan  del todo a sus partes?  – El carro es azul. un carro NO ES  parte de una puerta Herencia versus Agregación U l t  se confunden.

03/01/2012 Herencia versus Agregación Window Scrollbar WindowScrollbar Una WindowScrollbar “es una” Window Una WindowScrollbar “tiene una” Scrollbar ¿Que relaciones deben usarse? Herencia versus Agregación Window Scrollbar Window WindowScrollbar WindowScrollbar 1 1 Scrollbar 33 .

03/01/2012 Herencia versus Agregación H Herencia i • Keywords “es una” • Un objeto • Representada por una flecha A ió Agregación • Keywords “tiene a” • Relaciona objetos de diferentes clases • Representada por un diamante Metamorfosis y herencia • ¿Qué es una metamorfosis? E  un cambio bi  d t t  o f ió – Es de f forma. estructura función – Cualquier cambio marcado como en  carácter. apariencia o condición. Problema:  ¿Cómo se puede modelar? 34 .

03/01/2012 Metamorfosis y herencia Ejemplo • En la Universidad hay estudiantes a  tiempo completo y a tiempo parcial. pero  un estudiante a tiempo parcial no. – Los estudiantes a tiempo completo tienen un  Id y una fecha de graduación esperada.  – Los tiempo parcial L  estudiantes t di t  a ti i l pueden d   tomar un máximo de 3 cursos. Metamorfosis y herencia EstudiantePartTime nombre direccion nroDeCursos EstudianteFullTime nombre direccion idEstudiante fechaGraduacion 35 . Los a tiempo  completo no tienen un máximo de cursos.

• Una mejor técnica de modelado es…: – Situar la estructura y comportamiento que  “cambia” dentro de otra clase. clase   36 .03/01/2012 Metamorfosis y herencia Estudiante nombre direccion ¿Qué pasa si un estudiante a tiempo parcial se convierte en un estudiante a tiempo completo? EstudiantePartTime nroDeCursos EstudianteFullTime i i idEstudiante fechaGraduacion Metamorfosis y herencia Definiciones • Es muy difícil cambiar la clase de un  objeto.

1 ClasificaPartTime nroDeCursos ClasificaFullTime ifi i iDEstudiante fechaGraduacion Metamorfosis y herencia Mary y Smith Full time student Joe Jones Part time student MarySmith : Estudiante 1 JoeJones : Estudiante 1 1 1 : ClasificaFullTime : ClasificaPartTime 37 .1 0.03/01/2012 Metamorfosis y herencia Estudiante nombre direccion 0.

  : Control Estudiante : Estudiante : Clasifica PartTime :Clasifica FullTime CambiarAFullTime() Eliminar() Crear() Metamorfosis y herencia  • La herencia se debe usar para modelar la  estructura  comportamiento y/o relaciones  estructura. Estudiante Nombre Direccion 1 Clasificacion FullTime IDEstudiante FechaGraduacion PartTime NroCursos 38 . comunes de las partes “cambiantes”.03/01/2012 Metamorfosis y herencia • La Metamorfosis está acompañada de la  conversación de un objeto a sus partes  cambiantes.

 un  número de cuarto y de llave. En este caso. herencia y  flexibilidad  InformacionResidencia Pabellon Cuarto IDCuarto 0. Metamorfosis. herencia y  flexibilidad  • Esta técnica también adiciona flexibilidad  al l modelo. d l   – Ejemplo: Un estudiante puede también vivir  en el campus. existe un  identificador de residencia (pabellón).03/01/2012 Metamorfosis..1 Estudiante Nombre Direccion 1 Clasificacion 1 FullTime IDEstudiante FechaGraduacion PartTime NroCursos 39 .

40 . • Es conveniente definir adecuadamente los  atributos y relaciones de acuerdo a la  naturaleza de las clases. Conclusiones • El modelo conceptual permite estructurar  l  clases l  entidad tid d ( i t t ) con sus  las (persistentes) atributos y relaciones “permanentes”. • Se colocan las  asociaciones  encontradas.03/01/2012 Construcción del Modelo Conceptual • Se colocan los  conceptos de  datos  identificados.