modelo de dominio

13
EL MODELADO DE DOMINIO ¿Qué es el modelado de dominio? ¿Qué es un diagrama de clases? ¿Cuáles son sus elementos? y ¿Cómo se construye? PROPOSITOS Al finalizar esta unidad, el estudiante: Explica las características, y elementos del modelado de dominio con UML Elabora modelos de dominio, usando diagrama de clases del UML

Upload: gerald-huamani-castilla

Post on 12-Apr-2016

122 views

Category:

Documents


5 download

DESCRIPTION

Manual de Analisis de sistemas

TRANSCRIPT

Page 1: Modelo de Dominio

EL MODELADO DE DOMINIO

¿Qué es el modelado de dominio?

¿Qué es un diagrama de clases?

¿Cuáles son sus elementos? y

¿Cómo se construye?

PROPOSITOS Al finalizar esta unidad, el estudiante:

Explica las características, y elementos del modelado de dominio con UML

Elabora modelos de dominio, usando diagrama de clases del UML

Page 2: Modelo de Dominio

Lección 8

Conceptos asociados al modelo de dominio

En el contexto de desarrollo de sistemas de información, es frecuente, en las primeras etapas del proceso, construir un modelo del dominio del problema para representar las propiedades más importantes del ámbito del negocio relacionado con el problema.

Una técnica muy utilizada para representar este modelo de domino es el diagrama de clases de UML; precisamente, en esta lección se describen las bases conceptuales para construir adecuadamente un diagrama de clases.

8.1 Clase y Objeto

Un objeto se define como un concepto, abstracción o cosa con límites bien definidos y con significado para el problema que se tenga entre manos. Una clase describe un conjunto de objetos con propiedades similares, relaciones comunes con otros y una semántica común (Rumbaugh, 1996).

Por ejemplo, “Análisis de sistemas”, “Base de datos I”, “Estadística II”, “Matemática Básica I” son objetos de la clase ASIGNATURA, en otras palabras, ASIGNATURA representa al conjunto de todas las asignaturas en el dominio de la gestión académica de una institución educativa.

8.2 Atributo

Una clase tiene una serie de características o propiedades, por ejemplo ASIGNATURA tiene código, nombre, créditos, horas de teoría, horas de practica; a estas propiedades se le conoce como atributos de la clase. Un atributo es una propiedad de una clase que describe un rango de valores que la propiedad podrá contener en los objetos de la clase (Rumbaugh, 1996)..

Podemos decir que una clase representa un conjunto de objetos con las mismos atributos y un objeto es una instancia de una clase, es decir es una entidad que tiene valores específicos para cada uno de los atributos de la clase.

Por ejemplo, la clase AUTOMOVIL, tiene como atributos: número de placa, color, modelo, número de puertas, año, entre otros. Un objeto, de la clase AUTOMOVIL, es el auto de placa SGD345, color azul, modelo Station Wagon, con cuatro puertas, del año 2000. Otro objeto es el auto de placa ERG237, negro, deportivo, 4 puertas, año 2009.

8.3 Operación

Una clase tiene un comportamiento que es definido por las operaciones o responsabilidades que la clase puede realizar. Una operación es algo que la clase puede realizar o que otra clase puede hacer a una clase. Es una función o transformación que se puede aplicar o que puede ser aplicada por los objetos de una clase (Rumbaugh, 1996)..

Por ejemplo, algunas operaciones de la clase automóvil pueden ser: Encender, Apagar, Acelerar, Frenar.

8.4 Asociación y Enlace

Las entidades, objetos o cosas del mundo real se relacionan con otras entidades; a las relaciones entre objetos se les llama enlaces y a las relaciones entre clases se les llama asociaciones (Rumbaugh, 1996).

Page 3: Modelo de Dominio

Mediante la abstracción de asociación se vincula dos o más clases, creándose un elemento de tipo distinto (Vinculo).

Por ejemplo, “DOCENTE dicta ASIGNATURA”, es una asociación entre la clase DOCENTE y la clase ASIGNATURA. Mientras que “Cesar Luza dicta Análisis de sistemas” es un ejemplo de enlace entre los objetos “Cesar Luza” y “Análisis de sistemas” que pertenecen a las clases DOCENTE y ASIGNATURA, respectivamente.

8.5 Generalización y Agregación

La generalización y agregación son dos tipos especiales de relaciones entre clases (Rumbaugh, 1996)..

