mis diapositivas uml

33
Modelado de Software Orientado a Objetos usando UML

Upload: beatriz-moreyra

Post on 14-Feb-2017

102 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Mis diapositivas uml

Modelado de Software Orientado a Objetos usando UML

Page 2: Mis diapositivas uml

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 3: Mis diapositivas uml

Construcción del software para un cajero automatico

Auto-tellersystem

Securitysystem

Maintenancesystem

Accountdatabase

Usagedatabase

Branchaccounting

system

Branchcountersystem

Page 4: Mis diapositivas uml

Beneficios del Modelado

Manejar la complejidad Mejora la comunicación entre programadores Ayuda a crear un modelado de la estructura para el diseño de un

programa Hacer saber de las necesidades servidor cliente Modelar el sistema independientemente del lenguaje de

implementación” Promover la Reutilización

Page 5: Mis diapositivas uml

Que 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 6: Mis diapositivas uml

Pioneros de UML

Grady Booch James Rumbaugh Ivar Jacobson

Cada uno había desarrollado su método pero compartieron notas

Page 7: Mis diapositivas uml

Que no es UML

No es programación No esta asociado a un lenguaje No es una metodología Empresas pioneras en usar UML• Texas• Dec• Texas instruments• Microsoft• Oracle

Page 8: Mis diapositivas uml

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…).

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

Page 9: Mis diapositivas uml

Que es el OMG

El Object Management Group (OMG) es un consorcio, formado en 1989, dedicado al cuidado y el establecimiento de diversos estándares de tecnologías orientadas a objetos, tales como UML, XMI, CORBA y BPMN.

Es una organización sin fines de lucro que promueve el uso de tecnología orientada a objetos mediante guías y especificaciones.

El grupo está formado por diversas compañías y organizaciones con distintos privilegios dentro de la misma.1

Certificaciones OMG ofrece diferentes certificaciones profesionales: OCEB 2 - OMG Certified Expert in Business Process Management (BPM)2

OCUP 2 - OMG Certified UML Professional3 OCSMP - OMG Certified Systems Modeling Professional4 OCRES - OMG Certified Real-time and Embedded Systems Specialist5

Page 10: Mis diapositivas uml

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

Page 11: Mis diapositivas 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 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

Page 12: Mis diapositivas uml

Diagramas de UML

Define la estructura y el comportamiento del programa Se utiliza para hacer el análisis del sistema Se pueden correlacionar un diagrama con otro Genera muchas formas de organizarlos y extenderlos

Page 13: Mis diapositivas uml

Diagramas de UMLLos diagramas expresan gráficamente partes de un modelo

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

Page 14: Mis diapositivas uml

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 15: Mis diapositivas uml

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 16: Mis diapositivas uml

Clases y Objetos

Page 17: Mis diapositivas uml

Diagramas de Clases

Un diagrama de clases describe los tipos de objetos en el sistema y los distintos tipos de relaciones estáticas que existen entre ellos. Existen cuatro relaciones:

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

Page 18: Mis diapositivas uml

AsociaciónProfesorDepartamento

10..1

director

1

dirige

0..1

Empresa Empleado

1..** 1..**

trabajadoresempleador

Cargonombresueldo 0..1

1..*

superior

subordinado 1..*

0..1

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

Page 19: Mis diapositivas uml

Generalización

Esta es una relación de tipo: es-un.

Una generalización se representa como una flecha que une a las subclases (hijos) a la superclase (padre), con la flecha tocando la caja de la superclase.

Catalogue numberAcquisition dateCostTypeStatusNumber of copies

Library item

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

AuthorEditionPublication dateISBN

Book

YearIssue

MagazineDirectorDate of releaseDistributor

Film

VersionPlatform

Computerprogram

TitlePublisher

Published itemTitleMedium

Recorded item

Page 20: Mis diapositivas uml

Relacion de Dependencia entre Clases

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

ProveedorCliente

Page 21: Mis diapositivas uml

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.

Videotape

Tape ids.

Lecturenotes

Text

OHP slides

SlidesAssignment

Credits

SolutionsTextDiagrams

Exercises#ProblemsDescription

Course titleNumberYearInstructor

Study pack

Page 22: Mis diapositivas uml

Diagrama de Secuencia

Describe el comportamiento dinamico del los objetos en el sistema

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

prestar(video, socio)

verificar situación socio

verificar situación video

registrar préstamo

entregar recibo

Page 23: Mis diapositivas uml

Diagrama de Secuencia

Los Diagramas de Secuencia y de Colaboración son usados para describir gráficamente un caso de uso o un escenario

Un Diagrama de Secuencia muestra los objetos de un escenario mediante líneas verticales y los mensajes entre objetos como flechas conectando objetos

Los mensajes son dibujados cronológicamente desde arriba hacia abajo

Los rectángulos en las líneas verticales representan los periodos de actividad de los objetos.

Page 24: Mis diapositivas uml

Diagrama de Colaboración

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

: 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

Page 25: Mis diapositivas uml

Diagrama de Estados Modela el comportamiento de una parte del sistema

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)

Page 26: Mis diapositivas uml

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

Buscar 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 ]

Page 27: Mis diapositivas uml

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 28: Mis diapositivas uml

Diagrama de Despliegue

Punt o de Vent a

Servidor Cent ral

Terminal de Consult a

Gest ión de Cuent as

Comment

I nt er f az de Terminal

Comment

Rut inas de ConeccionComment

Rut inas de Coneccion

Comment

I nt erf az de Terminal

Comment

Rut inas de Coneccion

Comment

Acceso a BD

Comment

Cont rol 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 29: Mis diapositivas uml

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 30: Mis diapositivas uml

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 31: Mis diapositivas uml

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 32: Mis diapositivas uml

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 33: Mis diapositivas uml

Comentarios Finales

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

http://www.csci.csusb.edu/dick/samples/uml0.html

http://www.tutorialspoint.com/uml/uml_quick_guide.htm

http://classes.engr.oregonstate.edu/eecs/fall2013/cs561/UML.pdf

Herramientas de modelado UML https://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools