Metodología OMT.
La metodología de modelado de objetos OMT (object Modeling Technique) descrito por [Rumbaugh].
Modelo:
Del modelo espiral o un proceso evolutivo con una separación no rígida entre las fases del desarrollo.
Enfasis:
- En el análisis no en la implementación,
- En los datos mas que en las funciones lo que da estabilidad al proceso de desarrollo.
- Notación común a todas las fases a través de tres modelos que capturan los aspectos estáticos, dinámicos y funcionales que combinados proveen una descripción completa del software.
Fases de la metodología OMT:
Análisis
Su objetivo es desarrollar un modelo de lo que va a hacer el sistema. El modelo se expresa en términos de objetos y de relaciones entre ellos, flujo dinámico de control y las transformaciones funcionales.
Los pasos a seguir en el análisis son:
- Se escribe u obtiene una descripción inicial del problema.
- Se concentra en entender el problema y modelar en el dominio del problema.
- Se inicia con un texto que describe el problema.
- Se construye el modelo de objetos y sus relaciones.
Su objetivo es describir la estructura estática del software.
- Se abstraen los conceptos de los datos que son mas importantes para la aplicación.
- Se describen gráficamente por los diagramas de objetos que definen las clases y sus relaciones
Los pasos que se llevan a cabo para el modelo de objetos son:
- Identificar las clases
- Se seleccionan los sustantivos de la descripción del problema como posibles clases candidatas. Se construye una lista.
- Se eliminan las clases redundantes, irrelevantes o vagas o bien por ser atributos, operaciones o construcciones de implementación.
Las clases se representan por rectángulos con tres compartimientos, en el primero se pone el nombre de la clase, en el segundo los atributos y en el tercero las operaciones o métodos.

- Preparar un diccionario de clases (datos)
- Identificar las asociaciones entre objetos.
- Identificar atributos.
- Organizar y simplificar clases usando herencia.
- Verificar que existan trayectorias en el modelo de objetos para preguntas probables.
- Iterar y refinar el modelo.
Es muy importante definir que se entiende con mayor detalle por cada clase que quedó en la lista anterior.
Una asociación es una dependencia entre dos o más clases. Las asociaciones, se representan por líneas que unen a las clases sobre las cuales se puede escribir el nombre de la asociación.

A estos diagramas se les agrega la multiplicidad correcta. Puede ser "uno a uno"; "uno a muchos" representada por una bolita rellena del lado de los "muchos"; o "muchos a muchos" representada por bolitas rellenas a ambos extremos de la línea.
También se puede representar la relación " es parte de" o agregación que indica que el objeto está compuesto por objetos de las clases asociadas.
Se denota un pequeño diamante del lado de la clase que agrega y puede incluir multiplicidades.

