Está en la página 1de 64

Desarrollo de Software Orientado a Objeto usando UML

www.dsic.upv.es/~uml

Contenido
I. Introduccin

Modelado de Software
II. Breve Tour por UML III. El Paradigma Orientado a Objeto usando UML

Fundamentos del Modelado OO Requisitos del software Interaccin entre objetos Clases y relaciones entre clases Comportamiento de objetos Componentes Distribucin de componentes

IV. Proceso de Desarrollo de SW basado en UML V. Conclusiones www.dsic.upv.es/~uml

I Introduccin

www.dsic.upv.es/~uml

Introduccin: Modelado de SW

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

CARACTERISTICAS DEL SOFTWARE


ELEMENTO LOGICO, SE DESARROLLA, SE DETERIORA POR LOS CAMBIOS ATRIBUTOS DE LA CALIDAD DEL SOFTWARE FIABLE : MISMOS RESULTADOS. EFICIENTE : USO OPTIMOS DE RECURSOS DE MAQUINA ROBUSTO : BUEN COMPORTAMIENTO EN SITUACIONES DIFICILES CORRECTO : EJECUTA LO QUE QUIERE EL USUARIO PORTABLE : ADAPTA A DIFERENTES ENTORNOS ADAPTABLE : MODIFICA ALGUNA FUNCION SIN ALTERAR EL RESTO INTELIGIBLE : DISEO CLARO, DOCUMENTADO Y ESTRUCTURADO www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Construccin de una casa para fido

Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples

www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Construccin de un rascacielos

www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Claves en Desarrollo de SI
TECNOLOGICA

ORGANIZACION

PROCESO

www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Abstraccin - Modelado Visual (MV)


El modelado captura las partes esenciales del sistema
Orden Item

envo

Proceso de Negocios Sistema Computacional

www.dsic.upv.es/~uml

Introduccin: UML

www.dsic.upv.es/~uml

I. Introduccin: UML

Qu es UML?
UML = Unified Modeling Language
Un lenguaje de propsito general para el modelado orientado a objetos. Impulsado por el Object Management Group (OMG, www.omg.org) Documento OMG Unified Modeling Language Specification UML combina notaciones provenientes desde:

Modelado Orientado a Objetos

www.dsic.upv.es/~uml

I. Introduccin: UML

Situacin de Partida
Diversos mtodos y tcnicas OO, con muchos aspectos en comn pero utilizando distintas notaciones Inconvenientes para el aprendizaje, aplicacin, construccin y uso de herramientas, etc.

Pugna entre distintos enfoques (y correspondientes gurs) Establecer una notacin estndar

www.dsic.upv.es/~uml

I. Introduccin: UML

Historia de UML
Comenz como el Mtodo Unificado, con la participacin de Grady Booch y Jim Rumbaugh. Se present en el OOPSLA95 El mismo ao se uni Ivar Jacobson. Los Tres Amigos son socios en la compaa Rational Software. Herramienta CASE Rational Rose

www.dsic.upv.es/~uml

I. Introduccin: UML

Historia de UML
2005? 2003 2000 1999 1998 Nov 97

UML 2.0
UML 1.5 UML 1.4 UML 1.3 UML 1.2
UML aprobado por el OMG Revisiones menores

www.dsic.upv.es/~uml

I. Introduccin: 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 DSouza)

Intellicorp and James Martin & co. (James Odell)

MCI Systemhouse Microsoft ObjecTime Oracle Corp. Platinium Technology Sterling Software Taskon Texas Instruments Unisys

www.dsic.upv.es/~uml

I. Introduccin: UML

UML aglutina enfoques OO


Rumbaugh Booch Odell Shlaer-Mellor
Object life cycles

Jacobson Meyer
Pre- and Post-conditions

UML
State Charts

Harel

Gamma et. al.


Frameworks, patterns, notes

Embly
Singleton classes

Wirfs-Brock Fusion
Responsabilities Operation descriptions, message numbering

www.dsic.upv.es/~uml

