Transparencias Tema 2 Analisis Orientado A Objetos II MCD

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 41

Anlisis Orientado a Objetos en UML

TEMA 2

Departamento de Ingeniera Informtica Elena Orta

Tema 2. Anlisis Orientado a Objetos en UML


2.1. Actividades del anlisis. 2.2. Principios fundamentales del anlisis. 2.3. Especificacin de requisitos del software.

2.4. Anlisis Orientado a Objetos en UML.


2.5 Modelo de Casos de Uso en UML. 2.6. Modelo Conceptual de Datos en UML.

2.7. Modelo de Comportamiento del Sistema en UML.


Bibliografa.

Objetivos Especficos
El alumno debe ser capaz de:

Describir el objetivo del Modelo Conceptual de Datos.

Definir qu es un objeto y una clase de objetos.


Definir qu es un atributo de una clase de objetos. Definir qu es una asociacin entre clases de objetos.

Definir los siguientes conceptos relacionados con la asociacin: rol, multiplicidad, enlace y atributo de enlace. Diferenciar rol como extremo de una asociacin y rol como concepto. Definir los conceptos clase de asociacin, clasificacin y asociacin calificada.

Objetivos Especficos
El alumno debe ser capaz de:

Definir y diferenciar los conceptos agregacin y composicin.

Definir los conceptos generalizacin/especializacin.


Enumerar y describir las restricciones semnticas de la generalizacin. Explicar las reglas Es-Un y la regla del 100%. Definir los conceptos herencia mltiple y clasificacin mltiple. Definir qu es informacin derivada (atributo derivado y asociacin derivada). Definir qu es una restriccin sobre atributo, una restriccin sobre asociacin (XOR y Subset) y una restriccin textual. Realizar modelos conceptuales de datos de sistemas propuestos.

Modelo Conceptual de Datos


Modela los requisitos de datos de un sistema. Se describen las estructuras de datos de un sistema y las relaciones estticas que existen entre ellos.
Es la representacin de los conceptos (objetos) significativos en el dominio del problema.

Normalmente contienen: Clases de objetos. Asociaciones entre clases de objetos. Atributos de las clases de objetos. Restricciones de integridad.

Diagrama de Clases

Modelo Conceptual de Datos (Objeto)

Objeto:
Entidad que existe en el mundo real. Tienen identidad propia y son distinguibles entre ellos.

Ejemplos:
El avin con matrcula 327. El avin con matrcula 999. La factura 3443. Una manzana. Una mesa. Un ordenador con n inventario C-1122. Etc.

Modelo Conceptual de Datos (Clase)

Clase: describe un conjunto de objetos con: las mismas propiedades. Comportamiento comn. Idntica relacin con otros objetos. Semntica comn.

Avin con matrcula 327 Avin con matrcula 999

abstraccin
Eliminar distinciones entre objetos para poder observar aspectos comunes

Avin
Clase Avin

Los objetos de una clase tienen las mismas propiedades y los mismos patrones de comportamiento

Modelo Conceptual de Datos (Clase)

Ejemplo: Venta de Productos


Un terminal de punto de venta (TPV) es un sistema que se usa para registrar las ventas de productos a clientes y para gestionar los pagos. Se usa principalmente en supermercados y grandes superficies. Incluye componentes hardware (ordenador y escner del cdigo de barras) y software para ejecutar el sistema.

Atributo:

TPV Cliente

Supermercado Producto

Venta Pago

Lnea de Venta

Modelo Conceptual de Datos (Atributo)

Atributo: Propiedad compartida por los objetos de una clase.


TPV Supermercado Venta

num-pv: Integer Lnea de venta cantidad: Integer

direccin: String nombre: String

fecha: Date hora: Time

Pago
importe: Integer

Cliente nombre: String telfs [1..*]:Integer tipcli: TipoCliente

Producto upc: Integer descripcin [0..1]: String Precio: Integer

Pueden tomar valores nulos (ej. descripcin). Pueden ser multivaluados (ej. telfs).

Modelo Conceptual de Datos (Asociacin)

Asociacin
Es la representacin de relaciones entre dos o ms objetos.
Persona Trabaja > Empresa

nombre de asociacin

direccin de lectura

La navegacin de una asociacin por defecto es bidireccional. Al nombrar una asociacin hay que elegir una determinada direccin.

Asociacin de orden superior a dos


Alumno Asignatura

Cuatrimestre

