modelado uml 1

47
1 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN Modelado de Software Orientado a Objetos usando UML Dr. Pedro Mejia Alvarez Departamento de Computacion CINVESTAV-IPN

Upload: raulgarcia

Post on 29-Aug-2014

139 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Modelado Uml 1

1 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Modelado de Software Orientado a Objetos usando

UMLDr. Pedro Mejia Alvarez

Departamento de ComputacionCINVESTAV-IPN

Page 2: Modelado Uml 1

2 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

ContenidoI. Introducción

– Modelado de Software– UML

II. Breve Tour por UMLIII. El Paradigma Orientado a Objeto usando UML

– Fundamentos del Modelado OO– Requisitos del software– Interacción entre objetos– Clases y relaciones entre clases– Comportamiento de objetos– Componentes– Distribución y despliegue de componentes– Object Constraint Language (OCL)

IV. Proceso de Desarrollo de SW basado en UMLV. Conclusiones

Page 3: Modelado Uml 1

3 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

IIntroducción

Page 4: Modelado Uml 1

4 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Introducción: Modelado de SW

Page 5: Modelado Uml 1

5 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Construcción de Algoritmo de Fibonacci

Puede hacerlo una sola personaRequiere:

Modelado mínimoProceso simpleHerramientas simples

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

Page 6: Modelado Uml 1

6 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Construcción del software para un cajero automatico

Construida eficientemente y en un tiempo razonable por un equipoRequiere:

ModeladoProceso bien definidoHerramientas más sofisticadas

I. Introducción: Modelado de SW

Auto-tellersystem

Securitysystem

Maintenancesystem

Accountdatabase

Usagedatabase

Branchaccounting

system

Branchcountersystem

Page 7: Modelado Uml 1

7 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Sistema de Radar de Aeropuerto

Data comms.system

Transpondersystem

Radarsystem

Aircraftcomms.

Telephonesystem

Flight plandatabase

Backupposition

processor

Positionprocessor

Comms.processor

Backup comms.processor

Aircraftsimulation

system

Weather mapsystem

Accountingsystem

Controllerinfo. system

Controllerconsoles

Activity loggingsystem

Herramientas Proceso

Notación

Page 8: Modelado Uml 1

8 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Pero, como se modela un sistema con esta complejidad ?

Page 9: Modelado Uml 1

9 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Beneficios del Modelado

Interface de Usuario(Visual Basic,

Java, ..)Lógica del Negocio

(C++, Java, ..)

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

Múltiples Sistemas

Componentes Reutilizados

Manejar la complejidad

“Modelar el sistema independientemente del lenguaje de implementación”

Promover la Reutilización

Page 10: Modelado Uml 1

10 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Introducción: UML

Page 11: Modelado Uml 1

11 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

¿Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito 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 • Modelado de Datos• Modelado de Componentes • Modelado de Flujos de Trabajo (Workflows)

Page 12: Modelado Uml 1

12 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Antes de UML Diversos métodos y técnicas OO, con muchos

aspectos en común pero utilizando distintas notaciones.

Modelos de Constantine, Jackson, Gane Sarson, Shlaer-Mellor, etc.

Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas CASE, etc.

Pugna entre distintos enfoques

Objetivo: Establecer una notación estándar

Page 13: Modelado Uml 1

13 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Antes de UML Modelos de descripción de procesos: Diagramas

de flujo de datos. Modelos de descripción de datos: Diagramas de

entidad-relación, diccionario de datos. Modelos de descripción arquitectural: Diagramas

de Estructura. Modelos de descripción de comportamiento:

State-Charts.

Page 14: Modelado Uml 1

14 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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

Page 15: Modelado Uml 1

15 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Historia de UML

Nov ‘97 UML aprobado por el OMG

1998

1999

2000

UML 1.2

UML 1.3

UML 1.4

2005? UML 2.0

Revisiones menores

UML 1.52003

Page 16: Modelado Uml 1

16 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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