La Generalización representa la relación entre clases, donde algunas de ellas son tipos de otra. Por ejemplo, las clases SECRETARIA, TÉCNICO, INGENIERO son tipos de la clase EMPLEADO; en otras palabras, EMPLEADO es una generalización de las clases SECRETARIA, TECNICO, INGENIERO (ver figura 8.1).

Mediante la generalización se abstrae las características comunes a varias clases (subclases) para construir una clase más general (superclase), la generalización define una relación de subconjunto entre elementos de dos o más clases.

Figura 8.1 Ejemplo de generalización

La Agregación representa la relación entre clases, donde algunas de ellas son componentes de otra. Por ejemplo, las clases CPU, TECLADO, MOUSE, MONITOR son componentes de la clase COMPUTADORA; en otras palabras, la clase COMPUTADORA está formada por las clases CPU, TECLADO, MOUSE Y MONITOR (figura 8.2).

Mediante la agregación se construye una nueva clase o tipo o categoría de objetos a partir de un conjunto de otras clases denominadas componentes o partes. La agregación define una nueva clase de objetos a partir de un conjunto de clases (otras, no necesariamente distintas) que representan sus partes componente.

Figura 8.2 Ejemplo de Agregación

8.6 ¿Qué es el modelo de domino?

El Modelo de dominio es un modelo conceptual que muestra clases conceptuales de objetos significativos en un dominio de problema. Las clases conceptuales no muestran componentes software, ni clases software, ni responsabilidades (Larman, 1999).

Una Clase ES PARTE DE otra clase

AGREGACIÓN CPU

TECLADO

MOUSE

MONITOR COMPUTADOR

A

Una Clase ES UN TIPO DE otra clase

GENERALIZACIÓN SECRETARIA TECNICO

INGENIERO

EMPLEADO

Page 4: Modelo de Dominio

Por ejemplo, algunas clases conceptuales del dominio de la Gestión Académica son: ALUMNO, DOCENTE, ASIGNATURA y HORARIO.

El modelo de dominio se puede documentar con un Diagrama de Clases.

8.7 ¿Qué es el diagrama de clases?

Un diagrama de clases es un tipo de diagrama estático del UML, que describe la estructura de un sistema mostrando sus clases y sus relaciones. En la figura 8.3 se observa un ejemplo de diagrama de clase simplificado para una Tienda de ventas. Se muestra clases conceptuales y relaciones entre ellas; cada clase tiene un nombre y una serie de atributos. Las relaciones se conocen como asociaciones, cada una de ellas tiene un nombre y su multiplicidad.

La interpretación o lectura de un diagrama de clases permite a desarrolladores y usuarios disponer de un lenguaje uniforme para mostrar características del negocio en el dominio del problema. Por ejemplo, en la figura 8.3, podemos leer la siguiente restricción semántica: “una línea de venta está contenida en una venta y ésta puede contener muchas líneas de venta, nunca ninguna línea de venta”. Además, “cada línea de venta registra la venta de un articulo y un articulo puede o no estar en una línea de venta”.

Figura 8.3 Ejemplo de diagrama de Clases

Fuente: (Larman, 1999)

8.8 Notación UML para modelo de domino

Clase

Para efectos del modelo de dominio, una clase puede considerarse en términos de:

Símbolo, palabras o imágenes que representan a la clase;

Definición del concepto, descripción textual del significado de la clase y

Extensión: conjunto de objetos que pertenecen a la clase.

Por ejemplo, considere la clase Venta de la figura 8.4. El símbolo del concepto es un rectángulo dividió en tres partes, la primera es el nombre de la clase, la segunda los atributos y la tercera las operaciones. La definición del concepto es: Una venta representa el hecho de una transacción de compra, sucede un día y en una hora. La extensión es el conjunto de todas las ventas realizadas en la tienda.

ArtículoLineaDeVenta

cantidad

10..1

Registra-venta-de

Pago

cantidad

Venta

fecha

hora

1

1..nContenida-en

1

1

Pagada-mediante

Tienda

dirección

tienda

1

*

Almacenado-en

Registro

1

1

Capturada-en

1..*

1

Alberga

1

1..n

1

*

1..*

1

1

1

1

1

10..1

concepto u

objeto del

dominio

asociación

atributos

Page 5: Modelo de Dominio

Figura 8.4 Clase

Atributo

Para efectos del modelo de dominio se incluyen aquellos atributos para los que los requisitos indican la necesidad de registrar su información.

