Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UML (http://www.uml.org)
No incluye:
• Normas de calidad (análisis y diseño orientado a objetos)
• Plantillas de artefactos (documentos de requisitos, de análisis, ..)
• Gestión de proyecto y configuración (estimación de costes, ...)
• Métricas (de calidad del sw, de resistencia al cambio, ...)
Héctor
ISIA, Gómez
Facultad Gauchía (adapt.de
Informática Juan Pavón)
UCM, curso 2008-2009 UML UML
ISIA, Facultad de Informática UCM, 2006-07 5
¿Qué es UML? – V
Técnicas
Proceso de Notación
Modelado
Recursos
Herramientas
...
Experiencia
Ventajas de modelar
Permite ver el sistema desde varias perspectivas haciendo
más sencillo su entendimiento y desarrollo
Mejora la comunicación
• con el cliente
• del equipo de desarrollo
Entidades
Estructurales
Comportamiento
Agrupamiento
Anotación
Relaciones
Diagramas
Casos de uso
Clases
Interfaces
Colaboraciones
Componentes
Nodos
Card Bank
Trans- Cash System
action Withdrawal Cash interface
Created
PIN code
Open
do: verify PIN-code Correct Cash Withdrawal
PIN-code
Wrong exit: cash delivered
PIN-code
Ready
Closed
exit: eject Card
Elemento Énfasis
{constraint}
Emitir por fax
Dependencia
Asociación
Generalización
Vistas
Parte Estática: aspecto de un sistema que destaca su
estructura
Parte Dinámica: aspecto de un sistema que destaca su
comportamiento
Diagramas
Diagrama estructural: muestra los aspectos estáticos de
un sistema que representan su estructura (esqueleto y
componentes)
Diagrama de comportamiento: muestra los aspectos
dinámicos de un sistema como aquellos que representan sus
partes mutables (varían con el tiempo).
Visibilidad
UML identifica 4 tipos de visibilidad:
• + Public
• - Private
• # Protected
• ~ Package
Dos tipos
Diagrama de clases: visión de clasificación
Diagrama de objetos: visión de instanciación
Representación
Nombre, atributos, métodos
Compartimentos con nombres
• Definidos por el usuario (además de los obligatorios)
• Ej: responsabilidades, excepciones
Nombre de la clase
Clase Las clases son el
vocabulario y
Atributos (puede terminología del
omitirse)
área de
conocimiento
Métodos (puede
omitirse)
Tipos
Tipos UML: Integer, Boolean, String
Tipos de cualquier lenguaje de programación
Se pueden omitir en bocetos
Ejemplo
Nombre: String
Edad: Integer
Telefonos: String [1 .. *]
+ Público
- Privado
# Protegido
~ Paquete
Estáticos vs Instancia
Los miembros estáticos se subrayan
Los miembros de instancia NO se subrayan
Ejemplo
Nombre: String
Edad: Integer
Telefonos: String [1 .. *]
pública privada
momentánea DEPENDENCIA
Versatilidad
Héctor Gómez Gauchía (adapt.de Juan Pavón) UML
ISIA, Facultad Informática UCM, curso 2008-2009 UML 33
ISIA, Facultad de Informática UCM, 2006-07
Clases – III : Relaciones de Asociación - I
public class X
{
private x;
public asociacion(X x) {
this.x = x;
}
}
Características
Visibilidad
• Los objetos asociados a otro objeto no están encapsulados.
• Existen fuera del objeto cliente y tienen vida propia para colaborar
con otros objetos.
Temporalidad
• La relación entre los objetos asociados y el objeto al que se asocian
es duradera en el tiempo.
Versatilidad
• Cada objeto que se asocia está relacionado con unos
“determinados” objetos asociados
asociación rol
Job boss
salary
0..1 Asociación
“clase asociación” worker ∗ reflexiva
Manages
{X or}
Account
estereotipo Corporation
Year
∗ ∗
Team Player
team goalkeeper
Record
goals for
goals against
wins
losses
ties
Multiplicidad
La multiplicidad es la cantidad de objetos de una clase
que se relacionan con un objeto de la clase asociada.
Asociaciones calificadas
Cuando la multiplicidad de de una asociación es de uno a
muchos se presenta un reto muy particular: la búsqueda
Notación alternativa
Window
2
scrollbar:Slider
1
title:Header
1
body:Panel
Regla Generalización/Especialización
La especialización es la presencia de unas características
específicas de un subconjunto de elementos de un
determinado conjunto
Regla ¿ es-un ?
Shape
Shared Target Style
...
Polygon Ellipse Spline
«call» ClassC
«refine»
ClassC combines
two logical classes
ClassD ClassE
Características
Visibilidad
• Los objetos usados por otros objetos de una clase pueden estar
(declaraciones locales) o no estar encapsulados (parámetros y
valor devuelto por funciones y operadores).
Temporalidad
• La relación entre los objetos usados y el que los usa, dura mientras
se ejecuta un método determinado de la clase cliente.
Versatilidad
• Cada objeto que usa no está relacionado con unos “determinados”
objetos usados (cualquier objeto servidor nos vale).
Entre paquetes
Controller
«access»
«access»
«access» Diagram
Elements
«access»
«access»
Domain Graphics
Elements Core
tria ng le : P o lyg o n
s c h e d u le r
awindow : Window
horizontalBar:ScrollBar
verticalBar:ScrollBar
moves
surface:Pane
moves
title:TitleBar
CreditCard
PMCreditCard
{abstract}
OrderBean
<<interface>> {abstract}
EntityBean
+getOrderStatus
+setOrderStatus
PMOrder
+getLineItems
+setLineItems
order +getCreditApproved
+setCreditApproved
* ...
1 order
buyer 1 * item
Customer LineItem
PMLineItem
{abstract}
*
* item
1 commodity
Product
«type» «implementationClass»
Object HashTable
* elements 1 body
«type» «implementationClass»
Set HashTableSet
addElement(Object)
removeElement(Object) addElement(Object)
testElement(Object):Boolean removeElement(Object)
testElement(Object):Boolean
Fig. 3-27, UML Notation Guide setTableSize(Integer)
StoreHome Store
<<use>>
realización
Se define mediante:
Diagramas de casos de uso (todo el sistema)
Descripción de los casos de uso
• Mediante plantillas de texto
• Acompañados de diagramas de interacción (ej.: d. secuencia)
• (hardware,software, personas)
Límite del sistema (frontera)
• Representa el límite entre el sistema físico y
los actores que interaccionan con el sistema
<<extend>>
el cliente solicita
el catálogo
<<include>> <<include>>
<<include>>
Por otra parte, los datos de todos los médicos los mantiene un Supervisor, encargado de
mantener esta información: altas, bajas, cambios de datos, etc.
Se desea, asimismo, disponer de una función estadística que permita generar listados
informativos.
Dado que varios planificadores de guardias pueden trabajar en paralelo, se quiere que se
actualicen automáticamente las estadísticas que vea cada uno cada vez que haya un
cambio por parte de cualquiera de ellos. Asimismo, cada planificador puede editar y
modificar planes de guardias.
CENTROS HOSPITALARIOS
Solución:
Gestionar Médicos: dar de alta, de baja y cambio de datos a todos los médicos
de cada centro hospitalario.
Gestionar Estadísticas: actualizar las Estadísticas y presentarlas a los usuarios
de la aplicación cuando lo soliciten.
Editar Planes: asignar los médicos disponibles a las guardias previstas.
Gestionar Planes: creación y borrado de planes, apertura y cierre de planes ya
creados, edición e impresión (por ello se incluye al anterior “Editar Planes”)
Gestionar Usuarios: gestionar las cuentas de los planificadores de guardias
autorizados, creando usuarios y asignándoles una palabra clave.
Post-condiciones:
salidas:
Condición final exitoso: El estado del mundo si todo va bien (y datos salida)
El estado del mundo si se abandona el objetivo
Condición final fallido:
Actor primario: Nombre del rol que interactúa con el sistema
Actores secundarios: Otros sistemas que pueden participar
2
Extensiones: Paso Acción
flujos alternativos,
excepciones
1a Condición que causa la alternativa:
Acción o nombre del subcaso
Héctor Gómez Gauchía (adapt.de Juan Pavón) UML
ISIA, Facultad Informática UCM, curso 2008-2009 UML 70
ISIA, Facultad de Informática UCM, 2006-07
Caso de uso - V : D. Casos Uso en el proceso Análisis
[UML 1.5] OMG Unified Modeling Language Specification v. 1.5, Marzo 2003.
OMG UML: www.omg.org/uml
También www.uml.org
Cetus links: www.cetus-links.org/oo_uml.html