Métodos y Modelos.

Anuncio
CAPITULO II
METODOS Y MODELOS
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
2. MÉTODOS Y MODELOS
2.1 DEFINICIÓN DE "MÉTODO"
Al estudiar las metodologías de análisis y diseño orientadas a objetos, se manejan algunos
conceptos que es bueno definir de manera precisa.
Método. Es un conjunto de lineamientos y reglas, incluyendo los siguientes componentes.
Conceptos de modelado. Permiten la captura de la semántica y el conocimiento acerca de un
problema y su solución.
•
Modelo es una representación formal de un sistema con cierto nivel de abstracción. En las
etapas de especificación de requerimientos y análisis el nivel de abstracción normalmente
es alto, omitiendo detalles de implementación.
o
•
Meta modelo. Es un modelo que describe otros modelos, describe los conceptos del
método modelo y sus relaciones, define los modelos legales que pueden ser
construidos dentro del método, describe la información que debe ser capturada usando
herramientas CASE que soporten el método.
Vistas y notaciones. Son útiles en la presentación fundamental del modelo de información
para que los seres humanos puedan comprenderla, examinarla y modificarla en su caso.
o
o
o
o
o
Una vista solo muestra una parte de la semántica del modelo y diferentes vistas
pueden presentar la misma información en varias formas.
Notación. Permite construir, examinar y manipular modelos, el mismo modelo se puede
dibujar de diferentes maneras mediante el uso de diferentes símbolos, donde algunos
de ellos pueden tener el mismo significado. Cada persona puede adoptar su propio
formato para describir sus diagramas.
Artifacts. Están representados por los modelos y los diagramas del proceso de
desarrollo. Son los documentos de desarrollo que los expertos del dominio, directores
y clientes pueden examinar, comentar acerca de ellos y criticar. Son las variables que
miden el progreso, son aquellos que las herramientas deberán de producir. Son los
archivos que pueden ser intercambiados entre diseñadores y entre herramientas.
Proceso de desarrollo iterativo. Representa una secuencia de pasos para la
construcción e implementación de modelos. El proceso puede estar distribuido en
varios niveles de detalle, desde el nivel más alto del proyecto, hasta etapas específicas
para la construcción de modelos de bajo nivel. El proceso indica que modelos se
deberán construir y como construirlos.
! Proceso. Es la guía que indica como producir un modelo, proporciona un esqueleto
de trabajo (frameworks) para el desarrollo, describe los artifacts a ser producidos y
las etapas para producirlos. A alto nivel, describe el desarrollo del ciclo de vida y
las etapas de iteración dentro de él. A bajo nivel describe un esqueleto de trabajo
para la producción de modelos; las etapas para la construcción del modelo,
lineamientos para describir componentes de él, principios de diseño a seguirse,
mediciones de calidad, referencias cruzadas, reglas de consistencia y banderas
rojas para identificar posibles problemas.
Patrón. Es una solución estándar escrita para resolver un problema, basada en una
secuencia de tiempo. No existen museos de programas donde los nuevos diseñadores
puedan aprender, emulando programas que allí existen, mas bien, tratan de captar
ideas de los diseñadores expertos. Actualmente existe un Movimiento de Patrones,
con el propósito de coleccionar, catalogar y explicar patrones útiles de diseño, de tal
forma que otros diseñadores puedan aprender de ellos. Por lo tanto, Los Patrones,
son resúmenes de casos de diseño basados en la experiencia.
Paola Romero Guillén
20
Instituto Tecnológico
de la Laguna
o
o
Análisis y Diseño Orientado
a Objetos
Reglas de Diseño. Son estados o propiedades que deberán llevarse a cabo u omitirse
en un diseño o estrategias generales de diseño a utilizar.
Tips y Reglas de dedo. Son recomendaciones que se aplican donde sea necesario, no
se organizan en etapas. Son presentaciones informales de patrones.
2.1.1 Modelos Orientados a Objetos (OO)
Cuando analizamos sistemas, creamos modelos del área de aplicación que nos interesa.
Un modelo puede incorporar un sistema, centrarse en el área de la empresa o abarcar toda la
empresa. El modelo de empresas es importante para la planeación de la automatización de las
mismas.
El modelo representa un aspecto de la realidad y se construye de modo que nos ayude a
comprender a esta. El modelo es mucho más sencillo que la realidad, al igual que un avión a
escala es mucho más sencillo que un avión de verdad. Podemos manejar el modelo y esto nos
ayudara a idear sistemas o rediseñar áreas de una empresa.
Con el análisis orientado a objetos, la forma de modelar la realidad difiere del análisis
convencional. Modelamos el mundo en términos de tipos de objetos y lo que le ocurre a éstos. Esto
implica también diseñar y construir sistemas de forma orientada a objetos.
Los modelos que construimos en el análisis OO reflejan la realidad de modo más natural
que los del análisis tradicional de sistemas. Después de todo, la realidad consta de objetos y
eventos que cambian el estado de dichos objetos. Mediante las técnicas OO, construimos software
que modela mas fielmente el mundo real. Cuando el mundo real cambia, nuestro software es más
fácil de cambiar, lo que es una ventaja real.
2.2 MODELANDO EL MUNDO REAL.
Cuando se analizan sistemas se crean modelos del área de la aplicación en cuestión. El
modelo representa un aspecto del mundo real y se construye de modo que ayude a comprender a
éste. El modelo debe ser mucho más sencillo que la realidad, es una abstracción de ésta, se puede
lidiar con el modelo, cosa en muchas situaciones no sería posible hacer en el mundo real.
En el análisis orientado a objetos se modela en el mundo real en términos de tipos de
objetos y lo que les ocurre a éstos
En la Figura # 1 se ilustra de manera gráfica la forma de construir sistemas:
•
•
•
El análisis crea un modelo en el dominio de la aplicación.
El modelo se convierte en un diseño
El diseño se convierte en código.
El modelo debe representar la forma en que los usuarios finales perciben el área de
dominio en cuestión, en la medida de lo posible el modelo debe ser presentado de forma que sea
comprensible para los usuarios finales.
Los modelos construidos en el análisis orientado a objetos reflejan la entidad del mundo
real de forma más natural que en el análisis tradicional de sistemas, ya que el mundo esta formado
por objetos y eventos que cambian el estado de dichos objetos. Utilizando las técnicas orientadas a
objetos, se construye software que modela el mundo real de manera más fiel, entonces, cuando el
mundo real cambia, el software es más fácil de cambiar, lo que representa una verdadera ventaja.
Paola Romero Guillén
21
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
El modelo debe representar la
realidad de manera que tenga
sentido para los usuarios finales
Mundo real
El diseño debe tener la misma
estructura básica que el modelo
Modelo OO
El código se debe generar lo
más automáticamente
posible a partir del diseño.
Diseño OO
Código
Figura # 1
En el proceso de análisis se captura el punto de vista de los usuarios con respecto al área
de dominio del mundo real y posteriormente se traduce a software de la manera más
automáticamente posible, por lo tanto, al cambiar las necesidades de los usuarios, el software
cambiará con ellas.
El análisis orientado a objetos es análisis, pero también contiene una cierta cantidad de
síntesis. La abstracción de requisitos del usuario y la identificación de los objetos clave del área de
dominio van seguidas por el ensamblaje de estos objetos en estructuras, de una forma que admita
el diseño físico en alguna fase posterior. El aspecto de síntesis aparece precisamente porque se
esta utilizando un sistema, en otras palabras, porque se está imponiendo una estructura al área de
dominio.
Los sistemas pueden ser descritos en tres dimensiones:
a) Los datos, objetos o conceptos y su estructura.
b) Arquitectura o proceso no temporal.
c) La dinámica, comportamiento del sistema o el control del sistema.
Datos
Dinámica
Procesos
Figura # 2
Para validar la congruencia de estos aspectos, se realiza una comprobación cruzada, de tal
manera de comprobar que procesos usan cuales datos y como están siendo utilizados éstos,
aunque estas verificaciones incrementan los gastos tan solo en términos de documentación, sin
Paola Romero Guillén
22
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
embargo, se asegura que se traten todos los aspectos del sistema, siempre y cuando no sea
deficiente la extracción de conocimientos. También se tiene la ventaja de que se utilizan dos
técnicas para llegar a la misma conclusión; por lo tanto, si concuerdan los resultados, el grado de
confianza será mayor.
La orientación a objetos, combina 2 de estos aspectos, los datos y los procesos,
encapsulando los datos, también es posible encapsular el control. De esta forma, un análisis
orientado a objetos se puede considerar como una manera de traslado de silogismos, que parte de
lo particular (las clases), atraviesa lo individual (las instancias) y llega a lo universal (el control).
2.2.1 Modelado del mundo real
La solución de problemas comprende el entendimiento o conceptualización del problema,
su resolución e implementación de su solución. Conceptualizar un problema involucra su
representación usando construcciones representativas (nociones mentales o ideas). El solucionar
el problema involucra la manipulación de las construcciones representativas del dominio del
problema y del dominio de la solución para derivar hacia la representación de la solución deseada.
La realización de la solución involucra el mapeo de las construcciones representativas de la
solución en el entorno de la solución, o sea, construir la solución. El uso de las construcciones
representativas es un proceso muy natural que a menudo ocurre sutilmente y a veces
inconscientemente en la solución del problema. Subyacente a este esquema está el uso de un
paradigma en la determinación de los posibles tipos de representaciones usadas en los esfuerzos
de resolución del problema.
El paradigma orientado al objeto deriva de la convergencia de otros paradigmas
fundamentales, y se reduce a los otros paradigmas tanto como sea requerido por su aplicación a
través de un lenguaje o método. La flexibilidad alcanzada usando este paradigma puede ser
entendida mejor examinando las raíces del mismo dentro de la Teoría de las Formas de Platón.
El Mundo Real
El mundo real es el dominio que abarca problemas, soluciones y esfuerzos para resolver
los problemas. El mundo real incluye:
Cosas o entidades que tienen un propósito o rol dentro del mundo.
Las entidades tiene características estructurales
que representan lo que las cosas
"saben" y características de comportamiento que representan lo que las cosas "hacen". Una
entidad agregada puede contener entidades componentes que son características estructurales y
de comportamiento.
Relaciones entre entidades.
Las relaciones pueden ser tratadas como características estructurales compartidas entre
múltiples entidades que tienen una relación con alguna otra. Una entidad agregada puede contener
entidades componentes que están relacionadas vía un atributo de la entidad agregada.
Ocurrencias entre entidades.
Las ocurrencias pueden ser tratadas como características de comportamiento compartidas
entre múltiples entidades que interactúan con alguna otra. Una entidad agregada puede contener
entidades componentes que son manipuladas vía una operación de la entidad agregada.
Estos conceptos son fundamentales para la interacción con el mundo real.
Paola Romero Guillén
23
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
2.3 TIPOS BÁSICOS DE LOS MÉTODOS ORIENTADOS A OBJETOS.
Los métodos de análisis y diseño orientados a objetos pueden ser desglosados en dos
tipos básicos:
a) Ternaria o trilateral. La que utilizan los métodos estructurados ya existentes mediante tres
notaciones distintas; datos, dinámica y procesos. Es fácil de entender tanto su filosofía
como sus notaciones por personas familiarizadas con los métodos estructurados. Las
metodologías orientadas a objetos más conocidas que usan esta aproximación son:
• Técnica de Modelado de Objetos, OMT de Rumbaugh 1991. Es un método muy
rico, pero resulta difícil de aprender, es pobre en la especificación de reglas y
limitaciones.
• Ptech modificado de Martín Odell 1992. Es sencillo.
• Análisis de Sistemas Orientados a Objetos, OSA de Embly 1992. Es sencillo,
permite escribir limitaciones en los diagramas como si fuese un pensamiento
posterior adicional.
b) Uniría. Dado que los objetos combinan de manera innata los procesos (métodos) y los
datos, solamente es necesaria una notación, son
• Más congruentes con la metáfora de orientación a objetos.
• Más fáciles de aprender, partiendo desde cero.
Las metodologías orientadas a objetos más conocidas que usan esta aproximación
son:
•
Clase, Responsabilidad, Colaboración, CRC de Rebecca Wirfs y Brock
1990. También se le conoce como "Diseño Controlado por Responsabilidades"
(RDD). Resulta útil para documentar diseños orientados a objetos y también
para enseñar los conceptos básicos. Tiene la ventaja de no necesitar nada
mas que una caja de fichas de cartón como herramienta CASE.
•
Coad y Yourdon 1990. Es sencillo pero carece de apoyo para describir la
dinámica del sistema.
2.4 CONCEPTOS BÁSICOS DE TECNOLOGÍA DE OBJETOS.
2.4.1 Introducción.
Las aplicaciones de software de hoy son más capaces y más fáciles de usar que antes.
Estos han llegado a ser cada vez más difíciles y costosos para diseñar, mantener, mejorar e
integrar. La mayoría de las aplicaciones son monolíticas, proveyendo ricos conjuntos de
características pero no fáciles de manejar en su futura modificación, mejoramiento y actualización
de nuevas características y/o implementaciones.
Los sistemas operativos tienen un conjunto común de problemas. Porque la mayoría de los
sistemas operativos no son suficientemente modulares, actualizados, reemplazables, o capaces de
imponerse a los servicios existentes de una manera fácil y flexible (Difícil acoplamiento entre
plataformas).
A la opinión de los desarrolladores de aplicaciones, los ejecutivos de sistemas encaran la
difícil elección de qué mejoramientos se necesitan, en función de mantener la compatibilidad con
versiones anteriores o nuevas posibilidades en tecnología de Software.
Tecnología de Objetos (Object technology, OT) en ingeniería de software facilita el
desarrollo, mantenimiento y rehúso de un rango de aplicaciones amplio. La Tecnología de Objetos
hace lo posible por romper aplicaciones monolíticas en módulos funcionales, o componentes, que
pueden agregarse o ser eliminados según la aplicación lo requiera.
Paola Romero Guillén
24
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
La tecnología de objetos puede potencialmente reducir el gasto de implementar nuevos
objetos por los ya disponibles, mediante mecanismos como el encapsulamiento, herencia,
polimorfismo, y la agregación, etc. haciendo uso extensivo de la re-utilización (uso de objetos ya
existentes). Estas aplicaciones están relacionadas con el procesamiento y transferencia de datos,
interfase de usuario. Existen dos tecnologías de objetos básicas:
1).- Tecnología Orientada a Objetos (Object Oriented Technology, OOT) que incluye:
"
"
Programación orientada a objetos,
Análisis, diseño y modelado orientado a objetos.
2).- Tecnología Basada en Objetos (Object Based Technology, OBT), usa mecanismos cliente /
servidor, incluyendo:
"
"
"
Programación basada en componentes
Análisis, diseño y modelado de componentes (objetos) distribuidos
Computo distribuido y concurrente.
Estas tecnologías tienen muchas ideas y enfoques en común, su principal diferencia es
que los métodos orientados a objetos usan herencia y son presentados en especificaciones de
programas o códigos y los métodos basados en objetos usan herencia de interfaces y son
presentados en código binario ejecutable o código basado en DLL (La biblioteca de vínculos
dinámicos).
Esta clasificación es muy parecida al concepto "white box" y "black box" donde en el
concepto de caja negra el usuario no sabe nada sobre estructura de componente y puede usar
comportamiento de esta caja en sus metas solo a través de las interfaces, pero para caja blanca
conocemos propiedades de esta "caja" y podemos re-usar estos conocimientos en nuestras metas
a través de herencia, u otras tecnologías.
2.5 TIPOS BASICOS DE METODOS ORIENTADOS A OBJETOS
2.5.1 Análisis y diseño orientados a objetos
Si damos una ojeada al panorama actual de análisis y diseño orientados a objetos nos
encontraremos con pocas metodologías y muchos métodos, buena parte de los cuales observan
un carácter básicamente "propietario", siendo muy pocos los que cubren el ciclo completo de vida
del software. Aparecerá claro, a la vez, que existe un escaso interés, ajeno a las cuitas
comerciales, en estandarizar los métodos: es más: cuando el OMG (Object Management Group),
en un intento normalizador, requirió la colaboración de los autores de métodos de OOA/OOD, un
nutrido e importante grupo de éstos replicó con una carta pública en la que afirmaban que tal
estandarización no era en absoluto deseable. Parece que es ridículo pensar que existe un método
orientado a objetos bueno para todo, como es risible afirmar que no existe ningún hombre
absolutamente estúpido. Se aprecia, también, la difuminación del hasta ahora habitual gap
semántico entre análisis y diseño, pero aun esto resulta turbador, pues la planificación práctica
usualmente necesita de fases claras que permitan la evaluación de resultados y los pertinentes
controles de integridad y estabilidad. Las grafías, por último, resultan sospechosamente parecidas
entre sí, y oscilan entre la simplicidad sospechosa y la prolijidad culpable.
Tras todo lo anterior no hay que intimidarse, la orientación a objetos realmente "funciona",
y ya existe un importante acervo práctico de soluciones de software basadas en análisis y diseños
orientados a objetos. Pero también existe un nada despreciable anecdotario de fracasos y
despropósitos. La realidad es que el camino de la productividad, como el del infierno, está
fatalmente empedrado de ilusiones e intentos aventurados.
Paola Romero Guillén
25
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
Se necesitará alguna luz. Se intentará una revisión de los métodos comerciales.
2.6 METODOS COMERCIALES DE OOA/OOD
Es opinión extendida que en la arena de los métodos OOA/OOD existen dos corrientes
principales, dividiendo a estos en:
Estáticos (enfocados a datos), en lo que lo importante es la estructura de datos anexa a
los objetos y las operaciones que sobre ella operan.
Dinámicos (enfocados a comportamientos o enfocados a responsabilidades): un objeto
tiene sentido en estos métodos cuando exhibe un comportamiento diferencial respecto del resto de
los objetos. Tal comportamiento puede referirse bien al objeto en sí (los cambios que pueden
operarse en su representación interna), o bien a sus relaciones con otros objetos.
Pero la verdad es que ésta es una diferencia puramente académica. Lo cierto es que la
mayoría de los métodos viene desplazándose, afianzados en el borboteo comercial de las Bases
de Objetos (OODBMSs), hacia esquemas puramente dinámicos. Y es que divisiones como la
anterior pueden encontrarse con demasiada frecuencia en la literatura, cada vez más extensa,
sobre el tema, fundamentalmente debido a la gran profusión de métodos con bases teóricas un
tanto difusas. Y si no échenle un vistazo a algunos (imposible disponer de una lista actualizada de
todos ellos) de los actuales métodos de OOA/OOD (intencionadamente desordenados, para no
generar falsas esperanzas):
METODOS
SIGLAS
AUTORES
Object Oriented Design
OOD
Grady Booch
Object Behaviour Analysis
OBA
Rubin & Goldberg
Software Engineering of Systems
MOSES
Henderson-Sellers & Edwards
General Object Oriented Design
GOOD
Seidewitz & Stark
Methodology for Object Oriented
Object
Oriented
Software OOSE
Engineering
Visual Modeling Technique
VMT IBM
Ivar Jacobson
Texel
Texel
Object Modeling Technique
OMT
Rumbaugh y otros
Better Object Notation
BOM
Nerson
Object Oriented System Analysis
OOSA
Shlaer & Mellor
Object Oriented Structured Design
OOSD
Wasserman et al.
Systems Engineering OO
SEOO
LBMS
Syntropy
Paola Romero Guillén
Cook y otros
26
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
METODOS
SIGLAS
AUTORES
Object Oriented Jackson
OOJSD
Jackson
Structured Design
HOOD
ESA
Hierarchical Object Oriented Design
OOA
Coad & Yourdon
Object Oriented Analysis
OOD
Coad & Yourdon
Object Oriented Design
OSA
Embley y otros
Object Oriented System Analysis
FOA
Embley y otros
E. Colbert
Colbert
Frame Object Analysis
SOMA
Andleigh/Gretzingr
Semantic Object Modelling Approach
Ian Graham
Berard
Berard
ADM3
Donald Firesmith
Ptech
OOA&D
Martin & Odell
OORASS
Reenskaug et al.
Object Oriented Rôle Analysis
Synthesis and Structuring
Fusion
Coleman y otros
Desfray
Softeam
Como fácilmente se comprobará, en la tabla anterior se mezclan métodos de análisis y de
diseño porque, pese a lo que anuncien sus autores o aun su mismo nombre, la distinción entre
análisis y diseño se difumina, como antes comentábamos, de forma turbadora (aunque claramente
deseable respecto al modelado de la realidad).
2.7 METODOS DE ANALISIS ORIENTADOS A OBJETOS
2.7.1 Método OOSA de Shlaer/Mellor
El primer paso del método de Shaler y Mellor es la definición de objetos y de sus atributos.
La notación de modelado de entidades desciende de la notación de Ward/Mellor. Este método se
puede clasificar como trilateral, y se desarrolla creando un modelo de información (o de datos) que
muestran los objetos, atributos y relaciones. Este método recibe un apoyo parcial de la
herramienta CASE, llamada teamwork.
Paola Romero Guillén
27
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
2.7.2 Método Coad Yourdon
Existe una aproximación que surgió de los sicarios de Yourdon y se debe mucho a la
tradición de modelado de entidades y relaciones, esta aproximación se resume en Coad Yourdon y
resulto especialmente interesante al ser la primera descripción ampliamente difundida de un
método de análisis y una notación de apoyo razonablemente completos, prácticos, orientados a
objetos y adecuados para proyectos comerciales. Coad Yourdon presenta una notación menos
torpe que la que se encontraba en Booch, Shlaer/Mellor o a la mayoría de las aproximaciones de
diseño orientado a objetos.
Una de las características más notables de las notaciones de Shlaer/Mellor y Coad
Yourdon es que los atributos resultan completamente explícitos. Coad Yourdon sugiere que el
análisis se produce en cinco fases a las que dan los nombres siguientes:
♦
Temas: los temas son de tamaño tratable en cuanto contendrán solo aproximadamente entre
cinco y nueve objetos.
♦
Objetos: se identifican los objetos con detalle.
♦
Estructuras: se identifican dos estructuras completamente distintas.
" Estructuras de clasificación.
" Estructuras de composición.
♦
Atributos: los atributos son detallados y se especifican las relaciones de modalidad y de
multiplicidad.
♦
Servicios: esta es la palabra que emplea Coad Yourdon para las operaciones.
El método no es perfecto pero resulta sencillo y unario.
2.7.3 Método Rumbaugh-OMT
La técnica de modelado de objetos (OMT) es considerado ampliamente como uno de los
sistemas de análisis orientados a objetos más completos que se han publicado hasta el momento.
OMT consta de tres fases o actividades principales: análisis, diseño de sistemas y diseño de
objetos.
El análisis presupone que existe una especificación de los requisitos y se desarrolla
construyendo tres modelos distintos mediante el uso de tres notaciones diferentes.
El diseño de sistemas se realiza organizando los objetos en subsistemas identificando la
concurrencia a partir del modelo dinámico (DM), asignando subsistemas a procesadores o tareas,
diciendo si los datos deben o no estar almacenados en archivos, en memoria o en un sistema de
administración de base de datos, diciendo el uso de periféricos, y recursos globales.
El diseño de objetos implica transformar la información del DM y del modelo funcional (FM)
en operaciones de modelo objeto (OM), los pasos restantes consisten en:
1.
2.
3.
4.
5.
6.
7.
Diseñar algoritmos.
Optimizar vías de acceso.
Realizar el control.
Ajustar estructuras.
Indicar los detalles de los atributos.
Empaquetar las estructuras en módulos.
Escribir el informe de diseño, incluyendo un OM, DM, y FM detallados.
Paola Romero Guillén
28
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
El OMT tiene la intención de ser un método tanto para el análisis como para el diseño,
pero, aun cuando contiene un método bastante completo para el análisis, solamente tiende a dar
indicaciones practicas para el diseño. El OMT abarca mas temas que la mayoría de los demás
métodos, pero sigue siendo incompleto en algunos aspectos y resulta muy complejo aprender y
utilizar sus notaciones.
2.7.4 Método Soma
Es un método semánticamente rico en análisis orientado a objetos. Añade reglas,
conjuntos difusos, capas con una semántica clara y además permite a los diseñadores transformar
las reglas en afirmaciones. Se desarrolla empleando siete actividades:
♦
♦
♦
♦
♦
♦
♦
Capas
Objetos
Estructuras
Estructuras de utilización
Estructuras de clasificación
Estructuras de descomposición
Semántica de asociaciones y datos
Modalidad y multiplicidad
Atributos
Tipos, valores por omisión, validación, seguridad
Métodos u operaciones
Parámetros y sus tipos, afirmaciones
Reglas
Reglas de control
Reglas de negocios
Actividades
2.8 METODOS DE DISEÑO ORIENTADO A OBJETOS
Los cambios de diseño necesarios están localizados, y son improbables las interacciones
inesperadas con otros módulos del programa.
El diseño basado en objetos es adecuado para una realización distribuida, paralela o
secuencial.
Se eliminan las zonas compartidas de datos, reduciendo, de esta manera, la posibilidad de
modificaciones inesperadas, así como otras anomalías en la actualización.
Los métodos de diseño orientados a objetos comparten los siguientes pasos básicos de
diseño, aunque los detalles varíen mucho.
"
"
"
"
Se identifican los objetos y sus atributos, así como los nombres de los métodos.
Se establece la visibilidad de cada objeto en relación con los demás objetos.
Se establece la interfaz de cada objeto y el tratamiento de excepciones.
Se realizan y comprueban los objetos.
2.8.1 Método de Booch
El método original de Booch comienza por un análisis de flujo de datos, que se utiliza
entonces como ayuda para identificar objetos, buscando tanto objetos concretos como objetos
abstractos en el espacio del problema, que se encontraran a partir de las burbujas y almacenes de
datos en el diagrama de flujo de datos (DFD).
Paola Romero Guillén
29
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
La notación y método de diseño revisados de Booch consta de 4 actividades principales y 6
notaciones. Los primeros pasos tratan los aspectos estáticos del sistema, tanto en su aspecto
lógico como en su aspecto físico.
Estructura lógica
♦ Diagramas de clases
♦ Diagramas de objetos
Estructura física
♦ Diagramas de módulos
♦ Diagramas de procesos
Dinámica de clases
♦ Diagramas de transición de estados
Dinámica de instancias
♦ Diagramas temporales
El de Booch es uno de los métodos de diseño mejor desarrollado y es superior a GOOD y
a HOOD, en tanto en cuanto no esta relacionado con Ada, y por poseer, además una noción de
estructura mucho mas general.
2.8.2 Método Good
El método de diseño general orientado a objetos (GOOD) fue desarrollado en la NASA por
Seidewitz y Stark (1983). Trata tanto la especificación de requisitos como el diseño de proyectos en
Ada. El método se desarrolla, al igual que sucede con el de Booch, partiendo de un conjunto
preliminar de diagramas de flujo por capas, llegando hasta la identificación de los objetos
implicados. En estos DFD se buscan objetos externos, depósitos de datos, interfaces de control y
depósitos de control.
2.8.3 Método Hood
La noción de la jerarquía de prioridades es aprovechada también por otro método, HOOD.
La “H” de HOOD quiere decir jerárquico. Este método también esta muy orientado al desarrollo en
Ada y fue desarrollado en la agencia espacial europea. Sufrió la influencia directa de GOOD, y
también se basa en el método de maquinas abstractas. En HOOD los objetos son o pasivos o
activos. Los objetos pasivos solamente son capaces de utilizar los objetos de otros objetos
pasivos, pero los activos pueden utilizar los servicios de cualquier objeto. HOOD es un método de
refinamiento progresivo que se basa en la descomposición de un objeto del máximo nivel y,
posteriormente, en la descomposición de los objetos así resultantes.
El método HOOD utiliza un cierto numero de pasos para descomponer cada objeto,
comenzando por un paso de diseño básico que podría implicar técnicas de realización de
diagramas de procedentes de otros métodos de análisis y diseño estructurado. El paso siguiente
consiste en generar una estrategia informal de soluciones. Esto se descompone en un cierto
numero de tareas: un esbozo del lenguaje natural, diagramas HOOD de primera mano y una
descripción del nivel actual de abstracción. El tercer paso consiste en formalizar la estrategia de
solución. Esto se hace por fases, identificando y describiendo los objetos y sus operaciones.
2.8.4 Método OOSD
El diseño estructurado orientado a objetos (OOSD), que fuera presentado por Wasserman,
Picher y Muller (1990). Hablando estrictamente OOSD no es un método sino una notación a la cual
se pueden agregar reglas metodológicas. Esta notación es probablemente la que más próxima se
encuentra al espíritu de la orientación a objetos. OOSD es una notación no propietaria para el
Paola Romero Guillén
30
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
diseño arquitectónico, que cambia el diseño por refinamiento progresivo estructurado y el diseño
orientado a objetos. Una vez mas OOSD emplea una notación que se deriva de la de Booch, pero,
también tiene influencia de los diagramas estructurales.
OOSD no es tanto un método como una notación para apoyar los métodos de diseño
orientado a objetos en general. Los usuarios de OOSD pueden añadir reglas de diseño según cual
sea el método concreto que esté utilizando.
Otros puntos importantes de OOSD son la facilidad con la que es aceptado por los
desarrolladores que ya están familiarizados con el diseño estructurado así como lo adecuado que
resulta para los sistemas de tiempo real.
OOSD es una de las notaciones de diseño mas avanzadas híbrido orientado a objetos de
bajo nivel. Parece improbable que sea posible extenderla hasta una notación de análisis
congruente, como consecuencia de la dificultad que surge al tratar un gran numero de métodos y
como consecuencia también de la ausencia de una forma en la que se puedan tratar estructuras y
atributos de datos muy complejos. Por otra parte, resulta mas adecuada para el diseño
arquitectónico o lógico que para el diseño físico.
2.8.5 Método JSD y OOJSD
El diseño estructurado de Jackson (JSD) es un método basado en objetos mas que un
método completamente orientado a objetos. Los modelos JSD se descomponen en términos de
sucesos o de acciones y de sus dependencias temporales. Dentro de estos sucesos la
aproximación JSD define, en primer lugar los objetos. El paso siguiente construye una
especificación en términos de procesos secuenciales que se comunican, y que pueden acceder los
unos al estado de los otros. El método puede resultar útil si el diseño orientado a objetos debe
realizarse en un lenguaje convencional.
Es posible identificar un cierto numero de similitudes entre JSD y los métodos de diseño
orientados a objetos. JSD contiene técnicas útiles para la identificación de entidades y de métodos
dentro de su fase de modelado. Además, la técnica de análisis por ordenación temporal de JSD y
el diseño orientado a objetos utilizan el concepto de los objetos de forma similar, aun cuando sus
terminologías son distintas.
2.8.6 Método OODLE
El OODLE (lenguaje de diseño orientado a objetos) es un componente especifico de diseño
del método Shlaer/Mellor, cuya aproximación al análisis orientado a objetos, prescribe 4 tipos de
diagramas, interrelacionados mediante un esquema de capas que ayuda con la documentación y
con un potencial de apoyo automático. Se dice que la notación es independiente del lenguaje, aun
cuando se aprecia ciertos aspectos de Ada en la notación y el apoyo de los amigos recuerda al de
C++. Los tipos de diagramas son los siguientes:
♦
♦
♦
♦
Diagramas de dependencia, que muestran relaciones de utilización (cliente/servidor) y de
amigos entre clases.
Diagramas de clases, que muestran el aspecto externo de la clase de forma similar a Booch.
Diagramas de estructuras de clases que muestran la estructura de los métodos de la clase, y el
flujo de datos y de control
Diagramas de herencia, que representan la herencia
2.9 CONCLUSION
Podemos mencionar en lo que respecta a este capítulo, que la propuesta de la
metodología es tomada como una comparación, en donde lo que nos interesa saber, es lo que se
entiende por una tecnología basada en una metodología, para así tener un interés para regresar y
Paola Romero Guillén
31
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
comprender el significado de lo que es orientado a objetos. Y ver como una metodología responde
con respecto a otras metodologías.
En muchos instancias individuales u organizaciones de compañías han iniciado con la
evaluación y selección de una metodología para el uso de desarrollo de software. En algunos
casos estas instancias tienen un tiempo límite para llevar acabo este recurso, por lo tanto para
ellos la comparación de metodología viene de un atajo de punto medio de selección.
Desafortunadamente la calidad de la decisión descansa únicamente con la calidad de la
comparación de la metodología en uso.
La comparación entre metodologías da la pauta para estar seguro que la selección inicial
es la correcta a otras metodologías apropiadas ya existentes.
La justificación de la tecnología dice que existe una gran comunidad en la ingeniería de
software que ve el cambio. En algunos casos el cambio es encontrar cambios en la practica. Por
eso la razón de la comparación de las metodologías. Se comparan las ideas, pasos, conceptos,
notación, mecanismo de comunicación y la especificación técnica de 6 métodos aceptados.
Los seis métodos son: Booch, Martín/Odell, Coad Yourdon, Rumbaugh, Wirfs-Brock y
Shlaer Mellor.
2.10 RESUMEN
Método. Es un conjunto de lineamientos y reglas, incluyendo los siguientes componentes.
Conceptos de modelado. Permiten la captura de la semántica y el conocimiento acerca de un
problema y su solución.
Modelo es una representación formal de un sistema con cierto nivel de abstracción.
Metamodelo. Es un modelo que describe otros modelos, describe los conceptos del método
modelo y sus relaciones.
Proceso de desarrollo iterativo. Representa una secuencia de pasos para la construcción e
implementación de modelos.
Modelos Orientados a Objetos
El modelo representa un aspecto de la realidad y se construye de modo que nos ayude a
comprender a esta. El modelo es mucho más sencillo que la realidad, al igual que un avión a
escala es mucho más sencillo que un avión de verdad. Podemos manejar el modelo y esto nos
ayudara a idear sistemas o rediseñar áreas de la empresa.
El Mundo Real
El mundo real es el dominio que abarca problemas, soluciones y esfuerzos para resolver
los problemas. El mundo real incluye:
"
"
"
Cosas o entidades que tienen un propósito o rol dentro del mundo.
Relaciones entre entidades.
Ocurrencias entre entidades.
Paola Romero Guillén
32
Instituto Tecnológico
de la Laguna
Análisis y Diseño Orientado
a Objetos
Los métodos de análisis y diseño orientados a objetos pueden ser desglosados en dos
tipos básicos:
TERNARIA o TRILATERAL. La que utilizan los métodos estructurados ya existentes mediante tres
notaciones distintas; datos, dinámica y procesos. Es fácil de entender tanto su filosofía como sus
notaciones por personas familiarizadas con los métodos estructurados.
UNARIA. Dado que los objetos combinan de manera innata los procesos (métodos) y los datos,
solamente es necesaria una notación, son
" Más congruentes con la metáfora de orientación a objetos.
" Más fáciles de aprender, partiendo desde cero.
Métodos comerciales de OOA/OOD
Es opinión extendida que en la arena de los métodos OOA/OOD existen dos corrientes
principales, dividiendo a estos en:
"
"
Estáticos (enfocados a datos), en lo que lo importante es la estructura de datos anexa a los
objetos y las operaciones que sobre ella operan.
Dinámicos (enfocados a comportamientos o enfocados a responsabilidades): un objeto tiene
sentido en estos métodos cuando exhibe un comportamiento diferencial respecto del resto de
los objetos. Tal comportamiento puede referirse bien al objeto en sí (los cambios que pueden
operarse en su representación interna), o bien a sus relaciones con otros objetos.
2.11 CUESTIONARIO
1.
2.
3.
4.
5.
6.
7.
¿Qué es un método?
¿Qué diferencia hay entre un método y una metodología?
¿Qué es un metamodelo?
Explique a que se refiere modelado del mundo real.
En que consiste lo comercial del AOO y DOO.
Mencione algunos métodos de AOO
Mencione algunos métodos de DOO
Paola Romero Guillén
33
Descargar