41
1 www.dsic.upv.es/~uml 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

Desarrollo de Software Orientado a Objeto usando UML€¦ · Perspectivas de UML UML será el lenguaje de modelado ... sistema es el modelo más detallado del sistema (y además

Embed Size (px)

Citation preview

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