Por ejemplo, un recibo recoge la información de una venta, incluyendo fecha y hora. La Gerencia de la Tienda quiere conocer fecha y hora de las ventas, entonces, la clase Venta debe incluir los atributos fecha y hora.

Según la notación UML, los atributos se muestran en el segundo compartimento del rectángulo de la clase (figura 8.5).

Figura 8.5 Atributos

Asociación

La asociación se representa con una línea que une las clases relacionadas (figura 8.6). En el siguiente ejemplo, se muestra la relación entre las clases ALUMNO y FACULTAD; la semántica señala que un alumno pertenece a una única facultad y una facultad tiene muchos alumnos, por lo menos uno.

Figura 8.6 Asociación

En una asociación se incluye, opcionalmente, el nombre de la asociación, la navegabilidad, y obligatoriamente, la multiplicidad. La navegabilidad se representa con una flecha que indica la dirección de envío de mensajes de un objeto a otro. La multiplicidad representa la cantidad de objetos de una clase que están vinculados con un objeto de la clase asociada.

Por ejemplo, en la figura 8.6, el nombre de la asociación es: pertenece a. La multiplicidad de la asociación es de “uno a muchos”; significa “Un objeto de la clase Alumno está vinculado con un solo objeto de la clase Facultad, y un objeto de Facultad está vinculado con varios objetos de Alumno”.

La multiplicidad permite representar, en el diagrama de clases, las reglas del negocio definidas en el dominio del problema. Las categorías típicas de multiplicidad son: “Uno a Uno”, “Uno a Muchos” y “Muchos a Muchos”. En la figura 8.7 se aprecia algunos tipos de multiplicidad.

Venta

fecha

hora

Venta

fecha

hora

Alumno Facultad11..npertenece a

1..n 1

Page 6: Modelo de Dominio

Figura 8.7 Tipos de multiplicidad

Clase-Asociación

En algunas ocasiones es necesario representar propiedades propias de la asociación; para tal efecto, se crea una clase especial llamada Clase-Asociación. Por ejemplo, consideremos la asociación ALUMNO matriculado en ASIGNATURA, la multiplicidad de esta asociación es de “muchos a muchos”, significa que un alumno puede llevar varias asignaturas y una asignatura es llevada por varios alumnos; y la nota promedio de un alumno en una asignatura corresponde a la asociación; pues si se coloca como atributo de alumno, no se sabría de qué asignatura es; si se coloca como atributo de asignatura, no se sabría de qué alumno es, entonces, se crea una clase especial llamada clase asociación MATRICULA en el que se coloca el atributo nota promedio.

La representación de una clase asociación se hace con una línea discontinua que une la asociación con la clase generada. (Figura 8.8).

Figura 8.8 Ejemplo de Clase-Asociación

Decano Facultad11 Dirige1 1

"Uno a Uno"

Carrera Convenio0..n11 Tiene 0..n

"Uno a Muchos"

Alumno Asignatura1..n1..n1..n 1..nMatriculado En

"Muchos a Muchos"

Aula Proyector0..11 Tiene Instalado1 0..1

Laboratorio Computadoras1..n11 1..nTiene

Page 7: Modelo de Dominio

Generalización

La generalización se representa a través de una línea recta entre las clases subtipos terminados en un triángulo blanco en el extremo cercano a la clase generalizada. Por ejemplo, en la figura 8.9, ANFIBIO, MAMÍFERO y REPTIL son tipos de ANIMAL. A su vez, CABALLO es un tipo de MAMÍFERO.

La Generalización puede encontrarse en aquellas clases que tienen ciertos atributos y operaciones en común. En ese caso se crea una clase nueva que asume dicho comportamiento común.

Figura 8.9 Ejemplo de Generalización

Agregación

La agregación se representa a través de una línea recta entre las clases “partes” terminados en un rombo en el extremo cercano a la clase “todo”. Por ejemplo, en la figura 8.10, MONITOR, CASES, TECLADO y MOUSE son partes o componentes de COMPUTADORA. A su vez, CASES está formado por CPU, RAM,VENTILADOR.

Figura 8.10 Ejemplo de Agregación

Page 8: Modelo de Dominio

Lección 9

Proceso de construcción del modelo de dominio

Para construir el modelo de dominio se puede seguir las siguientes actividades: Identificar las Clases conceptuales o del dominio, Identificar las asociaciones, Identificar atributos, Identificar relación de generalización y refinar el modelo.

Consideremos la siguiente descripción para realizar el modelo de dominio.

9.1 Identificando Clases