Los atributos son propiedades de los objetos tales como nombre, peso, velocidad, etc.
La herencia se puede usar para generalizar los aspectos comunes de las clases existentes construyendo una superclase, o para refinar una clase en subclases especializadas.
La notación de OMT para la herencia es un triángulo debajo de la superclase.
En los pasos anteriores se construyó un diagrama de objetos, ahora se hace una revisión verificando que estén representadas todas las relaciones siguiéndolo para preguntas probables.
El documento que genera el modelo de objetos es el siguiente:
Modelo de objetos = diagrama del modelo de objetos + diccionario de datos
- Se desarrolla el modelo dinámico.
- Se captura el aspecto concerniente a la secuencia de las operaciones en el tiempo.
- Se muestra el control sin importar que hacen exactamente las operaciones.
- Se representa por un diagrama de estados. El estado de un objeto es un conjunto de valores para sus atributos, en un cierto momento, el cual cambia al recibir un estímulo llamado evento.
Un diagrama de estados es una gráfica de estados representados por círculos y eventos representados por flechas.
Los pasos que se siguen en el modelo dinámico son:
- Preparar escenarios de una interacción típica.
- Identificar eventos entre objetos preparando un trazado de eventos para cada escenario.
- Construir los diagramas de estados.
- Revisar los eventos entre los objetos para verificar su consistencia.
El documento que genera el modelo dinámico es:
Modelo dinámico = diagramas de estados + diagrama global de trazado de eventos
- Se construye el modelo funcional.
- Especifica el significado de las operaciones o métodos en el modelo de objetos y de las acciones en el modelo dinámico.
- Muestra como se calculan los valores sin importar la secuencia, las decisiones ni la estructura de los objetos.
- Se utilizan diagramas de flujo de datos para mostrar las dependencias funcionales.
El documento que genera el modelo funcional es:
Modelo funcional = diagramas de flujo de datos + restricciones
- Se verifican, iteran y refinan los tres modelos.
El documento que genera el análisis contiene:
Documento de análisis = definición del problema + modelo de objetos + modelo dinámico + modelo funcional.
Diseño del sistema
Se define la arquitectura del sistema y se toman las decisiones estratégicas.
Los pasos que se llevan acabo son:
- Se organiza el sistema en subsistemas.
- Se identifica la concurrencia inherente en el problema.
- Se asignan los subsistemas a procesadores y a tareas.
- Se selecciona la estrategia para implementar y administrar los almacenes de datos(archivos o bases de datos).
- Selección de la implementación del control del software.
Cada subsistema comparte alguna propiedad en común. Las relaciones entre los subsistemas pueden ser: cliente – servidor o punto a punto.
La descomposición se puede organizar por capas horizontales o particiones verticales( cada uno proporciona un servicio).
El modelo dinámico nos permite identificar la concurrencia en el sistema.
Cada subsistema se asigna a un procesador buscando satisfacer necesidades de rendimiento y minimizando la comunicación de los procesadores.
Existen dos tipos de control:
- El control interno. Esta dado por el flujo de control en el programa o proceso.
- El control externo. Esta dado por sucesos externos, los cuales pueden ser:
- Control por procedimientos.
- Control por sucesos.
- Concurrentes
- Se consideran las condiciones de contorno.
- Se establecen prioridades de compensación.
Se trata de considerar como se hace la iniciación, terminación y como responderá a las fallas.
El documento que nos proporciona el diseño del sistema es:
Documento de diseño del sistema = estructura de la arquitectura básica del sistema + decisiones estratégicas de alto nivel.
Diseño de objetos
Su objetivo es refinar el modelo del análisis y proporcionar una base detallada para la implementación tomando en cuenta el ambiente en que se implementará.
Los pasos que se realizan en el diseño de objetos son los siguientes:
- Se refinan las operaciones para el modelo de objetos a partir de los demás modelos:
- Se busca una operación para cada proceso del modelo funcional.
- Se define una operación para cada suceso del modelo dinámico.
- Se diseñan algoritmos para implementar las operaciones y las estructuras de datos
- Se optimizan las vías de acceso a los datos.
- Se implementa el control del software completando la aproximación propuesta en el diseño del sistema.
Existen tres estrategias básicas para implementar el control:
- Construir un sistema controlado por procedimientos.
- Crear un motor de máquina de estados que responde a una tabla de transiciones y acciones. (Se recomienda para ambientes dirigidos por eventos)
- Establecer un control como tareas concurrentes. (Se requiere de un lenguaje que soporte la concurrencia)
- Se ajusta la estructura de clases incrementando la herencia.
- Se diseña la implementación de las asociaciones.
Las asociaciones conforman el pegamento en el modelo de objetos y proporcionan las vías de acceso entre los objetos. La implementación se hace dependiendo del tipo de asociación:
- Asociaciones unarias. Estas asociaciones se establecen solamente en una sola dirección y se pueden implementar por medio de apuntadores y si la mutiplicidad es de "muchos", por medio de un conjunto de apuntadores.
- Asociaciones bidireccionales. Este tipo de asociaciones se pueden implementar de diferentes maneras:
- Atributos en una dirección.
- Como atributos en ambas direcciones.
- Implementar como un objeto separado por medio de diccionarios.
- Se determina la representación exacta de los atributos de los objetos.
- Se empaquetan las clases y las asociaciones en módulos. El empaquetamiento implica:
- Ocultar la información interna a los ojos externos (construir cajas negras con interfaces claras).
- Determinar la coherencia de entidades, es decir, que cada clase o módulo debe de hacer una cosa y bien.
- Construcción de los módulos. Cada módulo debe de tener una cohesión funcional, esto es, un propósito bien definido.
El documento que se genera el diseño de objetos es:
Documento de diseño de objetos = modelo de objetos detallado + modelo dinámico detallado + modelo funcional detallado.
Ejemplo de la metodología OMT
Descripción del problema
El problema consiste en crear un sistema computarizado de registro de calificaciones para una liga infantil de nado sincronizado. Los niños participan en dos clases de eventos llamados: figuras y rutinas. Las figuras, se ejecutan de manera individual y son maniobras de ballet acuático tales como nadar sobre la espalda con una pierna levantada recta. Las rutinas se realizan por el equipo completo y son un ballet acuático, El sistema sólo tiene que tomar en cuenta las figuras.
Durante el encuentro, los eventos de figura se llevan simultáneamente en varias estaciones situadas alrededor de la alberca, usualmente en cada esquina. En una estación se pueden realizar varios eventos de figura en el curso de un encuentro. Los concursantes se dividen en grupos; cada grupo inicia en diferentes estaciones. Cada competidor tiene un intento en cada evento.
Se asignan varios jueces y anotadores a cada estación durante el encuentro. Cada juez indica la calificación para cada prueba observada mostrandoi unas tarjetas numeradas. Las calificaciones son leídas por los anotadores que las registran y calculan la calificación neta para cada prueba. La calificación más alta y más baja se eliminan por el grado de dificultad de la figura.
Lista de candidatos a objetos
Calificación atr. liga infantil de nado
Figura rutina
Alberca esquina
Concursante grupo
Evento competidor
Intento atr. juez
Anotador tarjetas numeradas
Promedio atr. grado de dificultad atr.
Diagrama de instancias.
Diagramas de clases e instancias.
Diccionario de datos.
Anotador: es la persona que lleva el registro de las calificaciones que asignan los jueces a cada competidor. Calcula la calificación final de cada competidor.
Concursante: es un niño que participa en la competencia.
Equipo: es un conjunto de niños que participan en una competencia. Todos los participantes es un equipo realizan juntos el ballet acuático.
Estación: es el lugar donde se lleva a cabo un evento de competencia. Hay varias estaciones simultáneas, usualmente es las esquinas de la alberca. En una estación se pueden efectuar varios eventos.
Evento: son las competencias o pruebas llevadas a cabo en las estaciones. Hay varios eventos en que pueden participar los competidores en una competencia.
Figura: es un tipo de evento en que se compite individualmente, es una maniobra de ballet acuático como nadar de espalda con una pierna levantada.
Juez: persona que asigana una calificación a cada competidor para cada prueba. Varios jueces se asignan a una estación. Una figura es calificada por los mismos jueces.
Rutina: es otro tipo de evento, se compite en equipos completos realizando un ballet acuático.
No hay comentarios:
Publicar un comentario