Este documento presenta la metodología OMT (Object Modeling Technique) para el análisis y diseño orientado a objetos. Describe las fases de OMT, incluido el análisis, diseño de sistemas, diseño de objetos e implementación. También describe los modelos clave de OMT, como el modelo de objetos, modelo dinámico y modelo funcional. Luego proporciona un ejemplo de cómo aplicar OMT al diseñar un sistema de cajero automático.
2. OMT Ingeniería de Software 2 2
IntroducciónIntroducción
Object Technoque Modeling
Creada por James Rumbaugh y Michael Blaha
en 1991
Metodología de Análisis y Diseño Orientada a
Objetos
3. OMT Ingeniería de Software 2 3
FasesFases
Análisis
Diseño del sistema
Diseño de objetos
Implementación
4. OMT Ingeniería de Software 2 4
ModelosModelos
Modelo de objetos
Modelo dinámico
Modleo funcional
5. OMT Ingeniería de Software 2 5
Modelo de ObjetosModelo de Objetos
Objetos y Clases
Objeto
Clases
Diagramas de objetos
Atributos
Operaciones y métodos
6. OMT Ingeniería de Software 2 6
Enlaces y asociaciones
Enlaces
Asociaciones
Multiplicidad
7. OMT Ingeniería de Software 2 7
Conceptos avanzados de enlaces y asociaciones
Atributos de los enlaces
Modelado de uan asociación en forma de clase
Nombre de rol
Clasificación
Cualificación
Agregación
8. OMT Ingeniería de Software 2 8
Generalización y herencia
Generalización
Herencia
Anulacíón
Construcciones de agrupamiento
Módulo
Hojas
9. OMT Ingeniería de Software 2 9
ConstrucciónConstrucción
Se identifican las clases de objetos
Se empieza a construir un diccionario que contiene las
descripciones de clases, atributos y asociaciones
Se añaden las asociaciones entre clases
Se añaden los atributos de objetos y de enlaces
Se organizan y simplifican las clases de objetos
empleando la herencia
Se comprueban las vías de acceso empleando
escenarios e iterando los pasos anteriores cuando sea
conveniente
13. OMT Ingeniería de Software 2 13
Modelo DinámicoModelo Dinámico
Sucesos y Estados
Sucesos
Escenarios y seguimiento de sucesos
Estados
Diagramas de estados
Condiciones
14. OMT Ingeniería de Software 2 14
Operaciones
Diagramas de estados anidados
Concurrencia
Concurrencia de agregación
Concurrencia dentro de un objeto
15. OMT Ingeniería de Software 2 15
Conceptos avanzados de modelado dinámico
Acciones de entrada y de salida
Acciones internas
Transición automática
Envío de sucesos
Sincronización de actvidades concurrentes
16. OMT Ingeniería de Software 2 16
ConstrucciónConstrucción
Se preparan escenarios de secuencias típicas de
interacción
Se identiifcan sucesos entre objetos y se prepara un
seguimiento de sucesos para cada escenario
Se prepara un diagrama de flujo de sucesos para el
sistema
Se desarrolla un diagrama de estados para cada clase
que tenga un comportamiento dinámico importante
Se comprueba la congruencia y compleción de los
sucesos compartidos entre diagramas de estados
18. OMT Ingeniería de Software 2 18
Modelo FuncionalModelo Funcional
Diagramas de flujo de datos
Procesos
Flujo de datos
Actores
Almaecnes de datos
Flujos de control
Especificación de operaciones
Restricciones
19. OMT Ingeniería de Software 2 19
ConstrucciónConstrucción
Se identifican los valores de entrada y de salida
Se utilizan diagramas de flujo de datos según
sea necesario parta mostrar las dependencias
funcionales
Se describe lo que hace cada función
Se identifican las restricciones
Se especifican los criterios de optimización
21. OMT Ingeniería de Software 2 21
AnálisisAnálisis
Definición del problema
Se construye un modelo de objetos:
Modelo de objetos = diagrama de modelo de objetos
+ diccionario de datos
Se desarrolla un modelo dinámico
Modelo dinámico = diagramas de estados +
diagrama global de flujo de sucesos
22. OMT Ingeniería de Software 2 22
Se construye un modelo funcional
Modelo funcional = diagramas de flujo de datos +
restricciones
Se verifican, iteran y refinan los 3 modelos
Documento de análisis = definición del problema +
modelo de objetos + modelo dinámico + modelo
funcional
23. OMT Ingeniería de Software 2 23
Diseño de SistemasDiseño de Sistemas
Se organiza el sistema en subsistemas
Se identifica la concurrencia inherente en el problema
Se asignan los subsistemas a procesadores y a tareas
Se seleccioan la estrategia básica para implementar los
almacenes d edatos en términos de estructuras de
datos, archivos y bases de datos
24. OMT Ingeniería de Software 2 24
Se identifican los recursos globales y se determinan los
mecanismos para controlar el acceso a los mismos
Se selecciona un aaproximación para implementar el
control del software
Se consideran las condiciones de contorno
Se establecen las prioridades de compensación
Documento del diseño de sistema = estructura de la
arquitectura básica del sistema y desiciones estratégicas de
alto nivel
25. OMT Ingeniería de Software 2 25
Diseño de ObjetosDiseño de Objetos
Se obtienen las operaciones para el modelo de
objetos a partir d elos demás modelos
Se diseñan algoritmos para implementar las
operaciones
Se optimizan las vías de acceso a los datos
Se implementa el control del software
completando la aproximación seleccionada
durante el diseño del sistema
26. OMT Ingeniería de Software 2 26
Se ajusta la estructura de clases para incrementar la
herencia
Se diseña la implementación de las asociaciones
Se determina la representación exacta de los atributos
que son objetos
Se empaquetan las clases y las asociaciones en
módulos
Documento de diseño = Modelo d eobjetos detallado +
modelo dinámico detallado + modelo funcional detallado
27. OMT Ingeniería de Software 2 27
VentajasVentajas
Proporciona una serie de pasos perfectamente
definidos al desarrollador
Tratamiento especial de la herencia
Facilita el mantenimiento dada la gran cantidad
de información que s egenera en el análisis
Es fuerte en el análisis
28. OMT Ingeniería de Software 2 28
DesventajasDesventajas
Hay pocos métodos para encontrar
inconsistencias en los módulos
Interacción de objetos no soportada
explícitamente en ninguna herramienta gráfica
Al ser un análisis iterativo no se sabe cuando
empezar el diseño
Es débil en el diseño
29. OMT Ingeniería de Software 2 29
APLICACIONESAPLICACIONES
Archivos.
Base de datos orientadas a objetos.
Estructura de datos.
Multimedias.
Interactivas.
Web.
Cliente/Servidor.
Distribuidas.
30. OMT Ingeniería de Software 2 30
Herramientas CASE que soportan
OMT
Herramientas CASE que soportan
OMT
Excelerator II Intersolv Inc.
MetaEdit MetaCASE Consulting YO
ObjectMarker, Mark V Software
BOCS, Berard Software Eng.
ObjectTeam, Candre Technologies, Inc.
OMTool, Martin Marietta.
Paradigm Plus, Protosoft.
31. OMT Ingeniería de Software 2 31
Sistema de cajero automático: ATM
(Automated Teller Machine)
Sistema de cajero automático: ATM
(Automated Teller Machine)
Diseñar el software para dar soporte a una red
bancaria automatizada, que incluya tanto cajeros
humanos como cajeros automáticos (CA), y que
deberán ser compartidos por un consorcio de
bancos.
32. OMT Ingeniería de Software 2 32
Algunos requerimientosAlgunos requerimientos
El analista debe diseñar el software para los CA y para
la red.
Los cajeros automáticos se comunican con una
computadora central que aprueba las transacciones con
los bancos adecuados.
El sistema necesita mantener unos registros adecuados
y también las oportunas medidas de seguridad y debe
admitir accesos concurrentes a una misma cuenta de
forma correcta.
37. OMT Ingeniería de Software 2 37
Preparar un diccionario de datosPreparar un diccionario de datos
Cuenta Cuenta individual de un banco a la cual se le pueden
aplicar transacciones. Las cuentas pueden ser de varios tipos;
como mínimo serán de ahorro o a la vista. Un cliente puede tener
más de una
CA Punto que permite a los clientes introducir sus propias
transacciones empleando una tarjeta de crédito como
identificación. El CA interacciona con el cliente para obtener
información de la transacción, la envía a la computadora central
para su verificación y procesamiento, y suministra dinero al
usuario. Suponemos que el CA no necesita funcionar
independientemente de la red.
38. OMT Ingeniería de Software 2 38
Identificar asociaciones entre
objetos
Identificar asociaciones entre
objetos
Locuciones Verbales:
La red bancaria incluye cajeros y CA
El consorcio comparte los CA.
El banco proporciona la computadora del banco.
La computadora del banco proporciona las cuentas.
La computadora del banco procesa las transacciones de
cada cuenta.
El banco posee el punto de caja.
39. OMT Ingeniería de Software 2 39
Identificar asociaciones entre
objetos (continuación...)
Identificar asociaciones entre
objetos (continuación...)
Locuciones verbales implícitas:
El consorcio está formado por bancos.
Los bancos tienen cuentas.
El consorcio posee la computadora central.
El sistema se encarga del registro.
El sistema se encarga de la seguridad.
40. OMT Ingeniería de Software 2 40
Diagrama inicial para un sistema
ATM.
Diagrama inicial para un sistema
ATM.
41. OMT Ingeniería de Software 2 41
Modelo de objetos de un CA con
sus atributos
Modelo de objetos de un CA con
sus atributos
42. OMT Ingeniería de Software 2 42
Organizar y simplificar la clase de
objetos usando herencia
Organizar y simplificar la clase de
objetos usando herencia
43. OMT Ingeniería de Software 2 43
Iterar y refinar el modelo.Iterar y refinar el modelo.
44. OMT Ingeniería de Software 2 44
MODELADO DINÁMICOMODELADO DINÁMICO
Se preparan escenarios de secuencias típicas de interacción.
Escenario normal
El CA pide al usuario que inserte una tarjeta; el usuario inserta una tarjeta de
crédito.
El CA admite la tarjeta y lee su número de serie.
El CA solicita la contraseña; el usuario escribe “1234”.
El CA verifica el número de serie y la contraseña con el consorcio; esta la
comprueba con el banco “39” y notifica la aceptación al CA.
El CA pide al usuario que seleccione la clase de transacción que desea (retirar
fondos, hacer un ingreso o una transferencia); el usuario selecciona retirar
fondos.
45. OMT Ingeniería de Software 2 45
Escenario
normal(continuación...)
Escenario
normal(continuación...)
El CA verifica que la cantidad se encuentre dentro de los límites de crédito
predefinidos, y pide al consorcio que procese la transacción; éste pasa la
solicitud al banco, que eventualmente confirma el éxito de la misma y
proporciona el nuevo saldo disponible en cuenta.
El CA proporciona el dinero y pide al usuario que lo recoja; éste toma el dinero.
El CA pregunta si el usuario desea continuar; éste dice que no.
El CA imprime un recibo, expulsa la tarjeta y pide al usuario que la recoja; el
usuario toma el recibo y la tarjeta.
El CA pide a un usuario que inserte una tarjeta.
46. OMT Ingeniería de Software 2 46
Escenario con excepcionesEscenario con excepciones
El CA verifica el número de serie y la contraseña con el
consorcio, que los rechaza después de consultar con el banco
adecuado.
El CA indica que la contraseña es incorrecta, y pide al usuario
que vuelva a escribirla; éste usuario escribe “1234”, y la tarjeta es
admitida por el consorcio tras verificar el CA.
El CA pide al usuario que seleccione la clase de transacción que
desea; el usuario selecciona una retirada de fondos.
El CA pregunta la cantidad de dinero; el usuario cambia de
opinión y pulsa “cancelar”.
47. OMT Ingeniería de Software 2 47
Se prepara un seguimiento de
sucesos para cada escenario.
Se prepara un seguimiento de
sucesos para cada escenario.
48. OMT Ingeniería de Software 2 48
Diagrama de flujo de sucesosDiagrama de flujo de sucesos
49. OMT Ingeniería de Software 2 49
Se construye un diagrama de
estados.
Se construye un diagrama de
estados.
50. OMT Ingeniería de Software 2 50
MODELO FUNCIONALMODELO FUNCIONAL
Identificar los valores de entrada y salida.
51. OMT Ingeniería de Software 2 51
Construir diagramas de flujo de
datos que muestren las
dependencias funcionales.
Construir diagramas de flujo de
datos que muestren las
dependencias funcionales.
52. OMT Ingeniería de Software 2 52
Describir funciones.Describir funciones.
Actualizar cuenta (cuenta, cantidad, tipo-de-transacción) -> dinero, recibo,
mensaje
Si la cantidad que se intenta retirar supera el saldo disponible,
Rechazar la transacción y no entregar ningún dinero.
Si la cantidad que se intenta retirar no supera el saldo disponible,
Cargar el importe y dispensar el efectivo solicitado
Si la transacción es un ingreso,
Abandonar el importe y no dispensar efectivo.
Si la transacción es una petición de saldo
No dispensar efectivo.
En todo caso,
El recibo muestra el número del CA, fecha, hora, número de cuenta, tipo-de-
transacción, importe (si lo hubiere) y nuevo saldo.
53. OMT Ingeniería de Software 2 53
DISEÑODISEÑO
Arquitectura del Sistema CA
54. OMT Ingeniería de Software 2 54
PseudocódigoPseudocódigo
Hacer para siempre
Mostrar pantalla principal
Leer tarjeta
Repetir
Pedir contraseña
Leer contraseña
Verificar cuenta
Hasta que la verificación de cuenta sea correcta
Repetir
Repetir
Preguntar clase de transacción
Leer clase
Leer cantidad
Comenzar transacción
Esperar que acabe
Hasta que la transacción sea correcta
Dispensar efectivo
Esperar a que lo tome el cliente
Preguntar si continúa
Hasta que el usuario quiera terminar
Expulsar tarjeta
Esperar hasta que el cliente tome la tarjeta
55. OMT Ingeniería de Software 2 55
Pseudocódigo (continuación...)Pseudocódigo (continuación...)
56. OMT Ingeniería de Software 2 56
CONCLUSIONESCONCLUSIONES
OMT pone énfasis en la importancia del modelo y
uso del modelo para lograr una abstracción, en el
cual el análisis esta enfocado en el mundo real
para un nivel de diseño, también pone detalles
particulares para modelado de recursos de la
computadora.
57. OMT Ingeniería de Software 2 57
BIBLIOGRAFIABIBLIOGRAFIA
Modelado y diseño orientados a objetos Metodología
OMT. James Rumbaugh, Michael Blaha, William
Premerlani, Frederick Hedí y William Lorensen. Editorial
Prentice Hall 1996 Primera reimpresión.
Metodologías orientadas a objetos (Revisión
comparativa) Instituto Tecnológico de Morelia 1999
Monografía presentada por: Helio Bernandino
Hernández Ponce
http://www.mcc.unam.mx/~cursos/Objetos/Omt/omt.html