Se matricula Cada instancia de la asociacin es una n-tupla de valores de cada una de las respectivas clases (cardinalidad)

Modelo Conceptual de Datos (Asociacin)


Si una clase C puede tener simultneamente muchos valores para el mismo tipo de atributo A, no coloque el atributo A en C. Coloque el atributo A en otra clase que est asociada con C.

Nombre de Rol en las asociaciones


Cada extremo en una asociacin es un rol, que tiene diversas propiedades como el nombre y la multiplicidad. El nombre de rol identifica un extremo de la asociacin y describe el papel que desempean los objetos en la asociacin.

Vuelo

1 Vuela hacia destino

Ciudad

Nombre de Rol: describe el Rol de una ciudad en la asociacin vuela hacia

Modelo Conceptual de Datos (Asociacin)

En ocasiones un rol puede (especialmente un rol humano)

modelarse

de

dos

formas

Rol en asociacin
jefe 0..1 contratante empleado 0..1 contrata > 0..* Empresa 1..* < posee 1..* propiedad propietario < es jefe de Persona

1..*
subordinado

Rol como conceptos Facilita inclusin de atributos nicos, asociaciones y semntica.


Facilita la implementacin.

0..1 Empresa 1..*

jefe 0..1 < es jefe de contrata 1..* Empleado > 0..* subordinado Propietario

< posee 1..*

Modelo Conceptual de Datos (Asociacin)

Multiplicidad de las asociaciones binarias


Dada una instancia a de la clase A cualquiera, la multiplicidad del extremo B define cuntas instancias de B se pueden asociar con a en un momento de tiempo determinado.

Clase A
Clase A Clase A

1 1..*

Clase B
Clase B Clase B

Exactamente una
Muchas (1 o ms) Muchas (cero o ms)

*
0..* 0..1 5 5+

Clase A
Clase A

Clase B
Clase B

Muchas (cero o ms)


Opcional (cero o una)

Clase A
Clase A Clase A

Clase B
Clase B Clase B

Exactamente 5
5 o ms Entre 1 y 10, 15

1..10, 15

Cota inferior: n+ Cota cjto.: n1, n2... Cota rango: m..n

Modelo Conceptual de Datos (Asociacin)

Multiplicidad en las asociaciones ternarias


Dada una instancia a de A y una instancia b de B cualesquiera, la multiplicidad en el extremo C nos dice cuntas instancias de C se pueden asociar con la pareja (a,b).
Para toda pareja de asignatura y cuatrimestre ha de haber como mnimo un profesor responsable

Profesor Asignatura
* Se responsabiliza 1..2

* Cuatrimestre

Alumno
0..500

Este modelo permite que no haya ningn alumno matriculado en una asignatura y en un determinado cuatrimestre.

Asignatura

* Se matricula

Cuatrimestre

Modelo Conceptual de Datos (Asociacin)

Asociaciones recursivas
Asociaciones en las que una misma clase de objetos participa ms de una vez (con papeles diferentes o no).

Persona 0..1 padre Tiene > Persona * * * hijo

Tiene por amigo >

Modelo Conceptual de Datos (Asociacin)


Enlace: Instancia de una asociacin. Atributos de enlace:


Propiedad de los enlaces de una asociacin.

No se pueden asociar a ninguno de los objetos que intervienen


en la asociacin sin perder informacin.

Se pueden trasladar atributos de enlace a alguna de las clases de la asociacin? A nivel conceptual NO, en Diseo. S en asociaciones 1:1 1:m. Se trasladan a la clase del
extremo contrario al de multiplicidad 1. NO en asociaciones n:m.
Persona nombre edad . . . Asignatura Persona nombre edad horas ...

imparte 0..*
horas

imparte
0..*

Asignatura nombre temario . . .

nombre temario . . .

Modelo Conceptual de Datos (Asociacin)

Persona
nombre edad horas ...

Asignatura
imparte nombre 0..* 0..1 temario . . .

Persona: incluye a NO docentes

HORA es un atributo de persona? Qu ocurre con las personas que no dan clase con el n horas?
Qu ocurre si queremos contemplar que una persona imparta n asignaturas?
Person a nombre edad ... Asignatura imparte 0..*

nombre 0..* temario . . .


Atributo de enlace

horas

Modelo Conceptual de Datos (Asociacin)

Clase asociativa (clase de asociacin)


Representar una asociacin como una clase (con atributos y operaciones). Una clase asociativa puede participar en otras relaciones.

