Está en la página 1de 40

Ingeniería de Software

Clase 6

UML

UNPSJB - 2005 Ingeniería de Software - Clase 6 1


Contenido de la clase 6
 Desarrollo de soft OO usando UML
 Introducción
 Modelado del soft
 UML (Conceptos básicos)
 Paradigma OO
 Fundamentos
 Diagramas de CU
 Diagramas de Interacciones
 Diagramas de clase
 Diagramas de estado/actividad
 Diagrama de componentes
 Diagrama de despliegue

UNPSJB - 2005 Ingeniería de Software - Clase 6 2


Bibliografía

 UML
 www.dsic.upv.es/~uml
 Patricio Letelier Torres UPV (politécnica de
Valencia)
 UML Gota a Gota (Fowler)
 UML (Booch, Rumbaugh, Jacobson)
 Instant UML (Muller)
 Webs
 www.omg.org/uml

UNPSJB - 2005 Ingeniería de Software - Clase 6 3


Modelado del software www.dsic.upv.es/~uml

 Ejemplos  Modelado
 Construcción de una  Proceso bien
definido
cucha para un perro
 Herramientas más
 Puede hacerlo sofisticadas
una sola persona  Construcción de un
Requiere: rascacielos
 Modelado mínimo
 Proceso simple  Contexto de
 Herramientas desarrollo
simples  Determinar
 Construcción de una configuración del
casa proceso
Recursos
Construida


necesarios
eficientemente y
 Herramientas más
en un tiempo
sofisticadas aún.
razonable de un
UNPSJB - 2005
equipoIngeniería de Software - Clase 6 4
www.dsic.upv.es/~uml
Claves en Desarrollo de SI
Notación

Herramientas Proceso

UNPSJB - 2005 Ingeniería de Software - Clase 6 5


www.dsic.upv.es/~uml

Abstracción - Modelado Visual (MV)


“El modelado captura las
partes esenciales del sistema”

Orden

Item

envío

Proceso de Negocios

Sistema Computacional

UNPSJB - 2005 Ingeniería de Software - Clase 6 6


¿Qué es UML? www.dsic.upv.es/~uml

 UML = Unified Modeling Language


 Un lenguaje de propósito general para el
modelado orientado a objetos
 Documento “OMG Unified Modeling
Language Specification”
 UML combina notaciones provenientes
desde:
 Modelado Orientado a Objetos
 Modelado de Datos
 Modelado de Componentes
 Modelado de Flujos de Trabajo (Workflows)

UNPSJB - 2005 Ingeniería de Software - Clase 6 7


Motivación www.dsic.upv.es/~uml

 Diversos métodos y técnicas OO, con


muchos aspectos en común pero
utilizando distintas notaciones
 Inconvenientes para el aprendizaje,
aplicación, construcción y uso de
herramientas, etc.
 Pugna entre distintos enfoques (y
correspondientes gurús)
 Establecer una notación estándar

UNPSJB - 2005 Ingeniería de Software - Clase 6 8


Historia de UML www.dsic.upv.es/~uml

 Comenzó como el “Método Unificado”, con


la participación de Grady Booch y Jim
Rumbaugh. Se presentó en el OOPSLA’95

 El mismo año se unió Ivar Jacobson. Los


“Tres Amigos” son socios en la compañía
Rational Software. Herramienta CASE
Rational Rose

UNPSJB - 2005 Ingeniería de Software - Clase 6 9


Historia de UML
www.dsic.upv.es/~uml

2001 UML 2.0

2000 UML 1.4

1999 UML 1.3


Revisiones menores
1998
UML 1.2
Nov ‘97 UML aprobado por el OMG

UNPSJB - 2005 Ingeniería de Software - Clase 6 10


UML “aglutina” enfoques OO
www.dsic.upv.es/~uml

Rumbaugh
Booch Jacobson