I. Introduccin: UML

Aspectos Novedosos
Definicin semi-formal del Metamodelo de UML Mecanismos de Extensin en UML:

Stereotypes
Constraints

Permiten adaptar los elementos de modelado,


asignndoles una semntica particular

www.dsic.upv.es/~uml

I. Introduccin: UML

Inconvenientes en UML
Definicin del proceso de desarrollo usando UML. UML no es una metodologa

No cubre todas las necesidades de especificacin de un proyecto software. Por ejemplo, no define los documentos textuales
Ejemplos aislados Monopolio de conceptos, tcnicas y mtodos en torno a UML y el OMG

www.dsic.upv.es/~uml

I. Introduccin: UML

Perspectivas de UML
UML es el lenguaje de modelado orientado a objetos estndar predominante ahora y en los prximos aos Razones:

Participacin de metodlogos influyentes Participacin de importantes empresas Estndar del OMG


Evidencias:

www.dsic.upv.es/~uml

Herramientas que proveen la notacin

II Breve Tour por UML

www.dsic.upv.es/~uml

II. Breve Tour por UML

Modelos y Diagramas
Un modelo captura una vista de un sistema del

mundo real. Es una abstraccin de dicho


sistema, considerando un cierto propsito. As, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propsito del modelo, y a un apropiado nivel de

detalle.
Diagrama: una representacin grfica de una coleccin de elementos de modelado, a menudo

