Академический Документы
Профессиональный Документы
Культура Документы
3 I. T. INFORMTICA DE GESTIN
PROGRAMACIN AVANZADA
Pg. 1.
RESUMEN ................................................................................................................................................. 4
PALABRAS CLAVE ................................................................................................................................... 4
METODOLOGAS ORIENTADAS A OBJETOS. ................................................................................ 5
INTRODUCCIN ........................................................................................................................................ 5
Concepto de metodologa................................................................................................................... 5
Generalidades .................................................................................................................................... 6
Clasificaciones ................................................................................................................................... 6
EL MTODO DE BOOCH .......................................................................................................................... 8
Introduccin. ...................................................................................................................................... 8
La complejidad................................................................................................................................... 8
El modelo del objeto........................................................................................................................... 9
Elementos del modelo de objetos ...................................................................................................................9
Clases y objetos................................................................................................................................ 11
La naturaleza de un objeto ............................................................................................................................11
Relaciones entre los objetos..........................................................................................................................12
La naturaleza de una clase ............................................................................................................................13
Relaciones entre las clases............................................................................................................................13
La interaccin de Clases y objetos................................................................................................................14
Construccin de Clases y Objetos de Calidad...............................................................................................14
Clasificacin .................................................................................................................................... 15
Aproximacin a las clasificaciones...............................................................................................................15
Procedimientos para encontrar clases y objetos............................................................................................15
El mtodo ......................................................................................................................................... 16
Diagramas de clases......................................................................................................................................17
Diagramas de objetos....................................................................................................................................21
Otros diagramas............................................................................................................................................23
Los procesos del desarrollo orientado al objeto ............................................................................................26
Conclusin........................................................................................................................................ 26
Un ejemplo concreto ........................................................................................................................ 26
OMT (OBJECT MODELING TECNIQUE) JAMES RAMBAUGH ................................................................... 28
Visin general .................................................................................................................................. 28
Fases (4)........................................................................................................................................... 28
Pasos especficos a dar en cada fase ............................................................................................... 29
Fase De Anlisis ...........................................................................................................................................29
Fase De Diseo Del Sistema.........................................................................................................................30
Fase de Diseo De Objetos...........................................................................................................................30
Implementacin ............................................................................................................................................31
Conclusin........................................................................................................................................ 31
Notacin ........................................................................................................................................... 31
MTODO DE FUSION. COLEMAN ............................................................................................................ 33
Introduccin ..................................................................................................................................... 33
Anlisis............................................................................................................................................. 33
Modelo de objetos ........................................................................................................................................34
Modelo de Objetos del sistema .....................................................................................................................36
Modelo de la Interface ..................................................................................................................................36
Modelo del Funcionamiento .........................................................................................................................36
Modelo del Ciclo de Vida.............................................................................................................................37
Diseo .............................................................................................................................................. 42
Grfico de Interaccin de Objetos ................................................................................................................43
Grficos de visibilidad..................................................................................................................................47
Descripciones de clase..................................................................................................................................50
Grficos de herencia .....................................................................................................................................52
Implementacin ................................................................................................................................ 55
Pg. 2.
Pg. 3.
Resumen
En el mundo de desarrollo de software, se tiende cada vez ms hacia la programacin
orientada a objeto, un nuevo paradigma de programacin que aporta grandes ventajas al
software generado, como son el acercamiento entre el concepto del usuario y el
resultado programado o la disponibilidad a la reutilizacin del cdigo generado.
Pero todo ello no es posible sin seguir una metodologa que, por medio del
establecimiento de pasos, normas y conceptos a aplicar, lleve el desarrollo a buen
puerto, y con un resultado ptimo.
En este documento se pretende acercar al lector a las metodologas orientadas a objeto
que existen en la actualidad y dar una visin global de las mismas. As pues se hace
especial hincapi en OMT (la ms difundida actualmente), BOOCH (como punto de
partida de los conceptos que conlleva la orientacin a objeto) y FUSION (como una
metodologa ms desarrollada).
No pasa inadvertido que el futuro de las metodologas se basa en su unificacin, y por
ello este documento explica brevemente UML (como notacin unificadora) y OPEN
(como metodologa). En cualquier caso habr que esperar a la publicacin de
OBJETORY, que se perfila como la metodologa unificadora y de ms futuro.
Palabras Clave
Metodologa, orientacin a objeto, ciclo de vida, notacin, proceso, Booch, OMT,
Fusion, UML, OPEN, MOSES, EROOS, OOSE, BON, unificacin, clase, objeto,
anlisis, diseo.
Pg. 4.
Concepto de metodologa
No existe un consenso entre los diversos autores sobre el concepto de metodologa.
Genricamente se puede decir que una metodologa es un conjunto de pasos que
deben seguirse para el desarrollo de software.
Conjunto de filosofas, fases, procedimientos, reglas, tcnicas, herramientas,
documentacin y aspectos de formacin para los desarrolladores de sistemas de
informacin. Segn esto, una metodologa es un conjunto de componentes que
especifican:
Cmo dividir un proyecto en etapas.
Qu tareas se llevarn a cabo en cada etapa
Qu salidas se producen y cundo deben producirse.
Qu restricciones se aplican.
Qu herramientas van a ser utilizadas.
Cmo se gestiona y controla el proyecto.
R.N. Maddison
De un modo ms general una metodologa podra definirse como un conjunto de
conceptos para poder abstraer el dominio del problema, una notacin para representar
esos conceptos, una serie de pasos y procedimientos a seguir, y un conjunto de assets
generados.
Pg. 5.
Generalidades
Todas las metodologas distinguen estas tres fases:
Anlisis
Diseo
Implementacin
Segn Piattini [Piattini et al., 1996], se puede observar un cambio filosfico entre las
metodologas clsicas de anlisis y diseo estructurado y las de orientacin al objeto. En
las primeras se examinan los sistemas desde el punto de vista de las funciones o tareas
que deben realizar, tareas que se van descomponiendo sucesivamente en otras tareas
ms pequeas y que forman los bloques o mdulos de las aplicaciones. En la
orientacin al objeto, por su parte, cobra mucha ms importancia el aspecto de
modelado del sistema, examinando el dominio del problema como un conjunto de
objetos que interactan entre s.
En las metodologas tradicionales se produce una dicotoma entre los dos elementos
constituyentes de un sistema: funciones que llevan a cabo los programas y datos que se
almacenan en ficheros o bases de datos. Sin embargo, la orientacin al objeto propugna
un enfoque unificador de ambos aspectos, que se encapsulan en los objetos.
Clasificaciones
Se pueden identificar dos enfoques en las metodologas orientadas al objeto, [Fichman y
Kemerer, 1992]:
Pg. 6.
Pg. 7.
El mtodo de BOOCH
Introduccin.
El mtodo de Grady Booch es uno de los ms conocidos en la orientacin al objeto.
En su versin de 1.993 este mtodo cubre las fases de anlisis y diseo dentro de un
desarrollo orientado al objeto.
Se definirn una gran cantidad de smbolos para representar las distintas decisiones de
diseo.
Este mtodo ofrece una gran libertad en la produccin del software, como ya veremos
ms adelante.
En un primer momento se explicarn una serie de conceptos bsicos, los cuales han de
quedar claros para poder comprender a fondo la metodologa de Booch.
Dichos conceptos se pueden estructurar estructurarlos de la siguiente manera:
Complejidad.
El modelo del objeto.
Clases y objetos.
Clasificacin.
La complejidad
El software, por lo general, va a ser un sistema complejo, sobre todo cuando se trate
de un software grande. Esto es debido a 4 elementos:
La complejidad del dominio del problema. (Definicin de los requisitos,
modificaciones que pueden ir sufriendo stos...)
La dificultad de gestionar el proceso de desarrollo. (Sobre todo en proyectos
muy grandes.)
La flexibilidad que posibilita el software.
Los problemas del comportamiento de sistemas discretos.
Para tratar un sistema complejo se pueden utilizar las siguientes tcnicas:
Descomposicin: consiste en dividir el sistema en partes ms y ms pequeas cada vez,
pudiendo ser stas refinadas independientemente.
Abstraccin: la abstraccin denota las caractersticas esenciales de un objeto que lo
distinguen de todos los dems tipos de objetos y proporciona as fronteras conceptuales
ntidamente definidas respecto a la perspectiva del observador.
Jerarqua: para Booch la jerarqua es una clasificacin u ordenacin de abstracciones.
Existen dos clases de jerarqua:
Pg. 8.
jerarqua parte de (part of) o tiene un (has a): corresponde a la estructura del
objeto.
jerarqua es un (is a): corresponde a la estructura de la clase.
Pg. 10.
Clases y objetos
La naturaleza de un objeto
Un objeto tiene estado, comportamiento e identidad; la estructura y el comportamiento
de objetos similares estn definidos en su clase comn; los trminos instancia y objeto
son intercambiables.
Se explican a continuacin cada una de las partes de esta definicin:
Pg. 11.
Las responsabilidades de un objeto son todos los servicios que proporciona a quien se
relacione con l.
Pero hay que constatar que un objeto puede tener diferentes roles o papeles, que han de
definirse en la fase de diseo.
Igualdad de objetos: cuando hablamos de igualdad puede significar que dos nombres
designan el mismo objeto, o que dos nombres designan objetos distintos cuyos estados
son iguales.
Se puede considerar que en un ciclo de vida habr un primer momento de
declaracin del objeto y luego vendr la asignacin o instanciacin del mismo.
Relaciones entre los objetos
Los objetos se relacionan unos con otros para colaborar entre s y con el sistema.
Existen 2 tipos de relaciones: enlaces y agregaciones.
Enlaces.
Un enlace es una conexin fsica o conceptual entre objetos. A travs del enlace un
objeto cliente puede solicitar servicios a un objeto proveedor, bien directamente o bien a
travs de enlaces con otros objetos.
Un objeto puede desempear cualquiera de estos 3 papeles:
Actor: cuando puede operar sobre otros objetos pero ningn objeto opera sobre l.
Servidor: otros objetos actan sobre l mientras que l no hace peticiones al resto.
Agente: puede operar sobre otros y tambin otros objetos pueden operar sobre l.
Agregaciones.
Si los enlaces denotan una relacin cliente - servidor, la agregacin denotar una
jerarqua de partes de un todo. Esas partes pueden ser fsicas (Ej. partes de un avin) o
no fsicas (Ej. acciones de un accionista).
La agregacin a veces es mejor, porque encapsula partes como secretos de un todo. Los
enlaces son ptimos en algunas ocasiones ya que permiten un acoplamiento ms dbil
entre los objetos.
Pg. 12.
Pg. 13.
nuevas clases o a una reorganizacin de las relaciones existentes entre las que ya
existen.
Es importante conocer el concepto de Visibilidad ya que la metdologa de Fusion se
va a apoyar en l. Durante la fase de diseo conviene especificar cmo un objeto es
visible por otro objeto. Hay 4 formas diferentes de que esto se produzca.
El objeto servidor es global para el cliente.
El objeto servidor es un parmetro de alguna operacin del cliente.
El objeto servidor es una parte del cliente.
El objeto servidor est localmente declarado en el alcance del diagrama de
objetos.
Clasificacin
La clasificacin va a ser fundamentalmente una cuestin de igualdad que ayudar a
identificar las jerarquas de generalizacin, especializacin y agregacin entre clases.
Tambin ayuda a la toma de decisiones sobre la modularizacin.
Es difcil llevar a cabo una buena clasificacin ya que no existe una clasificacin
perfecta. Cualquier clasificacin es relativa al punto de vista de su autor. Por otra
parte, una buena clasificacin requiere una gran creatividad e ingenio.
Aproximacin a las clasificaciones
Se hacen tres divisiones:
Categorizacin clsica: todas las entidades que tienen una propiedad o un conjunto
de propiedades en comn forman una categora. Esas propiedades han de ser
necesarias y suficientes para constituir dicha categora. Ej. Una persona est casada
o no casada.
Concptual clustering: las clases se generan a partir de unas descripciones
conceptuales previas acerca de las mismas; posteriormente se clasifican las
entidades de acuerdo con la descripcin.
Teora del prototipo: Una clase de objetos es representada por un objeto prototipo, y
un objeto ser considerado miembro de la clase si y slo si se parece al prototipo de
manera significativa.
En el primer caso hay que centrarse en las estructuras, en el segundo en la colaboracin
de objetos, mientras que en el tercero se considera que el objeto est definido de
acuerdo con una serie de caractersticas del objeto prototipo.
Procedimientos para encontrar clases y objetos
Booch define las fases de anlisis y diseo como sigue:
Anlisis: se va a modelar descubriendo las clases y objetos que forman el
vocabulario de dominio del problema.
Diseo: se inventarn las abstracciones y los mecanismos necesarios para conseguir
el comportamiento que exige el modelo establecido en la fase de anlisis.
Pg. 15.
El mtodo
En la metodooga de Booch se explica qu hay que hacer para definir el sistema, pero
no se da ninguna prescripcin para mejorar las fases de anlisis y diseo del sistema.
Eso puede ser visto como una ventaja por parte de aquellos que prefieren disponer de
una mayor libertad a la hora de producir software, y como una debilidad para aquellos
que no dispongan de mucha experiencia y expertos en la orientacin al objeto.
Booch propone varias formas de describir un sistema en orientacin al objeto. El
modelo lgico, por ejemplo, se representa bajo la estructura de clases y objetos.
Mientras que el diagrama de clases es ms bien esttico, el diagrama de objetos muestra
el comportamiento dinmico del sistema
Pg. 16.
Diagramas de clases
Un diagrama de clases muestra las relaciones entre las abstracciones de un sistema
(vista lgica).
En el diagrama se pueden representar todas o parte de las estructuras de clases de un
sistema, esto es:
Clase: es la unidad modular de la descomposicin software orientada al objeto. Una
clase representa un conjunto de elementos u objetos que comparten la misma estructura
y un comportamiento comn. El comportamiento dinmico de una clase puede
describirse gracias a su diagrama de transicin de estados.
Pg. 17.
Pg. 18.
Categoras de clase: coleccin lgica de clases, algunas de las cuales son visibles a otras
categoras de clase mientras que otras estn ocultas. La mayora de los lenguajes de
programacin en la orientacin al objeto no soportan las categoras de clase.
Pg. 19.
Agregacin: o relacin todo/parte; aparece como una asociacin con un crculo relleno
que indica la agregacin.
Se puede encontrar agregacin por valor:
Instanciaciones:
Metaclases:
Diagramas de objetos
Los diagramas de objetos son parte de la notacin del diseo orientado a objetos.
Muestran todos o algunos objetos junto a sus relaciones en el modelo lgico del sistema.
Pueden usarse para ver su ejecucin en diferentes escenarios.
En un diagrama de objetos se puede tener:
Pg. 21.
Objetos: un objeto es algo que puede hacer cosas; tiene estado, comportamiento e
identidad. La estructura y el comportamiento de los objetos similares se definen en su
clase comn. Un objeto es una instancia de una clase.
Guarded: los clientes activos deben colaborar para conseguir la exclusin mutua.
Pg. 22.
Otros diagramas
Diagrama de transicin de estados:
Se utiliza para mostrar el espacio de estados de una determinada clase, los eventos
(mensajes) que disparan una transicin de un estado a otro y las acciones que resultan
del cambio de estado.
La notacin empleada es la siguiente: un nico nombre para cada estado (que puede
incluir acciones asociadas), flechas dirigidas para conectar los diferentes estados...
Pg. 23.
Una transicin conecta dos estados y tiene que haber un estado inicial en el diagrama.
Diagrama de Mdulos:
Se utiliza para mostrar la colocacin de las clases y objetos en los mdulos en el diseo
fsico de un sistema. Indica la divisin de la arquitectura del sistema.
Los dos elementos esenciales del diagrama son: los mdulos y sus dependencias.
Un subsistema puede tener dependencias en otros subsistemas o mdulos, y un mdulo
puede tener dependencias en un subsistema. La misma anotacin se usa para las
dependencias de los subsistemas.
Diagrama de procesos:
Se usan para mostrar la asignacin de procesos a los procesadores en un diseo fsico
del sistema. A travs de los diagramas se indica la coleccin de procesadores y
dispositivos que sirven como plataforma para ejecutar el sistema.
Pg. 24.
Diagrama de interaccin:
Traza la ejecucin de un escenario en el mismo contexto que un diagrama de objetos.
Permite leer el paso de mensajes de unos objetos a otros en perfecto orden.
Los objetos se colocan horizontalmente en la parte superior y se trazan unas lneas
verticales. Los mensajes se representan horizontalmente con flechas que van desde el
cliente al servidor. La caja vertical representa el tiempo en el que el control est sobre
dicho objeto.
Pg. 25.
Mantenimiento.
Micro procesos.
Conclusin
La metodologa de Booch es muy poco rgida y ofrece gran libertad al usuario de la
misma, lo cual, como ya se ha dicho, trae consigo una serie de ventajas e
inconvenientes.
A partir de todos los conceptos que conforman el modelo de objetos para Booch y de la
notacin que ofrece, el usuario ser el nico responsable de identificar las fases de
anlisis y diseo del sistema. Siempre que se respete esa notacin y que los resultados
obtenidos sean coherentes con los conceptos anteriormente explicados podr
considerarse que el anlisis y el diseo se han llevado a cabo correctamente.
Un ejemplo concreto
Segn Booch, una posible forma (que no tiene por qu ser la mejor) de desarrollar las
fases de anlisis y diseo de un sistema informtico de Adquisicin de datos: estacin
de monitorizacion del clima, podra ser:
Fase de anlisis:
Definicin de los lmites del problema. (Servicios que proporcionar el sistema).
Especificacin detallada de las necesidades del soporte hardware.
Realizacin del diagrama de procesos del sistema.
Ciclo de vida de algn objeto.
Pg. 26.
Fase de diseo:
Pg. 27.
Fases (4)
1. Anlisis de objetos:
Se describe el problema: Se obtienen unos requisitos que no den lugar a dudas
(rendimiento, funcionalidad, contexto,...). En toda la fase de anlisis se describe el
comportamiento del sistema como una caja negra.
Se hacen los diagramas de objetos con su diccionario de datos. As obtengo el modelo
de objetos. En l se define su la estructura de los objetos y clases as como las
relaciones que les unen. Comprende tanto un Diagrama de Clases como un Diccionario
de Datos que las explique. Este modelo debe ser refinado por medio de la iteracin.
Creacin de un modelo dinmico para describir los aspectos de control y evolucin del
sistema. Incluye un Diagrama de Eventos del sistema y un Diagrama de Estado por cada
clase que tenga un comportamiento dinmico.
Creacin de un modelo funcional que describa las funciones, los valores de entrada y
salida, e imponga las restricciones pertinentes. Se suelen utilizar Diagramas de Flujo de
Datos (DFDs).
Se verifican todos los modelos creados.
Se itera para conseguir un refinamiento de los 3 modelos.
2. Diseo del sistema: Comprende la arquitectura bsica. En esta fase se tomarn las
decisiones estratgicas (a alto nivel) de diseo (estructura global del sistema).
3. Diseo de objetos: Es el ltimo paso antes de implementar, y sirve para definir
completamente todas las caractersticas de los objetos. Se detallan los 3 modelos ya
descritos en el anlisis de objetos de cara a poder implementarlo, y optimizar el
programa (acceso a datos, iteraciones, control, recursos,...). Todo esto ha de hacerse
con independencia del lenguaje o entorno en que finalmente codifiquemos y
ejecutemos la aplicacin.
4. Implementacin: Se codifica lo ya diseado.
Pg. 28.
Pg. 29.
Conclusin
Una de las grandes virtudes de OMT es su modelo de objetos, que contiene una enorme
riqueza semntica, por lo que ha sido adaptado por casi todas las metodologas de
segunda generacin, y es una de las bases metodolgicas de la metodologa Objetory
que en breve aparecer (de la mano de los 3 amigos: Rambaugh, Booch y Jacobson)
para completar a UML.
OMT es una metodologa bastante slida (si exceptuamos su modelo funcional, bastante
criticado), que completado con otras tcnicas de representacin (CRCs, Casos de Uso...)
la hacen la metodologa ms difundida (tanto a nivel universitario como empresarial)
del momento.
Notacin
Todas las relaciones y diagramas han de respetar la siguiente notacin:
Pg. 31.
Pg. 32.
Anlisis
El anlisis se basa ms en describir lo que hace un sistema en lugar de cmo lo hace.
Para esto, hay que ver el sistema desde la perspectiva del usuario en lugar de desde la de
la mquina. El anlisis casa con el dominio del problema y se preocupa por el
comportamiento visible externamente.
La meta de la fase de anlisis es capturar tantos requisitos del sistema como sea posible.
Se producen los siguientes modelos del sistema:
Modelo de objetos
Modelo de la interface
Modelo del funcionamiento,
Modelo del ciclo de vida.
Estos modelos describen:
Clases de objetos que existen en el sistema.2
Relaciones entre esas clases.
Operaciones que pueden realizarse en el sistema.
Secuencias permitidas de estas operaciones.
La entrada para la fase de anlisis es un documento de definicin de requisitos en
lenguaje natural.
Especifica el orden en el que deben hacerse las cosas dentro de cada fase. Tambin proporciona
criterios de cundo pasar a la siguiente fase.
2
En la fase del anlisis de Fusion, slo los atributos de una clase son considerados. Los mtodos son
considerados en la fase de diseo. Por consiguiente, en la fase del anlisis, los objetos son similares a las
entidades en el tradicional modelo entidad relacin.
Pg. 33.
Modelo de objetos
La finalidad del modelo de objetos en Fusion es:
capturar los conceptos que existen en el dominio del problema y las relaciones entre
ellos,
mostrar clases y sus relaciones, (no mostrar objetos)
El modelo de objetos representa:
la estructura esttica de la informacin en el sistema,
las clases y relaciones entre ellas,
atributos de clases,
agregacin,
especializacin/generalizacin.
Definiciones:
Un objeto es cualquier cosa que puede ser identificada. Puede tener una serie de
valores nombrados, llamados atributos.
La generalizacin permite a una clase, llamada supertipo, ser formada sacando las
propiedades comunes de varias clases, llamadas subtipos. La especializacin es el
caso inverso en el que un nuevo subtipo se define como una versin ms
especializada de un supertipo.4
Pg. 34.
Pg. 35.
Pg. 36.
Este modelo puede ser reemplazado por guiones en la versin ligera de Fusion.
Pg. 37.
Proceso de Anlisis
El anlisis no es un proceso anrquico: hay una sucesin definida de pasos que pueden
aplicarse iterativamente para producir una especificacin completa y consistente que
capture los requisitos.
El anlisis es una actividad incremental e iterativa que formaliza los requisitos. Puede
llevarse a cabo de una manera sistemtica.
En Fusion, el proceso de anlisis se define como sigue:
1. Desarrolle un modelo de objetos para el dominio del problema.
2. Determine la interface del sistema.
Identifique los agentes, operaciones del sistema, y eventos.
Produzca el modelo de objetos del sistema agregando el lmite al modelo de
objetos.
3. Desarrolle un modelo de interface.
Desarrolle un modelo de ciclo de vida.
Desarrolle un modelo de funcionamiento.
4. Verifique el modelo de anlisis.
Para todos, hasta para el ms trivial, de los problemas el proceso debe de ir acompaado
por la construccin y uso de un diccionario del datos.
Diccionario de datos
El diccionario de datos sirve para coleccionar informacin no disponible en los
diagramas de Fusion. El diccionario de los datos es un almacn (repositorio) central de
definiciones de trminos y conceptos.
Ejemplo de la estructura del diccionario de datos.
Pg. 38.
Sin embargo, esto no es obligatorio, y el formato real del diccionario de los datos es
insignificante.
Desarrollo del Modelo de Objetos
Cmo empezar a construir el Modelo de Objetos?
Empezar el anlisis puede ser a menudo la parte ms difcil. El anlisis debe empezarse
con un alto nivel de abstraccin. Es mejor utilizar los requisitos para una tormenta de
ideas de posibles clases y relaciones. Slo despus de que su estructura global sea
satisfactoria deben aadirse los detalles. Hay que recordar que el modelo de objetos
utiliza clases, mientras que un documento de requisitos es expresado principalmente en
trminos de objetos especficos.
Cmo encontrar clase candidatas?
Casi cualquier nombre puede dar lugar a una clase. Sin embargo, para serlo, el nombre
debe pertenecer a un concepto que sea importante para la comprensin del dominio.
Posibles fuentes de clases candidatas son:
Objetos fsicos,
Personas y organizaciones,
Abstracciones.
Cmo encontrar relaciones?
Modelan correspondencias entre objetos. Comunicaciones, asociaciones fsicas,
contenciones, y acciones son todas las posibles fuentes para relaciones candidatas. Una
vez que las listas de candidatas se ha hecho, deben racionalizarse. En ese punto, pueden
usarse las clases y relaciones para empezar el diccionario de datos.
stos se ignoran durante la fase de la tormenta de ideas inicial. Cualquier clase candidata que no tenga
ningn atributo y que se relacione con slo otra clase, puede convertirse en atributos.
Pg. 39.
Durante el anlisis, un sistema es modelado como una entidad activa que coopera con
otras entidades activas, llamadas agentes. El sistema y los agentes se comunican
enviando y recibiendo eventos. Cuando los eventos son recibidos por el sistema, pueden
causar un cambio de estado y eventos de salida. Un evento de la entrada y su efecto
asociado son conocidos como una operacin del sistema.
La interface de un sistema es el conjunto de operaciones del sistema a las que puede
responder y los eventos que puede enviar.
Una operacin del sistema siempre es invocada por un agente, no por un objeto; la fase
del anlisis no se preocupa por mensajes internos entre los objetos.
La informacin obtenida en la determinacin de la interface del sistema es el punto de
partida para desarrollar el modelo de la interface.
Qu es la notacin de la interface del sistema?
El escenario es una tcnica til para definir la interface del sistema.
Un escenario es una sucesin de eventos que fluyen entre agentes y el sistema para
algn propsito.
Un escenario se representa como un diagrama de secuencia, que muestra las rdenes
temporales del sistema y los eventos que fluyen a los agentes. Los diagramas de
secuencia no pueden mostrar caminos alternativos de comunicacin. Por consiguiente,
en general pueden necesitarse diagramas mltiples para un slo escenario.
Los diagramas de secuencia de escenario aportan una herramienta para intuir las
consecuencias del diseo de la interface y visualizar cmo se comporta el sistema. Son
tiles al validar decisiones de la interface con clientes porque son simples e intuitivos de
entender.
Pg. 40.
Diseo
El diseo consiste en desarrollar un modelo abstracto de cmo un sistema lleva a cabo
el comportamiento especificado en el anlisis.
El diseador escoge cmo se va a construir el sistema. Durante este proceso, los
mtodos se unen a las clases. El diseador tambin escoge cmo los objetos se
relacionan entre ellos y qu relaciones de herencia entre clases son apropiadas.
La fase de diseo de Fusion se basa en las CRC y los mtodos de Booch.
La salida del diseo es una estructura de software orientado a objeto que contiene la
misma informacin y mantiene las relaciones definidas en el modelo de objetos del
sistema.
Durante esta fase se desarrollan los cuatro modelos siguientes:
Pg. 43.
Objeto del diseo. Tiene atributos y la interface de los mtodos. En la fase del
anlisis un objeto no tena ningn atributo ni mtodo. Para distinguirlo de este, se utiliza
la palabra objeto del diseo. La notacin es una caja slida.
Colecciones de Objetos. Colecciones de objetos de la misma clase. Las
implementaciones tpicas de estas colecciones sern listas o arrays. La notacin es una
caja con lneas discontinuas.
Paso de mensajes. El paso de mensajes es una comunicacin punto a punto, y se
realiza como una llamada a una funcin o a un mtodo. La notacin es una flecha
directa con etiquetas. La direccin de la flecha es del remitente al receptor. Tambin se
llaman cliente y servidor.
Paso de mensajes a Colecciones. Un mensaje puede pasarse a colecciones de
objetos. La notacin es una flecha directa a una caja con lneas discontinuas.
Secuencia de Mensajes . Si una secuencia de pasos de mensajes es importante, se
puede mostrar el orden de la secuencia introduciendo etiquetas de la secuencia entre
parntesis sobre el nombre del mensaje. La notacin son etiquetas de la secuencia entre
parntesis.
Creacin dinmica de Objetos . La palabra clave new indica que un objeto se crea
como parte de la ejecucin de un grfico de interaccin de objetos. El mensaje especial
create tambin debe ser enviado a cada nuevo objeto, con los parmetros de invocacin
apropiados, para inicializarlo. La notacin es una flecha directa con el mensaje create().
Cmo desarrollar un grfico de interaccin de objetos?
Para cada operacin del sistema se realiza un grfico de interaccin de objetos. Esto
significa que se desarrolla un grfico de interaccin de objetos para cada esquema en el
modelo de funcionamiento.
Esto supone los siguientes pasos:
1. Identifique los objetos pertinentes involucrados en la implementacin de la
operacin del sistema.
El esquema del modelo de funcionamiento se usa como el punto de partida para
identificar los objetos involucrados.
La clusula Lee del esquema proporciona una lista de los objetos a los que la
operacin del sistema accede pero no modifica.
La clusula Cambia lista los objetos cambiados por dicha operacin.
Adems de los objetos listados explcitamente en el esquema, puede haber otros
objetos involucrados. Por ejemplo, pueden introducirse nuevos objetos para representar
abstracciones de mecanismos computacionales no identificadas en los modelos del
anlisis.
La clusula Enva del esquema, por ejemplo, lista los eventos de salida a agentes
del sistema.
2. Establezca el rol de cada objeto.
Identifique al director (es decir, el objeto que recibe la demanda para invocar la
operacin del sistema, y es responsable de dicha operacin).
Identifique a los colaboradores involucrados.
3. Decida los mensajes entre los objetos.
Pg. 45.
Pg. 46.
Grficos de visibilidad
Durante el desarrollo de los grficos de interaccin de objetos, se supona que todos los
objetos son visibles entre s y se pueden enviar mensajes. El propsito del grfico de
visibilidad es definir la estructura de la referencia de clases en el sistema. La tarea es
identificar para cada clase,
objetos que las instancias de la clase necesitan referenciar,
los tipos apropiados de referencia a esos objetos.
Notacin del grfico de visibilidad
Hay tres componentes en el grfico de visibilidad:
1.caja del cliente
Esto representa la clase que requiere el acceso. Una caja del cliente es un rectngulo
que contiene el nombre de una clase.
2.caja del servidor
Esto representa el objeto al que se accede. Una caja del servidor es un rectngulo que
contiene una etiqueta del servidor que nombra la instancia en la caja, la clase de la
instancia, si el servidor es creado por el cliente, y si la referencia al servidor es o no
constante.
3.flecha de visibilidad
Esto representa que el cliente tiene acceso a la instancia del servidor va una ruta de
acceso.
Pg. 47.
3. Para cada clase, considere todas las flechas anotadas de las instancias de la clase.
Construya un grfico de visibilidad con la clase en la caja cliente y con flechas de
visibilidad conectadas a las cajas servidor.
La etiqueta en las flechas de los grficos de interaccin de objetos puede copiarse a
travs de los grficos de visibilidad donde sea necesario.
Cmo verificar el grfico de visibilidad?
Hay que hacer tres chequeos importantes:
1.Consistencia con los modelos del anlisis.
Las relaciones identificadas durante el anlisis definen invariantes que deben
mantenerse entre las clases. Se debe chequear que las estructuras orientadas a objeto
definidas en los grficos de visibilidad mantengan las relaciones. Para cada relacin en
el modelo de objetos de sistema, esperamos que haya un camino de visibilidad entre las
clases correspondientes en el diseo.
2.Consistencia mutua
Verifique que los objetos servidor exclusivos no son referenciados por ms de un
cliente.
3.Integridad
Verifique para ver que todos los pasos de mensajes definidos en los grficos de
interaccin de objetos estn comprendidos en los grficos de visibilidad.
Descripciones de clase
Despus de desarrollar los grficos de visibilidad para todas la clases, el siguiente paso
es intercalar informacin del modelo de objetos del sistema, de los grficos de
interaccin de objetos y de los grficos de visibilidad en descripciones de clase, una
para cada clase.
En esta fase, los mtodos, algunos atributos de datos, y los atributos de valor de los
objetos se establecen para cada clase.
Cuando estas descripciones iniciales se han producido, se disean las estructuras de
herencia requeridas en el sistema.
Notacin de las descripciones de la clase
La notacin es como sigue:
clase <Nombre_de_la_Clase> [ isa <Nombre_de_la_SuperClase>]
// para cada atributo
[attribute][Mutability] <Nombre_del_Atributo>: [Sharing][Binding] <Tipo>
:
:
// para cada mtodo
[method] <Nombre_del_mtodo> <Lista_de_argumentos> [: <Tipo>]
:
:
endclass
Grficos de herencia
Una consideracin importante en diseo orientado a objeto es la herencia, un
mecanismo por cul una clase puede definirse como una especializacin de otra. Los
grficos de herencia reflejan las relaciones de herencia entre las clases.
Pg. 52.
Pg. 53.
Pg. 54.
Implementacin
El costo de utilizar esta versin ligera es que habr menos documentacin para la
implementacin y un menor soporte para el mantenimiento.
Pg. 55.
Proceso
Una vez diferenciados los dominios, se procede al anlisis de cada uno de ellos
consiguiendo un modelo de cada dominio:
1. Divisin del problema en dominios: Hay 4 tipos de dominios: de Aplicacin
(usuario), de Servicio (interfaz), de Arquitectura (datos y su control.) y de
Implementacin (sistema operativo).
2. Anlisis del Dominio de Aplicacin: Se crean varios modelos, para cubrir las
especificaciones del cliente:
Un Modelo de Informacin de los objetos en el que se reflejar el anlisis
conceptual.
Luego un Modelo de Estados que refleje el comportamiento del sistema.
Por ltimo una descripcin de acciones especficas, usando A-DFDs.
Para toda esta fase se pueden usar herramientas CASE. La metodologa tambin define
una serie de modelos de subsistemas adicionales.
3. Confirmacin del anlisis: Validar que cumple los requisitos y tiene la forma
adecuada. Se hace una simulacin mediante secuencias del tipo Estado_inicialComportamiento-Accin para comprobar si realmente la aplicacin va a funcionar
como deseamos.
4. Extraccin de requisitos para los Dominios de Servicio. Se representan los dominios
como elipses. Ahora, a todos los requisitos implcitos no descritos por el cliente
(aquellos que tratan sobre la interrelacin entre los dominios) se representan por una
flecha entre los dominios afectados, denominada puente. Deben quedar reflejados
darse todos estos requisitos, tanto los cualitativos como los cuantitativos.
5. Anlisis de los Dominios de Servicio: Una vez que ya tenemos los requisitos de los
dominios del cliente, pasamos a analizar este segundo tipo de dominios en los que
subdividimos nuestro problema.
6. Especificacin del Dominio de Arquitectura: En este dominio se especifican facetas
de diseo (estructuras de datos a usar, autmatas de control, threads, algoritmos,...). Se
usarn los siguientes diagramas: de pertenencia/dependencia -> de clases(estructura
Pg. 56.
8. Codificacin de los modelos: Para la codificacin nos dan unas pautas generales,
aunque ya nos avisa que no tienen por que ser totalmente seguidas debido a la diferencia
existente entre un LPOO y otro.
9. Beneficios: Los desarrollos apoyados en esta metodologa son fciles de verificar.
Usa un refinamiento sucesivo, y un acercamiento integral al problema. Los programas
son mucho ms reutilizables. Existen herramientas CASE que automatizan tosa la
metodologa.
Fase de diseo
System Level:
System Level:
Domain Chart
Project matrix
Domain Level:
Task Level:
Inheritance Diagram
Dependency Diagram
Task Archetypes
Subsystem Level:
Class Level:
Class Diagram
Class Archetypes
Object Level:
Fase de impementacin
Pg. 57.
Caractersticas
La potencia de EROOS queda resumida en 3 puntos:
1. Combina el modelado del comportamiento con el modelado de las estructuras a
representar. Una integracin total de estos dos modelados proporcionara al mtodo de
especificacin unas propiedades de composicin y descomposicin mucho ms
potentes. Esto llevara a un software mejor estructurado, mantenible y reutilizable.
2. Descripcin del software declarativa (no operacional). La primera descripcin de lo
que el sistema ha de hacer, en lugar de cmo le permite ir transformndose sin perder
de vista el problema a solventar. Esto da un nivel de abstraccin adecuado a cada fase
del desarrollo.
3. Separacin del dominio del problema de su solucin. Esto crea un sistema flexible y
cambiable, pero con un ncleo slido. La funcionalidad del sistema se reflejar en ese
ncleo, permitiendo que el sistema se adapte a las peticiones del usuario, en lugar de
comenzar desde el principio cada vez que surja una nueva demanda.
Una de las virtudes de EROOS es que al dar una notacin y reglas a seguir, solo puede
darse una solucin a un problema (estando en un determinado nivel de abstraccin). As
se minimizan los malentendidos por malas interpretaciones y se facilita el trabajo en
grupo.
Existen herramientas generadoras de cdigo C++ y herramientas CASE basadas en esta
metodologa que ayudan a llevarla a la prctica.
Ciclo de Vida
Comienza por la solicitud de los requisitos (no despus).
1. Anlisis:
Pg. 58.
Anlisis del software: Diseo y descomposicin del sistema en subpartes para poder
reutilizarlas o compartirlas. Toma de decisiones en cuanto a la distribucin de la
informacin y la concurrencia se refieren.
3. Diseo de la solucin:
Diseo del cdigo: Seleccin del lenguaje adecuado para nuestro cdigo y fusin
entre el lenguaje y la plataforma. Toma de decisiones en cuanto a la distribucin de
la informacin y la concurrencia se refieren.
Objetos y clases: Los objetos son clasificados en clases, distinguiendo entre objetos
presentes y pasados. Esto se consigue porque aunque la relacin entre el objeto y su
clase madre es esttica, ste puede mantenerse an despus de la muerte de la clase
como archivado, pudiendo accederse a sus valores, pero nunca ms modificarlos.
Siempre son creados y destruidos (poseen un ciclo de vida).
Relaciones: Refinan a las clases y especifican las relaciones que las unen. En
realidad son objetos, con una existencia dependiente de los objetos implicados en la
relacin. Solo se permiten relaciones unarias y binarias.
Pg. 59.
Notacin
OBJETOS Y CLASES:
Pg. 60.
RELACIONES:
Pg. 61.
RESTRICCIONES:
Figura
37.
Notacin
restricciones en EROOS
para
las
CONSULTAS:
Figura
39.
Notacin
para
las
funcionalidades del Kernel en EROOS
SHELL:
Figura
40.
Notacin
para
funcionalidades del Shell en EROOS
las
Pg. 62.
GENERALIZACIN/ESPECIALICACIN:
Pg. 63.
Metodologa MOSES
Introduccin
La metodologa MOSES (Methodology for Object-Oriented Software Engineering of
Systems) es una metodologa que cubre todo el ciclo de vida del desarrollo de software
orientado a objeto, no slo anlisis y diseo, sino la gestin de proyectos, planificacin
de negocio, mantenimiento de la aplicacin y futuras mejoras. Incluye una notacin
completa que adems es soportada por algunas de las herramientas CASE que existen
en el mercado, as como unas tcnicas de gestin avanzadas que no estn disponibles en
ninguna otra metodologa.
Muchas industrias estn adoptando MOSES como metodologa de desarrollo de
software de calidad. Uno de los sitios donde se est realizando (buque insignia de esta
metodologa) es en Dow Jones, para su sistema de Telerate (Sistema de informacin
que distribuye del valor de las acciones de la bolsa de Dow Jones, Nueva York).
MOSES es un compendio de:
1. Un ciclo de vida de desarrollo de software basado en el modelo de ciclo de vida
fuente orientado a objeto.
2. Un ciclo de vida del producto con 3 etapas orientadas al negocio.
3. Un ciclo de vida de procesos con 5 fases solapadas orientadas a la parte tcnica.
4. Un conjunto de 20 actividades que componen una detallada gua de pasos a seguir.
Ventajas que ofrece MOSES:
Incorpora diagramas de modelizacin de negocio.
Consigue unos procesos mejores.
Da soporte a la reutilizacin.
Las extensiones y modificaciones son ms fciles de gestionar.
Est enfocada a la calidad.
Crea una arquitectura flexible.
Consigue una gestin adecuada de proyectos complejos.
Da soporte a herramientas CASE.
Modelo Fuente
El modelo fuente nos da un ciclo de vida de desarrollo software (SDLC) muy iterativo y
recursivo, que es especialmente adecuado para la construccin de software orientado a
objeto. Las ventajas de la reutilizacin y el anlisis y diseo de dominios estn
incorporadas, y as se consigue un modelo semnticamente muy rico, aunque flexible.
En este modelo (que viene a reemplazar al modelo cascada usado en anlisis
estructurado) aunque las fases son consecutivas, encontramos un considerable
solapamiento.
Pg. 64.
Pg. 65.
Assets generados
1. En la etapa de planificacin de negocio:
El estudio de planificacin de negocio. Es un asset textual, es decir es una descripcin
realizada en algn procesador de textos en lenguaje natural.
2. En la etapa de construccin:
- 8 textuales: El plan de iteracin, la especificacin de requisitos del usuario, el glosario
de escenarios y actores, la especificacin de clases, la especificacin de
responsabilidades de los subsistemas, el cdigo fuente, resultados de las pruebas y
resultados de la revisin.
De estos 8 destacan 2:
*) La especificacin de clases (descripcin de cada clase que aparecer en el
modelo de objetos y clases) que puede hacerse en una sintaxis formal basada en la
usada en Eiffel o usando una sintaxis ms informal.
*) La especificacin de responsabilidades de los subsistemas, que es usada para
documentar los nombres de los distintos subsistemas, sus servicios, sus
responsabilidades y colaboraciones. Tambin se le conoce como SRS. Se usa un
mecanismo similar a las tarjetas de clase (CRC).
- 5 grficos: El modelo de clases y objetos, el modelo de eventos, los diagramas de
objetos, el modelo de herencia y el modelo de estructuras de servicios:
1. El modelo de clases y objetos (O/C Model) es el principal asset de MOSES.
Representa la estructura esttica del sistema (las clases, sus servicios y relaciones
con otras clases). (Figura 1: parte superior izquierda).
2. El modelo de herencia (inheritance model) se usa para mostrar la herencia que se
produzca entre las diferentes clases, y aunque se puede integrar en el modelo
anterior, se suele hacer en este otro. (Figura 1: parte superior derecha)
3. El diagrama de objetos (objectchart) muestra las clases que presentan
comportamiento dinmico. Muestra los diagramas de transicin de estados aplicados
a clases. (Figura 1: parte inferior izquierda).
4. El modelo de eventos (event model) muestra las clases que presentan
comportamiento dinmico. Muestra las secuencias de paso de mensajes entre un
conjunto de objetos que colaboren. Se suelen usar para formalizar escenarios o casos
de uso. (Figura 1: parte inferior derecha)
Pg. 66.
Pg. 67.
Pg. 68.
10. Construccin del diagrama de objetos: Se usa para construir una herramienta grfica
llamada diagrama de objetos, que es una extensin de los diagramas de estados y
representa los cambios de estados de las clases individuales. Adems puede ser
usado para especificar completamente el comportamiento de los objetos, de las
clases e identificar comportamientos errneos. Para construir un diagrama de
objetos, se debe identificar primero todos los estados aplicables a los objetos y todas
las transiciones entre estos estados.
11. Identificacin de clases y objetos: Es una actividad para modelizar las actividades,
identificar y especificar completamente todas las clases y objetos en el dominio del
sistema de la aplicacin. Esta actividad puede ser dividida en subactividades: refinar
la lista de clases iniciales e identificar las clases persistentes.
12. Optimizacin: Vale para optimizar en el diseo, con cambiar la estructura de las
clases y sus interfaces. Requiere el conocimiento profundo de los aspectos fsicos de
la plataforma hardware en que implementaremos el producto.
13. Evaluacin de la calidad (medidas): Asegura que la clase generalizada para su
reutilizabilidad posee la garanta suficiente. Las mtricas juegan un rol
insignificante.
14. Desarrollo de escenarios: Usa el lenguaje natural para implementar la secuencia de
interaccin (los casos de uso) con un sistema desde el cual las clases, los eventos y
las interacciones pueden ser identificados. Las acciones en el sistema son
primeramente identificados, y entonces los escenarios pueden ser asociados a cada
actor.
15. Identificacin de los servicios: Ayuda a comprender el comportamiento de los
objetos, mediante la especificacin de los servicios aplicables a una clase u objeto.
Los servicios pueden ser tanto operaciones como propiedades.
16. Coordinacin de los subsistemas: Es usado en la gestin de tareas de proyectos
grandes para descubrir redundancias potenciales y asociar la responsabilidad de una
clase a un grupo de trabajo.
17. Identificacin de subsistemas: Ayuda a manejar sistemas complejos.
18. Prueba: Da soporte a la verificacin y validacin del diseo y el cdigo generado.
19. Traduccin al Lenguaje de Programacin Orientado a Objeto (OOPL): Es
bsicamente la fase de implementacin de un proyecto. Los servicios y estructuras
han de codificarse en un determinado lenguajes y plataforma.
20. Revisin de los requisitos del usuario: Desarrolla y define una especificacin de
requisitos formal y estable.
Estas veinte actividades estn asociadas en la tabla siguiente con las fases (proceso del
ciclo de vida). Las actividades pueden suceder en ms de una fase:
Pg. 69.
Figura 44. Relacin entre las 20 actividades y las fases en que se realizan
en la metodologa MOSES
Pg. 70.
BON
BON es una metodologa de Ingeniera de Software que se inscribe en la categora de
metodologas puramente orientadas al objeto. Tiene su origen en la filosofa de diseo
y programacin por contrato, junto con algunas caractersticas del modelo de objetos
propuesto por el lenguaje Eiffel y diversas influencias del proyecto europeo ESPRIT II
(Research and Development Program).
Aunque BON (Business Object Notation) suele aparecer como una metodologa ligada
al lenguaje Eiffel, su concepcin es independiente de ste. Sin embargo muchas de sus
tcnicas encuentran un equivalente inmediato en Eiffel en el proceso de
implementacin, lo cual facilita la construccin de herramientas CASE que simulen la
metodologa orientadas a este lenguaje en particular.
BON es un mtodo y una notacin para un anlisis y diseo orientados a objeto de
sistemas de alto nivel. Algunas de sus caractersticas ms destacables son:
Reversibilidad.
Software contractual.
Simplicidad.
Escalabilidad.
Principios fundamentales
Desarrollo sin costuras (Seamlessness).
El desarrollo sin costuras es el principio de utilizar un conjunto consistente de conceptos
y notaciones a travs del ciclo de vida del software, evitando lo que su falta genera en
los mtodos tradicionales.
Una ventaja muy importante del seamlessness es que facilita los procesos de traduccin
automtica.
Reversibilidad.
Este principio complementa el proceso sin costuras, garantizando que los cambios
realizados en cualquier paso del proceso, incluso en la implementacin o el
mantenimiento, puedan reflejarse hacia atrs en los primeros pasos, incluyendo el
anlisis.
Pg. 71.
Si esto no fuera posible los primeros niveles de modelado pasan a ser obsoletos dejando
solamente el cdigo fuente de la implementacin como especificacin del sistema, con
todos los inconvenientes que esto supone.
Software contractual.
Con este principio la especificacin de un gran sistema est distribuida entre todas sus
partes componentes. Las responsabilidades de cada abstraccin (clase) estn
especificadas por contratos expresados en funcin de otras abstracciones.
Simplicidad.
El principio de simplicidad indica que hay que minimizar el nmero de conceptos
utilizados.
Escalabilidad.
El principio de escalabilidad se manifiesta en trminos de la capacidad de soportar un
formalismo para representar grupos de clases progresivos y soportar la divisin del
problema, basada en capas de abstraccin como manejo de la complejidad estructural.
Proceso de Anlisis
El objetivo del anlisis es poner un cierto orden en nuestra concepcin del mundo real.
El propsito es simplificar, dominar la complejidad mediante la reformulacin del
problema. Hay que eliminar redundancias y ruidos, encontrar inconsistencias, posponer
decisiones de implementacin, dividir el espacio del problema...
BON considera que el anlisis se convierte en diseo cuando se toman decisiones de
implementacin, cuando se introducen grados de proteccin para la informacin o
cuando se introducen clases que no estn relacionadas con el espacio de objetos del
problema.
Proceso de diseo
El diseo es un proceso que toma por entrada una representacin del problema y la
transforma en una representacin de la solucin, regresando al anlisis si es necesario.
En el diseo, las clases obtenidas en el anlisis se extienden, generalizan y se transforma
su representacin en un esquema fcilmente traducible a un lenguaje de programacin
orientado al objeto.
Se aade la especificacin de nuevas clases que aparecen como interfaz con el exterior
del sistema, otras que son de utilidad bsica para la construccin del sistema (clases
contenedoras...) y aquellas que son consideradas como clases de aplicacin que tratan
con informacin dependiente de la mquina o del sistema, con persistencia de objetos,
manejo y recuperacin de errores.
En BON se modelan tanto el espacio del problema, como el espacio de la solucin,
como abstracciones de datos que encapsulan servicios. En el modelado, aunque lo
primero en que se piense sea en un servicio, debe buscarse la abstraccin (clase)
subyacente que representa a aquellos individuos que ofrecen tal servicio.
Pg. 72.
El primer principio es considerar las clases como una representacin de tipos de datos
abstractos que tienen un estado interno y ofrecen servicios, opuesto al criterio las cosas
que hacen que est ms cerca de las tcnicas procedurales.
Las clases no se ubican aisladamente sino que se agrupan en clusters. Durante el
anlisis, los clusters ayudan ya que agrupan clases de acuerdo con un criterio de
proximidad basado en funcionalidad de subsistema, en nivel de abstraccin o en el
punto de vista del usuario final. En el diseo, son utilizados frecuentemente como una
tcnica estructurada para visualizar selectivamente las conexiones entre las clases. Es
muy comn comenzar por un cluster general y luego ir determinando otros despus de
haber hecho ciertos agrupamientos de clases.
Es importante ubicar el lugar de una clase dentro de la estructura completa. Esto implica
que encontrar clases relacionadas es ms significativo que encontrar una clase aislada.
Cada etapa en BON (anlisis y diseo) refina el modelo general desde dos puntos de
vista distintos: arquitectura y comportamiento. El resultado es un modelo subdividido
en modelo esttico y modelo dinmico. Las actividades globales, que se describen en la
metodologa para ir creando dichos modelos se describen en la Tabla A mientras que en
la Tabla B y en la Figura 46 se describen los elementos grficos ms generales que se
utilizan en la descripcin del modelo.
Es de destacar, que se propone comenzar un proceso de generalizacin. En este proceso
debe analizarse si la arquitectura del sistema es suficientemente general para maximizar
futuras reutilizaciones. De esta manera, del conjunto de clases obtenidas se factorizan
recursos comunes en clases de alto nivel (por herencia o por genericidad) y las clases
existentes se convierten en versiones especializadas de estas ltimas.
Pg. 73.
TAREA
Encontrar clases
Clasificar
Encontrar clusters
Seleccionar y describir
escenarios de objetos
Especificacin
de
las
condiciones contractuales.
Refinar el sistema.
Incrementar el potencial de
reusabilidad
Indexar y Documentar
Evolucionar la arquitectura
del sistema
DESCRIPCIN
ESQUEMA
Delinear la frontera del sistema. Encontrar subsistemas, Tabla de Sistema (System Chart),
metforas de los usuarios, casos de uso.
Tablas de Escenarios (scenario Charts)
Listar clases candidatas. Crear un glosario de trminos Tabla de Clusters (Clusters Chart)
tcnicos.
Tabla de Sistema (System Chart),
Seleccionar clases y agruparlas en clusters. Clasificar, Tabla de Clusters (Clusters Chart),
esbozar colaboraciones fundamentales entre clases
Arquitectura (Static Architecture),
Diccionario de clases (Class Dictionary)
Definir las clases. Determinar comandos (Qu servicios
pueden solicitar otras clases a esta?), consultas (Qu
informacin pueden preguntar otras clases a esta?) y Tablas de Clases (Class Charts)
restricciones (Qu conocimiento debe mantener la
clase?)
Esbozar el comportamiento del sistema. Identificar Tablas de Eventos (Event Charts),
eventos, creacin de objetos y escenarios relevantes Tablas de Escenarios (Scenario Charts),
derivados de la utilizacin del sistema
Tablas de Creacin (Creatio Charts),
Escenarios de Objetos (Object Scenarios)
Definir los recursos pblicos. Especificar tipos, Interfaz de clases (Class Interfaces),
signaturas y contratos formales.
Arquitectura (Static Architecture)
Interfaz de clases (Class Interfaces),
Encontrar nuevas clases de diseo, adicionar nuevos Arquitectura (Static Architecture),
recursos.
Diccionario de clases (Class Dictionary),
Tablas de Eventos (Event Charts),
Escenarios de Objetos (Object Scenarios)
Interfaz de clases (Class Interfaces),
Generalizar. Factorizar comportamiento comn.
Arquitectura (Static Architecture),
Diccionario de clases (Class Dictionary)
Documentar explcitamente la descripcin de una clase
mediante la clusula de indexado.
Completar la Interfaz de clases (Class Interfaces)
informacin de documentacin en el diccionario de Diccionario de clases (Class Dictionary)
clases.
Completar y revisar el sistema. Producir una arquitectura Modelos esttico y dinmico finales de
final con un comportamiento del sistema.
BON. Todos los esquemas completados.
Pg. 74.
Pg. 75.
La Unificacin de Mtodos
Despus de explicar varias metodologas (orientadas a objeto), se puede observar que, a
pesar de algunas notables diferencias existentes entre unas y otras, todas persiguen un
mismo objetivo: la obtencin de un software de calidad dentro del paradigma de la
orientacin al objeto.
Por lo tanto se puede llegar fcilmente a la conclusin de que se intentar llegar a una
unificacin de los diferentes mtodos.
He aqu una serie de motivos que tambin contribuyen a esta tendencia:
El esfuerzo por la estandarizacin y la convergencia en la orientacin al objeto.
Los avances en herramientas CASE OO.
El inters por el modelado de negocios mediante objetos.
Comenzarn a surgir: UML, OPEN...
OPEN.
OPEN fue creada en un principio a partir de una mezcla de algunas metodologas de
segunda generacin (MOSES, SOMA y The Firesmith Method).
Es esencialmente un armazn para la tercera generacin de mtodos de desarrollo
software en la orientacin al objeto, suministrando un gran soporte para el proceso de
modelado mediante el uso de modelos de ciclo de vida, mediante una captura de
requisitos, y ofreciendo la habilidad de modelar o construir agentes inteligentes.
Pg. 76.
OPEN tambin toma conceptos de BON, Martin/Odell, OBA, RDD, ROOM, UML y
otros.
Ofrece un conjunto de principios para el modelado de todos los aspectos del desarrollo
software: ciclo de vida, tareas, tcnicas y modelado del lenguaje.
OPEN extiende el concepto de metodologa, no slo incluyendo un modelo de procesos,
sino tambin suministrando lneas para construir versiones del mtodo que se ajusten a
las necesidades del dominio industrial, organizaciones individuales...
Los elementos principales de esta metodologa son:
Ciclo de vida o metamodelo.
Tcnicas.
Representacin.
Se ha conseguido una metodologa que comprenda, al menos, un conjunto de tcnicas,
ms un modelo de ciclo de vida y una representacin.
Las actividades de OPEN tienen tareas que se ejecutan y se completan gracias a las
tcnicas.
Pg. 77.
Pg. 78.
Conclusin
Los mtodos orientados a objeto presentan una visin idealizada del desarrollo de
software. Describen una manera lgica, racional y sistemtica de desarrollar software
orientado a objeto. En la prctica, el desarrollo no se hace de una manera tan ordenada.
Presentar el proceso de desarrollo de una manera racional hace ms fcil ilustrar las
dependencias y relaciones entre las diferentes fases del desarrollo. El desarrollo del
software real no refleja semejante proceso racional pero la documentacin producida
refleja, y en algn sentido "imita", el proceso racional.
En el mundo empresarial la reutilizacin es uno de los valores aadidos que puede
presentar un elemento software, y en este sentido la orientacin a objetos presenta una
de sus mayores virtudes, pero esta cualidad perder potencia si no se desarrolla bajo los
parmetros que ofrece una metodologa.
Cualquiera de las metodologas explicadas es vlida para trabajar en la orientacin al
objeto. Sin embargo hoy en da se tiende a una unificacin de los mtodos, tal y como
se ha visto en el apartado correspondiente. En este sentido cabe destacar la metodologa
Objetory, que en breve ser publicada por Los 3 Amigos (Booch, Rumbaugh y
Jacobson), que se perfila como la metodologa con ms futuro y posiblemente la
unificadora de todas las publicadas actualmente. Una de las ventajas que ofrece esto es
el hecho de utilizar una misma notacin que todo el mundo comprenda y que no de
lugar a ambigedades.
Para poder llegar a esa unificacin se ha de estudiar cada una de las metodologas
existentes para poder tomar lo mejor de cada una de ellas.
En este documento se han visto metodologas de todo tipo. Desde la menos rigurosa
(que da una libertad de realizacin mayor al usuario) como puede ser Booch, hasta la
ms estricta como es el caso de SMM. En cada caso y circunstancias concretas una u
otra metodologa ser ms adecuada, llegando incluso al extremo de combinar varias
(Ej: usar el modelo de objetos de Booch y los 3 modelos de OMT).
En cada una de las metodologas estudiadas destacan uno o varios aspectos. As pues,
Booch se centra en el diseo, OOSE en los casos de uso, SMM en los dominios, OMT
en el anlisis...
La mayora de las metodologas son una evolucin de otra u otras metodologas. As por
ejemplo FUSION es una metodologa de segunda generacin que ha heredado bastantes
elementos de otras metodologas: el modelo de objetos de OMT, la interaccin de CRC,
la visibilidad de BOOCH, las precondiciones y postcondiciones de los mtodos
formales, etc.
Para esta evolucin sea posible tendr que haber elementos de gran calidad en alguna de
las metodologas para que sta pueda ofrecerlos a otras metodologas. As por ejemplo
OMT ofrece un modelo de objetos que contiene una enorme riqueza semntica, por lo
que ha sido adoptado por casi todas las metodologas de segunda generacin. La ya
mencionada unificacin de los mtodos tiene un fuerte compromiso en este sentido.
El hecho de que una metodologia presente algunas debilidades no quiere decir que no
sea vlida. Esto es algo que puede apreciarse muy bien en OMT, la cual posee un
Pg. 79.
Pg. 80.
Bibliografa
[Bailin, 1989] Bailin, S.C., An Object-Oriented Requirements Specification
Method. Communications of the ACM. Vol.32 n5, Mayo 1989.
[Beck, 1989] Beck, K. and Cunningham, W. A laboratory for teaching objectoriented thinking. OOPSLA '89, SIGPLAN Notices. 1989.
[Booch, 1991] Booch, G., Object-Oriented Design with Application. Redwood
city, Benajmin/Cummings Publising Company. 1991.
[Booch, 1994] Booch, G., Object-Oriented Design with Application. Redwood
city, Benajmin/Cummings Publising Company. 1994.
[BooRubin y Goldberg 1992] Rubin, K. y Goldberg A. Object Behaviour
Analysis. CACM Vol.25 n9. 1992.
[Carnigie-Mellon U. 1996] Carnegie-Mellon University. "Teaching Model-based
Software Engineering". OBJECT MAGAZINE. Enero 1996.
[Coleman et al. 1994] Dereck Coleman, Patrick Arnold, Stepahnie Bodoff,
Chris Dollin, Helena Gilchrist, Fiona Hayes, Paul Jeremes. Object-Oriented
Development: The Fusion Method. Prentice Hall 1994, ISBN 0-13-338823-9.
Prentice Hall International Edition 1994, ISBN 0-13-101040-9
[Cook y Daniels, 1994] Cook, S. y Daniels, J. Designing Object Systems:
Object-Oriented Modelling with Syntropy. Prentice Hall. 1994.
[Fichman y Kemerer, 1992] Fichman, R..G y Kemerer, C.F., Object-Oriented
and Conventional Analysis and Design Methologies. IEEE Computer. Octuber
1992.
[Garca, 1997] Francisco Jos Garca Pealvo. Apuntes de la Asignatura
Anlisis e Ingeniera del Software. Universidad de Burgos. 1997.
[Garca, 1998] Francisco Jos Garca Pealvo. Apuntes de la Asignatura
Programacin Avanzada. Universidad de Burgos. 1998.
[Graham et al. 1997] The Open Process Specification. Ian Graham, Brian
Henderson-Sellers, Houman Younessi. Editorial. Addison-Wesley. 1.997.
[Henderson-Sellers y Edwars 1994] Henderson-Sellers, B. y Edwars, J.M.
MOSES: A second generation object-oriented methodology. Object Magazine.
Junio 1994.
[Henderson-Sellers, 1992] Henderson-Sellers, B., Edwards, J.M. and
Constantine,
L.L.
The
O-O-O/EUON
Handbook,
Centre
for
InformationTechnology Research Report No. 58, University of New South Wales,
Sydney, Australia. 1992.
[Jacobson el al. 1992] Jacobson J. et al. Object-Oriented Software Engineeering.
A Use Case Driven Approach. ACM Press, Addison-Wesley. 1992
Pg. 81.
Pg. 82.