Upload
fiore-diaz
View
24
Download
0
Embed Size (px)
DESCRIPTION
Ing Requisitos
Citation preview
1UML Modelado Conceptual
Omar Hurtado Jara
FACULTAD DE INGENIERAAnlisis y Diseo de Sistemas
Modelo Conceptual
Objetivo:
Desarrollar un diagrama de clases (Modelo Conceptual).
Contenido:
Modelado Conceptual
Caractersticas especficas
Agregacin/Composicin
Clase-Asociacin
Generalizacin
Restricciones y notas
2Anlisis y Diseo de Sistemas
Modelado conceptual
Especifica los conceptos ms significativos del dominio del problema.
Conjunto de conceptos y reglas para representar los aspectos lgicos de la realidad y que deben estar contenidos en los requisitos del futuro software.
Para UML representa una estructura esttica, tpicamente no se define ninguna operacin. La representacin incluye los atributos y relaciones de
los conceptos.
Caractersticas:
- Claro y simple
- Consistente
- Completo
- Fidelidad
- No redundante
Modelado conceptual con UML
Qu significa modelo conceptual
- Es una vista grfica de la informacin controlada por el sistema.
Dos niveles de abstraccin: clasificacin / instanciacin
- clase: es una plantilla que define a un grupo de entidades con
estructura, relaciones, semntica y comportamiento comunes.
- objeto: representa a una entidad concreta con identidad, estado y
comportamiento.
Juan:Vendedor reloj:Artculo
radio:Artculo
Objetos
Clase
3Anlisis y Diseo de Sistemas
Definiciones bsicas
clases en anlisis y diseo:
- Anlisis
- Representan o corresponden a conceptos del dominio.
- Por lo general se representan conceptos y atributos.
- Diseo
- Representan o corresponden a fragmentos de cdigo.
- Especifican al detalle elementos de implementacin.
Anlisis y Diseo de Sistemas
Notacin bsica de objetos y clases
PuntoposicinX
posicinY
situar( )
mover( )
p1 : Punto
posicinX = 3
posicinY = -5
p2 : Punto
posicinX = 0
posicinY = 2
instance ofinstance of
p1 : Punto
p1
: Punto
Punto
posicinX
posicinY
Punto
situar( )
mover( )
Punto
4Tipos de clases
Tipos de clases segn los objetos representados:
- objetos fsicos: avin, persona, libro...
- objetos lgicos: cuenta corriente, asignatura, nmero complejo
- objetos histricos: asiento bancario, reserva de habitacin
Para entender lo que es una clase, hace falta entender cules sern sus instancias. Un caso especial lo constituyen
los objetos que representan una coleccin, familia o tipo de
cosas, ms que una cosa en s misma.
- Ejemplos: raza perruna, producto a la venta, ttulo en la biblioteca.
Todo objeto representa una entidad concreta, pero esto no significa necesariamente entidad fsica o tangible.
Anlisis y Diseo de Sistemas
Atributos
Atributo: propiedad compartida por los objetos de una clase
- cada atributo tiene un valor (probablemente diferente) para cada objeto
Atributo derivado (concepto propio del anlisis):
- propiedad redundante que puede ser calculada a partir de otras
- /rea ( = base * altura)
- pueden implementarse como operaciones al pasar a diseo
Notacin (ms importante en diseo)
- pueden suprimirse todos los elementos excepto el nombre de atributo:
- visibilidad nombre multiplicidad : Tipo = valorInicial
- Ejemplos:
- + saldo : Moneda = 0
- - Edad *: Entero
- Apellido
5Anlisis y Diseo de Sistemas
Operaciones
Operacin: funcin o transformacin que puede aplicarse a los objetos de una clase.
- puede ser invocada por otros objetos, o por el mismo objeto.
- mtodo: especificacin procedimental (implementacin) de una operacin.
Notacin (ms importante en diseo)
- pueden suprimirse todos los elementos excepto el nombre de operacin
- visibilidad nombre (param: Tipo = valDef,) : TipoRet
- ejemplos:
- obtenerSaldo ( ) : Moneda
- marcar (nmero : Telfono; reintentos : Integer)
Anlisis y Diseo de Sistemas
Enlaces y asociaciones
ArtculoVendedor
Juan : Vendedor
Ana : Vendedor
Estatuilla : Artculo
Cuadro : Artculo
Espejo : Artculo
Asociacin:
Especificacin de un
conjunto de enlaces.
Representa la estructura
y el comportamiento del
sistema.
Enlace:
Conexin entre objetos.
Determina una tupla de objetos.
Instancia de una asociacin.
6Anlisis y Diseo de Sistemas
Asociaciones: nombre de asociacin y nombre de rol
ArtculoVendedorsubasta
ArtculoPersonavendedor artculo
Nombre de asociacin Direccin del nombre
Nombres de rol
Los nombres de asociacin se pueden repetir en un modelo, excepto para
asociaciones entre las mismas dos clases
Los nombres de rol se pueden repetir en asociaciones distintas, y pueden ser
iguales que los nombres de las clases asociadas
Anlisis y Diseo de Sistemas
Valores tpicos: 0..1 cero o uno
1..1 uno y slo uno (abreviado como 1)
0..* desde cero hasta muchos (abreviado como *)
1..* desde uno hasta muchos
Otros valores: rangos enteros: (2..*), (0..3), etc.
lista de rangos separados por comas: (1, 3, 5..10, 20..*), (0, 2, 4, 8), etc.
Multiplicidad de la asociacin
En una asociacin binaria, la multiplicidad de un extremo de asociacin especifica el nmero de instancias destino que pueden estar
enlazadas con una nica instancia origen a travs de la asociacin
ArtculoPersona
vendedor artculo
1..1 0..*
Artculo
participa
obligatoriamente
Persona
participa
opcionalmente
7Anlisis y Diseo de Sistemas
Asociaciones actor-sistema y clase-clase Un mismo concepto puede ser modelado a la vez como actor y como clase:
- Actor: representa entidades externas al sistema.
- Clase: representa entidades modeladas dentro del sistema.
No confundir asociaciones actor-sistema (casos de uso, relaciones con el exterior) con asociaciones clase-clase (relaciones internas):
- Para subastar algn artculo es necesario darse de alta como vendedor, introduciendo el DNI, un nombre descriptivo (largo), un nombre de usuario (breve) y una contrasea de acceso. Una vez que el vendedor est dado de alta, puede registrar artculos en la subasta o modificar alguno de sus datos: descripcin breve, descripcin ampliada, fotografa en formato JPEG, y precio de salida.
Vendedor
Registrar
artculo
Modificar
datos de artculo
Artculo
descripcinBreve
descripcinAmpliada
fotografa
precioSalida
Vendedor
dni
nombreDescriptivo
nombreUsuario
contrasea
subasta
registra
modifica
Anlisis y Diseo de Sistemas
Asociaciones reflexivas
Una asociacin reflexiva (o recursiva) es aquella en la que los dos extremos de la asociacin estn unidos a la misma clase.
Los enlaces pueden conectar dos instancias diferentes de la misma clase, o incluso una instancia consigo misma.
En una asociacin reflexiva los nombres de rol son obligatorios, para poder distinguir los dos extremos de la asociacin.
Una asociacin reflexiva no es simtrica: los extremos son distinguibles, aunque la asociacin quiera significar equivalencia: es-amigo-de, es-igual-a...
Empleado Personadirige
0..1
0..*
jefe
subalterno
ama
0..*
0..*
amante
amado
dirige(Ana, Juan) dirige(Juan, Ana) ama(Pedro, Clara) ama(Clara, Pedro)
8Anlisis y Diseo de Sistemas
Agregacin
Es un tipo especial de asociacin que representa una relacin todo-parte, transitiva y asimtrica
- no impone ninguna restriccin especial sobre la multiplicidad.
- puede ser reflexiva para las clases, pero no para las instancias.
PiezaMquina0..* 1..*
0..*
0..*
m1 : Mquina
m2 : Mquina
p1 : Pieza p2 : PiezaAnlisis y Diseo de Sistemas
Composicin
Es un tipo especial de agregacin no compartida
- La multiplicidad slo puede ser 0..1 1..1.
- El todo es responsable de la existencia y almacenamiento de las partes.
- Propagacin de las operaciones de copiado y borrado.
Composicin no significa encapsulamiento ni acceso restringido
AvinEscuadrilla
Cabina Fuselaje Ala
Piloto0..3 1..* 0..* 0..2
1
0..1
1 2
9Anlisis y Diseo de Sistemas
Clase-asociacin
Tiene todas las propiedades de una clase y de una asociacin:
- Atributos, operaciones y asociaciones con otras clases.
- Conexin entre clases que especifica enlaces entre ellas.
- Multiplicidad, navegabilidad, agregacin...
Es un nico elemento, por tanto tiene un nombre nico.
Como cualquier otra asociacin, no puede contener tuplas repetidas, aunque los valores de los atributos sean distintos: sustituir clase-
asociacin por clase intermedia.
Persona Empresa
trabaja-para
sueldo Cuenta
trabaja-para1..* 0..*
pagar-en0..* 1Representa el estado
actual o el registro
histrico?
Anlisis y Diseo de Sistemas
Persona Empresa
trabaja-para
sueldo
pagar( )
trabaja-para1..* 0..*
Transformacin de clase-asociacin en clase intermedia
Sustituir la clase-asociacin por una clase simple, cuyas instancias representan enlaces.
Las multiplicidades originales se cruzan, y aparecen otras nuevas.
Es una forma de implementar la clase-asociacin, pero hay que aadir una restriccin adicional para no permitir tuplas repetidas.
Persona Empresa
trabaja-parasueldo
pagar( )
1
0..*
1
1..*
clase intermedia
clase-asociacin
10
Anlisis y Diseo de Sistemas
Generalizacin y clasificacin
Principio de sustitucin:
- Extensin: todas los objetos de la subclase son tambin de la superclase.
- Intensin: la definicin de la superclase es aplicable a la subclase.
Generalizacin: clase-clase.
- Gato es un tipo de Mamfero, Mamfero es un tipo de Animal.
Clasificacin: objeto-clase.
- Fluti es un Gato, Fluti es un Mamfero, Fluti es un Animal.
Gato Mamfero Animal
Fluti
instance of
Instancias directas e indirectas
Anlisis y Diseo de Sistemas
Generalizacin y especializacin
Dos puntos de vista complementarios:
- Generalizar es identificar las propiedades comunes (atributos, asociaciones, operaciones) de varias clases y representarlas en una clase ms general denominada superclase.
- Elevar el nivel de abstraccin, reducir la complejidad, organizar.
- Especializar es capturar la propiedades especficas de un conjunto de objetos dentro de una clase dada, que an no han sido distinguidas en ella, y representarlas en una nueva clase denominada subclase.
- Reutilizar un concepto aadiendo propiedades variantes.
La generalizacin es una relacin pura entre clases:
- No tiene instancias, ni multiplicidad.
- La subclase hereda todas las propiedades y relaciones de la superclase.
- Las propiedades heredadas de la superclase no se representan en la subclase (a menos que sean operaciones redefinidas).
11
Anlisis y Diseo de Sistemas
Transporte
AreoTerrestre
Avin HelicpteroBicicleta Automvil Ferrocarril
Jerarquas de clases
Generalizacin:
- no-reflexiva
- transitiva
- asimtrica
Transporte
Areo
Terrestre
Avin Helicptero
Bicicleta
Automvil
Ferrocarril
Representaciones alternativas:
- relaciones binarias
- estructura en rbol
Anlisis y Diseo de Sistemas
Subclase vs. Atributo
Cmo modelar las propiedades de los objetos? Regla general:
- Propiedad cambiante o rango de valores muy grande: atributo.
- Propiedad fija con valores enumerados: especializacin (cada propiedad se traduce en un criterio de especializacin, cada valor en una subclase).
- Tambin se puede modelar como un atributo con valor fijo.
Criterio final de especializacin: comportamiento.
CuentaCorrientetitular
moneda
Coche
CocheRojoCocheVerdeCocheAzul
color
Alternativa a la
doble
especializacin
Especializacin
exagerada?
12
Anlisis y Diseo de Sistemas
Diagramas de clases y de objetos
Diagrama de clases
- captura y especifica el vocabulario del sistema:
- elementos: clases, atributos, operaciones...
- relaciones: asociaciones, generalizaciones...
- estructura del sistema, fundamento de su comportamiento
- sugerencias para mejorar la comunicacin:
- nombres adecuados: clases, atributos, operaciones, asociaciones, roles
- distribucin espacial de los elementos y evitar cruces de lneas
- distinto nivel de detalle segn el propsito y nivel de abstraccin
Diagrama de objetos
- ilustra la estructura del sistema mediante situaciones particulares
- fotografa del sistema: objetos, valores de atributos; enlaces
- las instancias deben conformarse a sus especificaciones
- objetos, enlaces clases, asociaciones
- las especificaciones pueden estar representadas en distintos diagramas
Anlisis y Diseo de Sistemas
Diagrama de clases vs. Diagrama de objetos
Sociedad
Annima Limitada
Sociedad Personaaccionista
empleadoAcme : Sociedad
Emca : Limitada
Ana : Persona
Clara : Persona
Pedro : Persona
accionista
empleado
empleado
accionista
13
Anlisis y Diseo de Sistemas
Restricciones y notas
{ningn accionista
puede ser empleado}
falta determinar
las subclases
de SociedadSociedad Persona
accionista
empleado
Vendedornif {regla nif}
nombreDescriptivo
nombreUsuario
contraseaAnlisis y Diseo de Sistemas
Restricciones en asociaciones
Vuelo Aeropuerto
{ordered} escala
* 0..*
* 1origen
* 1destino
Cliente Mesa* *
reserva
Cuenta
Sociedad
Persona
* 0..1
* 0..1
{xor} or exclusivo entre asociaciones
ordenacin de los elementos
una asociacin no puede
contener tplas repetidas
14
Caso de feria de subastas
Usuario
NIF
nombre descriptivo
nombre usuario
contrasea
Comprador Vendedor
Artculodescripcin breve
descripcin ampliada
fotografa
precio salida
hora salida
adjudicado
Pujahora
valor
1
*
1
*
* 1