Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres
[email protected] Departamento Sistemas Informáticos y Computación (DSIC) Universidad Politécnica de Valencia (UPV) - España
www.dsic.upv.es/~uml
1
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)
I. Introducción: UML
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 UML 2.0
2001
UML 1.4
2000 1999 1998 Nov ‘97
UML 1.3 Revisiones menores UML aprobado por el OMG
UML 1.2
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 Rumbaugh Booch
Jacobson
Odell
Meyer Pre- and Post-conditions
Shlaer-Mellor Object life cycles
UML Harel
State Charts
Gamma et. al. Frameworks, patterns, notes
Embly Singleton classes
Wirfs-Brock Fusion Operation descriptions, message numbering
Responsabilities
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.
Breve Tour por UML
II. 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
... Modelos y Diagramas 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
II. 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
Los diagramas expresan gráficamente partes de un modelo Use Case Use Case Diagramas de Diagrams Use Case Diagrams Use Case Diagramas de Casos de Uso Diagrams Diagrams Secuencia Scenario Scenario Diagramas de Diagrams Diagrams Colaboración Scenario Scenario Diagramas de Diagrams Diagrams Estados
State State Diagramas de Diagrams Diagrams Clases
Modelo
Diagramas de Actividad
State State Diagramas de Diagrams Diagrams Objetos State State Diagramas de Diagrams Diagrams Componentes
Component Component Diagrams Diagramas Diagrams
de Distribución
II. Breve Tour por UML
Organización de Modelos 4+1 vistas de Kruchten (1995) Vista Lógica Vista de los Casos de Uso Vista de Procesos
Vista de Realización
Vista de Distribución
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 Práctica 1
II. Breve Tour por UML
… Paquetes en UML
Práctica 1
II. Breve Tour por UML
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
Supervisor
Administrativo
Verificar Situación del Cliente
Preparar Catálogo
Ti pos de Venta
S is tema Inventario
II. Breve Tour por UML
… Ejemplos En el paquete tipos de venta:
Venta Normal
Vendedor
Venta en Rebajas
Venta en Ofertas
II. Breve Tour por UML
… Ejemplos
Cliente
Solicitar Préstamo
[Tarjeta Caducada]
Solic itar N ueva Tarjeta
II. Breve Tour por UML
… Ejemplos
Reintegro Cuenta Corriente
Verificar Operación
Cliente
Reintegro Cuenta de Crédito Práctica 2
II. Breve Tour por UML
Diagrama de Secuencia : Encargado
:WInP réstamos
:Socio
prestar(video, socio) verificar situación socio verificar situación video registrar préstamo entregar recibo
:Video
: Préstamo
II. Breve Tour por UML
Diagrama de Colaboración :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
Práctica 3
II. Breve Tour por UML
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 D NI : c har[10] núm ero_ex p : int nom bre : c har[50] alta() poner_nota(as ignatura : c har *, año : int, nota : float) m atric ular(c urs os : as ignatura, año : int) lis tar_ex pediente()
II. Breve Tour por UML
… Ejemplos (Asociación)
Departam ento
dirige 0..1
direc tor
Profes or 1
II. Breve Tour por UML
… Ejemplos (Clase Asociación) Empresa
empleador
trabajadores
*
1..*
Cargo nombre sueldo subordinado 1..*
superior 0..1
Empleado
II. Breve Tour por UML
… Ejemplos (Generalización) Trabajador
{ disjunta, completa }
Directivo
Administrativo
Obrero
II. Breve Tour por UML
… Ejemplos Motor 1..4
1 Avión
Vendedor de billetes
Piloto
1
n
1..2
1
n
n
Vuelo
1
n
Reserva
n
{ disjunta, completa }
1 Avión militar
Avión comercial
Línea aérea
{ disjunta, completa }
Avión de carga
Avión de pasajeros
Prácticas 4-8
II. Breve Tour por UML
Diagrama de Estados alta
baja
sin pr éstam os
núm er o_prés tam os = 0
Socio número : int nombre : char[50] número_prestamos : int = 0
pres tar
devol ver [ núm ero_p rést amo s = 1 ]
alta() baja() prestar(código_libro : int, fecha : date) devolver(código_libro : int, fecha : date)
núm ero_prés tam os > 0 c on prés tam os pres tar
devolver[ núm ero_prés tam os > 1 ]
II. Breve Tour por UML
Diagrama de Actividad Buscar Bebida
[no hay café]
[hay zumo]
[hay café Poner café en filtro
Añadir agua al depósito
[no zumo]
Coger taza Coger zumo
Poner filtro en máquina
Encender máquina / cafetera.On Café en preparación indicador de fin Servir café
Beber
II. Breve Tour por UML
… Otro Ejemplo (con swim lines) Pasajero
Solicitar pasaje
Vendedor
Airline
Verificar existencia vuelo Dar detalles vuelo Informar alternativas y precios
Seleccionar vuelo
Solicitar pago Reservar plazas Confirmar plaza reservada
Pagar pasaje Emitir billete
Práctica 9
II. Breve Tour por UML
Diagrama Componentes Control y Análisis Interfaz de Terminal
Comment
Comment
Gestión de Cuentas Comment
Rutinas de Coneccion Comment
Acceso a BD Comment
II. Breve Tour por UML
Diagrama de Despliegue Servidor Central
Control y Análisis Comment
Acceso a BD Comment
Rutinas de Coneccion Comment
Terminal de Consulta Rutinas de Coneccion Comment Punto de Venta
Interfaz de Terminal Comment
Rutinas de Coneccion Comment
Gestión de Cuentas Comment
Interfaz de Terminal 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