Title: Introduccin a la orientacin a objetos
1Introducción a la orientación a objetos
2Introducción a Orientación a Objetos
- Recordemos
- Los objetos son representaciones de conceptos de
la vida real. - Un concepto del mundo real una silla.
- La silla es un miembro (instancia) de una clase
mucho más grande de objetos que llamaremos
mobiliario.
3Introducción a Orientación a Objetos
4Introducción a Orientación a Objetos
- Principios
- Sistemas OO poseen dos características que los
hacen únicos. - Ocultamiento de la Información.
- Los detalles de implementación interna de datos y
procedimientos están ocultos al mundo exterior.
5Introducción a Orientación a Objetos
- Interfaces simples entre los objetos.
- Un objeto que envía un mensaje no debe
preocuparse de los detalles de estructuras de
datos internas del objeto receptor, lo que
simplifica la interacción y el acoplamiento del
sistema tiende a reducirse. - Facilitan la reutilización de SW. (componentes)
6Introducción a Orientación a Objetos
- Las abstracciones de datos (atributos) que
describen la clase están encerradas por una
muralla de abstracciones procedimentales
capaces de manipular los datos de alguna manera
(Encapsulamiento).
7Introducción a Orientación a Objetos Principios
- Esto posibilita el ocultamiento de información y
reduce el impacto asociado a los cambios. - Como estos métodos manipulan un número limitado
de atributos (alta cohesión) y como la
comunicación sólo ocurre a través de los métodos
que encierra la muralla, la clase tiende a un
bajo acoplamiento con otros elementos del sistema.
8Introducción a Orientación a Objetos Jerarquía
- Clase colección de objetos similares, los cuales
heredan atributos y operaciones disponibles para
la manipulación de éstos. - Superclase colección de clases.
- Subclase instancia de una clase.
- Estas definiciones implican la existencia de una
jerarquía de clases, en la cual los atributos y
operaciones de la superclase son heredados por
subclases que pueden añadir atributos privados
y métodos.
9Introducción a Orientación a Objetos Jerarquía
10Introducción a Orientación a Objetos
- Atributos
- Los atributos están asociados a clases y objetos,
describiéndolos de alguna manera. - Esta relación implica que un atributo puede tomar
un valor definido por un dominio enumerado. - Una clase auto tiene atributo color. El domino de
valores de color es blanco, negro, azul, rojo,
amarillo, verde.
11Introducción a Orientación a Objetos
- Atributos
- En situaciones más complejas, el dominio puede
ser un conjunto de clases. - La clase auto también tiene un atributo motor que
abarca los siguientes valores de dominio valor
32 válvulas opción de lujo, valor 24 válvulas
opción deportiva, valor 15 opción económica. - Estas características se representan como
asociaciones, no atributos.
12Introducción a Orientación a Objetos
- Operaciones, métodos o servicios
- Un objeto encapsula datos y algoritmos que
procesan estos datos. - Cada operación proporciona uno de los
comportamientos del objeto. -
- La operación se ejecuta en la medida en que se
reciba un estímulo - mensaje.
13Introducción a Orientación a Objetos
Notación UML de las clases
Declaración de clase
- public class Stack
- private Vector items
-
- public Object push(Object item)
- items.addElement(item)
- return item
-
- public boolean isEmpty()
- if (items.size()0)
- return true
- else
- return false
-
Atributos
Método
Notación UML
Código en Java
14Introducción a Orientación a Objetos
Ejercicio
- Describa a una bicicleta como clase definiendo
dos operaciones y al menos tres atributos. - Escriba el código java para la clase bicicleta
sin especificar los métodos.
15Introducción a Orientación a Objetos
Ejercicio Posible Solución
Public class Bicicleta private int
vel_actual private int cambio actual public
int cambiarVelocidad(int vel_nueva) public int
frenar()
16Introducción a Orientación a Objetos
- Un objeto es una instancia de una clase.
- Clase solamente proporciona el modelo lógico.
Cuando los atributos toman valores se transforma
en un objeto.
Objetos
EX bicicleta miBicicleta new bicicleta()
17Introducción a Orientación a Objetos
- Por ejemplo una vez definida la clase bicicleta,
queremos instanciar un objeto miBicileta a
partir de ella.
Objetos
18Introducción a Orientación a Objetos Mensajes
- Mensaje es el medio a través del cual los objetos
interactúan. - 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 - mensajedestino, 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.
EX System.out.println(Hola Mundo)
19Introducción a Orientación a Objetos
Encapsulamiento, herencia y polimorfismo
- Una de las diferencias claves entre sistemas OO y
sistemas convencionales es la herencia. - Una subclase Y hereda todos los atributos y
operaciones de su superclase X - Todas las estructuras de datos y algoritmos
originalmente diseñados e implementados para X
están inmediatamente disponibles para Y,
realizándose la reutilización en forma directa. - Cualquier cambio dentro de una superclase se
hereda inmediatamente por todas las subclases que
derivan de ella.
20Introducción a Orientación a Objetos
- En cada nivel de la jerarquía de clases pueden
añadirse nuevos atributos y operaciones a
aquellos que han sido heredados de niveles
superiores de la jerarquía.
Encapsulamiento, herencia y polimorfismo
21Introducción a Orientación a Objetos
Encapsulamiento, herencia y polimorfismo
22Introducción a Orientación a Objetos
Encapsulamiento, herencia y polimorfismo
- A veces es tentador heredar algunos atributos y
operaciones de una clase y otros de otra clase,
ésta acción es conocida como herencia múltiple,
lo cual complica la jerarquía de clases y puede
crear problemas potenciales en el control de la
configuración.
23Introducción a Orientación a Objetos Ejercicio
- En el ejemplo de la bicicleta, defina dos
subclases y agregue un nuevo método y nuevos
atributos para cada uno de ellos.
24Introducción a Orientación a Objetos
Encapsulamiento, herencia y polimorfismo
- El polimorfismo es una característica que reduce
en gran medida el esfuerzo necesario para
extender un sistema. - Considere una aplicación convencional que debe
dibujar cuatro tipos diferentes de gráficos - gráficos de líneas
- gráficos de tortas
- histogramas
- diagramas de Kiviat.
- Idealmente una vez recogidos los datos para un
gráfico particular, éste debe dibujarse a sí
mismo.
25Introducción a Orientación a Objetos
Encapsulamiento, herencia y polimorfismo
- En una aplicación convencional será necesario
desarrollar módulos de dibujos para cada tipo de
gráficos y añadir una lógica de control semejante
a la que sigue - case of tipo_grafico
- If tipo_grafico grafico_linea then
DibujarLinea (datos) - If tipo_grafico grafico_torta then
DibujarTortaLinea (datos) - If tipo_grafico grafico_histograma then
DibujarHisto (datos) - If tipo_grafico grafico_kiviat then
DibujarKiviat (datos) - end case
26Introducción a Orientación a Objetos
Encapsulamiento, herencia y polimorfismo
- Polimorfismo permite que un número de operaciones
diferentes tengan el mismo nombre, haciendo que
cada objeto sea más independiente.
27Introducción a Orientación a Objetos Interfaces
- En ciertos casos en el diseño se definen clases
con nombres de operadores pero sin la
implementación, dado que esta varía dependiendo
del contexto en que se utilice
Public class ClickMe extends Applet implements
Mouselistener .. Public void mousePressed
(MouseEvent event) if . then. Public
void mouseClicked (MouseEvent event) Public
void mouseReleased (MouseEvent event) Public
void mouseEntered (MouseEvent event) Public
void mouseExited (MouseEvent event)
28Introducción a UML
- Historia
- Potencialidades
- Diagramas soportados
- UML en el proceso de desarrollo de SW.
29Introducción a UML
- Necesidad de una notación estándar
- Diversos métodos y técnicas OO eran
inconvenientes para el aprendizaje, aplicación,
construcción y uso de herramientas, etc. - UML Unified Modeling Languaje
- Es un lenguaje de modelado visual de propósito
general que usado para especificar, visualizar,
construir y documentar los artefactos de un
sistema de SW. - Artefacto Es un pedazo de información que es
usado o producido por un proceso de desarrollo de
SW, como un documento externo o un código. Un
artefacto puede ser un modelo, una descripción o
software OMG
30Introducción a UML
- El objetivo de UML es describir cualquier tipo de
sistema en términos de diagramas orientados a
objetos, o sea, es crear un modelo. - Un modelo es una descripción completa de un
sistema desde una perspectiva concreta.
31Introducción a UML
32Introducción a UML
- Permite modelar la estructura estática del
sistema y su comportamiento dinámico. - Estructura estática Define los tipos de objetos
importantes para un sistema y su implementación,
también como la relación entre ellos. - Comportamiento dinámico Define la historia de
los objetos a través del tiempo, y la
comunicación entre los objetos para cumplir los
objetivos.
33Introducción a UML
- UML NO es un lenguaje de programación.
- UML es un lenguaje de modelado de propósito
general. - Para dominios específicos (e.g VLSI) existen
herramientas con leguajes propios más apropiados
para el dominio. - UML es independiente de la metodología que se
utilice.
34Introducción a UMLHistoria
- UML comenzó como el Método Unificado, con la
participación de Grady Booch y Jim Rumbaugh. Se
presentó en el OOPSLA95. - 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).
35Introducción a UMLHistoria
36Introducción a UMLHistoria
37Introducción a UMLParticipantes 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 DSouza)
- Intellicorp and James Martin co. (James Odell)
- MCI Systemhouse
- Microsoft
- ObjecTime
- Oracle
- Platinium Technology
- Sterling Software
- Taskon
- Texas Instruments
- Unisys
38Introducción a UMLUML incorpora diferentes
enfoques
39Introducción a UMLPro y contras
- UML será el lenguaje estándar de modelación de
objetos predominante por las siguientes razones - Participación de metodólogos influyentes.
- Participación de importantes empresas.
- Aceptación como notación estándar por diferentes
organismos internacionales. - Evidencias
- Herramientas que proveen la notación UML.
- "Edición" de libros.
- Desarrollo de nuevos estándares basados en UML.
(MDA)
40Áreas conceptuales en UML
- Los conceptos y modelos proporcionados por UML se
pueden agrupar en las siguientes áreas
conceptuales - Estructura estática Definir los conceptos claves
de la aplicación, propiedades internas y su
relación con los otros conceptos. - Comportamiento dinámico Definir el
comportamiento del sistema a lo largo del tiempo
y la relación de este con otros dentro de un
contexto. - Modelo de la organización Mecanismos de división
del modelo en submodelos (Packages) estableciendo
la relación entre ellos. - Mecanismos de extensión Herramientas
proporcionadas por UML para extender el modelo a
dominios no soportados directamente sin tener que
cambiar la definición del lenguaje (ex tags)
41Vistas en UML
- Proyeccion de un modelo, el cual es visto desde
una perspectiva en particular, mas ventajosa,
omitiendo las entidades que nos relevantes para
dicho punto de vista. - Un área conceptual puede tener varia vistas
asociadas.
42Vistas en UMLResumen de vistas en UML
43Dominio de ejemploVentas de entradas en un teatro
- Un teatro tiene un sistema computacional de venta
de entradas. Las entradas pueden ser vendidas de
dos maneras, a través de un kiosko o directamente
en la ventanilla del teatro. El cliente puede
comprar la entrada para una función en particular
o para una temporada completa.
44Vistas en UMLVista estática
- Modela los conceptos en el dominio de la
aplicación. - Diagrama asociado Diagrama de clases
- Clases Descripción de un concepto del dominio de
la aplicación.
45Vistas en UMLVista estática Ejemplo
46(No Transcript)
47Vistas en UML
48Vistas en UMLVista de casos de uso
- Modela la funcionalidad del sistema percibida por
usuarios externos. - Diagrama asociado Diagrama de casos de uso
- Actor Abstracción de entidades que interactúan
directamente con el sistema. Puede ser un sistema
externo o personas.
49Vistas en UMLVista de casos de Uso Ejemplo
- Casos de uso para la oficina de ventas
50(No Transcript)
51Otro Ejemplo
52Vistas en UMLVista de interacción
- Describe la secuencia de intercambio de mensajes
entre entidades. - Muestra el flujo de control entre diferentes
objetos. - Dos diagramas asociados
- Diagrama de secuencia
- Diagrama de colaboración
53Vistas en UMLVista de interacción Diagrama de
secuencia
- Muestra mensajes entre objetos activos a través
de líneas de tiempo. - Un uso del caso de uso es mostrar la secuencia de
eventos de un caso de uso específico.
54- Diagrama de secuencia para la compra de entradas
55Diagrama de secuencia
56Vistas en UMLVista de interacción Diagrama de
colaboración.
- El uso del diagrama de colaboración es mostrar la
implementación de una operación. - Muestra la secuencia de mensajes y las
asociaciones entre todos los objetos necesarios
para realizar dicha operación.
57Vistas en UMLVista de interacción Ejemplo.
- Diagrama de colaboración para la reserva de
entradas.
58(No Transcript)
59Vistas en UMLVista de interacciónOtro Ejemplo.
60Vistas en UMLVista de maquina de estado
- Sirve para modelar los posibles estados de un
objeto o clase. - Diagrama asociado Diagrama de estados
- Estados conectados por transiciones
- Estados modela un período de tiempo durante la
vida del objeto durante el cual se satisfacen
ciertas restricciones. - Un evento gatilla una transición y genera un
nuevo estado.
61Vistas en UMLVista de máquina de estado
- Diagrama de estado para una entrada.
Ejemplo.
62Vistas en UMLVista de máquina de estado
63Vistas en UMLVista de actividad
- Muestra las actividades computacionales
involucradas en la realización de cierta
operación. - Diagrama asociado Diagrama de actividad.
- Pueden ser utilizados para modelar workflows del
negocio o del SW.
64Vistas en UMLVista de actividad Ejemplo
- Actividades relacionadas con montar un espectáculo
65(No Transcript)
66Vistas en UMLVista de actividad Otro ejemplo
67Vistas en UMLVista física
- Modela la estructura de la aplicación en términos
de componentes y nodos. - Componente Agrupación de alto nivel de clases,
documentos e ítems relacionados según cierto
dominio. - Nodo representa alguna pieza de unidad de
cómputo, por lo general es HW.
68Vistas en UMLVista física
- Existen dos tipos de vistas físicas
- Vista de implementación modela los componentes
del sistema. - Diagrama asociado Diagrama de componentes
- Vista de emplazamiento muestra las relaciones
físicas entre los componentes de software y de
hardware de un sistema. - Diagrama asociado Diagrama de emplazamiento
69Vistas en UMLVista física Diagrama de
componentes
- Diagrama de componentes para la oficina de ventas
70(No Transcript)
71Vistas en UMLVista física Diagrama de
emplazamiento
- Diagrama de emplazamiento para la oficina de
ventas.
72Vistas en UMLVista de administración de modelo
- Modela la organización del modelo, en termino de
paquetes. - Ejemplo descomposición de la puesta en marcha de
una obra.
73Extensiones
- UML provee de ciertas herramientas para extender
los modelos según la necesidad del cliente. - 3 elementos
- Restricción es un texto asociado a una relación
semántica expresado en un lenguaje formal o
natural. - Estereotipo un nuevo tipo de elemento definido
por el diseñador y que se basa en un elemento ya
existente. - Tagged value es una pieza de información que
se agrega a un elemento de modelado.
74ExtensionesEjemplos
Restricción
nombres para una temporada deben ser únicos
nombres para una temporada deben ser únicos
Estereotipo
Tagged Value