metodologías para el desarrollo de sioo
TRANSCRIPT
20-octubre-1998 PRINCIPIA INFORMATICA 1
METODOLOGÍAS PARA EL
DESARROLLO DE SIOO
ALEJANDRO DOMÍNGUEZ
20-octubre-1998 PRINCIPIA INFORMATICA 2
Etapas del Desarrollo de SOO
AOO
DOO
POO
TOO
MOO
Entrega
ET
AP
AS
20-octubre-1998 PRINCIPIA INFORMATICA 3
ANALISIS ORIENTADO A
OBJETOS
20-octubre-1998 PRINCIPIA INFORMATICA 4
Consiste en...
• Determinar todos los objetos potenciales en
un sistema y capturar sus características y
relaciones en una notación formal.
• Construir un modelo abstracto del “que” de
la solución, manteniendo una
correspondencia entre los objetos abstractos
y sus contra partes del mundo real
20-octubre-1998 PRINCIPIA INFORMATICA 5
Características
• Difiere del Análisis Estructurado porque
primero construye el modelo de objeto, en
vez del modelo funcional (DFD’S).
• Integra objetos, atributos y operaciones, en
vez de separar entre el modelo funcional y
el modelo de datos.
20-octubre-1998 PRINCIPIA INFORMATICA 6
Principales exponentes
• Coad y Yourdon
• OMT-Rumbaugh et. al.’s Object Modelling
Technique
• Shlaer-Mellor
• Booch
20-octubre-1998 PRINCIPIA INFORMATICA 7
Coad y Yourdon (1)
• Este método se basa en cinco actividades:
– Encontrar clases y objetos
• Los objetos existen en el dominio del problema
• Las clases son abstracciones de los objetos
• Los objetos son instancias de las clases
• La primera actividad del método es identificar clases
y objetos
20-octubre-1998 PRINCIPIA INFORMATICA 8
Coad y Yourdon (2)
– Identificar estructuras
• Dos tipos de estructuras son reconocidas “estructura
generalización-especialización” y “estructura
totalidad-separa”. El tipo formado de estructura es
igual a un árbol genealógico, y la herencia es posible
entre miembros de la estructura.
– Identificar sujetos
• Organizar los sujetos desde un punto de vista.
– Definir atributos
• Características de cada clase.
20-octubre-1998 PRINCIPIA INFORMATICA 9
Coad y Yourdon (3)
– Definir servicios
• Lo que los objetos harán
• Definir los servicios es equivalente a definir las
funciones del sistema
• La principal debilidad de este método es su
compleja notación, el cual es difícil de usar
sin una herramienta que lo soporte.
20-octubre-1998 PRINCIPIA INFORMATICA 10
OMT (1)
• Trata el problema en tres modelos:
– Modelo del objeto
– Modelo dinámico
– Modelo funcional
20-octubre-1998 PRINCIPIA INFORMATICA 11
OMT (2)
• El modelo del objeto muestra la estructura estática del mundo real
• Los procedimientos para construirlo son:– identificar objetos
– identificar clases de objetos
– identificar las asociaciones (relaciones) entre objetos
– identificar los atributos del objeto
– usar la herencia para organizar y simplificar la estructura de clase
– organizar el acoplo de clases y asociaciones entre módulos;
– dotar un informe textual descriptivo de cada objeto
20-octubre-1998 PRINCIPIA INFORMATICA 12
OMT (3)
• El modelo dinámico muestra el comportamiento del
sistema, especialmente la secuencia de las
interacciones
• El procedimiento de su construcción es:
– Identificar la secuencia de los eventos en el dominio del
problema y documentarlo en el trace de eventos
– construir un diagrama de transición de estados para cada
objeto que es afectado por los eventos, mostrando los
mensajes que fluyen, acciones que son ejecutadas y
cambios de estados en los objetos que suceden cuando
los eventos ocurren.
20-octubre-1998 PRINCIPIA INFORMATICA 13
OMT (4)
• El procedimiento para construir el modelo
funcional no usa descomposición funcional, pero:
– identifica los valores de entrada y salida que el sistema
recibe y produce
– construye los diagramas de flujo de datos mostrando
cómo los valores de salida son computados desde los
valores de entrada
– identifica los objetos que son usados como depósitos
de datos
– identifica las operaciones de objetos que comprenda
cada proceso
20-octubre-1998 PRINCIPIA INFORMATICA 14
OMT (5)
• La ventaja de OMT es su simple pero
poderosa capacidad de notación
• La principal desventaja es la de carecer de
técnicas para integrar
– objetos
– modelos dinámicos
– modelos funcionales
20-octubre-1998 PRINCIPIA INFORMATICA 15
Shlaer-Mellor (1)
• Empieza por analizar e identificar los
dominios del problema del sistema
• Los dominios son divididos en subsistemas
• Cada dominio o subsistema es analizado
separadamente en tres pasos:
– modelado de la información
– modelado del estado
– modelado del proceso
20-octubre-1998 PRINCIPIA INFORMATICA 16
Shlaer-Mellor (2)
• El propósito de modelar la información es la
de identificar:
– objetos en el subsistema
– atributos de cada objeto
– relaciones entre cada objeto
• El modelo de información es documentado
por medio de diagramas y definiciones de
los objetos, atributos y relaciones
20-octubre-1998 PRINCIPIA INFORMATICA 17
Shlaer-Mellor (3)
• El propósito de modelar el estado es el de identificar:
– estado de cada objeto, y las acciones que son ejecutadas en ellos
– eventos que causan que los objetos cambien de un estado a otro
– secuencia de estados que forman el ciclo de vida de cada objeto
– secuencia de mensajes comunicando eventos que fluyen entre objetos y subsistemas
20-octubre-1998 PRINCIPIA INFORMATICA 18
Análisis Orientado a Objetos
(14)
• Los modelos de estado son documentados
por medio de
– diagramas de modelos de estado
• mostrando la secuencia de estados
– diagramas de modelo de comunicación entre
objetos
• mostrando los mensajes que fluyen entre estados y
lista de eventos
20-octubre-1998 PRINCIPIA INFORMATICA 19
Análisis Orientado a Objetos
(15)
• El propósito del modelado de proceso es
identificar:
– operaciones de cada objeto requeridos en cada acción
– atributos de cada objeto que son almacenados en cada
acción
• Los modelos de estado son documentados por
medio de diagramas de flujo de datos y acción
– mostrando las operaciones y flujo de datos que ocurren
en cada acción
– los diagramas de modelo de acceso a un objeto
muestran el acceso de datos entre objetos
20-octubre-1998 PRINCIPIA INFORMATICA 20
Análisis Orientado a Objetos
(16)
• La ventaja de este método es su madurez y
existencia de técnicas para integrar la
información, y los modelos de estado y
proceso
• La principal desventaja de este método es
su complejidad
20-octubre-1998 PRINCIPIA INFORMATICA 21
Booch (1)
• Modela un diseño orientado a objetos en
cuanto a una vista lógica, la cual define
– las clases
– objetos y sus relaciones
– una vista física
• que define el módulo y el proceso arquitectónico
20-octubre-1998 PRINCIPIA INFORMATICA 22
Booch (2)
• Este método consiste de cuatro pasos:• identificar las clases y objetos que proporcionan un
nivel de abstracción
• identificar la semántica de estas clases y objetos
• identificar las relaciones entre clases y objetos
• implementar las clases y objetos
20-octubre-1998 PRINCIPIA INFORMATICA 23
Booch (3)
• Booch provee de cuatro técnicas de
diagramación para la documentación de la
vista lógica:
– Diagramas de clases
• se usan para mostrar la existencia de clases y sus
relaciones
– Diagramas de objetos
• se usan para mostrar la existencia de objetos y su
comportamiento, especialmente para observar la
comunicación de mensajes
20-octubre-1998 PRINCIPIA INFORMATICA 24
Booch (4)
– Diagramas de transición de estados
• muestra los posibles estados de cada clase y los
eventos que causan la transición de un estado a otro
– Los diagramas de tiempo
• los cuales muestran la secuencia de las operaciones
de los objetos
• La notación de Booch es engorrosa y pocas
herramientas están disponibles.
20-octubre-1998 PRINCIPIA INFORMATICA 25
DISEÑO ORIENTADO A
OBJETOS
20-octubre-1998 PRINCIPIA INFORMATICA 26
Características (1)
• Se refiere a la construcción de la estructura
del sistema
• Se refiere al “cómo” de la solución
• Ofrece mayor soporte al rehuso que otros
métodos
• La función de herencia permite un rehuso
descendente de atributos y operaciones de
una superclase
20-octubre-1998 PRINCIPIA INFORMATICA 27
Características (2)
• Combina información y servicios,
propiciando el incremento de modularidad
• Las estructuras de control y datos pueden
ser definidos de una manera integrada
20-octubre-1998 PRINCIPIA INFORMATICA 28
Características (3)
• Es más efectivo cuando se implementa en
un lenguaje de POO que soporta la
definición de
– objetos
– herencia
– paso de mensajes
– polimorfismo
• Smalltalk, C++, Eiffel, Object Pascal soportan estas
funciones
20-octubre-1998 PRINCIPIA INFORMATICA 29
Utilización del DOO
• Un método orientado a objetos debe ser
utilizado durante todo el ciclo de desarrollo
• Esto indica que DOO debe ser seleccionado
si el AOO ha sido usado en la fase de
requerimientos de software
20-octubre-1998 PRINCIPIA INFORMATICA 30
Principales exponentes
• Coad y Yourdon
• OMT-Rumbaugh et. al.’s Object Modelling
Technique
• Shlaer-Mellor
• Booch
20-octubre-1998 PRINCIPIA INFORMATICA 31
Coad y Yourdon (1)
• Su diseño orientado a objetos se construye
mediante cuatro componentes:
– Componente del dominio del problema
– Componente de interacción humana
– Componente de administración de tareas
– Componente de administración de datos
20-octubre-1998 PRINCIPIA INFORMATICA 32
Coad y Yourdon (2)
• Cada componente está integrado por clases
y objetos
• El dominio del problema se basa en un
modelo construido en la fase de análisis
– Define el sujeto del sistema y sus
responsabilidades
20-octubre-1998 PRINCIPIA INFORMATICA 33
Coad y Yourdon (3)
• Si el sistema se implementa en un lenguaje
de POO
– la correspondencia entre las clases del dominio
del problema y los objetos serán uno a uno
• y el componente del dominio del problema podrá ser
directamente programado
• Sin embargo, el refinamiento sustancial del
modelo lógico es normalmente requerido,
resultando la adición de más atributos y
servicios
20-octubre-1998 PRINCIPIA INFORMATICA 34
Coad y Yourdon (4)
• La componente interacción humana maneja
envío y recepción de mensajes hacia y
desde el usuario
• Las clases y objetos tienen nombres que
toman el lenguaje de interfaz del usuario,
por ejemplo: ventana y menú
20-octubre-1998 PRINCIPIA INFORMATICA 35
Coad y Yourdon (5)
• La componente administración de datos
provee la estructura para almacenar y
obtener objetos
– puede ser un simple archivo de sistema
– un sistema manejador de base de datos
relacional o
– un sistema manejador de base de datos
orientada a objetos
20-octubre-1998 PRINCIPIA INFORMATICA 36
Coad y Yourdon (6)
• Las clases y objetos son organizados por
estructuras “generalización-especialización”
– son “árboles familiares”, con hijos que heredan
los atributos de sus padres
• Las estructuras “parte total” son formadas
cuando un objeto es descompuesto
20-octubre-1998 PRINCIPIA INFORMATICA 37
Coad y Yourdon (7)
• La ventaja de este método es su descripción
concisa y su uso de textos generales como
fuentes de definiciones
• Los principales inconvenientes es su
compleja notación
– la cual dificulta su uso sino se tiene una
herramienta que los soporte
• Algunos usuarios de este método usan la
diagramación OMT
20-octubre-1998 PRINCIPIA INFORMATICA 38
OMT (1)
• Contiene dos actividades de diseño:
– diseño de sistema
– diseño de objeto
• Los pasos para el diseño de sistema son:
– organizar el sistema en subsistemas y ordenarlos en
niveles y particiones
– identificar la concurrencia inherente en el problema
– destinar subsistemas a procesos
– definir la estrategia de implantación para administración
de datos
20-octubre-1998 PRINCIPIA INFORMATICA 39
OMT (2)
– identificar los recursos globales y definir los
mecanismos para el control de acceso a ellos
– seleccionar un acercamiento para implementar
el software de control
– Considerar las condiciones de restricción
• Muchos sistemas son bastante similares,
Rumbaugh sugiere que el diseño de
sistemas se base en el uso de varias
arquitecturas canónicas (patrones)
20-octubre-1998 PRINCIPIA INFORMATICA 40
Shlaer-Mellor (1)
• Describe un lenguaje de diseño orientado a
objetos (OODLE) derivados de la notación
de Booch y Buhr
• Existen cuatro tipos de diagramación:
– diagrama de clases
– estructura de clases
– diagrama de dependencia
– diagrama de herencia
20-octubre-1998 PRINCIPIA INFORMATICA 41
Shlaer-Mellor (2)
• Hay un diagrama de clase para cada clase
– el diagrama define las operaciones y los
atributos de la clase
• La gráfica de la estructura de clases define:
– la estructura de módulos de la clase
– el control y flujo de datos entre los módulos de
su clase
• Hay una gráfica de estructura de clase por
cada clase
20-octubre-1998 PRINCIPIA INFORMATICA 42
Shlaer-Mellor (3)
• Los diagramas de dependencia ilustran la
dependencia de clases, las cuales pueden
ser:
– Cliente-servidor
• existe cuando una clase (el cliente) llama las
operaciones de otra clase (el servidor)
– Amigos
• existe cuando una clase accesa los datos internos de
otra clase (esto es una violación a la información
oculta)
20-octubre-1998 PRINCIPIA INFORMATICA 43
Shlaer-Mellor (4)
• Los diagramas de herencia muestran las relaciones
de herencia entre clases
• Shlaer y Mellor definen un método de diseño
recursivo que utiliza la notación OODLE de la
siguiente manera:
– define cómo los procesos de cómputo genérico serán
implementados
– implementa el modelo de clases usando los procesos de
cómputo genérico
• Este método es más complejo que otros orientados
a objetos
20-octubre-1998 PRINCIPIA INFORMATICA 44
Booch (1)
• Modela el DOO en dos vistas
– lógica, la cual define clases, objetos, y sus
relaciones
• corresponde al modelo lógico de la fase de
requerimientos de software
– física, la cual define la arquitectura de módulo
y proceso
• corresponde al modelo físico en la construcción de
la fase de diseño
20-octubre-1998 PRINCIPIA INFORMATICA 45
Booch (2)
• Booch provee dos técnicas de diagramación
para documentar la vista física:
– Diagramas de módulo
• utilizados para mostrar la ubicación de clases y
objetos a módulos
– Los diagramas de proceso
• muestran la ubicación de módulos para procesos de
hardware
20-octubre-1998 PRINCIPIA INFORMATICA 46
PROGRAMACIÓN, PRUEBAS
Y MANTENIMIENTO
ORIENTADOS A OBJETOS
20-octubre-1998 PRINCIPIA INFORMATICA 47
La POO se basa en...
• La utilización de objetos, clases y mensajes en vez de funciones y/o procedimientos
• La reutilización de código existente
Biblioteca de clases reutilizables
Nuevas
Clases
Clases
existentes
20-octubre-1998 PRINCIPIA INFORMATICA 48
Pruebas OO
• Su propósito principal es mejorar la calidad
del software
• Una buena modularidad ayuda a aislar los
defectos
20-octubre-1998 PRINCIPIA INFORMATICA 49
Mantenimiento Orientado a
Objetos
• La OO facilita el mantenimiento de 3 formas
diferentes
– Reduce la cantidad de mantenimiento ya que la calidad
inicial del software es alta debido a la reutilización de
componentes
– La relación entre los objetos del mundo real y los del
software hacen que éste sea más entendible y de fácil
mantenimiento
– La extensibilidad natural del SOO facilita la
incorporación de propiedades adicionales en etapas
posteriores