Title: Diseo orientado al objeto
1Diseño orientado al objeto
- Diseñar sistemas usando objetos y clases de
objetos
2CaracterÃsticas del DOO
- Los objetos son abstracciones del mundo real o
del sistema y se administran a sà mismas - Los objetos son independientes, encapsulan sus
estados y representan información - Las funcionalidades del sistema son representadas
en términos de servicios de objetos - Los objetos se comunican por paso de mensajes
- Los objetos están distribuidos y pueden ser
ejecutados en secuencia o en paralelo
3Interacción de objetos
4Ventajas del DOO
- Fácil mantención. Los objetos pueden ser vistos
como entidades individuales - Los objetos propician la reutilización de
componentes - Para algunos sistemas resulta fácil crear sus
objetos a partir del mundo real.
5Desarrollo orientado al objeto
- El Análisis (AOO), el Diseño (DOO) y la
Programación (POO) están relacionadas pero son
distintas. - AOO se relaciona con la creación de un modelo de
objetos para el dominio de la aplicación - DOO se relaciona con la creación de un modelo de
sistema para implementar los requerimientos - POO se encarga de concretar el DOO usando un
lenguaje de programación OO tal como Java o C,
C, J, PowerBuilder, etc.
6Objetos y clases de objetos
- Los Objetos son entidades en un sistema de
software que representan instancias del mundo
real y del sistema - Las Clases de Objetos son plantillas para
objetos. Pueden ser usados para crear los
objetos. - Las Clases de Objetos pueden heredar atributos y
servicios de otras clases de objetos
7UML Unified Modeling Language
- Es una notación que recoge varias propuestas
hechas en los años 1980s y 1990s - El UML es una integración de estas notaciones
- Describe las notaciones de diferentes modelos que
se producen durante el análisis y diseño OO - Es actualmente un estándar de facto
8Un objeto empleado (UML)
9Una jerarquÃa de generalización
10Ventajas de la herencia
- Es un mecanismo de abstracción que puede ser
usado para clasificar entidades - Permite una reutilización a nivel de diseño y
programación
11Problemas con la herencia
- Las clases de Objetos no son autocontenidas y no
pueden ser entendidas sin referencia a las
superclases.
12Modelo de asociación de clases
13Objetos concurrentes
- De forma conceptual un objeto solicita un
servicio a otro enviándole una solicitud de
servicio. No es necesario que un objeto ejecute
estos mensajes en forma secuencial. - En consecuencia el modelo general de interacción
entre objetos les permite ejecutarse
concurrentemente como procesos en paralelo.
14Java threads (hilos de Java)
- Los threads en Java son una construcción simple
para implementar objetos concurrentes - Los threads deben incluir un método llamado run()
el que se inicia por el sistema run-time de Java
15Un proceso de diseño OO general
- 1. Comprender y definir el contexto y los modos
de utilización del sistema. - 2. Diseñar la arquitectura del sistema.
- 3. Identificar los objetos principales del
sistema. - 4. Desarrollar los modelos del diseño.
- 5. Especificar las interfaces de los objetos.
16Ejemplo sistema de trazado de mapas climáticos
Se requiere un sistema de trazado de mapas
climáticos que lea información de estaciones
climáticas remotas y automáticas. Estas
estaciones transmiten la información a petición
del computador del área. El sistema de cómputo
valida estos datos e integra los datos de
diferentes fuentes. Los datos integrados se
archivan y en unión con los mapas digitalizados
crean un conjunto local de mapas climáticos. Los
mapas se pueden imprimir o desplegar en varios
formatos diferentes.
17Arquitectura de capas
Capa de despliegue de datos para los usuarios
ltltSubsistemagtgt Despliegue de datos
Capa de archivo de datos
ltltSubsistemagtgt Archivo de datos
Capa de procesamiento de datos
ltltSubsistemagtgt Procesamiento de datos
Capa de recolección de datos desde las fuentes
remotas
ltltSubsistemagtgt Recolección de datos
18Subsistemas del sistema de mapas climáticos
191. Contexto del sistema casos de uso
20Descripción de un caso de uso
212. Diseño arquitectónico
223. Identificación de objetos
- La identificación de objetos (o clases de
objetos) es la parte más difÃcil del DOO. - No hay una fórmula mágica para identificarlos.
Influye la experiencia y el conocimiento en
diseño de sistemas. - La identificación de objetos es un proceso
iterativo. Se repite una y otra vez hasta
refinarlos.
233. Identificación de objetos
244. Modelos de diseño
254. Modelos de diseño Diagramas de Secuencia
264. Modelos de diseño Diagramas de Estado, objeto
WeatherStation
275. Interfaz de los objetos interfaz en Java del
objeto WeatherStation
28Evolución del diseño control de la polución
(pollution monitoring)
Nueva clase
Nueva operación reportAirQuality
Nuevo objeto