Persona nombre edad ... 1..* Trabaja en > *

Empresa

nombre
Contrato descripcin fechacontrato salario Clase asociativa Los atributos hacen referencia a la asociacin Su existencia depende de la asociacin

Una persona podra tener trabajos en varias empresas

Modelo Conceptual de Datos (Asociacin)

Guas para incluir clases de asociaciones


Un atributo est relacionado con una asociacin. El tiempo de vida de las instancias de la asociacin depende de la asociacin. Existe una asociacin n:m entre dos clases e informacin asociada con la propia asociacin.

Clasificacin (restriccin semntica asociacin)

Objetos del lado muchos de la asociacin tienen un orden explcito. {ordenado} *

Usuario

Clave

Las claves asociadas con el usuario podran mantenerse en orden de menos a ms recientemente usada.

Modelo Conceptual de Datos (Asociacin)

Asociacin calificada o Calificacin (precisin semntica)


Relaciona dos clases (asociacin 1:m n:m) y un calificador. Calificador: Distingue entre el conjunto de objetos del lado muchos (reduce multiplicidad de la asociacin).
Pedido

LneaPedido
CodProd 0..1 lneaPedido Unidades: Integer PrecioTotal: Integer

Dentro del mismo pedido no pueden existir dos lneas con el mismo producto. Pueden distinguirse las lneas de pedido en un pedido segn su CodProd.

Empresa

n empleado

Persona

En una determinada empresa no pueden existir dos empleados con el mismo nmero. Pueden distinguirse los empleados de una empresa por su nmero de empleado.

Modelo Conceptual de Datos (Agregacin)

Agregacin (propiedad de un Rol)


Es un tipo de asociacin usada para modelar relaciones partetodo entre objetos. El todo se denomina compuesto y las partes componentes.

Ruta

contiene > * usa > *

Segmento

Men

Receta

1..*

La distincin entre asociacin y agregacin es a menudo subjetiva.

Modelo Conceptual de Datos (Agregacin)


Fija Niveles fijos y Partes fijos Variable Niveles fijos y Partes variable Recursiva Niveles ilimitado

Ordenador

Empresa

Programa

0..* Departamento Monitor Caja Ratn Teclado 0..* Seccin 0..*

0..*

Bloque

0..*

Sentencia

Segn la dependencia y la exclusividad de la agregacin se diferencian cuatro tipos de agregaciones: Dependencia: La existencia de una parte va ligada a la del agregado?

Exclusividad: Una parte puede pertenecer a ms de un agregado?

Modelo Conceptual de Datos (Composicin)

Composicin
Es un tipo de agregacin exclusiva y dependiente.
La multiplicidad del extremo compuesto puede ser como mximo 1 (como mximo un componente lo es de un compuesto). Si un componente est asociado a un compuesto y el compuesto se borra entonces el componente tambin se ha de borrar (no lo puede sobrevivir).

Las partes se pueden borrar antes de borrar el compuesto.


tiene > 1 0..5 contiene > 1 0..1 0..* contiene > 1..*

Mano Venta Catlogo

Dedos LneadeVenta Especificacin de Producto

Modelo Conceptual de Datos (Composicin)

Cundo mostrarla?
Agregacin/Composicin Existe una relacin todo-parte fsica o lgica. Algunas propiedades del compuesto se propagan a los componentes (destruccin, movimiento).

Composicin
La vida del componente depende de la vida del compuesto.

Existe una dependencia crear-borrar del componente respecto del compuesto.


Si hay duda, descartarla. Beneficios representar agregaciones: Diseo.

Modelo Conceptual Datos (Generalizacin)


Identificar elementos comunes entre los objetos definiendo relaciones de superclase (objeto general) y subclase (objeto especializado) Superclase E G Hombre sexo

Persona

Herramienta Abstraccin MOO

{disjoint, complete} Mujer

Subclases

Discriminador: Es el nombre de la particin. Ha de ser nico entre los atributos y roles de la superclase.

Restricciones semnticas: disjoint: Un descendiente no puede ser de ms de una subclase.


overlapping: Un descendiente puede ser de ms de una subclase. complete: Se han especificado todas las subclases. incomplete: La lista de subclases es incompleta.

Modelo Conceptual Datos (Generalizacin)

Regla del 100% El 100% de la definicin de la superclase se debe poder aplicar a la subclase. La subclase debe ajustarse al 100% de los Atributos, Asociaciones y Restricciones de Superclase.