Page 17: Modelado Uml 1

17 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

UML reune a 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

Page 18: Modelado Uml 1

18 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Factores importantes en UML Definición del proceso de desarrollo usando

UML. UML no es una metodología o proceso. No cubre todas las necesidades de

especificación de un proyecto software.

Util en la definición de requerimientos, pero tambien en el diseño (y en las pruebas…).

Notacion estándar y soportada por herramientas CASE

Estándar del OMG Gran cantidad de Libros y cursos.

Page 19: Modelado Uml 1

19 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

IIIntroducion a UML

Page 20: Modelado Uml 1

20 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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 completa-mente 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

Page 21: Modelado Uml 1

21 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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 Diagramas

Page 22: Modelado Uml 1

22 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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

Modelos

Los diagramas expresan gráficamente partes de un modelo

Page 23: Modelado Uml 1

23 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagrama de Casos de Uso

Es una técnica para capturar información sobre los servicios

queun sistema proporciona a suentorno, desde el punto de vista

delusuario. Es una técnica para

capturay especificación de requisitos

Retirar dinero

Consultar ExtractoCliente

Realizar transferencia

Page 24: Modelado Uml 1

24 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagrama de Clases El Diagrama de Clases es el diagrama principal

para el análisis y diseño del sistema 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 debería aportar información para establecer las clases, objetos, atributos y operaciones

Page 25: Modelado Uml 1

25 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Clases y Objetos

AlumnoDNI : char[10]número_exp : intnombre : char[50]

alta()poner_nota(asignatura : char *, año : int, nota : float)matricular(cursos : asignatura, año : int)listar_expediente()

En UML, para distinguir una clase y una instancia de la clase (un objeto) se representa por un rectángulo con un nombre subrayadoObjeto = Identidad + Estado + ComportamientoEl estado está representado por los valores de los atributos los cuales tienen una visibilidad.Un atributo toma un valor en un dominio concreto.

Page 26: Modelado Uml 1

26 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagramas de Clases

Un diagrama de clases describe los tipos de objetosen el sistema y los distintos tipos de relacionesestáticas que existen entre ellos. Existen cuatrorelaciones:

• Asociación• Generalización/especialización• Agregación/composición• Dependencia

Page 27: Modelado Uml 1

27 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

AsociaciónProfesorDepartamento

10..1

director

1

dirige

0..1

•Permite asociar objetos.•La asociacion se representa mediante una línea que une las cajas de los dos objetos.

Empresa Empleado

1..** 1..**

trabajadoresempleador

Cargonombresueldo 0..1

1..*

superior

subordinado 1..*

0..1

Page 28: Modelado Uml 1

28 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Generalización

Catalogue numberAcquisition dateCostTypeStatusNumber of copies

Library item

Acquire ()Catalogue ()Dispose ()Issue ()Return ()

AuthorEditionPublication dateISBN

BookYearIssue

MagazineDirectorDate of releaseDistributor

Film

VersionPlatform

Computerprogram

TitlePublisher

Published itemTitleMedium

Recorded item

Esta es una relación de tipo: es-un. Una generalización serepresenta como una flecha que une a las subclases(hijos) a la superclase (padre), con la flecha tocando la caja de la superclase.

Page 29: Modelado Uml 1

29 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Relacion de Dependencia entre Clases

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

ProveedorCliente

Page 30: Modelado Uml 1

30 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Agregacion de Objetos

Videotape

Tape ids.

Lecturenotes

Text

OHP slidesSlides

AssignmentCredits

SolutionsTextDiagrams

Exercises#ProblemsDescription

Course titleNumberYearInstructor

Study pack•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.

Page 31: Modelado Uml 1

31 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagrama de Secuencia

: Encargado :WInPréstamos :Socio :Video :Préstamo

prestar(video, socio)

verificar situación socio

verificar situación video

registrar préstamo

entregar recibo

Describe el comportamiento dinamico del los objetos en el sistema

Page 32: Modelado Uml 1