www.dsic.upv.es/~uml

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 inters El cdigo fuente del sistema es el modelo ms detallado del sistema (y adems 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 www.dsic.upv.es/~uml

II. Breve Tour por UML

Diagramas de UML 1.5


Diagrama de Casos de Uso Diagrama de Clases Diagrama de Objetos Diagramas de Comportamiento Diagrama de Estados Diagrama de Actividad Diagramas de Interaccin Diagrama de Secuencia Diagrama de Colaboracin Diagramas de implementacin Diagrama de Componentes Diagrama de Despliegue

www.dsic.upv.es/~uml

II. Breve Tour por UML

... Diagramas de UML


Los diagramas expresan grficamente partes de un modelo
Use Case Use Case Diagramas Diagrams de Diagrams Casos de Uso State State Diagramas Diagrams de Diagrams Clases State State Diagramas Diagrams de Diagrams Objetos State State Diagramas Diagrams de Diagrams Componentes
Component Component Diagrams Diagramas de Diagrams

Use Case Use Case Diagramas Diagrams de Diagrams Secuencia Scenario Scenario Diagramas Diagrams de Diagrams Colaboracin Scenario Scenario Diagramas Diagrams de Diagrams Estados

Modelos

Diagramas de Actividad

Distribucin

www.dsic.upv.es/~uml

II. Breve Tour por UML

Organizacin de Modelos
4+1 vistas de Kruchten (1995)
Vista de Realizacin

Vista Lgica

Vista de los Casos de Uso


Vista de Procesos

Vista de Distribucin

Este enfoque sigue el browser de Rational Rose

www.dsic.upv.es/~uml

II. Breve Tour por UML

Paquetes en UML
Los paquetes ofrecen un mecanismo general para la organizacin de los modelos/subsistemas agrupando elementos de modelado Se representan grficamente como:
Nombre de paquete

www.dsic.upv.es/~uml

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 lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete

www.dsic.upv.es/~uml

Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia

II. Breve Tour por UML

Paquetes en UML
Todos los elementos 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

www.dsic.upv.es/~uml

II. Breve Tour por UML

...Paquetes en Rational Rose


Customers

Otra Clase

Customers

<<access>>

CheckingAccount
(f rom Banking)

Banking

Banking

CheckingAccount

www.dsic.upv.es/~uml

II. Breve Tour por UML

Diagrama de Casos de Uso


Casos de Uso es una tcnica para capturar informacin respecto de los servicios que un sistema proporciona a su entorno No pertenece estrictamente al enfoque orientado a objeto, es una tcnica para captura y especificacin de requisitos

www.dsic.upv.es/~uml

II. Breve Tour por UML

Ejemplos
Ejemplo:
Retirar dinero

Cliente

Consultar Extracto

Realizar transferencia
Prctica 2

www.dsic.upv.es/~uml

II. Breve Tour por UML

Diagrama de Secuencia
:WInPrstamos :Socio :Video :Prstamo

: Encargado

prestar(video, socio) verificar situacin socio verificar situacin video

registrar prstamo entregar recibo

www.dsic.upv.es/~uml

II. Breve Tour por UML

Diagrama de Colaboracin
:Socio

:Video 2: verificar situacin socio

1: prestar(video, socio) :WInPrstamos 5: entregar recibo : Encargado

3: verificar situacin video

4: registrar prstamo

:Prstamo

Prctica 3

www.dsic.upv.es/~uml

II. Breve Tour por UML

Diagrama de Clases
El Diagrama de Clases es el diagrama principal para el anlisis y diseo del sistema

Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia La definicin de clase incluye definiciones para atributos y operaciones
El modelo de casos de uso debera aportar informacin para establecer las clases, objetos, atributos y operaciones

www.dsic.upv.es/~uml

II. Breve Tour por UML

Ejemplos (Clase y Visibilidad)

www.dsic.upv.es/~uml

II. Breve Tour por UML

Ejemplos (Asociacin)

Departamento

dirige 0..1

director 1

Profesor

www.dsic.upv.es/~uml

II. Breve Tour por UML

Ejemplos (Clase Asociacin)


empleador Empresa * 1..* trabajadores Empleado

Cargo nombre sueldo subordinado 1..*

superior 0..1

www.dsic.upv.es/~uml

II. Breve Tour por UML

Ejemplos (Generalizacin)

Trabajador

{ disjunta, completa }

Directivo

Administrativo

Obrero

www.dsic.upv.es/~uml

II. Breve Tour por UML

Ejemplos
Motor 1..4 Piloto 1..2 Vendedor de billetes 1

1 Avin 1 n

n Vuelo n 1 n

n Reserva

{ disjunta, completa }

1 Avin militar Avin comercial Lnea area

{ disjunta, completa }

Prcticas 4

Avin de carga

Avin de pasajeros

www.dsic.upv.es/~uml

II. Breve Tour por UML

Diagrama de Estados
alta baja nmero_prstamos = 0

sin prstamos
Socio nmero : int nombre : char[50] nmero_prestamos : int = 0

prestar
alta() baja() prestar(cdigo_libro : int, fecha : date) devolver(cdigo_libro : int, fecha : date)

devolver[ nmero_prstamos = 1 ]

nmero_prstamos > 0 con prstamos prestar

devolver[ nmero_prstamos > 1 ]

www.dsic.upv.es/~uml

II. Breve Tour por UML

Diagrama de Actividad
Buscar Bebida [ no hay caf ] [ no zumo ] [ hay caf ] [ hay zumo ] Poner caf en filtro Aadir agua al depsito Coger taza Coger zumo

Poner filtro en mquina

Encender mquina / cafetera.On Caf en preparacin indicador de fin Servir caf Beber

www.dsic.upv.es/~uml

Prctica 5

II. Breve Tour por UML

Diagrama Componentes
Interfaz de Terminal Control y Anlisis

Gestin de Cuentas

Rutinas de conexin

Acceso a BD

www.dsic.upv.es/~uml

II. Breve Tour por UML

Resumen
UML define una notacin que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos El 80 por ciento de la mayora de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- Grady Booch

www.dsic.upv.es/~uml

III El Paradigma Orientado a Objeto

www.dsic.upv.es/~uml

III. El Paradigma OO

Por qu la Orientacin a Objetos?


Proximidad de los conceptos de modelado respecto de las entidades del mundo real
Mejora captura y validacin de requisitos Acerca el espacio del problema y el

espacio de la solucin
Modelado integrado de propiedades estticas y dinmicas del mbito del problema
Facilita construccin, mantenimiento y

www.dsic.upv.es/~uml

reutilizacin

III. El Paradigma OO

Por qu la Orientacin a Objetos?


Conceptos comunes de modelado durante el anlisis, diseo e implementacin
Facilita la transicin entre distintas fases Favorece el desarrollo iterativo del

sistema Disipa la barrera entre el qu y el cmo

www.dsic.upv.es/~uml

Sin embargo, existen problemas ...

III. El Paradigma OO

Problemas en OO
...Los conceptos bsicos de la OO se conocen desde hace dos dcadas, pero su aceptacin todava no est tan extendida como los beneficios que esta tecnologa puede sugerir ...La mayora de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretenda. Esta prctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados
--Wolfgang Strigel

www.dsic.upv.es/~uml

III. El Paradigma OO

Problemas en OO
Un objeto contiene datos y operaciones que operan sobre los datos, pero ... Podemos distinguir dos tipos de objetos degenerados: Un objeto sin datos (que sera lo mismo que una biblioteca de funciones) Un objeto sin operaciones, con slo operaciones del tipo crear, recuperar, actualizar y borrar (que se correspondera con las estructuras de datos tradicionales) construido con objetos degenerados no es un sistema verdaderamente orientado a objetos

www.dsic.upv.es/~uml

Fundamentos de Modelado OO

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Objeto = unidad atmica que encapsula estado y comportamiento La encapsulacin en un objeto permite una alta cohesin y un bajo acoplamiento Un objeto puede caracterizar una entidad fsica (coche) o abstracta (ecuacin matemtica)

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
En UML, un objeto se representa por un rectngulo con un nombre subrayado
Otro objeto

Un objeto

Otro objeto ms

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Ejemplo de varios objetos relacionados:
Cuenta Corriente 101 Juan Banco de Valencia

Felipe Cuenta Corriente 114

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Objeto = Identidad + Estado + Comportamiento El estado est representado por los valores de los atributos Un atributo toma un valor en un dominio Un coche concreto Azul
979 Kg 70 CV ...

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Clases y Objetos

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Ejemplo de interaccin:
Un Objeto Operacin 1

1: Un mensaje

Operacin 2

Otro Objeto

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Los mensajes navegan por los enlaces, a priori en ambas direcciones Estado y comportamiento estn relacionados Ejemplo: no es posible aterrizar un avin si no est volando. Est volando como consecuencia de haber despegado del suelo

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Persistencia
La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo Podremos despus reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la ejecucin (materializacin del objeto) Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debera ser transparente, un objeto existe

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Un sistema informtico puede verse como un conjunto de objetos autnomos y concurrentes que trabajan de manera coordinada en la consecucin de un fin especfico El comportamiento global se basa pues en la comunicacin entre los objetos que la componen

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Categoras de objetos:

Activos - Pasivos Cliente Servidores, Agentes


Objeto Activo: posee un hilo de ejecucin (thread) propio y puede iniciar una actividad Objeto Pasivo: no puede iniciar una actividad pero puede enviar estmulos una vez que se le solicita un servicio Cliente es el objeto que solicita un servicio.

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Los agentes renen las caractersticas de clientes y servidores Son la base del mecanismo de delegacin Introducen indireccin: un cliente puede comunicarse con un servidor que no conoce directamente

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Ejemplo con objeto agente:
Servidor 1 2: Un agente 1: Un cliente 3: Servidor 2

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje
La unidad de comunicacin entre objetos se llama mensaje
Objeto 1 1: Mensaje A Objeto 2

2: Mensaje C 4: Mensaje E Objeto 3 3: Mensaje D Objeto 4

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Mensaje y Estmulo
Un estmulo causar la invocacin de una operacin, la creacin o destruccin de un objeto o la aparicin de una seal Un mensaje es la especificacin de un estmulo Tipos de flujo de control: Llamada a procedimiento o flujo de control anidado Flujo de control plano Retorno de una llamada a procedimiento Otras variaciones

www.dsic.upv.es/~uml