Muchos de las clases del dominio pueden obtenerse de una especificación de requisitos o mediante la entrevista con los expertos del dominio. Las clases del dominio aparecen en tres formas distintas (Jacobson, 2000):

Objetos del negocio que representan cosas que se manipulan en el negocio, como pedidos, cuentas, contratos, y facturas.

Objetos del mundo real y conceptos de los que el sistema debe hacer un seguimiento, como la aviación enemiga, misiles y trayectorias.

Sucesos que ocurrirán o han ocurrido, como la llegada de un avión, sus salidas y la hora de la comida.

Otra estrategia es seleccionar los nombres o sustantivos de la descripción del problema como posibles clases candidatas. Se construye una lista de clases candidatas. Se eliminan, de esa lista, las clases redundantes, irrelevantes o vagas o bien por ser atributos, operaciones o construcciones de implementación.

En nuestro ejemplo las clases conceptuales identificadas son:

producto parte vendedor cliente proveedor agenteComercial

Una empresa recién formada se dedica a integrar partes para formar productos con la intención de vender el valor agregado de la integración. Con el objetivo de apoyar sus actividades, mediante una aplicación informática, se ha obtenido las siguientes reglas semánticas:

Un producto tiene un nombre y un precio base. Un producto se forma con muchas partes y cada parte puede formar muchos productos. La definición de cada producto especifica qué cantidad de cada parte forma a un producto dado.

Un vendedor tiene un apellido, nombre y un porcentual de comisión. Tanto un cliente como un proveedor tienen los datos de todo agente comercial; éstos son: cuit, razón social, e-mail, teléfono y dirección. Además, un proveedor tiene un plazo de pago y un cliente un porcentual de descuento.

Un parte puede ser comprado a muchos proveedores y un proveedor puede proveer muchas partes. Cada compra de un parte tiene una fecha y una cantidad. Una venta se realiza entre cualquier vendedor y cualquier cliente, y éste puede comprar cualquier producto. De una venta se quiere saber su fecha.

No se pueden vender productos que estén formados por una única parte, esto es, no se permite vender productos sin elaborar.

Page 9: Modelo de Dominio

9.2 Identificando Asociaciones

Se establecen las asociaciones según las reglas del negocio en el dominio del problema, se puede considerar como estrategia para identificar asociaciones la selección de verbos en la descripción del problema. Se le agrega la multiplicidad correcta. También se puede representar la relación " es parte de" o agregación.

En nuestro caso, las asociaciones identificadas son:

9.3 Identificando Atributos

Por cada clase se indican los atributos necesarios que respondan a los requerimientos del dominio del problema. Si los atributos corresponden a una asociación, crear una clase asociación.

En nuestro ejemplo, se señalan los atributos por cada clase y adicionalmente, se identifican atributos para las algunas asociaciones, creándose las clases asociación: definición, compra y venta.

agenteComercial

proveedor

parte

1..n

1..n

1..n

1..n

Se compra

cliente

producto 1..n1..n 1..n1..n se forma

1..n

1..n

1..n

1..n

se vende

vendedor

Page 10: Modelo de Dominio

9.4 Identificando relaciones de generalización

Se organiza y simplifica el modelo usando el principio de herencia; es decir, se puede generalizar los aspectos comunes de las clases existentes construyendo una superclase, o se puede especializar una clase en varias subclases.

Para nuestro ejemplo se establece relación de generalización entre agente comercia con cliente y proveedor:

9.5 Refinando el modelo

Se valida que el diagrama responda a los requerimientos. Se itera y refina el modelo hasta que esté completo; es decir, hasta que cumpla todos los requerimientos señalados en la descripción del problema.

Page 11: Modelo de Dominio

Resumen

Conceptos asociados al modelo de dominio

Un objeto se define como un concepto, abstracción o cosa con límites bien definidos y con significado para el problema que se tenga entre manos.

Una clase describe un conjunto de objetos con propiedades similares, relaciones comunes con otros y una semántica común

Un atributo es una propiedad de una clase que describe un rango de valores que la propiedad podrá contener en los objetos de la clase

Un enlace es una relación entre objetos

Una asociación es la relación entre clases

La multiplicidad es la cantidad de objetos de una clase que están vinculados con un objeto de la clase asociada.

La Generalización representa la relación entre clases, donde algunas de ellas son tipos de otra

La Agregación representa la relación entre clases, donde algunas de ellas son componentes de otra