32 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagrama de Colaboración

: 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

Modela la interacción entre los objetos de un Caso de Uso

Los objetos están conectados por enlaces (links) en los cuales se representan los mensajes enviados acompañados de una flecha que indica su dirección

Ofrece una mejor visión del escenario cuando el analista está intentando comprender la participación de un objeto en el sistema

Page 33: Modelado Uml 1

33 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagrama de Estados

con préstamos

sin préstamos

alta baja

prestar devolver[ número_préstamos = 1 ]

prestar

devolver[ número_préstamos > 1 ]

número_préstamos = 0

número_préstamos > 0

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)

Modela el comportamiento de una parte del sistema

Page 34: Modelado Uml 1

34 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagrama de ActividadBuscar Bebida [ no hay café ]

Poner café en filtro

Añadir agua al depósito

Coger taza

Poner filtro en máquina

Encender máquina

Café en preparación

/ cafetera.On

Servir café Beber

Coger zumo

[ hay café ]

indicador de fin

[ hay zumo ]

[ no zumo ]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 lógica de una operación (método)

(3) Parte o toda la descripción de un Caso de uso

(4) La descripción de un Flujo de Trabajo

Page 35: Modelado Uml 1

35 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Diagrama ComponentesInterfaz de Terminal

Gestión de Cuentas Rutinas de conexión Acceso a BD

Control y Análisis

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 código fuente, binario o ejecutable.

Una relación de dependencia indica que un componente utiliza otro, por lo cual depende de él

Page 36: Modelado Uml 1

36 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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

Modela la distribución en tiempo de ejecución de

los elementos de procesamiento y componentes de

software, junto a los procesos y objetos

asociados Se modelan los nodos y

la comunicación entre ellos

Cada nodo puede contiene instancias de

componentes

Page 37: Modelado Uml 1

37 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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

Page 38: Modelado Uml 1

38 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

… 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

Page 39: Modelado Uml 1

39 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

… 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

Page 40: Modelado Uml 1

40 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

...Paquetes en Rational Rose

CheckingAccount

Customers

Banking

Customers

Banking

<<access>> CheckingAccount(f rom Banking)

Otra Clase

Page 41: Modelado Uml 1

41 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

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.

Page 42: Modelado Uml 1

42 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Modos de utilizacion de UML Ingenieria hacia adelante(Forward

Engineering)• Se comienza con un modelo antes de producir codigo

Ingenieria en reversa (Reverse Engineering)• Se crea un modelo a partir de algun codigo• Proyectos de interfaces o re-ingenieria

Ingenieria ciclica (Roundtrip Engineering)• 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.

Se asume que a partir de UML se puede producir codigo, pero en donde se ubica UML dentro del proceso de Diseño ?.

Page 43: Modelado Uml 1

43 Pedro Mejia Curso de Ingeniería 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 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)

Page 44: Modelado Uml 1

44 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Claves en el Desarrollo de Software

Herramientasp.e. Rational Rose

Poseidon

Procesop.e. Rational Unified Process

Métrica 3.0 o XP

NotaciónUML

Page 45: Modelado Uml 1

45 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Modelado de Software. ¿Cuál es el propósito de nuestros modelos?

“Documentar”. Comunicar ideas y estudiar alternativas Tomar decisiones de análisis/diseño que dirijan la

implementación Generar parcial o totalmente una implementación a partir de

los modelos Pragmatismo, los modelos deben ser útiles.

Principio básico: “Sencillez y Elegancia” Gestión de modelos

Distintos nivel de abstracción, expresados en diferentes modelos

Seguimiento de transformaciones durante el proceso (Traceability)

Sincronización de modelos Dificultades para la introducción de notaciones y

herramientas de modelado. La importancia del Proceso de Desarrollo

Page 46: Modelado Uml 1

46 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

Resumen

UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos

El modelo de proceso RUP utiliza UML para el modelado.

Page 47: Modelado Uml 1

47 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN

BibliografíaPartes 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