Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apunte OO
Apunte OO
Diseño de Sistemas
Profesor: A.U.S. Gustavo Marcelo Torossi
Análisis y Diseño Universidad Tecnológica Nacional
Orientado a Objetos F.R.R.
Tabla de contenidos
Proceso de Negocio............................................................................................. 18
Como identificar y definir procesos de negocio? ................................................. 19
Secuencia de Transacciones ................................................................................ 19
Como identificar y definir secuencias de transacciones?...................................... 19
18.2 Componentes y Herramientas de modelado de procesos de negocios y
secuencias de transacciones .................................................................................... 20
18.3 Diagrama de Secuencia de Transacciones (TSD) ............................................. 20
Evento............................................................................................................. 21
Comunicación entre Actor y Sec.Trans................................................................ 21
Secuencia común ............................................................................................ 21
Descripción Textual: componentes...................................................................... 21
3) Camino estándar y alternativo ..................................................................... 21
4) Actores ........................................................................................................... 22
Subdivisión de procesos de negocios................................................................... 22
Unidad 19: Modelado de Interaccion de Objetos ......................................................... 23
19.1 Conceptos y propósito del modelado de interacción de objetos. ...................... 23
Utilización del modelado de interacción de objetos ............................................. 23
19.2 Herramientas de modelado. ............................................................................. 24
Diagrama de interacción de objetos para un proceso de negocios ........................ 24
Diagrama de interacción de objetos para una secuencia de transacciones............. 25
Elementos ....................................................................................................... 25
Casos Especiales ............................................................................................. 26
Diagrama de flujo de actividad............................................................................ 26
Simbología de los diagramas de flujo de actividad .......................................... 27
Observaciones................................................................................................. 28
19.3 Técnicas avanzadas de modelado. ................................................................... 28
Usando AFD para modelar operaciones del sistema ............................................ 28
Diagramas de interacción de objetos, secuencias de transacciones y escenarios... 28
Unidad 20: Modelo de Ciclo de Vida de Objetos ........................................................ 29
20.1 Conceptos y propósito del modelo de ciclo de vida de objetos. ....................... 29
Utilización del modelo de ciclo de vida de objetos .............................................. 29
20.2 Herramientas de modelado. Diagrama de ciclo de vida de objetos. .................. 29
Componentes del OLD........................................................................................ 30
Ejemplo: PILA.................................................................................................... 31
20.3 Técnicas avanzadas de modelado. ................................................................... 31
Unidad 21: Modelo Global del Sistema....................................................................... 32
21.1 Conceptos y propósito del modelo del modelo global del sistema. .................. 32
Conceptos ............................................................................................................... 32
El espacio del problema y sus componentes ........................................................ 32
Definición del alcance de un subsistema ............................................................. 33
Servicios ............................................................................................................. 33
Particiones verticales y horizontales.................................................................... 33
21.2 Diagrama de Modelo Global del Sistema......................................................... 34
Componentes del diagrama ................................................................................. 34
21.3 Conceptos avanzados ...................................................................................... 35
Uso de Clases de Objetos para encapsular subsistemas........................................ 35
Unidad 22: Ciclo de Desarrollo Orientado a Objetos................................................... 36
22.1 Fases del ciclo de desarrollo O.O. ................................................................... 36
22.2 Uso de los distintos modelos. .......................................................................... 37
Análisis del Negocio ........................................................................................... 37
Análisis de Requerimientos................................................................................. 37
Diseño Lógico..................................................................................................... 38
Diseño Físico ...................................................................................................... 38
El rol de las versiones en un proceso de desarrollo aditivo .................................. 39
22.3 Arquitectura de Seis Componentes .................................................................. 39
Unidad 23: Análisis del Negocio................................................................................. 40
23.1 Actividades del Análisis del Negocio .............................................................. 40
23.2 Modelado de Objetos del Negocio................................................................... 40
Pasos en el modelado de objetos de negocio........................................................ 41
Qué modelar?...................................................................................................... 41
23.3 Modelado de Ciclo de Vida de Objetos ........................................................... 41
Cuando modelar ciclos de vida? .......................................................................... 41
Como modelar ciclos de vida de objetos.............................................................. 41
23.4 Modelado de Procesos de Negocio. ................................................................. 42
Pasos del modelado de procesos de negocio ........................................................ 42
Identificación de procesos de negocio ................................................................. 42
Como describir procesos de negocio ................................................................... 42
23.5 Chequeo del modelo de análisis del negocio.................................................... 43
Unidad 24: Análisis de Requerimientos ...................................................................... 44
Actividades del Análisis de Requerimientos........................................................ 44
24.1 Definición de secuencia de transacciones. ....................................................... 45
Identificación de secuencias de transacciones...................................................... 45
Relación entre actores y eventos externos............................................................ 45
Uso de Diagramas de Secuencias de Transacciones............................................. 45
Alcance de una secuencia de transacciones ......................................................... 46
24.2 Descripción de caminos estándar y alternativos ............................................... 46
Identificación y definición de secuencias comunes.............................................. 47
Jerarquías de actores ........................................................................................... 47
Modelando interfaces de usuario e interfaces externas......................................... 47
24.3 Expandiendo el modelo de estructura de objetos.............................................. 47
Pasos en el modelado de estructura de objetos para el análisis de requerimientos 47
Definición de ciclos de vida de objetos................................................................ 48
24.4 Uso de diagramas de modelo global ................................................................ 48
24.4 Chequeo del modelo de análisis de requerimientos .......................................... 48
Unidad 25: Diseño lógico ........................................................................................... 49
25.1 Relaciones entre el diseño lógico y físico ........................................................ 49
25.2 Actividades realizadas durante el diseño lógico ............................................... 49
25.3 Identificación de Objetos de interface y de Control ......................................... 49
Como identificar objetos interfaz ........................................................................ 49
Como identificar objetos de control..................................................................... 50
Asociaciones posibles entre los distintos tipos de objetos .................................... 51
25.4 Identificando y definiendo operaciones ........................................................... 52
Notación de punto............................................................................................... 52
Como identificar operaciones.............................................................................. 52
Método de identificación 1: considerando roles y responsabilidades para cada clase
de objetos............................................................................................................ 53
Método de identificación 2: Interacción de objetos requerida para soportar cada
secuencia de transacciones .................................................................................. 53
Método de identificación 3: Analizando ciclos de vida de objetos ....................... 54
Especificación de la semántica y sintaxis de las operaciones ............................... 54
Operaciones de clase........................................................................................... 55
Herencia de operaciones...................................................................................... 55
Operaciones concretas, abstractas, y templados ............................................... 55
Redefiniendo operaciones heredadas ............................................................... 55
25.5 Redefiniendo el modelo de estructura de objetos ............................................. 55
Adición y remoción de clases de objetos ............................................................. 55
Identificación de Atributos.................................................................................. 56
Definición de persistencia de atributos ................................................................ 56
25.8 Subsistemas .................................................................................................... 56
25.9 Chequeo del modelo de diseño lógico ............................................................. 56
Unidad 26: Diseño Físico............................................................................................ 57
26.1 Arquitectura del sistema. ................................................................................. 57
26.2 Componente Dominio de Problema (PDC) ...................................................... 59
26.3 Componente de Interacción Humana (HIC)..................................................... 59
26.4 Componente de Administración de Datos (DMC)............................................ 59
Arquitectura del DMC......................................................................................... 60
Diseño de base de datos relacional ...................................................................... 60
26.5 Componente de Interface Externa (EIC) .......................................................... 61
26.6 Componente de Administración de Tareas (TMC)........................................... 61
26.7 Componente de Servicios de Utilería (USC).................................................... 61
26.8 Chequeo del modelo de diseño físico............................................................... 61
Jacobson
Fuentes - Enfoque Use Case (secuencia de
Principales trans, para capturar requerimientos
del sistema)
R.Wirfs-Brock
- Responsability-Driven model (como
estructurar la funcionalidad de un
sistema O.O
Objeto
Definición 1: Un objeto es algo real o abstracto acerca del cual almacenamos datos y
métodos que manipulan dichos datos (Martín/Odell)
Definición 2: Encapsulado de datos, operaciones que tratan dichos datos, y que observa
un estado interno, que posee identidad (se distingue por su existencia misma y no por
sus atributos).
Cada objeto es una instancia de la clase a la que pertenece.
Clase
Una clase es un grupo de objetos con propiedades (atributos) similares, comportamiento
común (operaciones), relaciones comunes entre objetos, y semántica común
(Raumbaugh).
Abstracción
Encapsulamiento
Mecanismo que permite ocultar los detalles de implementación de un objeto. Permite
empaquetar en una unidad los datos y las funciones que operan sobre dichos datos.
Herencia
Relación entre clases de objetos que permite incluir (rehusar) los atributos y operaciones
definidas en otra clase más general de la cual se hereda o deriva.
Polimorfismo
La misma operación es resuelta de diferente forma según el objeto que recibe el
mensaje.
Agregación
Composición de un objeto por otros. Es una relación más débil que la que existe entre el
atributo y el objeto al cual pertenece, y más fuerte que una asociación.
Concurrencia
Propiedad que distingue un objeto activo de otro inactivo. (Booch)
Persistencia
Es la propiedad de un objeto cuya existencia trasciende el tiempo y/o el espacio (ej. el
objeto continua existiendo luego de que su creador deja de existir / la ubicación de un
objeto se mueve a un espacio de direcciones diferente de aquella donde fue creada).
Visibilidad
capacidad de restringir el acceso a atributos y servicios de un objeto. Particularmente
importante en el diseño e implementación. (ej. C++: público / protegido / privado)
Modelo de Procesos de
Negocios (BPM)
Modelo Funcional
Modelo de Secuencia de
Transacciones (TSM)
- Agregación
- Comunicación por mensajes
Objetos entidad
Representan algo real o abstracto sobre el cual el sistema necesita almacenar datos.
Representan la memoria esencial del negocio. Los objetos del negocio (business
objects) son normalmente objetos entidad. Ejemplos de objetos entidad pueden ser
empleado, alumno, etc.
Se representan en el diagrama de estructura de objetos con el siguiente símbolo:
Empleado
Objetos Interface
Representan lo objetos técnicos requeridos para vincular la aplicación con el entorno.
Representan el vínculo a través del cual el sistema recibe o suministra datos e
información al entorno. Típicamente incluyen interfaces con el usuario (pantallas,
reportes, etc.) e interfaces con otras aplicaciones.
Se representan en el diagrama de estructura de objetos con el siguiente símbolo:
Consulta X
Empleado
Objetos de control
Contienen comportamiento que no pertenece naturalmente ni a objetos entidad ni de
interfaz. Son normalmente objetos transitorios, como ser un controlador de reportes.
Se representan en el diagrama de estructura de objetos con el siguiente símbolo:
Control X
Clase Abstracta
Operaciones
Una operación define un servicio ofrecido por un objeto junto con la información que
debe suministrarse cuando es invocado (nombre, argumentos de entrada/salida).
También puede contener una especificación de método, el cual especifica una
implementación para la operación.
Algunas operaciones pueden asumirse que existen para cada clase de objetos sin
identificarlas formalmente. Estas son llamadas operaciones implícitas. Las operaciones
implícitas más importantes son Crear, Destruir, Leer, y Actualizar. Una operación
implícita debe ser formalmente definida cuando sus pre y post condiciones no sean
triviales.
Atributos
Son valores de datos asociados a los objetos de una clase al cual describen.
Están fuertemente asociados con la clase de objetos que los contienen, de tal forma que
no tienen existencia independiente o identidad de objeto.
La decisión de cuando un ítem debe considerarse como atributo o como clase varía de
sistema en sistema, dependiendo de su semántica en el dominio de problema. Lo que en
un sistema se modela como atributo en otro puede modelarse como una clase.
Cada atributo identificado debe ser atómico en el sentido de que debe ser tratado como
una unidad. En tal caso puede ser un valor simple o grupo de valores tratados siempre
como unidad (ej. dirección).
Debe notarse que las clases no se modelan en formas normales. La decisión sobre la
estructura de datos subyacente a utilizar se difiere hasta el Diseño Físico.
Los atributos pueden basarse en definiciones de tipos de atributos, lo cual provee una
definición estándar sobre formato, longitud y dominio de valores para atributos del
mismo tipo.
Restricciones
Las restricciones pueden especificarse sobre los valores que un atributo o relación
pueden tomar.
La implementación de las restricciones puede realizarse de diferentes formas:
- reglas de validación durante los procesos de entrada de datos (user inputs)
- database-level triggers
- lógica de control contenida en una o más operaciones.
Relaciones Estáticas
Las relaciones estáticas describen como los objetos se asocian unos con otros en la
misma forma que en el modelo entidad-relación. Identifican así mismo dependencias
entre objetos, cuando un objeto requiere de la existencia de otro ya sea de la misma
clase o de otra.
Las relaciones estáticas se establecen usualmente entre objetos de tipo Entidad.
Al igual que los atributos, las relaciones modelan información sobre un objeto (cosas
que un objeto debe conocer sobre sí mismo). Estas son propiedades de un objeto. Los
atributos son valores de datos. Las relaciones son valores que referencian otros objetos.
Por cuestiones de simplicidad, las relaciones son modeladas como binarias, es decir,
solo dos clases de objetos, no necesariamente distintas, participan en la relación.
Es posible que entre el mismo par de clases exista más de una relación.
Mínimo 1 - Máximo 1.
Mínimo 0 - Máximo 1.
Mínimo 1 - Máximo N.
Mínimo 0 - Máximo N.
Ejemplo:
Es conducido
Colectivo Chofer
conduce
Herencia
La herencia es el mecanismo a través del cual los atributos, operaciones, y restricciones
definidas para una clase, denominada superclase, pueden ser heredados (reutilizados)
por otras clase denominadas subclases.
La herencia utiliza el principio “es un tipo de ...”.
Una subclase puede redefinir atributos u operaciones heredadas. Adicionalmente, una
subclase puede definir nuevos atributos, operaciones, y restricciones.
Superclase
IH
Subclase 1 Subclase 2
Ejemplo
Vehículo
IH
Automóvil Motocicleta
Agregación
La agregación es un tipo de asociación fuerte, donde los objetos de una clase se
componen de objetos de otra(s) clase(s). Se diferencia de las relaciones estáticas en la
fuerza semántica del vínculo. En una relación de agregación un objeto compone otro.
En la relación estática existe un vínculo pero no una composición.
Agregado
Ejemplo
Bicicleta
Emisor Receptor
Público : todos
Protegido : solo desde el objeto mismo y operaciones definidas en subclases
Privado : solo desde el objeto mismo
Relaciones Ordenadas: los objetos del extremo “muchos” de una relación se presentan
en forma ordenada. Es particularmente útil para especificar que los objetos componentes
de un agregado están ordenados. Por ordenado, entendemos que los objetos
componentes serán accedidos en una secuencia específica predefinida.
En el diagrama de estructura de objetos las relaciones ordenadas se representan de la
siguiente manera:
{ordenado}
A
El enfoque en los procesos de negocio durante el análisis del negocio provee el punto de
partida para determinar qué se requiere de la aplicación.
Durante el análisis de requerimientos decidimos qué parte de los procesos de negocio
deben computarizarse y describimos dichos requerimientos usando una o más
secuencias de transacción (determinación de las fronteras de automatización).
Como parte del proceso de Diseño Lógico, las secuencias de transacciones son
analizadas para identificar como los objetos y sus operaciones proveen la funcionalidad
requerida por una secuencia de transacciones.
Posteriormente, durante el proceso de testeo de la aplicación, sirven de base para definir
casos de testeos.
Proceso de Negocio
Un proceso de negocios es una colección de actividades que toman uno o más tipos de
entrada, y crea una salida de valor para el cliente1.
Un proceso de negocios describe desde el comienzo al fin la secuencia de eventos
requeridos para producir un resultado de negocio significativo.
El cliente puede ser externo o interno a la organización.
Los procesos de negocio típicamente atraviesan los límites de la organización y de sus
departamentos internos, evitando la clásica visión de compartimentos estancos. Por este
motivo, cualquier modificación drástica a un proceso de negocio implica un cambio en
la estructura organizacional.
1
Definición según Hammer y Champy
Evento Producto
Proceso de Negocios
Salidas Menores
Secuencia de Transacciones
El concepto de secuencia de transacciones es muy similar al concepto de Caso de Uso
introducido por Jacobson en su metodología OOSE y de amplia difusión actualmente.
Actores
Nombre
Evento
evento
Secuencia común
Nombre Nombre
Común
Para modelar y diagramar los caminos estándar y alternativos se utilizan los diagramas
de interacción de objetos (OID) y los diagramas de flujo de actividad (AFD).
4) Actores
En el BPM representan los profesionales del negocio y sistemas de computación
involucrados en producir un producto o servicio.
En el TSM representan agentes externos que interactúan con la aplicación. Pueden
representar usuarios humanos o interfaces con otros sistemas.
Cada actor es usado para modelar un rol. Un rol puede ser desempeñando por un
usuario individual o grupo de usuarios.
Actores
Actor 1 Actor 2 Actor 3 Sistema
Evento 1
Evento 2
1 Evento 3
Requeri
Evento 4 mientos.
2
Evento 5 Barras: representan a los
objetos de la cabecera.
Elementos:
1) Actores en la parte superior del diagrama. Pueden ser humanos o sistemas vistos
como cajas negras.
2) Una línea vertical asociada a cada actor.
3) Requerimientos o eventos enviados por un actor a otro. Se representan por flechas.
Se utilizada una sola flecha para representar el estímulo y la respuestra implícita.
4) Etiquetas en el márgen izquierdo representando links a actividades de un diagrama
de flujo de actividades.
Objetos
Objeto 1 Objeto 2 Objeto 3 Objeto 4 Objeto 5
Sec.Trans.
Descrip
1 narrativa
de la S.T. Operaciones
Elementos
1) Barra vertical a la izquierda representa el límite del sistema.
2) Se acompaña con la descripción narrativa de la secuencia de transacciones a la
izquierda.
3) Una flecha proveniente desde el límite representa un requerimiento externo
generado por un actor. Es conveniente que los requerimientos / respuestas de este
tipo se representen por flechas individuales.
4) Operaciones: se representan por rectángulos alargados sobre los ejes
correspondientes a los objetos que las realizan. Permite visualizar que mensajes
dispara una operación. La longitud de la barra no representa duración.
5) Actividades: bloques de eventos que siempre ocurren en una determinada secuencia.
Dichas actividades que pueden ocurrir en paralelo, condicional, o iterativamente,
pueden modelarse con un diagrama de flujo de actividad asociado.
Casos Especiales
1) Invocación de Operaciones “in-self”
A menudo una operación de un objeto invoca a otra operación de la misma clase. Esto
puede representarse de la siguiente forma:
3) Secuencias comunes
Usualmente se dibujan diagramas por separado para las secuencias comunes y su
invocación se representa con una flecha punteada.
El alcance de una actividad queda normalmente definido por el hecho de que una
secuencia de interacciones dada es condicional, iterativa, o pueda ocurrir antes o
después de otras secuencias de interacciones.
Simbología de los diagramas de flujo de actividad
Sincronización.
Iteración
Terminación (fin).
Observaciones
- Una AFD puede incluir actividades que no estén en un camino estándar pero que
aparezcan en un camino alternativo.
- Pueden existir actividades sin interacciones asociadas que se utilizan para clarificar
la lógica del flujo.
- Puede utilizarse un AFD sin OID asociado simplemente para describir la lógica del
flujo en un camino estándar/alternativo.
El estado de un objeto de una clase está dado por el conjunto de valores de sus atributos
en un instante dado de tiempo.
Durante su ciclo de vida, desde que son creados hasta que son destruidos, los objetos
atraviesan por diferentes estados.
La importancia de estudiar el ciclo de vida de los objetos y de sus estados, se debe a que
muchos objetos exhiben comportamientos estado-dependientes.
El OLD representa:
- como los objetos son creados
- como los objetos son destruidos
- como los objetos cambian a través del tiempo
- que estados típicamente asume un objeto
- que eventos causan cambios de estado
- que acciones realiza un objeto cuando recibe un evento que produce un cambio de
estado.
Ejemplo: PILA
21.1 Conceptos y propósito del modelo del modelo global del sistema.
El modelo global del sistema posibilita tener una visión general del modelo de
estructura de objetos del sistema, asistiendo en el manejo de la complejidad.
Las principales razones para utilizar un modelo global del sistema son:
- Posibilita el particionamiento de una tarea de análisis o desarrollo. Para grandes
sistemas, subsistemas pueden ser asignados a diferentes equipos o subproyectos.
- Puede utilizarse para definir unidades de entrega, p.e., unidades funcionales
(módulos) que deban entregarse al usuario en sucesivas fechas de liberación, o
componentes de producto.
- Puede utilizarse para definir unidades distribuibles.
- Puede utilizarse para validar el diseño de un sistema y asegurar que está bien
diseñado para soportar el cambio.
- Incluye un diagrama (el diagrama de visión general del sistema) que puede utilizarse
para producir una visión general de un modelo del análisis o de un subsistema,
asistiendo con la presentación de un modelo o subsistema a un nivel de visión
general.
Conceptos
El modelo global implica la subdivisión del espacio de problema en componentes. En
un enfoque de desarrollo orientado a objetos, esto se alcanza agrupando clases de
objetos. El modelado orientado a objetos difiere aquí de las técnicas estructuradas, en
que en estas, los subsistemas usualmente agrupan funciones, no objetos.
Debe notarse que si existen objetos que son requeridos por diferentes subsistemas,
entonces dichos objetos no deben asignarse a un subsistema.
Servicios
Un subsistema provee sus servicios vía una interface, la cual es un conjunto de
operaciones que los clientes de un subsistema pueden utilizar.
Es útil estas operaciones en servicios. Cada servicio agrupa operaciones relacionadas
que tienen un propósito común, por ejemplo, dibujar figuras, manejo de e-mail, etc.
Actor: personas que interactúan con el subsistema o interfaces con otros subsistemas.
Bordes del sistema: se representan con un rectángulo en línea gruesa. Los actores se
dibujan fuera del rectángulo, y los subsistemas dentro.
Actor usando un servicio: se representa como una flecha que vincula al actor con el
servicio que usa.
También es posible utilizar una clase de objetos para encapsular el acceso a un sistema
orientado a objetos. Si no se utiliza esto, todos los mensajes provenientes del exterior
del subsistema, deben dirigirse directamente a la clase de objetos correspondiente dentro
del mismo, lo que implica que los actores que necesiten utilizar la funcionalidad del
subsistema, deban conocer la estructura interna del mismo.
Utilizando un objeto interfaz, se oculta la complejidad interna del subsistema y es
posible definir una interfaz sencilla para los clientes externos.
• Análisis
- Análisis del Negocio: aquí es donde se modela el negocio o parte del mismo en
orden de comprender la naturaleza del mismo, como se realizan actualmente las
actividades, y como los usuarios desean que se realicen en el futuro. Provee una
comprensión preliminar de áreas específicas del negocio a ser informatizadas.
Esta etapa también es conocida como estudio del sistema actual en otras
metologías.
• Diseño
- Diseño Lógico: aquí es donde los desarrolladores del sistema identifican los
componentes de software/hardware necesarios para satisfacer los
requerimientos, como así también especifican las relaciones arquitecturales entre
dichos componentes. El diseño lógico debe evitar detalles técnicos específicos
requeridos para mapear el diseño en un entorno de implementación específico.
• Construcción
• Aprobación
• Operación y Mantenimiento
• Modelo de Ciclo de Vida de Objetos: pueden proveer una mayor comprensión sobre
el comportamiento dinámico de los objetos del negocio, durante su vida. Su
utilización dependerá de la complejidad de los objetos del negocio en estudio, y en
algunos casos puede ser innecesaria su utilización.
Análisis de Requerimientos
• Modelo de estructura de Objetos: contiene únicamente objetos entidad, y se agrega
mayor detalle al modelo describiendo relaciones, herencia, agregación, atributos y
restricciones aplicables a las clases de objeto entidad identificados.
• Modelo de Ciclo de Vida de Objetos: se utiliza para aquellos objetos con ciclos de
vida complejos.
• Modelo Global del Sistema: es utilizado para sistemas grandes cuando se necesite
particionar en subsistemas.
Diseño Lógico
• Secuencias de Transacciones: definidas en la etapa anterior, son examinadas aquí
para determinar objetos interfaz y de control donde es apropiado.
Diseño Físico
Durante la etapa de diseño físico se llevan a cabo las siguientes actividades:
• El entorno para el sistema debe ser determinado, y las decisiones tomadas
inicialmente deben finalizarse. Esto incluye determinación de lenguaje de
programación, sistema operativo, Dbms, s.o. de red, hardware, tipo de interface de
usuario, librerías de clases, frameworks, y patrones de diseño.
Análisis
(del Negocio y Requerimientos) PDC
Clases de Objetos
• Modelado del ciclo de vida para cada objeto del negocio que tenga un ciclo de vida
complejo relevante al problema a manejar.
El alcance del análisis del negocio (dominio del negocio o dominio del problema)
normalmente se determina durante la fase de definición del proyecto.
• El modelo de objetos del negocio suele ser menos detallado. Usualmente solo
objetos del la realidad son modelados. Durante el análisis de requerimientos, objetos
menos obvios (p.e. clases que representan eventos) son identificados.
• En el análisis del negocio, el modelo contiene los objetos del negocio, sus
principales atributos y relaciones estáticas relevantes. Durante el análisis de
requerimientos, pueden agregarse objetos entidad adicionales, con un conjunto de
atributos más detallado y las operaciones básicas para los objetos del modelo.
• La definición de jerarquías de herencia y estructuras de agregación se difieren hasta
el análisis de requerimientos.
Qué modelar?
Los objetos pueden ser identificados respondiendo la pregunta: “Qué cosas (reales o
abstractas) considera la empresa y sobre la que guarda datos?”.
El énfasis en esta etapa es identificar objetos de la realidad (personas, lugares, cosas o
eventos) que están dentro del dominio del negocio.
Estas dos actividades pueden realizarse en paralelo, y no existe un criterio estricto sobre
que modelo debe desarrollarse antes.
Para sistemas “intensivos en datos”, el modelado de las relaciones de objetos y atributos
es particularmente importante.
Para sistemas “algorítmicamente intensivos” o en proyectos de reingeniería de negocios,
el modelado de la funcionalidad, representado por secuencias de transacción en
combinación con un modelo de objetos, puede ser más importante.
1. La secuencia de transacciones debe tener el alcance tan grande como sea posible
manejarla (en orden de asegurarnos de que la secuencia de procesamiento completa
es manejada satisfactoriamente). El proceso de negocios completo es el alcance por
defecto para la secuencia de transacciones.
2. Cuando se necesite subdividir la secuencia de transacciones para poder tener
unidades razonables para manejar, debemos elegir unidades que el usuario acepte y
perciba como realizando un objetivo de interés desde el punto de vista del negocio.
Estas unidades pueden corresponderse con las mayores opciones del menú de la
aplicación o comandos del sistema.
Los caminos alternativos son descriptos separadamente por un número de razones. Una
razón es que esto permite que se lea en camino estándar sin distracciones por los
detalles de casos inusuales o manejo de errores. Otra razón es que la separación del
camino estándar de los alternativos ayuda al desarrollador a concentrarse en los
tratamientos principales del procesamiento normal de las transacciones.
Ejemplos de funcionalidad que puede ser descripta como caminos alternativos son:
• Partes opcionales de la secuencia de transacciones
• Cursos alternativos de eventos que rara vez ocurren
• Sub-cursos separados que solo se ejecutan en ciertos casos
• Manejo de errores
A menudo las secuencias comunes se asocian con jerarquías de herencia, tanto de clases
de objetos como de actores. A menudo las secuencias de transacciones individuales
describen lógica que se aplica a las subclases de objetos mientras que la secuencia
común describe lógica que se aplica al nivel de superclase y por lo tanto es común a
todas las subclases.
Jerarquías de actores
Los actores representan roles de usuarios. En casos donde diferentes tipos de actores
comparten capacidades comunes, puede ser útil definir jerarquías de actores. Por
ejemplo, un administrador y un usuario normal del sistema pueden tener ciertas
capacidades comunes las que pueden modelarse utilizando una superclase de actor.
Cada actor hereda de la superclase actor.
Las jerarquías de actores son necesarias cuando se encuentra lógica común en dos
secuencias de transacciones distintas que se comunican con dos actores diferentes.
Cuando se separa esta lógica común en una secuencia común, ésta necesita comunicarse
con los dos diferentes actores. Dichos actores juegan un rol idéntico con respecto a la
secuencia común, y puede considerarse como un único actor frente a esta secuencia
común. En este caso es conveniente definir una superclase actor desde la que los dos
actores originales heredan y con quienes la secuencia común se comunica.
Muchas actividades del diseño lógico toman las secuencias de transacciones como
punto de partida. El análisis de las secuencias de transacciones es utilizado para
identificar que objetos de interfaz y de control deben agregarse al modelo de objetos.
Dibujando diagramas de interacción de objetos individuales para cada secuencia de
transacciones se asiste en la identificación de operaciones de las clases de objetos.
interface GUI para controlar movimientos de stock y una impresora para imprimir
detalles de movimientos. Para estas actividades se pueden identificar dos objetos
interfaz.
2. Para una interfaz GUI, asignar un objeto interfaz por ventana. Los objetos interface
se comunican con el objeto interface central identificado en el punto 1. No es
conveniente identificar objetos interfaz para cada componente individual de la
ventana (botones, listas, etc.), ya que esto es manejado normalmente por lo
constructores de interfaces (ej., Visual Basic).
3. Para otro tipo de dispositivos, puede ser útil identificar un objeto interface central el
cual maneja el tipo particular de salida, y definir objetos interfaz adicionales para
variantes específicas. Por ejemplo puede definirse un objeto interfaz central para
manejar todos los requerimientos de impresión, con objetos interfaz asociados para
tipos individuales de impresoras (de matriz, láser, etc.).
4. Objetos interfaz pueden modelar protocolos de comunicación por capas como el
modelo ISO. Un objeto interfaz se define por cada capa, el cual se comunica solo
con objetos de la capa superior e inferior inmediata.
5. La agregación puede utilizarse con los objetos interfaz. Por ejemplo, algunos
dispositivos son mejor considerados como compuestos. Un ejemplo es un cajero
automático compuesto de una lectora de tarjeta magnética, una pantalla, un
dispensador de dinero, y una impresora.
6. Puede definirse herencia para objetos interfaz. Esto puede ser útil en casos donde un
actor tiene un conjunto de capacidades que es un superconjunto de capacidades de
otro actor.
7. Una vez que los objetos interface han sido definidos, los objetos interface centrales
pueden revisarse para detectar similitudes en, en cuyo caso pueden combinarse.
Una vez que los objetos interfaces han sido identificados, es necesario considerar que
atributos y operaciones los objetos requieren. El tipo de comportamiento asignado a los
objetos interface son los que:
- requieren información desde el exterior del sistema
- presentan información al exterior del sistema
- cambia si el comportamiento del usuario cambia
- es dependiente del tipo de dispositivo
A menudo existe objetos interfaz con ciclos de vida complejos en orden de manejar
ingresos de datos alternativos, o diferentes secuencias de navegación. En tales casos es
conveniente utilizar diagramas de ciclo de vida.
Los detalles de cómo la interface de usuario debe aparecer se finaliza durante el diseño
lógico usando un constructor GUI y objetos interfaz en combinación.
El tipo de comportamiento que puede ser asignado a un objeto de control puede ser:
- comportamiento que no cambia si el vecindario del objeto cambia
- comportamiento que no cambia sustancialmente si el comportamiento de los objetos
entidad varía
- comportamiento que afecta a más de un objeto entidad
- lógica dependiente del estado
- lógica de control para una secuencia de transacciones
Los objetos de control se vinculan con los actores a través de objetos interfaz. Los
objetos de control a menudo actúan como un conjunto de buffers entre los objetos
entidad y los de control.
Los objetos de control que son demasiado complejos y de baja cohesión funcional
deben dividirse. En contraposición si existe varios objetos de control que tiene alta
cohesión funcional entre ellos, deben combinarse.
Los objetos de control pueden tener asociados atributos, que normalmente son privados.
La decisión de cuando considerar algunos objetos que contienen cálculos requeridos en
el dominio de problema (p.e. cálculo de impuestos, índices, etc.) como objetos de
control o entidad puede ser arbitraria. Como regla se puede tomar, que aquellos objetos
que tienen atributos y deben ser persistentes, deben considerarse del tipo entidad. Los
que no contienen atributos y son temporales, se consideran como de control.
Debe tenerse la precaución de no utilizar objetos de control para separar funciones de
datos, ya que esto va en contra del principio de encapsulamiento de la orientación a
objetos.
Referencias:
CO: comunicación por mensajes (enlace dinámico)
RE: relación estática
HE: herencia
AG: agregación
Las letras itálicas indican asociaciones que pueden ocurrir pero que rara vez se dan.
Normalmente los actores se comunican con objetos interface, no con objetos entidad ni
de control.
Las relaciones estáticas normalmente solo son modeladas para objetos entidad. Para los
objetos interface y de control usualmente solo son relevantes las asociaciones por
comunicación.
Las relaciones de herencia y de agregación solo se dan entre clases de objetos del
mismo tipo.
Un método es una implementación de una operación para una clase específica, y puede
variar para cada clase.
Notación de punto
Tanto para especificar atributos como operaciones durante el diseño lógico puede
utilizarse la siguiente notación de punto:
objeto.atributo u objeto.operación
Ejemplos:
Documento.Autor Especifica el atributo autor del objeto documento
Auto.Conductor.Nombre Especifica el nombre de la persona que conduce el auto.
Aquí Conductor identifica la relación entre las clases Auto
y Persona.
Las responsabilidades y por lo tanto las operaciones, son identificadas analizando los
requerimientos del sistema representados en las secuencias de transacciones.
Habiendo identificado los primeros objetos entidad, interface, y control, podemos ahora
considerar cada secuencia de transacciones en orden de identificar que operaciones
deben asignarse a cada clase de objetos.
Para realizar esto es conveniente utilizar un diagrama de estructura de objetos que
contenga las clases relevantes a la secuencia de transacciones que se analiza.
Cuál es la mejor opción depende del contexto y del juicio del diseñador. La asignación
correcta de operaciones es un factor clave en un sistema bien diseñado y mantenible.
Una secuencia de transacciones es iniciada por un evento. Un evento puede ser externo
o temporal. Los eventos externos son generados por actores. Los eventos temporales
son disparados cuando se alcanza un instante de tiempo determinado (fecha, hora,
proceso periódico).
Otros eventos pueden ser enviados o recibidos desde los actores que interactúan con la
secuencia de transacciones.
Operaciones de clase
Una operación puede ser definida como operación de clase. Una operación de clase es
una operación que es invocada por la clase misma no por las instancias. Tales
operaciones pueden por ejemplo retornar información estadística sobre los objetos
instanciados de dicha clase (promedios, totales, etc.). Un objeto particular puede ser
creado durante el diseño físico si el lenguaje utilizado no soporta operaciones de clase.
Herencia de operaciones
Operaciones concretas, abstractas, y templados
En cualquier clase concreta, las operaciones definidas deben siempre tener una
implementación. Sin embargo, en las clases abstractas (de las cuales no se generan
instancias) la implementación de una operación no es obligatoria, ya que las mismas
pueden ser implementadas en las subclases.
Los siguientes tipos de operación pueden especificarse para clases abstractas:
• Operación abstracta: Una operación abstracta no tiene un método de
implementación. Solo se definen la sintaxis y semántica de la operación.
• Operación templado: Una operación templado es una operación concreta que se
implementa en términos de una o más operaciones abstractas.
• Operación concreta: Una operación concreta es aquella para la que se especifica
completamente su implementación.
Identificación de Atributos
Durante el diseño lógico, los atributos para cada clase de objetos deben ser
completamente identificados. Se especifican las restricciones de acceso determinado
atributos públicos, protegidos, y privados. También aquí se determinan atributos
derivados.
25.8 Subsistemas
Subsistemas pueden haber sido definidos en etapas previas o pueden definirse durante el
diseño lógico. En el caso en que ya hayan sido definidos con anterioridad, igualmente es
conveniente revisarlos en esta etapa luego de que las clases han sido convenientemente
definidas, para verificar que los subsistemas definidos en verdad representan unidades
coherentes.
Durante el diseño lógico las principales razones para definir subsistemas son:
• Para definir unidades de entrega, unidades funcionales que se entregarán al usuario
en diferentes momentos.
• Para definir unidades de distribución.
• Para definir módulos que garanticen la robustez del diseño del sistema.
• Con propósitos de validación, para chequear la calidad del diseño del sistema.
• Con propósitos de presentación.
Análisis
(del Negocio y Requerimientos) PDC
Clases de Objetos
HIC
EIC
USC PDC
TMC
DMC
PDC
Capa Lógica
Para el mapeo de agregaciones, se aplican las mismas reglas que para las relaciones
estáticas, ya que en realidad son un caso particular de las mismas.