Logo Studenta

8 _UML-Clases-ADS-2020-1

¡Este material tiene más páginas!

Vista previa del material en texto

25/04/2020
1
Análisis y 
Diseño de 
Sistemas
UML Modelado Conceptual
1
Modelo Conceptual
Objetivo:
Desarrollar un diagrama de clases (Modelo Conceptual). 
Contenido:
• Modelado Conceptual
• Características específicas
• Agregación/Composición
• Clase-Asociación
• Generalización
• Restricciones y notas
2
Análisis y Diseño de Sistemas
25/04/2020
2
Modelado conceptual
• Especifica los conceptos más significativos del 
dominio del problema. 
• Estos conceptos deben estar contenidos en los 
requisitos del futuro sistema.
• Para UML representa una estructura estática, 
típicamente no se define ninguna operación. La 
representación incluye los atributos y relaciones 
de los conceptos.
• Características:
• Claro y simple
• Consistente
• Completo
• Fidelidad
• No redundante
3
Análisis y Diseño de Sistemas
Modelado conceptual con UML
• Qué significa “modelo conceptual”
• Es una vista gráfica de la información controlada por el sistema.
• Dos niveles de abstracción: clasificación / instanciación
• clase: es una plantilla que define a un grupo de entidades con estructura, relaciones, semántica y 
comportamiento comunes.
• objeto: representa a una entidad concreta con identidad, estado y comportamiento.
Juan:Vendedor
reloj:Artículo
radio:Artículo
Objetos
Clase
4
Análisis y Diseño de Sistemas
25/04/2020
3
Definiciones básicas
• clases en análisis y diseño:
• Análisis
• Representan o corresponden a 
conceptos del dominio.
• Por lo general se representan 
conceptos y atributos.
• Diseño 
• Representan o corresponden a 
fragmentos de código.
• Especifican al detalle elementos 
de implementación.
5
Análisis y Diseño de Sistemas
Notación básica de objetos y clases
p1 : Punto
posiciónX = 3
posiciónY = -5
p2 : Punto
posiciónX = 0
posiciónY = 2
«instance of»«instance of»
p1 : Punto
p1
: Punto
Punto
posiciónX
posiciónY
Punto
situar( )
mover( )
Punto
Punto
posiciónX
posiciónY
situar( )
mover( )
6
Análisis y Diseño de Sistemas
25/04/2020
4
Tipos de clases
• Tipos de clases según los objetos representados: 
• objetos físicos: avión, persona, libro...
• objetos lógicos: cuenta corriente, asignatura, número 
complejo…
• objetos históricos: asiento bancario, reserva de 
habitación…
• Para entender lo que es una clase, hace falta 
entender cuáles serán sus instancias. Un caso 
especial lo constituyen los objetos que representan 
una colección, familia o tipo de cosas, más que una 
cosa en sí misma.
• Ejemplos: raza perruna, producto a la venta, título en 
la biblioteca.
• Todo objeto representa una “entidad concreta”, pero 
esto no significa necesariamente “entidad física” o 
tangible.
7
Análisis y Diseño de Sistemas
DNI: 18153658
Nombre: Luis
Edad: 35
Empresa: UDEP
DNI: 18143535
Nombre: Ana
Edad: 30
Empresa: CIP
Trabajador
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 análisis): 
• propiedad redundante que puede ser calculada a partir de otras
• /área ( = base * altura)
• pueden implementarse como operaciones al pasar a diseño
• Notación (más importante en diseño)
• pueden suprimirse todos los elementos excepto el nombre de atributo:
• visibilidad nombre multiplicidad : Tipo = valorInicial
• Ejemplos:
• + saldo : Moneda = 0
• - Edad *: Entero
• Apellido
8
Análisis y Diseño de Sistemas
Atributos
25/04/2020
5
Operaciones
• Operación: función o transformación que puede aplicarse
a los objetos de una clase.
• puede ser invocada por otros objetos, o por el mismo objeto.
• método: especificación procedimental (implementación) de una
operación.
• Notación (más importante en diseño)
• pueden suprimirse todos los elementos excepto el nombre de 
operación
• visibilidad nombre (param: Tipo = valDef,…) : TipoRet
• ejemplos:
• obtenerSaldo ( ) : Moneda
• marcar (número : Teléfono; reintentos : Integer)
9
Análisis y Diseño de Sistemas
Operaciones
Enlaces y asociaciones
Asociación: 
Especificación de un conjunto 
de enlaces.
Representa la estructura y el 
comportamiento del sistema.
Enlace: 
Conexión entre objetos.
Determina una tupla de objetos.
Instancia de una asociación.
ArtículoVendedor
Juan : Vendedor
Ana : Vendedor
Estatuilla : Artículo
Cuadro : Artículo
Espejo : Artículo
10
Análisis y Diseño de Sistemas
25/04/2020
6
Asociaciones: nombre de asociación y nombre de rol
ArtículoVendedor
subasta
Nombre de asociación Dirección del nombre
Los nombres de asociación 
se pueden repetir en un 
modelo, excepto para 
asociaciones entre las 
mismas dos clases
11
Análisis y Diseño de Sistemas
• Valores típicos:
– 0..1 cero o uno
– 1..1 uno y sólo 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 asociación
• En una asociación binaria, la multiplicidad de un extremo de asociación especifica el 
número de instancias destino que pueden estar enlazadas con una única instancia
origen a través de la asociación
ArtículoPersona
vendedor artículo
1..1 0..*
Artículo 
participa
obligatoriamente
Persona 
participa
opcionalmente
12
Análisis y Diseño de Sistemas
25/04/2020
7
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 algún artículo es necesario darse de alta como vendedor, introduciendo el DNI, un 
nombre descriptivo (largo), un nombre de usuario (breve) y una contraseña de acceso. Una vez 
que el vendedor está dado de alta, puede registrar artículos en la subasta o modificar alguno de 
sus datos: descripción breve, descripción ampliada, fotografía en formato JPEG, y precio de 
salida.”
Artículo
descripciónBreve
descripciónAmpliada
fotografía
precioSalida
Vendedor
dni
nombreDescriptivo
nombreUsuario
contraseña
subasta
registra
modifica
Vendedor
Registrar
artículo
Modificar
datos de artículo
13
Análisis y Diseño de Sistemas
Asociaciones reflexivas
• Una asociación reflexiva (o recursiva) es aquella en la que los dos extremos de la 
asociación están unidos a la misma clase.
• Los enlaces pueden conectar dos instancias diferentes de la misma clase, o incluso 
una instancia consigo misma.
• En una asociación reflexiva los nombres de rol son obligatorios, para poder 
distinguir los dos extremos de la asociación.
• Una asociación reflexiva no es simétrica: los extremos son distinguibles, aunque la 
asociación 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)
14
Análisis y Diseño de Sistemas
25/04/2020
8
Clase-asociación
• Tiene todas las propiedades de una clase y de una asociación:
• Atributos, operaciones y asociaciones con otras clases.
• Conexión entre clases que especifica enlaces entre ellas.
• Multiplicidad, navegabilidad, etc
• Es un único elemento, por tanto tiene un nombre único.
• Como cualquier otra asociación, no puede contener tuplas repetidas, aunque los 
valores de los atributos sean distintos: sustituir clase-asociación por clase 
intermedia.
Persona Empresa
trabaja-para
sueldo Cuenta
trabaja-para1..* 0..*
pagar-en0..* 1
15
Análisis y Diseño de Sistemas
Persona Empresa
trabaja-para
sueldo
pagar( )
trabaja-para1..* 0..*
Transformación de clase-asociación en clase intermedia
• Sustituir la clase-asociación por una clase 
simple, cuyas instancias representan enlaces.
• Las multiplicidadesoriginales se cruzan, y 
aparecen otras nuevas.
• Es una forma de implementar la clase-
asociación, pero hay que añadir una restricción 
adicional para no permitir tuplas repetidas.
clase intermedia
clase-asociación
Persona Empresa
trabaja-para
sueldo
pagar( )
1
0..*
1
1..*
16
Análisis y Diseño de Sistemas
25/04/2020
9
Generalización y clasificación
• Principio de sustitución:
• Extensión: todas los objetos de la subclase son también de la superclase.
• Intensión: la definición de la superclase es aplicable a la subclase.
• Generalización: clase-clase. Es una clasificación de clases.
• Gato es un tipo de Mamífero, Mamífero es un tipo de Animal.
• Clasificación: objeto-clase.
• Fluti es un Gato, Fluti es un Mamífero, Fluti es un Animal.
Gato Mamífero Animal
Fluti
«instance of»
Instancias directas e indirectas
17
Análisis y Diseño de Sistemas
Jerarquías de clases
Generalización: 
- no-reflexiva
- transitiva
- asimétrica
Representaciones alternativas:
- relaciones binarias
- estructura en árbol
Transporte
Aéreo
Terrestre
Avión Helicóptero
Bicicleta
Automóvil
Ferrocarril
Transporte
AéreoTerrestre
Avión HelicópteroBicicleta Automóvil Ferrocarril
18
Análisis y Diseño de Sistemas
25/04/2020
10
Subclase vs. Atributo
• ¿Cómo modelar las propiedades de los objetos? Regla general:
• Propiedad cambiante o rango de valores muy grande: atributo.
• Propiedad fija con valores enumerados: especialización (cada propiedad se traduce en un criterio de 
especialización, cada valor en una subclase).
• También se puede modelar como un atributo con valor fijo.
• Criterio final de especialización: comportamiento.
¿Especialización 
exagerada?
Alternativa a la 
doble 
especialización
CuentaCorriente
titular
moneda
Coche
CocheRojoCocheVerdeCocheAzul
color
19
Análisis y Diseño 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 comunicación:
• nombres adecuados: clases, atributos, operaciones, asociaciones, etc.
• distribución espacial de los elementos y evitar cruces de líneas
• distinto nivel de detalle según el propósito y nivel de abstracción
• Diagrama de objetos
• ilustra la estructura del sistema mediante situaciones particulares
• “fotografía” 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
20
Análisis y Diseño de Sistemas
25/04/2020
11
Diagrama de clases vs. Diagrama de objetos
Acme : Sociedad
Emca : Limitada
Ana : Persona
Clara : Persona
Pedro : Persona
accionista
empleado
empleado
accionista
Sociedad Persona
accionista
empleado
Sociedad
Anónima Limitada
21
Análisis y Diseño de Sistemas
Restricciones y notas
{ningún accionista 
puede ser empleado}
falta determinar 
las subclases
de Sociedad
Sociedad Persona
accionista
empleado
Vendedor
nif {regla nif}
nombreDescriptivo
nombreUsuario
contraseña
22
Análisis y Diseño de Sistemas
25/04/2020
12
Restricciones en asociaciones
Vuelo Aeropuerto
{ordered} escala
* 0..*
* 1origen
* 1destino
Cliente Mesa
* *
reserva
Cuenta
Sociedad
Persona
* 1..1
* 1..1
{xor}
or exclusivo entre asociaciones
ordenación de los elementos
una asociación no puede 
contener túplas repetidas 
23
Análisis y Diseño de Sistemas
Ejercicio: hacer el modelo conceptual del caso
▪ El dueño de una farmacia requiere un sistema informático para controlar la farmacia.
▪ El almacenero recibe y revisa los productos de los proveedores y los coloca en los estantes respectivos. Los
productos son registrados mediante una guía de remisión (documento con que llegan las medicinas: Nº de
guía, fecha, hora, proveedor, etc.). Tomar en cuenta que un producto siempre es comprado a un único
proveedor. El almacenero también gestiona los datos de las medicinas que se manejan.
▪ Las salidas de almacén se realizan por las ventas (boleta o factura). El vendedor registra la boleta: Número,
Fecha, etc. Y el gerente realiza la venta con factura: N° de factura, fecha, Ruc y nombre del cliente, etc.
▪ Para una venta tanto el vendedor y el gerente requieren consultar las medicinas.
▪ El gerente necesita consultar qué cliente ha realizado más compras en un mes, para darle regalos, cada
cierto tiempo. Los regalos no son controlados por el sistema.
▪ Es el gerente gestiona a los datos de los clientes (Nombre, teléfono, dirección, etc.) mediante el sistema.
También el gerente es el encargado de registrar los proveedores (Nombre, teléfono, dirección, etc.).
24
Análisis y Diseño de Sistemas

Continuar navegando