EQUIPO 6
Ingeniera de Software
Orientado a Objetos
Tema
Diseo Orientado a Objetos
Introduccin
El OOD Se basa
Todos los mtodos de diseo intentan desarrollar software
basndose en:
Abstraccin
Ocultamiento de informacin
Modularidad
El OOD proporciona un mecanismo que permite al diseador
consigue estas
tres caractersticas sin dificultad.
El Anlisis Orientado a Objetos, el Diseo Orientado a Objetos y
la
Programacin Orientada a Objetos comprenden un conjunto de
actividades de
la Ingeniera del Software para la construccin de un sistema
basado en
objetos.
Concepto
A diferencia con otros mtodos de diseo, el
OOD produce un diseo que
interconecta objetos de datos y operaciones de
procesamiento para esos
objetos, de forma que se modulariza la
informacin y el procesamiento, en
lugar de aislar el procesamiento.
Concepto
En resumen
El Diseo Orientado a los Objetos
(OOD) crea una representacin
del problema
del mundo real y la hace
corresponder con el mbito de la
solucin, que es el
software.
Diseo para Sistemas OO
Capas de la pirmide del diseo
OO
contiene los datos estructurados en
detalle y el detalle algortmico para
los atributos de cada objeto y
funcionamientos
contiene la jerarqua de la clase
incluso las representaciones de
cada objeto
Diseo de
responsabilidades
Diseo de mensajes
establece las interfaces internas y
externas para el sistema, incluso los
detalles de comunicacin entre los
colaboradores del objeto
Diseo de clases y objetos
Diseo de subsistemas
contiene las representaciones de
cada uno de los subsistemas y la
infraestructura necesaria que
permiten al software lograr los
requisitos del cliente
Pasos Fundamentales
Pasos del OOD
Esencialmente, el OOD consta de cuatro
fundamentales:
a) Identificacin y definicin de objetos y clases
b) Organizacin de relaciones entre clases
c) Extraccin de estructuras en una jerarqua de clases
d) Construccin de bibliotecas de clases reutilizables
pasos
Como en todas las fases de Ingeniera del Software, el
OOD es cclico, es decir, los diseadores comienzan
definiendo un conjunto de clases, que se amplan,
modifican, ..., y vuelta a empezar.
Enfoque Convencional vs. OO
Diseo para Sistemas OO
Fichman y Kemerev sugieren diez componentes de diseo modelado
para comparar mtodos convencionales y orientados a objetos.
1. Representacin de la jerarqua de mdulos
2. Especificacin de las definiciones de datos
3. Especificacin de la lgica procedimental
4. Indicacin de secuencias de proceso final-a-final (end-to-end)
5. Representacin de estados y transicin de los objetos
Aspectos del diseo
Diseo para Sistemas OO
Criterios para juzgar la
capacidad de mtodos de
diseo para conseguir
modularidad.
DESCOMPONIBILIDAD
COMPONIBILIDAD
COMPRENSIBILIDAD
CONTINUIDAD
PROTECCCION
Un mtodo de diseo
facilita...
Principios bsicos de
diseo, que pueden ser
deducidos para
arquitecturas modulares
Descomposicin de un
problema grande en
problemas pequeos
UNIDADES LINGUISTICAS
MODULARES
Los componentes del
programa una vez diseados
y construidos, pueden ser
reutilizados
Los componentes de un
programa puedan ser
entendidos, sin hacer
referencia a otro modulo
Pequeos cambios en un
programa se revelen haciendo
los cambios pertinentes en uno
o muy pocos mdulos
Reduce la propagacin de
efectos colaterales, si ocurre
un error en un modulo dado.
POCAS INTERFACES
PEQUEAS INTERFACES
INTERFACES EXPLICITAS
OCULTAMIENTO DE LA
INFORMACION
Panorama del DOO
El mtodo de Booch
Diseo para Sistemas OO
Abarca un microproceso de desarrollo y un
macroproceso de desarrollo.
Microproceso
Macroproceso
1. Define un conjunto de reglas que
regulan el uso de operaciones y
atributos y las polticas del dominio
especifico para la administracin de
la memoria, manejo de errores,etc.
1. Engloba una actividad de
planificacin arquitectnica, que:
Agrupa objetos similares en
particiones arquitectnicas
separadas,
2. Desarrolla situaciones que
describen la semntica de las reglas
y polticas
Agrupa capas de objetos por
nivel de abstraccin,
3. Crea un prototipo para cada poltica
Identifica situaciones
relevantes,
4. Instrumenta y refina el prototipo
5. Revisa cada poltica para as
transmitir su visin arquitectnica
Crea un prototipo de diseo,
Valida el prototipo
Proceso de diseo del sistema
Fases del proceso de diseo de sistema
Fases del proceso de diseo de sistema
Proceso de diseo del sistema
Particionar el modelo de anlisis
Criterios a tener en cuenta al momento de definir y disear los subsistemas
1. El subsistema debe tener una interfaz bien definida, a travs de la cual se
reduzcan todas las comunicaciones con el resto del sistema.
2. Con la excepcin de un numero pequeo de clases de comunicaciones, las
clases incluidas dentro del subsistema deben colaborar solo con otras reas
dentro del subsistema.
3. El nmero de subsistemas debe ser bajo
4. Un subsistema puede ser particionado internamente para ayudar a reducir la
complejidad.
Proceso de diseo del sistema
Proceso de diseo de sistema
Asignacin de concurrencia y subsistemas
1. El sistema dinmico del modelo objetocomportamiento provee una indicacin de
concurrencia entre clases o subsistemas.
2. Si las clases deben actuar en sucesos
asincronicamemte y al mismo tiempo, se vern como
concurrentes.
Proceso de diseo de sistema
Proceso de diseo del sistema
Componente de administracin de tareas
Estrategias para el diseo
de objetos que manipulan
tareas concurrentes.
Plantilla bsica de una
tarea
[Link] determinan las
caractersticas de la tarea
1. Nombre de la tarea
[Link] define un coordinador
de tarea y objetos
asociados.
3. Prioridad
[Link] integra el coordinador
y otras tareas
2. Descripcin
4. Servicios
5. Coordinado por...
6. Comunicados por ...
Proceso de diseo del sistema
Proceso de diseo de sistema
Componente de interfaz de usuario
1. Las mayora de las clases necesarias para crear
una interfaz moderada ya existen y estn
disponibles, para el diseador.
2. Una vez que el actor y su situacin de uso se
definen se identifica una jerarqua de comando.
3. La jerarqua de ordenes define la mayora de las
categoras del men de sistema (barra de mens o
la paleta de herramientas)
Proceso de diseo de sistema
Proceso de diseo del sistema
Componente de administracin de datos
La administracin o gestin de datos engloba dos
reas distintas de inters:
1. La administracin de datos crticos para la propia
aplicacin
2. La creacin de infraestructura para el
almacenamiento y recuperacin de objetos.
Proceso de diseo del sistema
Proceso de diseo de sistema
Componente de gestin de recursos
1. Estn disponibles una variedad de recursos diferentes para un
sistema o producto OO; y, muchas veces, los subsistemas compiten
por estos recursos al mismo tiempo.
2. Los recursos globales del sistema pueden ser entidades externas
(unidad de disco, procesador) o abstracciones (base de datos,un
objeto).
Proceso de diseo de sistema
Proceso de diseo del sistema
Comunicacin entre subsistemas
Una vez que cada subsistema ha sido especificado, es necesario
definir las colaboraciones que existen entre subsistemas.
Para cada contrato, anotar las especificaciones (heredadas y privadas) que
se requieren para implementar las responsabilidades que implica el contrato.
Considerar un contrato a la vez, que incluya:
Tipo de contrato (cliente servidor , Peer to Peer)
Colaboradores (nombres de los subsistemas que son parte del contrato)
Clase (nombres de clases que proporcionan servicios denotados por el contrato)
Operaciones (nombre de operaciones que implementan los servicios)
Formato del mensaje (requerido para implementar la interaccin entre
colaboradores)
Proceso de diseo de objetos
Descripcin de objetos
Diseo de algoritmos y estructura de
datos
Proceso de diseo de objetos
Descripcin de objetos
Una descripcin del diseo de un objeto (instancia de clase) puede
tomar una o dos formas:
1. Una descripcin de protocolo que establece a interfaz de un
objeto, definiendo cada mensaje que el objeto puede recibir y
las operaciones que lleva a cabo cuando recibe un mensaje.
2. Una descripcin de implementacin que muestra detalles de
implementacin para cada operacin implicada por un mensaje
pasado a un objeto.
La descripcin del protocolo no es nada mas que un conjunto de
mensajes y un comentario correspondiente para cada mensaje.
Proceso de diseo de objetos
Diseo de algoritmos y estructura de datos
Una variedad de representaciones contenidas en el
modelo de anlisis y el diseo del sistema, proveen
una especificacin para todas las operaciones y
atributos.
[Link] crea un algoritmo para implementar la especificacin para cada
operacin. En muchas ocasiones el algoritmo es una simple secuencia
computacional o procedural, que puede ser implementada como un
modulo de software.
[Link] estructuras de datos se disean al mismo tiempo que los
algoritmos. Ya que las operaciones manipulan los atributos de una
clase, el diseo de estructuras de datos, que reflejan mejor los
atributos, tendrn un fuerte sentido en el diseo algortmico de las
operaciones correspondientes.