El propósito de este trabajo es complementar mi examen profesional con el tema: Sistemas de Información, para la Licenciatura de Sistemas Computacionales. En esta investigación se comparan varias Metdologías Modernas para el Desarrollo de Sistemas de Información. Estas utilizan el paradigma de Orientación a Objetos. Este es el enfoque actual de los Desarrollos de Sistemas; primero se tuvo un enfoque en Desarrollo Convencional, despues Estructurado y actualmente Orientado a Objetos.
En esta comparación lo que se busca es en primer lugar saber cuales son los nombres de tantas metodologías existentes y en segundo lugar, conocer el enfoque de cada una, la manera en que definen los conceptos básicos de Orientación a Objetos, cómo son sus notaciones, sus procesos, qué parte del ciclo de vida abarcan o si abarcan todo el ciclo de vida. Qué recursos disponibles hay para utilizar una de estas metodologías, existen libros disponibles, qué tipo de conocimientos necesitamos tener para poder utilizarlas, en qué lenguajes de programación se apoyan.
Y teneniendo esta base de conocimientos, ahora sí poder elegir una de ellas para utilizarla en el desarrollo de los sistemas en los que sea participe tanto yo, como cualquier persona que lea este documento.
Las primeras computadoras salieron en la década de los 40s, se llamó la primera generación, las computadoras estaban construidas por medio de tubos de vacío y eran programadas en lenguaje de máquina.
En la década de los 50s se empezó con los Sistemas de Procesamiento de Transacciones, el objetivo de muchos de esos primeros sistemas era reducir costos, el cual era posible mediante la automatización de numersos sistemas administrativos rutinarios y de trabajo intensivo. Las computadoras son de la segunda generación; estaban construídas con circuitos de transistores. Eran programadas con tarjetas perforadas, con lenguajes llamados de alto nivel. No contaban con disco duro. Tampoco existían los discos flexibles. Aparecen los procesadores de plabras como Word Star, hoja de cálculo como Visicalc. Los sistemas de información que sobresalieron son: Cuentas por Cobrar y Nómina.
Los Sistemas de Información administrativos, empezaron a desarrollarse en la decada de los 60s y se caracterizaron por utilizarlos para producir informes administrativos que en la mayoría de los casos eran elaborados de manera periódica. La programación Orientada a Objetos fue discutida primeramente a finales de los 60s por la comunidad de SIMULA. Surge la tercera generación de las computadoras. Su fabricación electrónica estaba basada en circuitos integrados. Se manejaban por medio de lenguajes de control de los sistemas operativos. Aparecen las minicomputadoras. Los sistemas de información que sobresalieron son: Flujo de Efectivo, Presupuestos, Manejo de Personal y de Manufactura.
En los 70s aparecen las computadoras de cuarta generación. Aparecen los microprocesadores, las computadoras se hacen más pequeñas y baratas por lo que se extiende su uso al mercado industrial. Surgen mas aplicaciones, paquetes gráficos. A principios de los 70s, fue una importante parte de el lenguanje Smalltalk desarrollado por Xerox PARK. Mientras, el resto del mundo salía adelante con lenguajes como COBOL o FORTRAN y usaban métodos de descomposición funcional para manejar los problemas de diseño e implementación en los SI. Había pocas si no es que ninguna, discusiones enfocadas en diseño de orientación a objetos, y virtualmente ninguna sobre análisis basado en orientación a objetos. El procesador principal de esta década es el 404. Los sistemas de información que sobresalieron son de Planeación y Pronóstico.
En la década de los 80s, los grandes avances tecnológicos permitieron el desarrollo de SI de menor costo y mayor potencia que los anteriores. Empleados de todos los niveles comenzaron a utilizar computadoras personales para realizar las mas diversas tareas; ya no dependían solo del departamento de sistemas de información para resolver todas sus necesidades informativas. La gente se dio cuenta entonces de que era posible utilizar los sistemas de computación en apoyo a actividades adicionales de toma de decisiones. Y se generaron os Sistemas de Apoyo para la toma de Decisiones. Las computadoras entonces cambiaron a ser de quinta generación. En las que se cuentan los procesadores 8080, 8086, 80286. Los sistemas de información que sobresalieron son: Sistemas de Soporte a Decisiones, Pago a Usuarios Finales y Planeación Estratégica. Surge la Administración de Recursos de Información y los Centros de Información
A partir de los 90s surgen los procesadores 80386, 80486, y Microprocesadores Pentium. En esta se han conseguido importantes avances tanto en la IA como en los SE. El valor excepcional de los sistemas expertos radica en el hecho de que permiten a los organizadores proveerse de y utilizar el saber de expertos y especialistas. Por lo tanto, años de experiencia y habilidades especificas no se pierden del todo cuando un experto muere, se retira o cambia de trabajo. Son aplicables a casi cualquier campo o disciplina. Los temas principales en los sistemas de información son: Servicios de Información, Estaciones de Trabajo y Administración de datos centralizados.
Cuatro cambios ocurrieron a través de las décadas pasadas y ahora son factores claves para los 90s:
En el 2000 la información ha ejercido un profundo impacto en la sociedad, al grado de que hay quienes llaman a esta época la Era de la Información. La sociedad industrial ha dado paso a una nueva sociedad, en donde la mayoría de las personas trabajan con información en lugar de producir bienes. Los procesadores principales son los Pentium. Y el tema principal en Sistemas de Información es el Internet, y los Sistemas de Información de la Linea del Frente.
Qué es Orientado a Objetos?
Significa que el sistema se organiza como una colección de objetos que interactúan entre sí y que contienen tanto estructuras de datos como un comportamiento.
Esto se opone a la programación convencional, en la cual las estructuras de datos y el comportamiento solamente estan relacionadas de forma débil, ya que estos se enfocan principalmente a las funciones.
Objeto.
Los objetos son las cosas físicas y conceptuales que encontramos en el universo alrededor de nosotros. Hadware, software, documentos, seres humanos, los conceptos son todos los ejemplos de los objetos.
Características de los Objetos.
Identidad. Los datos estan cuantificados en entidades discretas y distinguibles denominadas objetos. Ejem una televisión, una bicicleta, un árbol. Los objetos pueden ser concretos, como un archivo en un sistema de archivos, o bien conceptuales como la política de planificación en un sistema operativo con multiprocesos. Cada objeto posee su propia identidad inherente. En otras palabras: dos objetos seran distintos aun cuando los valores de todos sus atributos (tales como el nombre y el tamaño) sean idénticos.
Clasificación. Significa que los objetos con la misma estructura de datos (atributos) y comportamiento (operaciones) se reunen para formar una clase. La selección de clases es arbitraria y depende de la aplicación.
Objetos: Bicicleta de montaña, Bicicleta de carreras, Bicicleta de niños
Clase Bicicleta:
Atributos: Tamaño del cuadro, tamaño de rueda, material, marca, velocidad
Operaciones: mover, reparar, cambiar velocidad
Objetos: Triangulo, Cuadrado, Octagono
Clase Poligonos:
Atributos: vertices, color del borde, color del interior
Operaciones: dibujar, borrar, mover
Polimorfismo. Significa que una misma operación puede comportarse de modos distintos en distintas clases. La operación mover por ejem, se puede comportar de modo distinto en las clases Ventana y Pieza de ajedrez. Una operación es una acción o una transformación que se lleva a cabo o que se aplica a un objeto. Justificar a la derecha, visualizar y mover son ejemplos de operaciones. Una implementación específica de una operación por parte de una cierta clase es lo que se denomina método. Dado que los operadores orientados a objetos son polimórficos es posible que haya más de un método que lo implemente.
En el mundo real una operación es simplemente, una abstracción de comportamiento análogo entre distintas clases de objetos. Cada objeto "sabe" llevar a cabo sus propias operaciones. Sin embargo, en un lenguaje orientado a objetos es este el que selecciona automaticamente el método correcto para implementar una operación basandose en el nombre de la operación y en la clase del objeto que esta siendo afectado. El usuario de una operación no necesita ser consciente del número de métodos que existen para implementar una cierta operación polimórfica. Se pueden añadir nuevas clases sin modificar el código existente, siempre y cuando se proporcionen métodos para todas las operaciones aplicables a las nuevas clases.
Herencia. Es compartir atributos y operaciones entre clases tomando como base una relación jerárquica. En términos generales se puede definir una clase que después se irá refinando sucesivamente para producir subclases. Todas las subclases poseen o heredan, todas y cada una de las popiedades de su superclase y añaden, además, sus propiedades exclusivas. No es necesario repetir las propiedades de las superclases en cada subclase. Por ejem Ventanadedesplazamiento y ventanafija son subclases de ventana. Ambas subclases heredan las propiedades de ventana tales como una región visible de la pantalla. La ventanadedesplazamiento añade una barra de desplazamiento y un ascensor. La capacidad de sacar factor común a las propiedades de varias clases en una superclase común y de heredar las propiedades de la superclase puede reducir muchísimo la repteción en el diseño y en los programas siendo una de las ventajas pricipales de un sistema orientado a objetos.
Metodología. Conjunto de métodos empleados para el desarrollo de sistemas automatizados.
Una metodología completa es algo más que una notación, un proceso, y herramientas. Además de una "notación, de un proceso, y de herramientas," estas "metodologías completas" proporcionan:
5. EL ENFOQUE DE ESTA INVESTIGACION
Este trabajo consiste en una comparación de modernas metodologías de desarrollo de sistemas orientados a objetos en las que se identificará y cuantificará la ayuda de estas para el proceso de desarrollo.
Debido a que a la fecha ninguna de las metodologías que se van a comprar cumplen completamente con las características mencionadas anteriormente, ya que falta mucho trabajo por hacer para que sean unas metodologías completas. La comparación se hace con ese conocimiento y entonces "metodología" se considera tambien como un método.
Las metodologías a comparar, ordenadas alfabéticamente son:
En esta comparación se consideran cuatro áreas específicamente:
La pragmática de una metodología consiste en:
La expectativa de cualquier comparación de la metodología es que proporcionará una base para desechar las metodologías que no parecen dar valor dependiendo de la situación. Esta comparación maneja esta expectativa. Planteando preguntas de las metodologías presentadas y usando los resultados documentados para contestar a las necesidades particulares. Estas preguntas sirven como punto que partida para una investigación posterior. Una muestra de las preguntas incluye:
En esta sección se cita a cada metodología para comprarar la opinión de cada autor de un número de conceptos orientados al objeto.
A. DEFINICIÓN DEL "OBJETO" EN CADA METODOLOGIA
Berard 1992.
Un objeto que se utiliza para crear las instancias, es decir, una plantilla, descripción, patrón, o "modelo" un una categoría o colección de artículos muy similares. Entre otras cosas, una clase describe el interfaz que los estos artículos presentarán al mundo exterior, los métodos, las constantes, y las excepciones es decir, disponibles y apropiados. Una clase representa una abstracción de los artículos. Una clase es realmente una familia de clases muy de cerca relacionadas. La clase es un concepto recurrente. Específicamente, podemos definir clases como un compuesto de otras clases (es decir, las clases compuestas heterogéneas y clases compuestas homogéneas), en términos de sí mismo (una clase recurrentemente definida), como herencia de características de unas o más otras clases (es decir, los superclasses de la clase), y como abastecimiento de características a otras clases (es decir, las subclases de la clase). En algunos lugares, se definen las clases como "el sistema de todos las instancias de un tipo," y del término "tipo" se da la definición antedicha para la clase.
Booch 1991.
Algo a lo que se le pueden hacer cosas. Un objeto tiene estado, comportamiento, e identidad; la estructura y el comportamiento de objetos similares se definen en su clase común. Los términos instancia y objeto son intercambiables.
Coad y Yourdon 1990.
Una abstracción de algo en un dominio del problema, reflejando las capacidades de un sistema a mantener la información de este, interactúa recíprocamente con esta información, o ambas (interactuar y mantener); una encapsulación de los valores atributos y sus usos exclusivos (sinónimo: una instancia)
Embley y Kurtz 1990.
Un objeto es una persona, un lugar, o una cosa. Un objeto puede ser físico o conceptual... La idea es que un objeto es una sola entidad o noción. Cada objeto es un individuo único. Un objeto se puede relacionar con o componer de otros objetos, pero cada objeto es único.
Martin y Odell 1992.
Cualquier cosa a la cual un concepto, o tipo de objeto, se aplica – una instancia de un concepto o tipo de objeto. En OOPLs, es cualquier instancia de una clase."
Rumbaugh 1991.
Definimos un objeto como un concepto, una abstracción, o cosa con límites para el problema actual. Los objetos responden a dos propósitos: Promueven la comprensión del mundo verdadero y proporcionan una base práctica para la puesta en práctica de la computadora. La descomposición de un problema en objetos depende del juicio y de la naturaleza del problema. No hay una representación correcta.
Shlaer y Mellor 1992.
Un objeto es una abstracción de un sistema de cosas del mundo real, tales como:
Un objeto en OOA representa un solo caso típico pero sin especificar algo en el mundo verdadero - cualquier avión, no importa cual, mientras sea representativo. El analista orientado al objeto distingue este concepto de un caso específico: Avión número 8945, una fuerza aérea, o un avión de Aeromexico, por ejemplo.
Wrifs-Brock 1990.
Los objetos saben ciertos datos sobre sí mismos (como por ejemplo, una persona sabe los colores de su pelo y ojos), y los objetos saben como hacer ciertas funciones (asi como una persona sabe comprar en el mercado o hacer su trabajo).
En un sentido, un objeto se puede ver como una declaración, que cierto conocimiento y ciertas operaciones están relacionados conceptualmente con otro, de modo que tenga sentido el unirlos.
ANALISIS
En las definciones del término "Objeto", se concluye lo siguiente:
Indica que ciertos métodos integran la mención de abstracción a sus definiciones del objeto, y otros consideran unicidad e identidad como crítica (solamente Rumbaugh menciona ambos). Además, la mención el comportamiento y estado se percibe limitada a esos métodos el centrarse en unicidad.
|
Metodología |
Mención de abstracción |
Unicidad o identidad |
Comportamiento o acciones |
Estado |
|
Berard |
X |
X |
||
|
Booch |
X |
X |
X |
|
|
Coad y Yourdon |
X |
X |
||
|
Embley |
X |
|||
|
Martin y Odell |
X |
|||
|
Rumbaugh |
X |
|||
|
Shlaer y Mellor |
X |
|||
|
Wirfs-Brock |
X |
X |
X |
B. DEFINICIÓN DE "CLASE" EN CADA METODOLOGIA
Berard 1992.
Un objeto el cual es utilizado para crear instancias, es decir, una plantilla, descripción, patrón, o "modelo" de una categoría o de una colección de artículos muy similares. Entre otras cosas, una clase describe la interfaz que los artículos presentarán al mundo exterior, ejem. los métodos apropiados y disponibles, las constantes, y las excepciones. Una clase representa una abstracción de los artículos. Una clase puede a si misma darse parámetros (ejem, representa realmente una familia de clases muy estrechamente relacionadas), a esto le llamamos dar parametos a la clase. Clase es un concepto recursivo. Específicamente, podemos definir clases como un compuesto de otras clases (es decir, clases compuestas heterogéneamente y clases compuestas homogéneamente), en términos de sí mismo (una clase definida recursivamente), como características de herencia de una o más clases (es decir, los superclasses de la clase), y como abastecimiento de características a otras clases (es decir, las subclases de la clase). En algunos lugares, las clases se definen como "el conjunto de todas los instancias de un tipo," y del término "tipo" se da la definición para clase.
Booch 1991.
Un conjunto de objetos que comparten una estructura común y un comportamiento común. Los términos clase y tipo son generalmente (pero no siempre) intercambiables; y una clase es un concepto levemente distinto a tipo, en el hecho que acentúa la importancia de jerarquías de clases.
Coad y Yourdon 1990.
Una descripción de uno o más objetos con un conjunto uniforme de cualidades y de servicios, incluyendo una descripción de cómo crear nuevos objetos en la clase.
Clase-Objeto. Un significado del término "una clase y los objetos en esa clase."
Embley y Kurtz 1990.
Identificación de conjunto de objetos que pertenecen juntos por una cierta razón lógica llamada clasificación. En OSA, un sistema de objetos que pertenecen juntos por una cierta razón lógica se le llama clase del objeto. El modelo de la Objeto-Relacion insita a los analistas a que organicen objetos en clases del objeto. Cada clase del objeto tiene un nombre genérico y denota a cualquier miembro de la clase del objeto. Así, en un ORM, una clase del objeto con nombre X señala una clasificación de los objetos cada uno de los cuales se considera ser un X. Como cada objeto en clase del objeto X es un X, los objetos en la clase son semejantes, por lo menos en un cierto sentido.
Martin y Odell 1992.
Una implementación de un concepto o de un tipo de objeto. En lenguajes de programación OO, los tipos de datos abstractos se llaman clases. En matemáticas, el significado de la clase es similar a el de sistema. El significado de la definición de OOPL de la clase se presentó de la definición matemática.
Rumbaugh 1991.
Una clase del objeto describe un grupo de objetos con las características similares (cualidades), el comportamiento común (operaciones), relaciones comunes a otros objetos, y la semántica común. La persona, la compañía, el animal, el proceso, y la ventana son todas las clases del objeto.
Shlaer y Mellor 1992.
No provee una definición explicita de "clase"
Wrifs-Brock 1990.
Los objetos que comparten el mismo comportamiento se dice que pertenecen a la misma clase. Una clase es una especificación genérica para un número arbitrario de objetos similares. Se puede pensar en una clase como plantilla para una clase específica de objeto.
ANALISIS
Mientras que el método de Shlaer y de Mellor utiliza diagramas de la clase y hace la mención significativa del término "clase" en su aproximación, no proveen ninguna definición explícita de la clase. Otra nota es que, Rumbaugh menciona que una clase debe identificar sus relaciones con otras clases, mientras que Embley menciona que el modelo de la Objeto-Relacion es útil en identificar clases. Estos dos métodos difieren de los otros métodos en su enfoque en relaciones como fundamental para el uso del término "clase."
|
Metodología |
Mención de abstracción |
Mención de Estructura |
Mención de Comportamiento |
Estado |
Relaciones |
|
Berard |
X |
X |
X |
||
|
Booch |
X |
X |
|||
|
Coad y Yourdon |
X |
X |
|||
|
Embley |
X |
X |
|||
|
Martin y Odell |
X |
X |
|||
|
Rumbaugh |
X |
X |
X |
X |
|
|
Shlaer y Mellor |
|||||
|
Wirfs-Brock |
X |
C. DEFINICIÓN DE "OPERACION" EN CADA METODOLOGIA
Berard 1992.
Una acción que es afectada por, o requerida por un objeto. Las operaciones pueden ser selectoras, constructivas, o iterativas. Una operación es contenida en la interfaz del objeto y tiene sus detalles descritos en un método correspondiente. Las operaciones pueden ser compuestas, es decir, integrada por otras operaciones. Sin embargo no es alentada, la encapsulación de operaciones compuestas dentro de la interfaz a un objeto.
Booch 1991.
Una cierta acción que un objeto realiza sobre otro para sacar una reacción. Todas las operaciones sobre un objeto específico se pueden encontrar en subprogramas libres y funciones o métodos. Los términos mensaje, método, y operación son generalmente intercambiables.
Coad y Yourdon 1990.
Un servicio es un comportamiento específico que un objeto es responsable de exhibir.
Embley y Kurtz 1990.
Además de estados y de transiciones entre estados, también deseamos modelar las acciones que un objeto realiza. Una acción puede causar acontecimientos, crear o destruir objetos y relaciones, observar objetos y relaciones, y enviar o recibir mensajes.
"Ponemos acciones en dos categorías en OSA: acciones no-interrumpibles y acciones interrumpibles. Las acciones no-interrumptibles son las acciones que el analista espera correr al terminar a menos que ocurran las excepciones o los fallos del sistema. Las acciones interrumpibles pueden ser suspendidas antes de que acaben de ejecutarse y puedan reasumir la ejecución despues. En OSA, pensamos en las acciones asociadas a transiciones como no-interrumptible, mientras que las acciones asociadas a los estados son interrumpibles."
Martin y Odell 1992.
Un proceso que se puede solicitar como unidad. Un solo paso que se realiza en una serie de pasos. Las operaciones pueden o pueden no cambiar el estado de un objeto. Las funciones son las operaciones que no cambian el estado. Sin embargo, en un esquema del acontecimiento, las operaciones que dan lugar a acontecimientos cambian estados (y se podrían más correctamente llamar las operaciones-cambia-estados).. Sin embargo cada operación estado-cambia puede estar como transacción. Una transacción es un proceso o una serie de procesos que actúan como unidad para cambiar el estado de un objeto. Los casos de operaciones se llaman operaciones invocadas. La especificación de cómo una operación debe ser realizada se llama método.
Rumbaugh 1991.
Una operación es una función o una transformación a la cual puede ser aplicada para o por los objetos en una clase. Contratar, despedir, y pagar utilidades son operaciones en la clase Compañía. Abiertas, cerradas, escondidas, y desplegadas son las operaciones de la clase ventana. Todos los objetos en una clase comparten las mismas operaciones.
Shlaer y Mellor 1992.
Tomadores de acontecimientos. Define una operación publicada que corresponde a cada acontecimiento generado por el objeto bajo consideración. Tales operaciones publicadas se conocen como tomadores de acontecimientos. Hay dos casos a considerar:
Wrifs-Brock 1990.
Cuando un objeto recibe un mensaje, realiza la operación solicitada ejecutando un método.
ANALISIS
En el repaso de cada definición de la "Operación", solamente Booch indica que el método y la operación son equivalentes. Algunos métodos visualizan los métodos de un objeto de una perspectiva externa, mientras que otros se centran en los métodos de un objeto de una perspectiva interna. El método solamente de Martin y de Odell no hace caso de la aplicación métodos externos o internos.
|
Metodología |
Operación = Método |
Externo |
Interno |
Estado |
|
Berard |
X |
X |
||
|
Booch |
X |
X |
||
|
Coad y Yourdon |
X |
|||
|
Embley |
X |
|||
|
Martin y Odell |
X |
|||
|
Rumbaugh |
X |
X |
||
|
Shlaer y Mellor |
X |
X |
X |
|
|
Wirfs-Brock |
X |
D. DEFINICIÓN DE "METACLASE" EN CADA METODOLOGIA
Berard 1992.
Metaclase: una clase que sus isntancias son asi mismos clases.
Booch 1991.
Metaclase: la clase de una clase; una clase que sus instancias son asi mismos clases
Coad y Yourdon 1990.
No se hace ninguna mención explícita de metaclase.
Embley y Kurtz 1990.
No se hace ninguna mención explícita de metaclase.
Martin y Odell 1992.
No se hace ninguna mención explícita de metaclase.
Rumbaugh 1991.
Las clases se pueden también considerar como objetos, pero son meta-objetos y objetos no del mundo real. El objeto del descriptor de la clase tiene características, y alternadamente tienen sus propias clases, que se llaman metaclases. Tratar todo como objeto proporciona una puesta en práctica más uniforme y una mayor funcionalidad para solucionar problemas complejos. Metaclase: una clase que describe otras clases.
Shlaer y Mellor 1992.
No se hace ninguna mención explícita de metaclase.
Wrifs-Brock 1990.
No se hace ninguna mención explícita de metaclase.
E. SIMBOLOGIA UTILIZADA PARA REPRESENTAR LOS CONCEPTOS POR BOOCH, COAD & YOURDON, Y RUMBAUGH
OBJETOS
CLASES
ASOCIACION
HERENCIA
AGREGACION
F. COMO LIDIA EL METODO CON CONCEPTOS QUE SON MAS GRANDES Y QUE PUEDEN SER REPRESENTADOS RAZONABLEMENTE POR UNA CLASE
Berard 1992.
El dominio del análisis orientado a objetos intenta identificar los artículos reutilizables localizados alrededor de los objetos, ejem clases, de instancias, sistemas de objetos interactuando, y kits.
Kit: una colección de objetos (ejem, clases, metaclasses, instancias de no-clase, otros kits, y los sistemas de objetos interactuando) que apoyan a un solo concepto, grande, coherente, orientado al objeto, ejem, ventanas, interruptores, y pólizas de seguro. Puede de hecho haber una cierta conexión física entre algunos miembros de un kit dado. Sin embargo, los kits son "granulares," es decir, mientras que todos los componentes de un kit son lógicamente relacionados, allí son muy pocas conexiones físicas las que los unen.
Sistema de objetos interactuando: una colección de objetos (ejem, clases, metaclasses, instancias de no-clase, kits, y otros los sistemas de objetos interactuando) todos aquellos que apoyan un concepto solo, grande, coherente, orientado al objeto, y en cuales allí deben ser una conexión física directa o indirecta entre cualquier dos objetos arbitrarios dentro de la colección. Además, los sistemas de objetos interactuando tienen por lo menos uno interno, independientemente del control ejecutado
Booch 1991.
Sin embargo, la estructura de la clase de un sistema grande puede contener varios cientos o algunos miles de clases. El intentar poner todas estas clases en un diagrama de la clase llega a ser poco manejable. Para ocuparse de este problema, necesitamos algunos medios de organización de clases en pedazos significativos, que nos conduce a la idea de una categoría de clase.
... el dominio del análisis intenta identificar las clases y los objetos que son comunes a todos los usos dentro de un dominio dado, tal como un software de la contabilidad.
... subsistema una colección de módulos, algunos de los cuales son visibles a otros subsistemas y otros de las cuales se ocultan.
Coad y Yourdon 1990.
Tema. Un tema es un mecanismo para dirigir a un lector (analista, experto del dominio del problema, encargado, cliente) a través de un modelo grande, complejo. Los temas son también provechosos para los paquetes del trabajo de la organización en proyectos más grandes, basado sobre investigaciones iniciales de OOA.
Embley y Kurtz 1990.
Una clase de alto nivel de objetos agrupa las clases de los objetos, sistemas de relaciones, y notas en una sola clase objeto.
Martin y Odell 1992.
No se hace ninguna mención explícita de esto.
Rumbaugh 1991.
Subsistema un componente importante de un sistema organizado alrededor de un cierto tema coherente. Un sistema se puede dividir en subsistemas usando particiones o capas. Sistema: colección organizada de componentes que interactúan. Partición: un subsistema que povee un tipo de servicio; una partición puede por si misma construir subsistemas de nivel mas bajo. Capas: un subsistema que provee múltiples servicios, todos los cuales estan en el mismo nivel de abstracción, construye en sistemas de nivel bajo de abstracción.
Shlaer y Mellor 1992.
Mientras que un dominio pequeño (consistiendo en cincuenta o pocos objetos) se puede analizar generalmente como unidad, los dominios grandes se deben particionar para hacer que el análisis sea una tarea manejable. Para hacer tal particionamiento, nos aprovechamos del hecho de que los objetos en un modelo de información tienden a formar racimos: grupos de objetos que son interconectados el uno con el otro por muchas relaciones. Por el contrario, relativamente pocas relaciones conectan objetos en diversos racimos. Al particionar un dominio, dividimos el modelo de la información de modo que permanezcan los racimos intactos... Cada sección del modelo de información entonces se convierte en un subsistema separado. Observe que cuando el modelo de información se particiona en subsistemas, cada objeto está asignado a exactamente un subsistema.
Wrifs-Brock 1990.
Hemos estado hablando de clases como si fueran las únicas entidades conceptuales que componían una aplicación. Pero dependiendo de la complejidad de su diseño, los varios niveles de la encapsulación se pueden jerarquizar, una dentro del otro... Un subsistema es un sistema de clases (y posiblemente de otros subsistemas) que colaboran para satisfacer un sistema de responsabilidades. Aunque no existen los subsistemas mientras que el software se ejecuta, son entidades conceptuales útiles.
Los aplicaciones son programas completos. Una simulación completamente desarrollada, un sistema del procesamiento de textos, una hoja de cálculo, una calculadora, o un sistema del pago de la nómina son ejemplos de aplicaciones.
G. ENFOQUE A LA ORIENTACION DE OBJETOS
Solamente Booch y Berard tienen una cantidad significativa de texto en describir el dominio del análisis orientado a objetos.
Shlaer y Mellor sugieren que los objetos se puedan localizar usando las fuentes siguientes:
Coad y Yourdon recomiendan la busqueda de objetos con las siguientes fuentes:
Estas dos aproximaciones, aunque son útiles, son limitados.
Booch, Berard, y Wirfs-Brock parecen ser los más orientados al objeto, con su énfasis terminante en objetos, y el bajo enfoque en asociaciones y relaciones.
Coad y Yourdon parecen ser los siguientes, con las carácterísticas de los datos (las cualidades y las variables de la isntancia).
Después Rumbaugh, Embley y Kurtz, y Shlaer y Mellor, con un énfasis fuerte en asociaciones y relaciones casi en un nivel que hace a estos pares de los artículos de objetos.
Martin y Odell son los menos orientados a objetos, aparentemente presentando extensiones leves a la ingeniería de información con una orientación del comportamiento muy pesada.
A. COMPONENTES DE LA NOTACIÓN DE LAS MÉTODOLOGIAS
Cada metodología es caracterizada por un sistema específico de modelos (componentes de la notación)
Berard 1992.
Booch 1991.
Coad y Yourdon 1990.
Embley y Kurtz 1990.
Martin y Odell 1992.
Rumbaugh 1991.
Shlaer y Mellor 1992.
Wirfs-Brock 1990.
B. REPRESENTACIONES GRAFICAS DE ALGUNOS DIAGRAMAS UTILIZADOS POR BOOCH, COAD & YOURDON, Y RUMBAUGH
BOOCH
Para ver el gráfico seleccione la opción "Descargar"
COAD & YOURDON
Para ver el gráfico seleccione la opción "Descargar"
RUMBAUGH
Para ver el gráfico seleccione la opción "Descargar"
C. CONCEPTOS ESTÁTICOS QUE LA NOTACIÓN ES CAPAZ DE EXPRESAR
Se consideraron los siguientes conceptos:
|
Metodología |
Agregación |
Especialización |
Comunicación |
Módulo de Interfaz |
Calificaciones para la reutilización |
|
Berard |
Red de Semantica |
Red de Semantica |
Diagrama Objeto Mensaje |
Grafica de la unidad del Programa |
Red de Semantica |
|
Booch |
Diagrama de Clases |
Diagrama de Clases |
Diagrama de Clases |
Modulo |
Diagrama de Objetos |
|
Coad y Yourdon |
Entero-Parte |
Estrcutura Generalizacion-Especializacion |
Mensaje |
||
|
Embley |
Modelo Relacion Objeto |
Modelo Relacion Objeto |
Modelo Relacion Objeto |
||
|
Martin y Odell |
Diagrama de composicion de objetos |
Diagrama de la Jerarqia Objeto Generalizacion |
Diagramas de flujo del objeto |
||
|
Rumbaugh |
Modelo del Objeto |
Modelo del Objeto |
Escenario |
||
|
Shlaer y Mellor |
Herencia |
Modelo Comunicacion de Objetos |
Diagrama de clases |
||
|
Wirfs-Brock |
Tarjeta de Clases |
Jerarquias |
Colaboradores |
D. CONCEPTOS DINÁMICOS QUE LA NOTACIÓN ES CAPAZ DE EXPRESAR
La representación de los cambios de estado, la sincronización, y en cierta forma las interacciones del objeto son elementos esenciales para modelar el comportamiento de los sistemas.
|
Metodologia |
Cambios de Estado |
Tiempos |
|
Berard |
Diagrama Transicion Estado / Grafica Petri Net |
Diagrama de Tiempos |
|
Booch |
Diagrama Transicion Estado |
Diagrama de Tiempos |
|
Coad y Yourdon |
Diagrama Estado |
|
|
Embley |
Red de Estado |
Red de Estado |
|
Martin y Odell |
Cambios de Estado |
|
|
Rumbaugh |
Diagrama de Estado |
Estado Extendido |
|
Shlaer y Mellor |
Modelo de Estado |
|
|
Wirfs-Brock |
E. REGLAS EXPLÍCITAS PARA DEFINIR LOS SÍMBOLOS DE LAS NOTACIONES
Cada método fue repasado para determinar si los símbolos del método fueron definidos explícitamente, y si así es, donde se definieron; y si existen ejemplos.
|
Berard |
La notación no es formalmente definida. Se proporcionan numerosos ejemplos |
|
Booch |
La notación se documenta en parte de su libro. Se proporcionan numerosos ejemplos |
|
Coad y Yourdon |
Proporciona las reglas específicas para la simbología de la notación el apéndice A, del análisis orientado a objetos y proporciona numerosos ejemplos. |
|
Embley |
La notación es formalmente definida en el Apendice A, y proporciona numerosos ejemplos |
|
Martin y Odell |
Se define la notacion en uno de sus capitulos y tambien Diagramas Estandares son recomendados |
|
Rumbaugh |
La notación si se define en su libro. |
|
Shlaer y Mellor |
La notacion es formalmente definida a traves de sus libro. |
|
Wirfs-Brock |
La notación no se define formalmente, pero se presentan numerosos ejemplos |
Además, de la definición de la semántica de las notaciones, se buscaron también ejemplos y heurística para la construcción de modelos.
|
Metodologia |
Sintaxis Definida |
Semántica Definida |
Provisión de Ejemplos |
Heurísticas Presentadas |
|
Berard |
X |
X |
||
|
Booch |
X |
X |
X |
X |
|
Coad y Yourdon |
X |
X |
X |
X |
|
Embley |
X |
X |
X |
X |
|
Martin y Odell |
X |
X |
X |
|
|
Rumbaugh |
X |
X |
X |
X |
|
Shlaer y Mellor |
X |
X |
X |
X |
|
Wirfs-Brock |
X |
X |
X |
X |
En general, cada notación (excepto Berard) provee una definición explícita de la semántica de su notación, ejemplos y heurística. En muchos casos los ejemplos son bastante completos, estos son, de los modelos requeridos para un problema específico, o de una variedad de problemas.
E. MECANISMO DE PARTICION DENTRO DE LA NOTACION
Mientras que el tamaño de un sistema aumenta, se requiere un cierto mecanismo para limitar la visibilidad de la información solamente a esos objetos de interés en un momento particular. Estos son los mecanismos que proporciona cada metodología:
|
Metodología |
Mecanismo de Partición |
|
Berard |
Kits, sistemas de Interaccion de Objetos |
|
Booch |
Subsistemas, Procesadores |
|
Coad y Yourdon |
Temas |
|
Embley |
Vistas de Alto Nivel |
|
Martin y Odell |
* |
|
Rumbaugh |
Subsistemas |
|
Shlaer y Mellor |
Subsistemas |
|
Wirfs-Brock |
Subsistemas y Frameworks |
* Martin y Odell mencionan "reinos" y "especificaciones del reino" en su glosario, pero no proporcionan ninguna referencia de cómo ésta se relaciona con la partición del sistema.
A. PASOS DEL PROCESO DE DESARROLLO DE CADA METODOLOGÍA
Berard 1992.
Booch 1991.
Coad y Yourdon 1990.
Diseñar el componente del dominio del problema
Diseñar el Componente Humano de la Interacción
Diseño del componente del Manejo de tareas
Diseño del Componente del Manejo de Datos
Embley y Kurtz 1990.
Martin y Odell 1992.
Rumbaugh 1991.
2Escribir u obtener una descripción inicial del problema (declaración del problema)
3Construir in modelo del Objeto
4Desarrollar un Modelo Dinámico
5Construir un Modelo Funcional
6Verificar, iterar, y refinar los tres modelos
7Diseño del Sistema
8Diseño del Objeto
9Diseño de algoritmos para implementar las operaciones:
Shlaer y Mellor 1992.
Busqueda
Desarrollo y Refinación de los Modelos
Integrar con Otros Modelos
Revisar
Construir el Modelo Estado
Verificar las interacciones entre los modelos estados y los modelos de comunicación de objetos
Construir o modificar, los modelos de comunicación de subsistemas
Revisar que esten correctos y su consistencia
Construcción de Diagramas de Flujo de Datos Activos
Integrar con las Tablas de Proceso de Estado y producir los modelos de acceso de datos para los subsistemas y modificar los modelos de acceso a subsistemas
Revisar
Wirfs-Brock 1990.
Modelo de objetos físicos
Modelo conceptual de entidades
Uso de un termino solo para cada concepto
Ser cuidadoso en el uso de adjectivos
Modelo de categorias de objetos
Modelo de interfaces externas
Modelo los valores de los abributos de los objetos
Recuerde el propósito de cada clase, según lo implicado por su nombre y especificado en la declaración del propósito
Extraiga responsabilidades de la especificación buscando acciones e información
Identifique responsabilidades implicadas por las relaciones entre clases.
Distribuir uniformemente la inteligencia del sistema
Definir responsabilidades lo mas posible
Matnener el comportamiento con la informacion relacionada
Mantener la información de cada cosa en un lugar
Compartir responsibilidades a través de las clases relacionadas.
Utilizar relaciones "es-tipo-de" para encontrar herencias en las relaciones.
Utilizar relaciones "es-analogo-para" para encongrar superclases perdidas.
Utilizar relaciones "es-parte-de" para encontrar otras clases perdidas.
B. VISION GRAFICA DEL PROCESO DE DESARROLLO DE BOOCH, COAD & YOURDON, Y RUMBAUGH
BOOCH
Para ver el gráfico seleccione la opción "Descargar"
COAD & YOURDON
Para ver el gráfico seleccione la opción "Descargar"
RUMBAUGH
Para ver el gráfico seleccione la opción "Descargar"
C. ENTREGAS QUÉ GENERA EL PROCESO DEL DESARROLLO
Una cualidad de cualquier proceso del desarrollo es el número y los tipos de entregas que el proceso genera. La documentación del ciclo de vida incluye generalmente especificaciones de requerimientos, especificaciones de diseño, especificación del sistema y subsistemas, así como casos de prueba. Las entregas para cada método se evalúan usando los criterios siguientes:
|
Metodología |
Requerimientos |
Diseño |
Pruebas |
Objetos/Clases |
Subsistemas |
Total |
|
Berard |
2 |
5 |
5 |
5 |
2 |
19 |
|
Booch |
1 |
2 |
0 |
1 |
1 |
5 |
|
Coad y Yourdon |
2 |
2 |
0 |
5 |
0 |
9 |
|
Embley |
5 |
1 |
0 |
1 |