El Modelo de dominio es un modelo conceptual que muestra clases conceptuales de objetos significativos en un dominio de problema

Un diagrama de clases es un tipo de diagrama estático del UML, que describe la estructura de un sistema mostrando sus clases y sus relaciones

En algunas ocasiones es necesario representar propiedades propias de la asociación; para tal efecto, se crea una clase especial llamada Clase-Asociación

Proceso de construcción de modelo de dominio Identificar clases

Identificar asociaciones

Identificar atributos

Identificar relaciones de generalización

Refinar el modelo

Page 12: Modelo de Dominio

Actividades

Desarrollar el modelo de dominio para el siguiente caso

Una Institución Educativa ha decidido brindar unos cursos extracurriculares, tanto para sus alumnos como para personas externas a la Institución. Las razones para la inclusión de personas no pertenecientes a la Institución son: obtener fondos para la modernización de las instalaciones y ayudar al pago de los viáticos de los profesores invitados.

Se desea desarrollar una aplicación que permita administrar el dictado de los cursos; una primera aproximación del contexto del negocio es el siguiente:

Se brinda varios cursos. Cada curso tiene un nombre, un cupo máximo y un cupo mínimo el cual, si no se alcanza, hace que el curso no se dicte. Cada curso es dictado por un único docente y un docente puede dictar más de un curso. Cada docente tiene apellidos, nombres, cargo y una dedicación.

A cada alumno se le da un material general, independientemente de la cantidad de cursos en que se haya inscrito, además de un material particular para cada curso en el que está inscrito. Se desea controlar si se le ha entregado, o no, tanto el material general como los materiales particulares a cada alumno.

Un alumno puede asistir a muchos cursos y cada curso debe tener una cantidad mínima de inscritos –cupo mínimo- y no sobrepasar el cupo máximo.

De los alumnos internos se debe mantener la información de apellidos, nombres y número de libreta; de los alumnos externos, apellidos, nombres, número de recibo –único para todos los cursos-, forma de pago -efectivo, cheque o tarjeta- y monto pagado.

A cada curso se le asigna una única aula que tiene un nombre, una ubicación y una capacidad. No puede asignarse un aula a un curso cuyo cupo máximo no entre en la misma.

También se desea controlar si el alumno va asistir como oyente –no se presenta a examen ni realiza prácticos- a cada curso en donde se inscribió. Esta información es útil para que el docente organice el dictado.

Page 13: Modelo de Dominio

Autoevaluación

1. Entre los paréntesis de la siguiente lista, marque V=Verdadero o F=Falso, según corresponda: a. ( ) Un objeto define un conjunto de clases con las mismas características b. ( ) Pedro, Juan y María son ejemplos de objetos de la clase Persona c. ( ) Técnico, Obrero, Empleado son objetos de la clase PERSONAL d. ( ) Una asociación es una relación entre clases e. ( ) Una clase conceptual incluye elementos software

2. En relación al Modelo de Dominio, en la celda a la derecha del Termino coloque la letra de la Definición o Característica que le corresponda:

Término Definición o Características del Termino

1. Clase A. Representa una característica o propiedad de una clase

2. Atributo B. Cantidad de objetos de una clase vinculados con un objeto de clase asociada

3. Asociación C. Representa atributos propios de la asociación

4. Multiplicidad D. Representa un conjunto de objetos con las mismas características

5. Clase asociación E. Representa relación entre clase, algunas de ellas son tipos de otra

6. Generalización F. Representa relación entre clases, algunas de ellas son componentes de otra

7. Agregación G. Representa vinculo entre dos o más clases

Respuestas de Control 1. a = F, b = V, c = F, d = V, e = F 2. 1 = D, 2 = A, 3 = G, 4 = B, 5 = C, 6 = E, 7 = F

Exploración on-line

Portal del producto IBM Rational Modeler

http://www-01.ibm.com/software/awdtools/modeler/

Pagina de Craig larman

http://www.craiglarman.com/wiki/index.php?title=Main_Page

Referencias bibliográficas

Larman, C. (1999). UML y patrones: introducción al análisis y diseño orientado a objetos. Mexico D.F. Prentice-Hall Hispanoamericana.

Rumbaugh, J. et. al. (1996). Modelado y diseño orientados a objetos. Metodología OMT. Mexico D.F. Prentice Hall Hispanoamericana.

Jacobson, I., Booch, G. y Rumbaugh, J. (2000), El Proceso Unificado de Desarrollo de Software. Madrid. Pearson Educación S.A.