La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Orientado a Objetos usando UML

Presentaciones similares


Presentación del tema: "Orientado a Objetos usando UML"— Transcripción de la presentación:

1 Orientado a Objetos usando UML
Modelado de Software Orientado a Objetos usando UML Dr. Pedro Mejia Alvarez Departamento de Computacion CINVESTAV-IPN

2 Contenido Introducción Modelado de Software UML Breve Tour por UML
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) Proceso de Desarrollo de SW basado en UML Conclusiones

3 I Introducción

4 Introducción: Modelado de SW

5 Construcción de Algoritmo de Fibonacci
int fib(int val){ if ((val==1)||(val==2)) return 1; else return (fib(val-1)+fib(val-2)); } Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software). Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples

6 Construcción del software para un cajero automatico
I. Introducción: Modelado de SW Construcción del software para un cajero automatico Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software). Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas

7 Sistema de Radar de Aeropuerto
Notación Herramientas Proceso

8 Pero, como se modela un sistema con esta complejidad ?

9 Beneficios del Modelado
Manejar la complejidad Interface de Usuario (Visual Basic, Java, ..) Lógica del Negocio (C++, Java, ..) Servidor de BDs (C++ & SQL, ..) Múltiples Sistemas Componentes Reutilizados “... Hay dos formas de construir software: una es hacerlo tan simple que obviamente no existan deficiencias, otra es hacerlo tan complejo que no existan deficiencias obvias” C:A.R. Hoare, Turing Award Lecture 1980. “Modelar el sistema independientemente del lenguaje de implementación” Promover la Reutilización

10 Introducción: UML

11 ¿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, 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) The Object Management Group (OMG) is an open membership, not-for-profit consortium that produces and maintains computer industry specifications for interoperable enterprise applications. Our membership includes virtually every large company in the computer industry, and hundreds of smaller ones. Most of the companies that shape enterprise and Internet computing today are represented on the OMG. Some OMG specifications: Common Object Request Broker Architecture (CORBA) Model Driven Architecture (MDA) Meta-Object Facility (MOF) Unified Modeling Language (UML) XML Metadata Interchange (XMI) Common Warehouse Metamodel (CWM) Software Process Engineering Metamodel (SPEM) Documento “OMG Unified Language Specification”, (versión 1.5, 736 páginas, 1 de Marzo de 2003) Resumen Semántica Guía de Notación Ejemplos de Profiles Intercambio de Modelos UML (Especificación DTD de XMI) Especificación del Object Constraint Language Elementos Estándar de UML B. Ejemplos Action Language Glosario de Modelado del OMG 9

12 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

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

14 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

15 Historia de UML UML 2.0 2005? 2003 UML 1.5 2000 UML 1.4 1999 UML 1.3
Revisiones menores 1998 UML 1.2 Nov ‘97 UML aprobado por el OMG

16 Participantes en UML 1.0 MCI Systemhouse Rational Software Microsoft
(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

17 UML reune a enfoques OO UML Rumbaugh Booch Jacobson Odell Meyer
Pre- and Post-conditions Shlaer-Mellor UML Object life cycles Harel State Charts Gamma et. al. Frameworks, patterns, notes Embly Wirfs-Brock Singleton classes Fusion Responsabilities Operation descriptions, message numbering

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

19 II Introducion a UML

20 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

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

22 Diagramas de UML Los diagramas expresan gráficamente partes de un modelo Use Case Diagrams Diagramas de Casos de Uso Scenario Colaboración State Componentes Component Distribución Objetos Estados Secuencia Clases Actividad Modelos

23 Diagrama de Casos de Uso
Es una técnica para capturar información sobre los servicios que un sistema proporciona a su entorno, desde el punto de vista del usuario. Es una técnica para captura y especificación de requisitos Cada Caso de Uso puede estar definido por: secuencia de pasos (flujo de eventos) ejecutados dentro del caso de uso texto que lo describe precondiciones y postcondiciones para que el caso de uso comience o termine mezclando las anteriores

24 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

25 Clases y Objetos En UML, para distinguir una clase y una instancia de la clase (un objeto) se representa por un rectángulo 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.

26 Diagramas de Clases Asociación Generalización/especialización
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

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

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

29 Relacion de Dependencia entre Clases
Se usa para mostrar relaciones entre paquetes (grupos de clases) Cliente Proveedor

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

31 Diagrama de Secuencia Describe el comportamiento dinamico del los objetos en el sistema 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.

32 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 El 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 El Diagrama de Colaboración ofrece una mejor visión del escenario cuando el analista está intentando comprender la participación de un objeto en el sistema

33 Diagrama de Estados Modela el comportamiento de una parte del sistema

34 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

35 Diagrama Componentes 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

36 Diagrama de Despliegue
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

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

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

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

40 ...Paquetes en Rational Rose
Customers Banking

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

42 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 ?.

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

44 Claves en el Desarrollo de Software
Notación UML Figura “Triangle for Success” adaptada desde “Visual Modeling with Rational Rose and UML” de Terry Quatrani Herramientas p.e. Rational Rose Poseidon Proceso p.e. Rational Unified Process Métrica 3.0 o XP

45 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

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

47 Bibliografía UML Herramientas CASE
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 Martin Fowler, autor de “UML Destilled” (“UML Gota a Gota”) Herramientas CASE Rational Rose de IBM Herramientas basadas en UML


Descargar ppt "Orientado a Objetos usando UML"

Presentaciones similares


Anuncios Google