Odell
Meyer
Pre- and Post-conditions

Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
UNPSJB - 2005 Ingeniería de Software - Clase 6 11
Aspectos Novedosos www.dsic.upv.es/~uml

 Definición semi-formal del Metamodelo de


UML
 Mecanismos de Extensión en UML:
 Stereotypes
 Constraints
 Tagged Values

Permiten adaptar los elementos de modelado,


asignándoles una semántica particular

UNPSJB - 2005 Ingeniería de Software - Clase 6 12


Inconvenientes en UML www.dsic.upv.es/~uml

 Definición del proceso de desarrollo


usando UML. UML no es una metodología
 Falta integración con respecto de otras
técnicas tales como patrones de diseño,
interfaces de usuario, documentación,
etc.
 “Monopolio de conceptos, técnicas y
métodos en torno a UML”

UNPSJB - 2005 Ingeniería de Software - Clase 6 13


Perspectivas de UML www.dsic.upv.es/~uml

 UML será el lenguaje de modelado


orientado a objetos estándar
predominante los próximos años
 Razones:
 Participación de metodólogos influyentes
 Participación de importantes empresas
 Aceptación del OMG como notación estándar
 Evidencias:
 Herramientas que proveen la notación UML
 “Edición” de libros
 Congresos, cursos, etc.

UNPSJB - 2005 Ingeniería de Software - Clase 6 14


Modelos y Diagramas www.dsic.upv.es/~uml

 Un modelo captura una vista de un sistema del


mundo real. Es una abstracción de dicho sistema,
considerando un cierto propósito. Así, el modelo
describe completamente aquellos aspectos del
sistema que son relevantes al propósito del
modelo, y a un apropiado nivel de detalle.
 Diagrama: una representación gráfica de una
colección de elementos de modelado, a menudo
dibujada como un grafo con vértices conectados
por arcos
OMG UML 1.4 Specification

UNPSJB - 2005 Ingeniería de Software - Clase 6 15


... Modelos y Diagramas www.dsic.upv.es/~uml

 Un proceso de desarrollo de software debe ofrecer un


conjunto de modelos que permitan expresar el
producto desde cada una de las perspectivas de interés
 El código fuente del sistema es el modelo más
detallado del sistema (y además es ejecutable). Sin
embargo, se requieren otros modelos ...

 Cada modelo es completo desde su punto de vista del


sistema, sin embargo, existen relaciones de
trazabilidad entre los diferentes modelos

UNPSJB - 2005 Ingeniería de Software - Clase 6 16


Diagramas de UML www.dsic.upv.es/~uml

 Diagrama de Casos de Uso


 Diagrama de Clases
 Diagrama de Objetos
Diagramas de Comportamiento
 Diagrama de Estados
 Diagrama de Actividad
Diagramas de Interacción
 Diagrama de Secuencia
 Diagrama de Colaboración
Diagramas de implementación
 Diagrama de Componentes
 Diagrama de Despliegue

UNPSJB - 2005 Ingeniería de Software - Clase 6 17


... Diagramas de UML www.dsic.upv.es/~uml

Los diagramas expresan gráficamente partes de un modelo


State
State
Use Case Diagramas de
Diagrams
Use Case Diagrams State
Use Case Diagramas de
Diagrams Clases State
Use Case Diagrams Diagramas de
Diagrams
Diagramas de
Diagrams Casos de Uso Diagrams
Diagrams Objetos
Secuencia

Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboración Modelo Componentes

Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribución
Estados Diagramas de
Actividad
UNPSJB - 2005 Ingeniería de Software - Clase 6 18
Organización de Modelos www.dsic.upv.es/~uml

 4+1 vistas de Kruchten (1995)

Vista de
Vista Lógica Realización
Vista de los
Casos de Uso

Vista de Vista de
Procesos Distribución

Este enfoque sigue el browser de Rational Rose


UNPSJB - 2005 Ingeniería de Software - Clase 6 19
... Organización de Modelos
www.dsic.upv.es/~uml

