Vous êtes sur la page 1sur 47

Modelado de Software Orientado a Objetos usando UML

Dr. Pedro Mejia Alvarez

Departamento de Computacion CINVESTAV-IPN

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

Contenido
I. I. II.

I. II.
Pedro Mejia

Introduccin Modelado de Software UML Breve Tour por UML 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 y despliegue de componentes Object Constraint Language (OCL) Proceso de Desarrollo de SW basado en UML Conclusiones
Curso de Ingeniera de Software, CINVESTAV-IPN

I Introduccin

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

Introduccin: Modelado de SW

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

Construccin de Algoritmo de Fibonacci

int fib(int val){ if ((val==1)||(val==2)) return 1; else return (fib(val-1)+fib(val-2)); }


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

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

I. Introduccin: Modelado de SW

Construccin del software para un cajero automatico


Security system Branch accounting system Auto-teller system Branch counter system U sa ge database Maintenance system Construida Account data base

eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas
6

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

Sistema de Radar de Aeropuerto


Ra da r syste m Tra nsponde r syste m D ata c om m.s syste m A irc ra f t c om m s . Te le phone syste m

Notacin
Position proc e ssor Ba c kup p osition proc e ssor Com m s. proc e ssor Ba c k up c om m s . p roc e ssor

A irc ra ft simulation syste m

Flig ht pla n databa se

Herramientas

Proceso

We a r m a the p syste m A c c ounting syste m Contro lle r info. syste m Controlle r c onso le s

A c tiv ity lo gging syste m


Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

Pero, como se modela un sistema con esta complejidad ?

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

Beneficios del Modelado


Manejar la complejidad
Interface de Usuario (Visual Basic, Java, ..) Lgica del Negocio (C++, Java, ..)

Mltiples Sistemas

Servidor de BDs (C++ & SQL, ..)

Modelar el sistema independientemente del lenguaje de implementacin


Pedro Mejia

Componentes Reutilizados

Promover la Reutilizacin
Curso de Ingeniera de Software, CINVESTAV-IPN

Introduccin: UML

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

10

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:

Pedro Mejia

Modelado Orientado a Objetos Modelado de Datos Modelado de Componentes Modelado de Flujos de Trabajo (Workflows)
Curso de Ingeniera de Software, CINVESTAV-IPN

11

Antes de UML

Diversos mtodos y tcnicas OO, con muchos aspectos en comn pero utilizando distintas notaciones. Modelos de Constantine, Jackson, Gane Sarson, ShlaerMellor, etc. Inconvenientes para el aprendizaje, aplicacin, construccin y uso de herramientas CASE, etc. Pugna entre distintos enfoques Objetivo: Establecer una notacin estndar

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

12

Antes de UML

Modelos de descripcin de procesos: Diagramas de flujo de datos. Modelos de descripcin de datos: Diagramas de entidadrelacin, diccionario de datos. Modelos de descripcin arquitectural: Diagramas de Estructura. Modelos de descripcin de comportamiento: StateCharts.

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

13

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

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

14

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

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

15

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

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

16

UML reune a 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 Fusion
Operation descriptions, message numbering

Singleton classes

Wirfs-Brock
Responsabilities

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

17

Factores importantes en UML

Definicin del proceso de desarrollo usando UML. UML no es una metodologa o proceso. No cubre todas las necesidades de especificacin de un proyecto software. Util en la definicin de requerimientos, pero tambien en el diseo (y en las pruebas). Notacion estndar y soportada por herramientas CASE Estndar del OMG Gran cantidad de Libros y cursos.
Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

18

II Introducion a UML

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

19

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 completa-mente 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 dibujada como un grafo con vrtices conectados por arcos

OMG UML 1.4 Specification 20

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

... 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 entre los diferentes modelos
Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

21

Diagramas de UML
State State Diagramas de Diagrams Use Case Diagrams Use Case State Clases Diagramas de Diagrams State Use Case Diagrams Diagramas de Diagrams Use Case Diagrams Diagramas deCasos de Uso Diagrams Objetos Diagrams Secuencia Scenario Scenario Diagramas de Diagrams Diagrams Colaboracin Scenario Scenario Diagramas de Diagrams Diagrams Estados State State Diagramas de Diagrams Diagrams Componentes
Component Component Diagrams Diagramas Diagrams

diagramas expresan grficamente partes de un mod

Modelos

Diagramas de Actividad

de Distribucin
22

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

Diagrama de Casos de Uso

Retirar dinero

Cliente

C onsultar Extracto

Es una tcnica para capturar informacin sobre los servicios que un sistema proporciona a su entorno, desde el punto de vista del usuario. Es una tcnica para captura y especificacin de requisitos
Pedro Mejia

Realizar transferencia

Curso de Ingeniera de Software, CINVESTAV-IPN

23

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

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

