Post on 02-Feb-2016
UML
Carlos Becerra C. cbecerra@inf.utfsm.cl
¿Qué es orientación a objetos? Conceptos de OO
Objetos, características de los objetos, clases e instancias, herencia, polimorfismo
UML.
Paradigma Orientado a Objetos Contenido
Paradigma Orientado a Objetos ¿Qué es orientación a objetos?
Una técnica de modelamiento Idea
Las personas describen su entorno en base a objetos (naturales, entidades hechas por el hombre y productos), que son clasificados, descritos, organizados, combinados, creados y manipulados.
Modelar un sistema a través de objetos que interactúan entre sí.
Elementos básicos objetos, clasificación, herencia, y
comunicación
Paradigma Orientado a Objetos ¿Qué es orientación a objetos?
¿Por qué la OO? Proximidad de los conceptos de modelación respecto de las
entidades del mundo real Mejora captura y validación de requerimientos Acerca el “dominio del problema” y el “dominio de la
solución”
Los modelos integran el comportamiento estático y dinámico del dominio del problema Facilita construcción, mantenimiento y reutilización
¿Por qué la OO? Conceptos comunes de modelación durante el
análisis, diseño e implementación Facilita la transición entre distintas fases Disipa la barrera entre el “qué” y el “cómo” Favorece el desarrollo iterativo del sistema
Paradigma Orientado a Objetos ¿Qué es orientación a objetos?
Paradigma Orientado a Objetos Conceptos de OO
Objeto Es una entidad capaz de almacenar su estado y ofrecer
operaciones (comportamiento) para examinar o modificar su estado.
Corresponden a entidades reales, ya sean físicas o abstractas.
Ejemplos:
Paradigma Orientado a Objetos Conceptos de OO
Estado y comportamiento Su estado se caracteriza por medio de atributos, mientras sus
comportamiento se representa mediante operaciones (métodos o servicios).
Las operaciones son visibles sólo en términos genéricos, no se detalla la forma en que se realizan.
A veces su estado requiere conocer información de otros objetos. En tal caso se establecen asociaciones entre dichos objetos. Tipos principales: Composición - A está compuesto por B, C, D, E Partición - A es construido por B, C, D, E
Paradigma Orientado a Objetos Conceptos de OO Comunicación
La unidad de comunicación entre objetos se denomina mensaje:
Un mensaje estimula la ocurrencia de cierto comportamiento en el objeto receptor, el cual comienza con la ejecución de una operación.
Una operación dentro de un objeto emisor genera un mensaje de la forma:
mensaje:[destino, operación, parámetros]
,donde destino define el objeto receptor, operación se refiere al método que recibe el mensaje y parámetros proporciona información requerida para el éxito de la operación.
Paradigma Orientado a Objetos Conceptos de OO Otros....
Encapsulamiento - La información contenida en un objeto y sus operaciones sólo pueden manipularse cuando el objeto recibe un estimulo. Por lo tanto la información y el comportamiento de un objeto están encapsuladas en él.
Ocultamiento de información - Para usar un objeto sólo se necesita conocer las operaciones que ofrece y no su implementación.
Polimorfismo - Permite que un número de operaciones diferentes tengan el mismo nombre, reduciendo el acoplamiento entre objetos, es decir, hace cada objeto más independiente.
Paradigma Orientado a Objetos Conceptos de OO
Clases e instancias Una clase representa el template de un objeto que, además
de su comportamiento y estado, describe su estructura interna. Los objetos de la misma clase tienen los mismos atributos y operaciones.
Una instancia corresponde a un objeto creado por la clase. La clase describe la estructura de la instancia, mas el estado de la instancia es almacenado en ella y alterado por las operaciones que se ejecutan en ella.
Paradigma Orientado a Objetos Conceptos de OO
Clases e instancias Nota: es posible considerar una clase como la descripción
de la estructura de un objeto, mientras la instancia como un estado particular del objeto.
Ejemplos: Persona - Pablo Neruda, Pacheco Altamirano, Nicanor
Parra Libro – El Tunel, 100 Años de Soledad
Paradigma Orientado a Objetos Conceptos de OO Herencia
Cuando se describen las clases de un modelo pueden aparecer clases con una parte de estructura común. En tal caso podemos extraer estas características y ponerlas en una clase separada, manteniendo las restantes en sus clases originales.
Luego, si la clase B hereda de la clase A, entonces todos las operaciones y atributos descritas en A son parte de la clase B.
A partir de esta jerarquía de definen 2 nuevos conceptos: Superclase: colección de clases Subclase: instancia de una clase
Paradigma Orientado a Objetos UML (Unified Modeling Language) Definiciones previas
Modelo: representación abstracta de una especificación, un diseño o un sistema. Generalmente, basada en una visión particular y compuesta por uno o más diagramas.
Lenguaje de modelación: es una forma de expresar (notación) los distintos modelos generados durante el proceso de desarrollo. Se compone de sintaxis (conjunto de símbolos y diagramas válidos) y semántica ( reglas de interpretación)
Entregan soporte al desarrollo en relación con la documentación de los productos de trabajo asociados a los modelos elaborados.
Paradigma Orientado a Objetos UML (Unified Modeling Language)
UML es un lenguaje de modelación de propósito general para el modelado OO
Combina notaciones provenientes desde: Modelado OO Modelado de datos Modelado de componentes Modelado de Workflows
Paradigma Orientado a Objetos UML (Unified Modeling Language)
Inicios Diversos métodos de OO, con muchos aspectos en
común pero con diferentes notaciones Dificultad en el aprendizaje, aplicación, desarrollo
y uso de herramientas Pugna entre distintos enfoques
¡Necesidad de una notación estándar!
Paradigma Orientado a Objetos UML (Unified Modeling Language)
Historia de UML 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, con lo cual los “Tres Amigos” son socios en la compañía Rational Software, que han desarrollado una herramienta CASE Rational Rose.
Noviembre de 1997 - UML aprobado por el Object Managment Group (OMG)
Paradigma Orientado a Objetos UML (Unified Modeling Language) - Historia
Nov ‘97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2001 UML 2.0
Paradigma Orientado a Objetos UML (Unified Modeling Language)
Participantes de 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 Platinium Technology Sterling Software Taskon Texas Instruments Unisys
http://www.uml.org/#Links-UML2Tools
Paradigma Orientado a Objetos UML (Unified Modeling Language)
UML está asociado a un proceso de desarrollo particular. No es una metodología. Aumenta las posibilidades de aceptación generalizada de
la notación. La esencia de un proceso apropiado admite mucha
variación y depende de muchos factores.
Provee constructores para una amplia gama de sistemas y actividades
Paradigma Orientado a Objetos UML (Unified Modeling Language)
UML centra el desarrollo en tres modelos diferentes:
Modelo funcional - diagramas de casos de uso, describen el sistema desde la perspectiva del usuario
Modelo objeto - diagrama de clases, describen la estructura de un sistema en términos de objetos, atributos, asociaciones y operaciones.
Modelo dinámico - diagramas de secuencia y de estados, describen el comportamiento del sistema.
Paradigma Orientado a Objetos UML (Unified Modeling Language)
Diagramas deCasos de Uso
Diagramas deColaboración
Diagramas deComponentes
Diagramas deDistribución
Diagramas deObjetos
Diagramas deEstados
Diagramas deSecuencia
Diagramas deClases
Diagramas deActividad
Modelo
Paradigma Orientado a Objetos UML (Unified Modeling Language) Perspectiva
UML será el lenguaje de modelación de objetos estándar predominante los próximos años. Participación de metodologías influyentes Participación de importantes empresas Aceptación como notación estándar por diferentes
organismos internacionales
Evidencias: Herramientas soportan UML, bibliografía, etc..