Propuesta de Rational Unified Process (RUP)


 M. de Casos de Uso del Negocio (Business Use-Case
Model)
 M. de Objetos del Negocio (Business Object Model)
 M. de Casos de Uso (Use-Case Model)
 M. de Análisis (Analysis Model)
 M. de Diseño (Design Model)
 M. de Despliegue (Deployment Model)
 M. de Datos (Data Model)
 M. de Implementación (Implementation Model)
 M. de Pruebas (Test Model)

UNPSJB - 2005 Ingeniería de Software - Clase 6 20


Paquetes en UML www.dsic.upv.es/~uml

 Los paquetes ofrecen un mecanismo


general para la organización de los
modelos/subsistemas agrupando
elementos de modelado
 Se representan gráficamente como:

Nombre de
paquete

UNPSJB - 2005 Ingeniería de Software - Clase 6 21


… Paquetes en UML www.dsic.upv.es/~uml

 Cada paquete corresponde a un


submodelo (subsistema) del modelo
(sistema)
 Un paquete puede contener otros
paquetes, sin límite de anidamiento pero
cada elemento pertenece a (está definido
en) sólo un paquete
 Una clase de un paquete puede aparecer
en otro paquete por la importación a
través de una relación de dependencia
entre paquetes
UNPSJB - 2005 Ingeniería de Software - Clase 6 22
… Paquetes en UML www.dsic.upv.es/~uml

 Todas las clases no son


necesariamente visibles
desde el exterior del
paquete, es decir, un
paquete encapsula a la
vez que agrupa
 El operador “::”
permite designar una
clase definida en un
contexto distinto del
actual

UNPSJB - 2005 Ingeniería de Software - Clase 6 23


… Paquetes en UML www.dsic.upv.es/~uml

UNPSJB - 2005 Ingeniería de Software - Clase 6 24


Diagrama de Casos de Uso www.dsic.upv.es/~uml

 Casos de Uso es una


técnica para capturar
información de cómo
un sistema o negocio Supervisor Verificar Situación del Cliente
trabaja, o de cómo se
desea que trabaje
 No pertenece
estrictamente al
enfoque orientado a Administrativo Preparar Catálogo
Sistema

objeto, es una técnica Inventario

para captura de
requisitos Tipos de Venta

UNPSJB - 2005 Ingeniería de Software - Clase 6 25


… Ejemplos www.dsic.upv.es/~uml

En el paquete tipos de venta: Otro Ejemplo

Venta Normal Solicitar Préstamo


Cliente

[Tarjeta Caducada]

<<extend>>
Venta en Rebajas
Vendedor

Solicitar Nueva Tarjeta


Venta en Ofertas

UNPSJB - 2005 Ingeniería de Software - Clase 6 26


… Ejemplos www.dsic.upv.es/~uml

<<include>>
Reintegro Cuenta Corriente

Cliente Verificar Operación

<<include>>

Reintegro Cuenta de Crédito

UNPSJB - 2005 Ingeniería de Software - Clase 6 27


Diagrama de Secuencia www.dsic.upv.es/~uml

:WInPréstamos :Socio :Video :Préstamo


: Encargado

prestar(video, socio)
verificar situación socio

verificar situación video

registrar préstamo

entregar recibo

UNPSJB - 2005 Ingeniería de Software - Clase 6 28


Diagrama de Colaboración www.dsic.upv.es/~uml

:Socio

:Video

2: verificar situación socio

1: prestar(video, socio) 3: verificar situación video


:WInPréstamos

5: entregar recibo
: Encargado 4: registrar préstamo

:Préstamo

UNPSJB - 2005 Ingeniería de Software - Clase 6 29


Diagrama de Clases www.dsic.upv.es/~uml

 El Diagrama de Clases es el diagrama principal


para el análisis y diseño
 Un diagrama de clases presenta las clases del