24

Clases y Objetos
En UML, para distinguir una clase y una instancia de la clase (un objeto) se representa por un rectngulo con un nombre subrayado Objeto = Identidad + Estado + Comportamiento El estado est representado por los valores de los atributos los cuales tienen una visibilidad. Un atributo toma un valor en un dominio concreto.

A lum no DNI : c har[10] nm ero_ex p : int nom bre : c har[50] alta() poner_nota(as ignatura : c har *, ao : int, nota : float) m atric ular(c urs os : as ignatura, ao : int) lis tar_ex pediente()

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

25

Diagramas de Clases
Un diagrama de clases describe los tipos de objetos en el sistema y los distintos tipos de relaciones estticas que existen entre ellos. Existen cuatro relaciones:

Asociacin Generalizacin/especializacin Agregacin/composicin Dependencia

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

26

Asociacin
Departam ento dirige 0..1 direc tor 1 Profes or

E pe a mr s

e p ao mle d r *

tr b ja oe aa dr s 1 ..*

E p ao mle d

Cr o ag n mr o be se o u ld s b r in d u od a o 1 ..*

s pr r u eio 0 ..1

Permite asociar objetos. La asociacion se representa mediante una lnea que une las cajas de los dos objetos.
Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

27

Generalizacin
Li br r y item a Ca o e n m ber tal gu u Acqu i siti on da te Cost T ype Sta s tu N u m ber of es copi Acqu ir ( ) e Ca o e ( ) tal gu Di spose ( ) Issu e ( ) Retu r n ( )

Esta es una relacin de tipo: es-un. Una generalizacin se representa como una flecha que une a las subclases (hijos) a la superclase (padre), con la flecha tocando la caja de la superclase.
Book

Pu b ish ed i tem l Titl e Pu b ish er l

Recorded item Title Medi u m

Magazin e Y ear Issu e

Film Di rector Date of rel ease Di str i u tor b

Au th or Editi on Pu b ica on dae l ti t ISBN

Com pu ter program Ver sion Pla orm tf

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

28

Relacion de Dependencia entre Clases


Se usa para mostrar relaciones entre paquetes (grupos de clases)

Cliente

Proveedor

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

29

Agregacion de Objetos
En este modelo se muestra como las clases pueden estar compuestas por otras clases. Existe la relacion de agregacion y la de composicion. Son similares a los modelos de entidad-relacion.
Stu d y p a ck C ou r se ti tl e N u m b er Y ea r I n str u ctor

Assi g n m en t C ed i ts r

O HP sl i d es Sl i d es

L ectu r e n otes Tex t

Vi d eotae p Tap e i d s .

E x er ci ses # Pobl em s r D escr i p ti on

Sol u ti on s Tex t D i arga m s

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

30

Diagrama de Secuencia
: Encargado : WInP rstam os :Socio :Video : Prstamo

prestar(video, socio) verificar situacin socio verificar situacin video registrar prstamo entregar recibo

Describe el comportamiento dinamico del los objetos en el sistema

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

31

Diagrama de Colaboracin
:Socio

Modela la interaccin entre los objetos de un Caso de Uso Los objetos estn conectados por enlaces (links) en los cuales se representan los mensajes enviados acompaados de una flecha que indica su direccin Ofrece una mejor visin del escenario cuando el analista est intentando comprender la participacin de un objeto en el sistema
Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

:Video 2: verificar situacin socio

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

3: verificar situacin video

4: registrar prstamo

:Prstamo

32

Diagrama de Estados
alta baja

sin pr stam os
Socio nmero : int nombre : char[50] nmero_prestamos : int = 0 alta() baja() prestar(cdigo_libro : int, fecha : date) devolver(cdigo_libro : int, fecha : date)

nm er o_prs tam os = 0

pres tar

devol ver [ nm ero_p rst amo s = 1 ]

nm ero_prs tam os > 0 c on prs tam os pres tar

Modela el comportamiento de una parte del sistema


Pedro Mejia

devolver[ nm ero_prs tam os > 1 ]

Curso de Ingeniera de Software, CINVESTAV-IPN

33

Diagrama de Actividad
Es un caso especial de un diagrama de state-chart en donde los estados son actividades (funciones). Es util para dibujar los flujos de trabajo (workflows) en un sistema Puede especificar: (1)El comportamiento de los objetos de una clase (2) La lgica de una operacin (mtodo) (3) Parte o toda la descripcin de un Caso de uso (4) La descripcin de un Flujo de Trabajo
Pedro Mejia

Buscar Bebida [ hay caf ]

[ no hay caf ]

[ no zumo ]