Regla Es-Un Todos los objetos de una subclase deben ser objetos de su superclase.

Subclase potencial debe estar de acuerdo: Regla del 100 % (conformidad con la definicin). Regla Es-Un (conformidad con pertenencia a superclase).

Modelo Conceptual Datos (Generalizacin)

Razones particionar clase conceptual en subclases


La subclase tiene atributos adicionales. La subclase tiene asociaciones adicionales. La subclase es tratada o manipulada de manera diferente a la superclase o a otras subclases.

Atributos y asociaciones comunes Atributos y asociaciones adicionales Pago en metlico

Pago cantidad: Real 1

Paga por >

Venta

tipo
Pago a crdito * 1 Tarjeta

{disjoint, complete}
Pago con taln num-taln: Integer

Cada pago se trata diferente

Modelo Conceptual Datos (Generalizacin)

Razones para subclases)

definir

una

superclase

(generalizar

Las subclases potenciales representan variaciones de un mismo concepto. Las subclases tienen atributos que pueden ser factorizados y expresados en las superclases. Las subclases tienen asociaciones que pueden ser factorizadas y relacionadas con la superclase. Las subclases se ajustan a las reglas 100% y Es-Un.

Ver ejemplo transparencia anterior

Modelo Conceptual Datos (Generalizacin)

Ejemplos discriminador
/dept de un empleado es el nombre-dept del departamento donde trabaja el empleado Tdept es una enumeracin de Direccin, Produccin y Administracin Empleado nombre-empleado sueldo /dept /dept trabaja en >

Departamento 1 nombre-dept: Tdept

{disjoint, incomplete}

Pago num-pago tipo-pago importe

Direccin matr-coche

Produccin Precio-hora-ext

tipo-pago

{disjoint, incomplete}

Efectivo cambio

Tarjeta num-tarjeta

Modelo Conceptual Datos (Cl. Mltiple)


Clasificacin mltiple: variante de generalizacin/especializacin en la cual una superclase puede tener diversas jerarquas de especializacin en funcin de diferentes discriminadores.

Hombre

sexo

role

Persona
{disj., compl.}

{disj., incompl.}

Doctor

Mujer

estado
{disj., compl.}

Enfermera

Soltera

Casada

Divorc.

Viuda

Masajista

Modelo Conceptual Datos (Herencia Mltiple)


Variante de generalizacin/especializacin en la cual una subclase tiene ms de una superclase.

Estudiante
universidad {disjoint, incomplete} estudios {disjoint, incomplete}

EstUCA EstUS EstUMA

Inform. Mates

Empres.

InformUCA
Slo se puede utilizar si no hay conflictos de herencia. Conflicto de herencia: Una clase tiene ms de una superclase con un mismo atributo/asociacin (operacin) que no proviene de un nico antecesor.

Modelo Conceptual Datos (Inf. Derivada)


Un elemento (atributo o asociacin) es derivado si se puede obtener a partir de otros elementos (no aaden informacin fundamental). Se incluye cuando mejora la claridad del modelo conceptual. Una constraint (regla de derivacin) ha de especificar cmo se deriva.

Atributo derivado
Factura n factura fecha / importe contiene > * 1..* Producto cdigo precio

/importe: El importe de una factura f es igual a la suma del importe de los productos (cantidad x precio) que contiene la factura f.

cantidad descuento

Departamento nombre /num_empleados 1..*

tiene > 1..*

Empleado cdigo precio

/num_empleados: El nmero de empleados de un departamento d es igual al nmero de ocurrencias de tiene donde aparece d

Modelo Conceptual Datos (Inf. Derivada)

Asociacin derivada
est situado en > Departamento * 1 Ciudad

1..*
tiene >

Empleado

*
/trabaja en >

/trabaja en: La ciudad donde trabaja un empleado es la ciudad donde est situado su departamento. Estudiante
1..*

1..*

estudia >

1..* Asignatura
1..*

< /ensea
1..* Profesor 1

imparte >

/ensea: Los estudiantes a los que ensea un profesor son los estudiantes que estudian las asignaturas que imparte el profesor.

Modelo Conceptual Datos (Multiplicidad)

La multiplicidad de clase establece el rango de posibles cardinalidades para las instancias de una clase. Por defecto, es indefenida.

En algunos casos es til establecer una multiplicidad finita, especialmente en casos de clases que pueden tener una sla instancia (y que se denominan singleton).

multiplicidad de clase

La Puntual, S.A. 1
NIF direccin

Modelo Conceptual Datos (Multiplicidad)

La cambiabilidad indica si los valores de un atributo o el extremo de una asociacin pueden cambiar o no.

Cambiable (changeable)
Persona
telfono {changeable} * residente

vive en >

* Ciudad ciudad-res {changeable}

telfono y ciudad-res son cambiables

Congelado (frozen)
Persona fecha-nac {frozen} * per-nacida

naci en >

1 ciudad-nac {frozen}

Ciudad

fecha-nac y ciudad-nac son congelados

Slo aadir (addOnly)


Persona ttulo-aca {addOnly} * residente ha residido en > * ciudad-res {addOnly} Ciudad

ttulo-aca y ciudad-res son slo aadir

Modelo Conceptual Datos (Multiplicidad)

Restricciones
Limitan los valores que pueden tomar las clases, los atributos o las asociaciones.

Restricciones sobre atributos

PRODUCTO

Cdigo Stock min Stock max {Stock max > Stock min} {Stock max = 1000} {Stock min > = 10}

Modelo Conceptual Datos (Restricciones)

Restricciones sobre asociaciones


A parte de la multiplicidad, es posible expresar otras restricciones sobre las asociaciones: Xor Subset

Xor
Une diversas asociaciones ligadas a una misma clase base. Una instancia de la clase base puede participar como mximo en una de las asociaciones unidas por xor.
persona propietaria * cuenta per *

Persona
Profesor de > 1..* 0..1

Cuenta * cuenta emp

{xor}

Persona
1..*

{xor}
0..1 Estudiante en >

Universidad

empresa 0..1 propietaria

Empresa

Modelo Conceptual Datos (Restricciones)

Subset

Indica que una asociacin es un subconjunto de otra asociacin.


recomendado > 1..* {subset} * Asignatura bsico > *

Libro

Departamento
1 0..1

< pertenece
miembro 1..*

{subset}

dirige >
director

Persona

Modelo Conceptual Datos (Restricciones)


Las restricciones que no se pueden especificar grficamente con la notacin UML se especifican de forma textual. La especificacin textual se puede hacer con lenguaje natural, con OCL, etc. 1 < pertenece a 1..*
Equipo mdico cod-equipo

Especialidad nom-esp

1..* < tiene 1..*


1. 2. 3. 4.

1..* Asignado a >


Mdico Num-col

1..*

Dos especialidades diferentes no pueden tener el mismo nom-esp. Dos equipos mdicos diferentes no pueden tener el mismo cod-equipo. Restricciones de clave Dos mdicos diferentes no pueden tener el mismo num-col. Un mdico no puede estar asignado a un equipo mdico que pertenezca a una especialidad que el mdico no tiene

externa

Ejemplos Modelo Conceptual de Datos

Realizar un modelo conceptual de datos que responda a las siguientes especificaciones: Las reas metropolitanas tienen una serie de hoteles, algunos de los cuales pertenecen a una determinada cadena de hoteles. Los hoteles aceptan varias tarjetas de crdito. De las reas metropolitanas interesa conocer el nombre del rea, el nombre del estado o provincia a la que pertenece y el nombre del pas. De los hoteles interesa conocer el nombre, la direccin, el n de habitaciones, el n de telfono, el n de estrellas, el precio de la habitacin simple y el precio de la habitacin doble. De las cadenas de hoteles interesa conocer el nombre y el director. De las tarjetas de crdito slo interesa conocer el nombre.

Ejemplos Modelo Conceptual de Datos

Realizar un modelo conceptual de datos que responda a las siguientes especificaciones de un sistema de vuelos: Los aeropuertos dan servicio a varias ciudades y hay ciudades que tienen ms de un aeropuerto. Los vuelos entre los aeropuertos los gestionan las lneas areas y se describen como se muestra en el siguiente ejemplo: vuelo TW250 del aeropuerto de S. Pablo de Sevilla al aeropuerto Reina Sofa de Tenerife, tiene prevista la salida a las 7:42 am y una duracin estimada de 1 hora y 80 minutos; el vuelo se realizar en un DC9 (modelo de avin) todos los das de la semana excepto los sbados y estar vigente desde febrero de 2013 hasta junio de 2014. De los modelos de aviones interesa conocer el cdigo del modelo (ej. DC9) y el fabricante, de los aeropuertos el cdigo y el nombre, y de las ciudades y las lneas areas slo interesa conocer el nombre.

También podría gustarte