Metodologías para el desarrollo de sioo

49
20-octubre-1998 PRINCIPIA INFORMATICA 1 METODOLOGÍAS PARA EL DESARROLLO DE SIOO ALEJANDRO DOMÍNGUEZ

Transcript of Metodologías para el desarrollo de sioo

Page 1: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 1

METODOLOGÍAS PARA EL

DESARROLLO DE SIOO

ALEJANDRO DOMÍNGUEZ

Page 2: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 2

Etapas del Desarrollo de SOO

AOO

DOO

POO

TOO

MOO

Entrega

ET

AP

AS

Page 3: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 3

ANALISIS ORIENTADO A

OBJETOS

Page 4: Metodologías para el desarrollo de sioo

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

Page 5: Metodologías para el desarrollo de sioo

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.

Page 6: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 6

Principales exponentes

• Coad y Yourdon

• OMT-Rumbaugh et. al.’s Object Modelling

Technique

• Shlaer-Mellor

• Booch

Page 7: Metodologías para el desarrollo de sioo

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

Page 8: Metodologías para el desarrollo de sioo

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.

Page 9: Metodologías para el desarrollo de sioo

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.

Page 10: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 10

OMT (1)

• Trata el problema en tres modelos:

– Modelo del objeto

– Modelo dinámico

– Modelo funcional

Page 11: Metodologías para el desarrollo de sioo

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

Page 12: Metodologías para el desarrollo de sioo

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.

Page 13: Metodologías para el desarrollo de sioo

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

Page 14: Metodologías para el desarrollo de sioo

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

Page 15: Metodologías para el desarrollo de sioo

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

Page 16: Metodologías para el desarrollo de sioo

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

Page 17: Metodologías para el desarrollo de sioo

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

Page 18: Metodologías para el desarrollo de sioo

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

Page 19: Metodologías para el desarrollo de sioo

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

Page 20: Metodologías para el desarrollo de sioo

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

Page 21: Metodologías para el desarrollo de sioo

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

Page 22: Metodologías para el desarrollo de sioo

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

Page 23: Metodologías para el desarrollo de sioo

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

Page 24: Metodologías para el desarrollo de sioo

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.

Page 25: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 25

DISEÑO ORIENTADO A

OBJETOS

Page 26: Metodologías para el desarrollo de sioo

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

Page 27: Metodologías para el desarrollo de sioo

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

Page 28: Metodologías para el desarrollo de sioo

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

Page 29: Metodologías para el desarrollo de sioo

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

Page 30: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 30

Principales exponentes

• Coad y Yourdon

• OMT-Rumbaugh et. al.’s Object Modelling

Technique

• Shlaer-Mellor

• Booch

Page 31: Metodologías para el desarrollo de sioo

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

Page 32: Metodologías para el desarrollo de sioo

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

Page 33: Metodologías para el desarrollo de sioo

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

Page 34: Metodologías para el desarrollo de sioo

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ú

Page 35: Metodologías para el desarrollo de sioo

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

Page 36: Metodologías para el desarrollo de sioo

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

Page 37: Metodologías para el desarrollo de sioo

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

Page 38: Metodologías para el desarrollo de sioo

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

Page 39: Metodologías para el desarrollo de sioo

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)

Page 40: Metodologías para el desarrollo de sioo

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

Page 41: Metodologías para el desarrollo de sioo

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

Page 42: Metodologías para el desarrollo de sioo

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)

Page 43: Metodologías para el desarrollo de sioo

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

Page 44: Metodologías para el desarrollo de sioo

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

Page 45: Metodologías para el desarrollo de sioo

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

Page 46: Metodologías para el desarrollo de sioo

20-octubre-1998 PRINCIPIA INFORMATICA 46

PROGRAMACIÓN, PRUEBAS

Y MANTENIMIENTO

ORIENTADOS A OBJETOS

Page 47: Metodologías para el desarrollo de sioo

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

Page 48: Metodologías para el desarrollo de sioo

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

Page 49: Metodologías para el desarrollo de sioo

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