[ 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

Curso de Ingeniera de Software, CINVESTAV-IPN

34

Diagrama Componentes
In fa d T rm l ter z e e ina C n l yA is o tro n lis

G s nd C e ta e ti e u n s

R tin sd c n x n u a e o e i

A c s aB ceo D

Permite modelar la estructura del software y la dependencia entre componentes, en donde un componente es un grupo de clases que trabajan estrechamente. Los componentes pueden corresponder cdigo fuente, binario o ejecutable. Una relacin de dependencia indica que un componente utiliza otro, por lo cual depende de l
Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

35

Diagrama de Despliegue
Servido r Central Acceso a BD Co m m ent Rutinas de Coneccio n Co m m ent Co ntro l y Anlisis Com m ent

Term inal de Co nsulta Rutinas de Coneccion Com m ent Punto de Venta

Interfaz de Term inal Co m m ent

Rutinas de Co necc ion Co m ment

Ges ti n de Cuentas Co m m ent

Interfaz de Term inal Co m m ent

Modela la distribucin en tiempo de ejecucin de los elementos de procesamiento y componentes de software, junto a los procesos y objetos asociados Se modelan los nodos y la comunicacin entre ellos Cada nodo puede contiene instancias de componentes

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

36

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

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

37

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 Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

38

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

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

39

...Paquetes en Rational Rose


Customers

Customers

Otra Cl ase

<<access>>

CheckingAccount
(f rom Banking)

Banking

Banking

CheckingAccount

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

40

Los modelos se usan para describir al sistema de software

Modelo del sistema: Modelo de objetos + modelo funcional + modelo dinamico


Modelo de objetos: Cual es la estructura del sistema? Cuales son los objetos y cual es su relacion?
Notacion UML: Diagramas de clases

Modelo funcional: Cuales son las funciones del sistema? Como fluyen los datos en el sistema?
Notacion UML: Diagramas de casos de uso

Modelo dinamico: Como reaccciona el sistema a eventos externos (e internos) y cual es el flujo de eventos?
Notacion UML: Diagramas de secuencia, state charts y de actividad.

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

41

Modos de utilizacion de UML

Ingenieria hacia adelante(Forward Engineering)


Se comienza con un modelo antes de producir codigo Se crea un modelo a partir de algun codigo Proyectos de interfaces o re-ingenieria Se mueve constantemente entre ingenieria hacia adelante y en reversa. Util en proyectos que utilizan el modelo de procesos evolutivo, o cuando los requerimientos cambian frecuentemente.

Ingenieria en reversa (Reverse Engineering)


Ingenieria ciclica (Roundtrip Engineering)


Pedro Mejia

Se asume que a partir de UML se puede producir codigo, pero en donde se ubica UML dentro del proceso de Diseo ?. 42
Curso de Ingeniera de Software, CINVESTAV-IPN

Proceso de Desarrollo Unificado basado en 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 Anlisis (Analysis Model) M. de Diseo (Design Model) M. de Despliegue (Deployment Model) M. de Datos (Data Model) M. de Implementacin (Implementation Model) M. de Pruebas (Test Model)

Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

43

Claves en el Desarrollo de Software


Notacin UML

Herramientas p.e. Rational Rose Poseidon


Pedro Mejia

Proceso p.e. Rational Unified Process Mtrica 3.0 o XP


44

Curso de Ingeniera de Software, CINVESTAV-IPN

Modelado de Software.

Cul es el propsito de nuestros modelos?


Documentar. Comunicar ideas y estudiar alternativas Tomar decisiones de anlisis/diseo que dirijan la implementacin Generar parcial o totalmente una implementacin a partir de los modelos

Pragmatismo, los modelos deben ser tiles. Principio bsico: Sencillez y Elegancia Gestin de modelos

Distintos nivel de abstraccin, expresados en diferentes modelos Seguimiento de transformaciones durante el proceso (Traceability) Sincronizacin de modelos

Dificultades para la introduccin de notaciones y herramientas de modelado. La importancia del Proceso de Desarrollo
Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

45

Resumen
UML define una notacin que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos El modelo de proceso RUP utiliza UML para el modelado.

Pedro Mejia

Curso de Ingeniera de Software, CINVESTAV-IPN

46

Bibliografa
Partes de este Curso esta basado en el siguiente material: Curso de Desarrollo de Software Orientado a Objetos usando UML, del Prof. Patricio Letelier Torres, del DSIC de la Universidad Politecnica de Valencia. Transparencias del Libro: Object-Oriented Software Engineering: Using UML, Patterns, and Java, Bernd Bruegge & Allen H. Dutoit (3rd. Edition). Prentice Hall, 2009.

UML
www.omg.org/uml/ Martin Fowler, autor de UML Destilled (UML Gota a Gota) http://www.martinfowler.com/

Herramientas CASE
Rational Rose de IBM Herramientas basadas en UML www.objectsbydesign.com/tools/ umltools_byPrice.html
Pedro Mejia Curso de Ingeniera de Software, CINVESTAV-IPN

47