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