Beruflich Dokumente
Kultur Dokumente
Pedro Mejia
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
Introduccin: Modelado de SW
Pedro Mejia
Pedro Mejia
I. Introduccin: Modelado de SW
eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas
6
Pedro Mejia
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
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
Pedro Mejia
Mltiples Sistemas
Componentes Reutilizados
Promover la Reutilizacin
Curso de Ingeniera de Software, CINVESTAV-IPN
Introduccin: UML
Pedro Mejia
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
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
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
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
15
Rational Software
(Grady Booch, Jim Rumbaugh y Ivar Jacobson)
MCI Systemhouse Microsoft ObjecTime Oracle Corp. Platinium Technology Sterling Software Taskon Texas Instruments Unisys
Pedro Mejia
16
Jacobson Meyer
Pre- and Post-conditions
UML
State Charts
Harel
Embly Fusion
Operation descriptions, message numbering
Singleton classes
Wirfs-Brock
Responsabilities
Pedro Mejia
17
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
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
Pedro Mejia
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
Modelos
Diagramas de Actividad
de Distribucin
22
Pedro Mejia
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
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
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
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:
Pedro Mejia
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
Pedro Mejia
28
Cliente
Proveedor
Pedro Mejia
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
Vi d eotae p Tap e i d s .
Pedro Mejia
30
Diagrama de Secuencia
: Encargado : WInP rstam os :Socio :Video : Prstamo
prestar(video, socio) verificar situacin socio verificar situacin video registrar prstamo entregar recibo
Pedro Mejia
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
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
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
[ no hay caf ]
[ no zumo ]
[ hay zumo ] Poner caf en filtro Aadir agua al depsito Coger taza Coger zumo
Encender mquina / cafetera.On Caf en preparacin indicador de fin Servir caf Beber
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
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
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
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
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
39
Customers
Otra Cl ase
<<access>>
CheckingAccount
(f rom Banking)
Banking
Banking
CheckingAccount
Pedro Mejia
40
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
41
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)
43
Modelado de Software.
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
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