sistema con sus relaciones estructurales y de
herencia
 La definición de clase incluye definiciones para
atributos y operaciones
 El modelo de casos de uso aporta información
para establecer las clases, objetos, atributos y
operaciones

UNPSJB - 2005 Ingeniería de Software - Clase 6 30


Ejemplos www.dsic.upv.es/~uml

(Clase y Visibilidad) Asociación

dirige director
Departamento Profesor
0..1 1

UNPSJB - 2005 Ingeniería de Software - Clase 6 31


… Ejemplos (Clase Asociación)
www.dsic.upv.es/~uml

empleador trabajadores
Empresa Empleado
* 1..*

Cargo
superior
nombre
sueldo 0..1

subordinado 1..*

UNPSJB - 2005 Ingeniería de Software - Clase 6 32


… Ejemplos (Generalización) www.dsic.upv.es/~uml

Trabajador

{ disjunta, completa }

Directivo Administrativo Obrero

UNPSJB - 2005 Ingeniería de Software - Clase 6 33


… Ejemplos www.dsic.upv.es/~uml

Motor Piloto Vendedor de billetes

1..4 1..2 1

1 n
n
1 n 1 n
Avión Vuelo Reserva

n
{ disjunta, completa }

Avión militar Avión comercial Línea aérea

{ disjunta, completa }

Avión de carga Avión de pasajeros

UNPSJB - 2005 Ingeniería de Software - Clase 6 34


Diagrama de Estados www.dsic.upv.es/~uml

alta baja

número_préstamos = 0
sin préstamos

Socio
número : int
nombre : char[50]
número_prestamos : int = 0
prestar devolver[ número_préstamos = 1 ]
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
número_préstamos > 0

con préstamos

prestar

devolver[ número_préstamos > 1 ]

UNPSJB - 2005 Ingeniería de Software - Clase 6 35


Diagrama de Actividad www.dsic.upv.es/~uml

[no hay café] [no zumo]


Buscar Bebida
[hay café [hay zumo]

Poner café en filtro Añadir agua al depósito Agarrar taza

Poner filtro en máquina Agarrar zumo

Encender máquina
/ cafetera.On
Café en preparación

indicador de fin
Servir café
Beber

UNPSJB - 2005 Ingeniería de Software - Clase 6 36


… Otro Ejemplo (con swim lines) www.dsic.upv.es/~uml

Pasajero Vendedor Airline

Solicitar pasaje
Verificar
existencia vuelo

Dar detalles vuelo

Informar alternativas
y precios
Seleccionar vuelo

Solicitar pago Reservar plazas

Confirmar
Pagar pasaje plaza reservada

Emitir billete

UNPSJB - 2005 Ingeniería de Software - Clase 6 37


Diagrama Componentes www.dsic.upv.es/~uml

Control y Análisis
Interfaz de Terminal
Comment
Comment

Gestión de Cuentas Acceso a BD


Rutinas de Coneccion
Comment Comment Comment

UNPSJB - 2005 Ingeniería de Software - Clase 6 38


Diagrama de Despliegue www.dsic.upv.es/~uml

Servidor Centr al Control y A nálisis

Acceso a BD Comment

Comment

Rutinas de Coneccion
Comment

Terminal de Consulta
Inter faz de Terminal
Rutinas de Coneccion
Comment Comment

Punto de Venta
Rutinas de Coneccion
Comment

Gestión de Cuentas Inter faz de Terminal

Comment Comment

UNPSJB - 2005 Ingeniería de Software - Clase 6 39


www.dsic.upv.es/~uml
Resumen

 UML define una notación que se expresa como


diagramas sirven para representar
modelos/subsistemas o partes de ellos
 El 80 por ciento de la mayoría de los problemas
pueden modelarse usando alrededor del 20 por
ciento de UML-- Grady Booch

UNPSJB - 2005 Ingeniería de Software - Clase 6 40