1 www.dsic.upv.es/~uml
Desarrollo de Software Orientado a Objeto usando UML
Patricio Letelier [email protected]
Departamento Sistemas Informáticos y Computación (DSIC)Universidad Politécnica de Valencia (UPV) - España
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)
Situación de Partida 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
I. Introducción: UML
Historia de 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
I. Introducción: UML
Historia de UML
Nov ‘97 UML aprobado por el OMG
19981999
2000
UML 1.2
UML 1.3
UML 1.4
2001 UML 2.0
Revisiones menores
I. Introducción: UML
Participantes en UML 1.0
Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)
Digital Equipment Hewlett-Packard i-Logix (David Harel)
IBM ICON Computing
(Desmond D’Souza) Intellicorp and James Martin
& co. (James Odell)
MCI Systemhouse Microsoft ObjecTime Oracle Corp. Platinium Technology Sterling Software Taskon Texas Instruments Unisys
I. Introducción: UML
UML “aglutina” enfoques OO
UML
RumbaughJacobson
Meyer
Harel
Wirfs-BrockFusion
Embly
Gamma et. al.
Shlaer-Mellor
Odell
Booch
Pre- and Post-conditions
State Charts
Responsabilities
Operation descriptions, message numbering
Singleton classes
Frameworks, patterns, notes
Object life cycles
I. Introducción: UML
Aspectos Novedosos 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
I. Introducción: UML
Inconvenientes en 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.
Ejemplos aislados
“Monopolio de conceptos, técnicas y métodos en torno a UML”
I. Introducción: UML
Perspectivas de 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, “camisetas”, etc.
I. Introducción: UML
Breve Tour por UML
Modelos y Diagramas• 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
II. Breve Tour por 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
... Modelos y DiagramasII. Breve Tour por UML
Diagramas de 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
II. Breve Tour por UML
... Diagramas de UML
Use CaseDiagramsUse Case
DiagramsDiagramas de Casos de Uso
ScenarioDiagramsScenario
DiagramsDiagramas deColaboración
StateDiagramsState
DiagramsDiagramas deComponentes
ComponentDiagramsComponent
DiagramsDiagramas deDistribución
StateDiagramsState
DiagramsDiagramas de Objetos
ScenarioDiagramsScenario
DiagramsDiagramas deEstados
Use CaseDiagramsUse Case
DiagramsDiagramas deSecuencia
StateDiagramsState
DiagramsDiagramas deClases
Diagramas deActividad
Modelo
II. Breve Tour por UML
Los diagramas expresan gráficamente partes de un modelo
4+1 vistas de Kruchten (1995)
Vista Lógica
Vista de Procesos
Vista de Distribución
Vista de Realización
Vista de los Casos de Uso
Organización de Modelos
Este enfoque sigue el browser de Rational Rose
II. Breve Tour por UML
... Organización de Modelos
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)
II. Breve Tour por UML
Paquetes en 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
II. Breve Tour por UML
… Paquetes en 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
II. Breve Tour por UML
… Paquetes en 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
II. Breve Tour por UML
Práctica 1
… Paquetes en UML
II. Breve Tour por UML
Práctica 1
Diagrama de Casos de Uso
Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo se desea que trabaje
No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura de requisitos
II. Breve Tour por UML
Ejemplos
II. Breve Tour por UML
Supervisor Verificar Situación del Cliente
Administrativo Preparar Catálogo Sis tema Inventario
Tipos de Venta
… EjemplosEn el paquete tipos de venta:
II. Breve Tour por UML
Venta Normal
Venta en Rebajas
Venta en Ofertas
Vendedor
… Ejemplos
II. Breve Tour por UML
Solic itar N ueva Tarjeta
Cliente Solicitar Préstamo
<<extend> >
[Tarjeta Caducada]
… Ejemplos
II. Breve Tour por UML
Verificar Operación
Reintegro Cuenta Corriente
Cliente
Reintegro Cuenta de Crédito
<<include>>
<<include>>
Práctica 2
Diagrama de Secuencia
II. Breve Tour por UML
: Encargado :WInPréstamos :Socio :Video :Préstamo
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
Diagrama de Colaboración
Práctica 3
II. Breve Tour por UML
: Encargado
:WInPréstamos
:Socio
:Video
:Préstamo
1: prestar(video, socio)
2: verificar situación socio
3: verificar situación video
4: registrar préstamo5: entregar recibo
Diagrama de Clases
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
II. Breve Tour por UML
Ejemplos (Clase y Visibilidad)
A lum no
DNI : char[10]núm ero_exp : intnom bre : char[50]
alta()poner_nota(as ignatura : char *, año : int, nota : float)m atric ular(cursos : as ignatura, año : int)lis tar_ex pediente()
II. Breve Tour por UML
… Ejemplos (Asociación)
ProfesorDepartam ento
10..1
direc tor
1
dirige
0..1
II. Breve Tour por UML
… Ejemplos (Clase Asociación)
II. Breve Tour por UML
Empresa Empleado
1..** 1..**
trabajadoresempleador
Cargonombresueldo 0..1
1..*
superior
subordinado 1..*
0..1
… Ejemplos (Generalización)
II. Breve Tour por UML
Trabajador
Directivo Administrativo Obrero
{ disjunta, completa }
… Ejemplos
Prácticas 4-8
II. Breve Tour por UML
Avión militar Avión comercial
Avión de carga Avión de pasajeros
Motor Vendedor de billetes
Avión
1..4
1
1..4
1
Piloto
Reserva
n
1
n
1
Línea aérea
Vuelon1 n1
1..2
n
1..2
nn1 n1
1
n
1
n{ disjunta, completa }
{ disjunta, completa }
Diagrama de Estados
c on prés tam os
sin préstam os
alta baja
pres tar devol ver [ núm ero_p rést amo s = 1 ]
pres tar
devolver[ núm ero_prés tam os > 1 ]
núm ero_prés tam os = 0
núm ero_prés tam os > 0
II. Breve Tour por UML
Socionúmero : intnombre : char[50]número_prestamos : int = 0
alta()baja()prestar(código_libro : int, fecha : date)devolver(código_libro : int, fecha : date)
Diagrama de Actividad
Buscar Bebida
Poner café en filtro Añadir agua al depósito Coger taza
Poner filtro en máquina
Encender máquina
Café en preparación
Servir café
Coger zumo
Beber
[no hay café]
[hay café
[no zumo]
[hay zumo]
/ cafetera.On
indicador de fin
II. Breve Tour por UML
Emitir billete
Pasajero Vendedor Airline
… Otro Ejemplo (con swim lines)
Solicitar pago Reservar plazas
Confirmar plaza reservadaPagar pasaje
Informar alternativas y precios
Verificar existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
Práctica 9
II. Breve Tour por UML
Diagrama Componentes
Control y Análisis
Comment
Acceso a BD
CommentRutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Gestión de Cuentas
Comment
II. Breve Tour por UML
Diagrama de Despliegue
Punto de Venta
Servidor Central
Terminal de Consulta
Gestión de Cuentas
Comment
Interfaz de Terminal
Comment
Rutinas de ConeccionComment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
Control y Análisis
Comment
Práctica 10
II. Breve Tour por 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
II. Breve Tour por UML