22
ANÁLISIS ORIENTADO AL OBJETO CON UML Las actividades de análisis son: 1. Identificar el ámbito: investigando y documentando las decisiones qué está fuera y qué dentro del sistema. 2. Identificar los conceptos del dominio claves: investigando y documentando el vocabulario del negocio en más detalle. Ayuda a clarificar algunos de los términos usados por el cliente, para asegurar que todos tengan un mismo entendimiento del significado de estos términos. 3. Especificar los requerimientos detallados: investigando y documentando las formas en que el usuario puede interactuar con el sistema, y cómo este puede afectar el sistema. 4. Examinar el comportamiento de los objetos: investigando y documentando el comportamiento dinámico de los objetos del negocio en el sistema. La salida de la etapa de análisis consiste de: 1. Modelo de casos de uso del análisis: compuesto de los casos de uso de alto nivel y expandido, y de los diagramas correspondientes. Responde a la pregunta: ¿cuáles son los procesos del dominio?. 2. Modelo conceptual: que corresponde al diagrama de estructura estática para los conceptos del dominio. Pregunta que responde: ¿cuáles son los conceptos, los términos?. 3. Modelo del comportamiento del sistema: que engloba los diagramas de secuencia del sistema, y los contratos de las operaciones del sistema. ¿Cuáles son los eventos y las operaciones del sistema?, ¿qué hacen las operaciones del sistema?. 4. Modelo de estado del análisis: que reúne los diagramas de estado para los conceptos y casos de uso.

Resumende Analisis Orientado Al Objeto Con UML(1)

Embed Size (px)

DESCRIPTION

resumen de uml

Citation preview

  • ANLISIS ORIENTADO AL OBJETO CON UML

    Las actividades de anlisis son:

    1. Identificar el mbito: investigando y documentando las decisiones qu est fuera y qu dentro del sistema.

    2. Identificar los conceptos del dominio claves: investigando y documentando el vocabulario del negocio en ms detalle. Ayuda a clarificar algunos de los trminos usados por el cliente, para

    asegurar que todos tengan un mismo entendimiento del significado de estos trminos.

    3. Especificar los requerimientos detallados: investigando y documentando las formas en que el usuario puede interactuar con el sistema, y cmo este puede afectar el sistema.

    4. Examinar el comportamiento de los objetos: investigando y documentando el comportamiento dinmico de los objetos del negocio en el sistema.

    La salida de la etapa de anlisis consiste de:

    1. Modelo de casos de uso del anlisis: compuesto de los casos de uso de alto nivel y expandido, y de los diagramas correspondientes. Responde a la pregunta: cules son los procesos del

    dominio?.

    2. Modelo conceptual: que corresponde al diagrama de estructura esttica para los conceptos del dominio. Pregunta que responde: cules son los conceptos, los trminos?.

    3. Modelo del comportamiento del sistema: que engloba los diagramas de secuencia del sistema, y los contratos de las operaciones del sistema. Cules son los eventos y las operaciones del

    sistema?, qu hacen las operaciones del sistema?.

    4. Modelo de estado del anlisis: que rene los diagramas de estado para los conceptos y casos de uso.

  • Etapa de Planeacin y Elaboracin

    (Modelo de casos de uso del anlisis: compuesto de los casos de uso de alto nivel y expandido, y de

    los diagramas correspondientes. Responde a la pregunta: cules son los procesos del dominio?).

    La primera actividad en el desarrollo de un sistema consiste en definir el mbito del sistema en

    estudio. Para llevarla a cabo es necesario:

    Identificar los lmites del sistema: el lmite del sistema se refiere al contexto en que se desarrolla el sistema, estableciendo qu ocurre dentro de l, qu sucede fuera de l, qu hace y qu

    no hace. En lugares donde el mbito no es establecido, los usuarios y desarrolladores tienen distintas

    interpretaciones, lo que atenta con el buen resultado esperado. Por ende, es muy importante dejar

    claro desde un comienzo el real contexto en que se desarrolla el sistema.

    Identificar los usuarios del sistema: stos corresponden a todas las personas y agentes externos que necesitan interactuar con el sistema. UML denomina como actor a cada tipo de

    usuario. La adecuada identificacin de todos los actores es de vital importancia pues asegura el que

    se hayan capturado todos los requerimientos del sistema.

    Identificar y manejar los usos del sistema: conociendo cules son todos los actores, el paso siguiente es identificar todas y cada una de las formas en que cada actor puede utilizar el sistema.

    La especificacin del comportamiento del sistema puede sufrir de inconvenientes como:

    mbito implcito: la especificacin de requerimientos, a menudo, asume que el mbito del sistema es ya entendido por todos los participantes, por lo que se necesita ser establecido

    explcitamente. Este sucede no con poca frecuencia, resultando en sistemas que fallan en entregar la

    funcionalidad realmente requerida.

    Una definicin muy vaga: requerimientos ligeramente analizados pueden ser mal entendidos.

    Ambigedad y contradicciones: la diversidad y/o complejidad de requerimientos puede llevar a contradicciones respecto de los resultados esperados, como tambin llevar a ambigedades,

    donde el requerimiento puede ser interpretado en forma distinta e incorrecta a lo deseado.

    Definicin de aspectos errneos: la definicin de los requerimientos debiera especificar la funcionalidad del sistema, es decir lo que el sistema debe hacer, no cmo el trabajo debiera hacerse.

    Si bien no es una herramienta creada por UML, la solucin que ste propone son los casos

    de uso. Los casos de uso son una forma de descomponer la funcionalidad del sistema en partes ms

    pequeas, cada una centrada en un uso nico del sistema. Existen dos alternativas para especificar

    los casos de uso de un sistema, una grfica y otra narrativa, las cuales se complementan entre s.

  • Notacin: Caso de Uso Forma Grfica

    Los casos de uso se pueden representar en forma grfica usando la notacin descrita a

    continuacin. Se representa mediante una elipse, y denota un requerimiento solucionado por el

    sistema. Cada caso de uso es una operacin completa desarrollada por los actores y por el sistema en

    un dilogo. El conjunto de casos representa la totalidad de operaciones desarrolladas por el sistema.

    Un caso de uso va acompaado de un nombre significativo. Ejemplos:

    Recibir Dinero Inscribir Asignatura

    Figura 2.7: Ejemplo de Casos de Uso

    Notacin: Actor

    Se representa mediante un smbolo que personifica una persona, y va acompaado de un

    nombre significativo.

    Comprador Alumno

    Figura 2.8: Ejemplo de Actores

    Notacin: Relaciones en un Diagrama de Casos de Uso

    Comunica (communicates): relacin entre un actor y un caso de uso, denota la participacin del actor en el caso de uso determinado.

    Inscribir Asignatura

    Alumno

    Figura 2.9: Ejemplo de relacin communicates.

    Usa (uses): relacin entre dos casos de uso que denota la inclusin del comportamiento de un escenario en otro.

    Matricular Inscribir Asignatura

    Figura 2.10: Ejemplo de relacin uses.

  • Extiende (extends): relacin entre dos casos de uso que se aplica cuando un caso de uso es una especializacin de otro. Por ejemplo, podra tenerse un caso de uso que extienda la forma

    de pago a un cajero, la que podra ser al contado o con cheque.

    Pago al Contado

    Pago

    Pago con Cheque

    Figura 2.11: Ejemplo de relacin extends.

    Notacin: Caso de Uso Forma Narrativa

    El caso de uso se puede ver como un documento narrativo que describe la secuencia de

    eventos de un actor que utiliza un sistema para completar un proceso. Los casos de uso son historias

    o casos de utilizacin de un sistema; no son exactamente los requerimientos ni las especificaciones

    funcionales, sino que ejemplifican e incluyen los requerimientos en las historias que narran. El

    siguiente ejemplo corresponde a un caso de uso de alto nivel, que describe clara y concisamente el

    proceso de comprar artculos en una tienda cuando se emplea una caja una caja registradora en el

    punto de venta.

    Caso de Uso Comprar Productos

    Actores Cliente (iniciador), Cajero

    Tipo Principal

    Descripcin Un Cliente llega a una caja con productos que desea comprar.

    El Cajero registra los productos y obtiene el pago. Al

    terminar la transaccin, el Cliente se marcha con los

    productos.

    La explicacin del formato es:

    Caso de uso: nombre del caso de uso.

    Actores: lista de actores en la que se indica quin inicia el caso de uso.

    Tipo: que puede ser Primario, Secundario, Opcional, entre otros.

    Descripcin: repeticin del caso de uso de alto nivel o alguna sntesis similar.

    UML no especifica un formato rgido; puede modificarse para atender las necesidades y

    ajustarse al espritu de la documentacin: ante todo, una combinacin clara.

    Conviene comenzar con los casos de uso de alto nivel para lograr rpidamente entender los

    principales procesos globales. Posteriormente, se pasa al llamado caso de uso expandido para

    mostrar ms detalles, para lograr as un conocimiento ms profundo de los procesos y de los

    requerimientos. El caso de uso expandido del caso de uso de alto nivel Comprar Productos se

    entrega en la pgina que sigue.

  • La estructura del formato expandido agrega a la del alto nivel lo siguiente:

    Propsito: intencin del caso de uso.

    Referencias Cruzadas: casos de uso y funciones relacionadas con el sistema.

    Curso Normal de los Eventos: es la parte medular del formato expandido; describe los detalles de la conversin interactiva entre los actores y el sistema. Un aspecto esencial de la

    seccin es explicar la secuencia ms comn de eventos: la historia normal de las actividades y el

    trmino exitoso de un proceso. No incluye situaciones alternativas.

    Cursos Alternativos: describe importantes opciones o excepciones que pueden presentarse en relacin al curso normal. Si son stas son complejas, se pueden expandir y convertir en nuevos

    casos de uso.

    Caso de Uso Comprar Productos

    Actores Cliente (iniciador), Cajero

    Propsito Capturar una venta y su pago

    Tipo Principal y esencial

    Descripcin Un Cliente llega a una caja con productos que desea comprar. El Cajero

    registra los productos y obtiene el pago. Al terminar la transaccin, el

    Cliente se marcha con los productos.

    Referencias Cruzadas Casos de Uso: el Cajero debe haber terminado el caso de uso llamado

    Registrar

    Curso Normal de los Eventos

    Accin de los Actores Respuesta del Sistema

    1.- Este caso de uso comienza cuando un Cliente

    llega a la caja con productos que desea comprar.

    2.- El Cajero registra los productos. Si hay ms de

    un producto, tambin puede introducir la cantidad.

    3.- Determina el precio del producto y agrega la

    informacin sobre l a la actual transaccin de venta.

    4.- Al terminar el registro de los productos, el

    Cajero indica al sistema que termin dicho proceso.

    5.- Calcula y presenta el total de la venta.

    6.- El Cajero le indica el total al Cliente.

    7.- El Cliente escoge la forma de pago:

    a) Si paga en efectivo, ver la seccin Pago en Efectivo

    b) Si paga con tarjeta con crdito, ver la seccin Pago con Tarjeta de Crdito

    c) Si paga con cheque, ver la seccin Pago con Cheque

    8.- Registra la venta terminada.

    9.- Actualiza los niveles de inventario.

    10.- Genera un recibo.

    11.- El Cajero entrega el recibo al cliente.

    12.- El Cliente se marcha con los productos

    comprados.

    Seccin: Pago en Efectivo

    Curso Normal de los Eventos

    Accin de los Actores Respuesta del Sistema

    1.- El Cliente da un pago en efectivo, posiblemente

    mayor que el total de la venta.

  • 2.- El Cajero registra el efectivo recibido. 3.- Entrega la diferencia al Cliente.

    4.- El cajero guarda el efectivo recibido y saca la

    diferencia. Luego, le entrega el vuelto al Cliente.

    Cursos Alternativos Seccin Pago en Efectivo

    - Lnea 1: el Cliente no tiene suficiente efectivo. Puede cancelar o iniciar otro mtodo de pago.

    - Lnea 4: la caja no tiene suficiente efectivo para pagar la diferencia. El Cajero pide ms efectivo al supervisor

    o le pide al Cliente otro billete de menor valor u otra forma de pago.

    Diagramas de Casos de Uso Ejemplo en Desarrollo

    En la figura 2.12 se muestra el diagrama de caso de uso de alto nivel del sistema; el

    rectngulo grande el lmite del sistema; el nombre del sistema aparece sobre el rectngulo. El cono

    de persona representa un actor que es un usuario humano. El cono rectangular del sistema de

    respaldo representa un actor que es otro sistema. El nombre del actor Sistema de Respaldo est

    precedido por un string , el cual es llamado un estereotipo e indica que el Sistema de

    Respaldo es un actor. Este estereotipo y el cono de persona son equivalentes; sin embargo,

    comnmente, el primero se usa para representar sistemas y el segundo, usuarios humanos. Las

    elipses simbolizan casos de uso. Las lneas que conectan actores y casos de uso indican que los

    actores usan o participan en la funcionalidad provista por los casos de uso. As, esta lnea es llamada

    relacin comunica.

    Administrar

    Recursos

    Administrador

    de Recursos

    Administrar

    Proyectos Administrador

    de Proyectos

    Sistema

    Sistema Administrador

    de Respaldo

    Administrador

    del Sistema

    Figura 2.12: Diagrama de Caso de Uso a Alto Nivel

    Cada caso de uso de se puede detallar en nuevos diagramas del mismo tipo, para mostrar

    mayor profundidad sobre el tema. A continuacin se muestra los diagramas de casos de uso de dos

    de los tres subsistemas de la figura 2.12; en el primer caso (figura 2.13), el diagrama de caso de uso

    Administrar Recursos muestra las diversas funcionalidades que ste provee; as, los administradores

    de recursos pueden agregar, eliminar o actualizar informacin de habilidades. Dado que una

    habilidad debe ser encontrada en la base de datos de sistema antes de que pueda ser eliminada o

  • actualizada, un caso de uso Actualiza Habilidad es usado. Las flechas desde los casos de uso

    Eliminar Habilidad y Actualizar Habilidad al caso de uso Encontrar son rotuladas con el estereotipo

    uses para indicar que este ltimo es llamado o incluido en los dos primeros casos de uso anteriores.

    Esta flecha es llamada una relacin uses. Tambin se puede ver que los administradores de recursos

    pueden agregar, eliminar y actualizar informacin de recursos, y en particular, en el ltimo caso

    pueden asignar o desasignar una habilidad a un recurso, lo que se puede hacer usando las

    operaciones que aparecen al final de la figura siguiente. Notar que las flechas llevan el rtulo

    extends, para indicar que los casos de uso son opcionales en su utilizacin (en este caso, se usa uno u

    otro, pero no ambas a la vez, de ah la opcionalidad).

    Agregar

    Habilidad

    Eliminar Encontrar

    Habilidad Habilidad

    Actualizar

    Habilidad

    Administrador

    de Recursos Agregar

    Recurso

    Eliminar Encontrar

    Recurso Recurso

    Actualizar

    Recurso

    Asignar Habilidad Desasignar Habilidad

    a Recurso a Recurso

    Figura 2.13: Diagrama de Caso de Uso Administrar Recursos

  • La figura 2.14 contiene el diagrama de caso de uso del Sistema de Administracin.

    Restaurar Datos Restaurar Datos

    de Recursos de Proyectos

    Restaurar

    Datos

    Sistema

    de Inicio

    Sistema de

    Respaldo Administrador

    del Sistema

    Eliminar

    Recurso

    Actualizar

    Recurso

    Respaldar Datos Respaldar Datos

    de Recursos de Proyectos

    Figura 2.14: Diagrama de caso de uso del Sistema de Administracin.

  • Modelo Conceptual Preliminar

    (Modelo conceptual: que corresponde al diagrama de estructura esttica para los conceptos del

    dominio. Pregunta que responde: cules son los conceptos, los trminos?.)

    Los actores y casos de uso son definidos para capturar los requerimientos de un sistema. La

    idea del anlisis es traducir dichos requerimientos en un diagrama de clases inicial, el cual describe

    los principales tipos de objetos que existen en el sistema.

    Un modelo de clases es un modelo del dominio del problema, que captura todos los

    requerimientos del sistema, este conocimiento es contenido en las clases, atributos y operaciones de

    las mismas, y en las asociaciones entre las mismas clases. En otras palabras, describen la estructura

    esttica de un sistema, o cmo est estructurado ms que cmo se comporta, conteniendo:

    Clases: representan entidades con caractersticas comunes. Estas caractersticas incluyen atributos, operaciones y asociaciones.

    Asociaciones: que simbolizan las relaciones entre dos o ms clases, donde las

    asociaciones tienen caractersticas comunes. Estas caractersticas incluyen atributos y

    operaciones.

    En el caso particular de un modelo de clases para la etapa de anlisis, el diagrama

    correspondiente excluye las operaciones y otros elementos, hasta la etapa de diseo.

    No siempre resulta fcil decidir cules clases son requeridas en el modelo. As, es

    recomendable utilizar cierto nmero de heursticas que pueden guiar el trabajo de definir las clases

    necesarias y eliminar las innecesarias.

    Cuando se define una clase, se debe identificar sus operaciones (comportamiento) y los

    atributos (datos). Algunos atributos son ms simples que otros; por ejemplo, el saldo de una cuenta

    bancaria es un valor simple, mientras que la lista de transaccin de la misma cuenta es tan compleja

    que seguramente deber ser representada por una segunda clase.

    Los casos de uso son un punto de partida ideal para la identificacin de las clases. La

    descripcin del caso de uso, la del curso normal y la de los alternativos se pueden utilizar para

    identificar cules son las cosas y frases relevantes al quehacer. As, a modo de ejemplo, si el caso de uso para la compra de productos tiene la siguiente definicin, probables clases pueden ser las

    cosas que aparecen subrayadas en el texto:

    Un cliente llega a la caja con un canasto de productos. El cajero chequea cada producto. El

    precio de cada tem es determinado por el sistema, y el precio de cada transaccin es presentado al

    cliente y registrado. El total es sealado al cliente, quien realiza el pago, en efectivo o cheque.

    Algunos de los nombres subrayados estn duplicados y son sinnimos, por lo que el paso

    siguiente consiste en revisar la lista de nombres y descartar los superfluos. Para el ejemplo anterior,

    producto e tem son identifican el mismo concepto, y dado que producto es el mejor trmino, tem es

    dejado de lado. Por otra parte, hay trminos que estn fuera del mbito del sistema o no son

    relevantes, por lo que tambin deben de quedar fuera. Ejemplo: canasto no es de importancia, por lo

    que se debe dejar de lado.

    Tras determinar los conceptos fundamentales a considerar, se debe proceder a construir el

    modelo conceptual del sistema. Para esto, UML provee un gran nmero de smbolos destinados a

  • apoyar la labor a realizar, parte de la cual se presenta a continuacin, sealando eso si que se explica

    slo lo utilizable en un modelo conceptual, postergando elementos adicionales para cuando se llegue

    a la etapa de diseo.

    Notacin: Clase

    Las clases se representan por rectngulos con dos divisiones internas. Cada clase describe un

    conjunto de objetos con caractersticas y comportamiento similar. En las tres partes anteriores se

    ubican el nombre de la clase y sus atributos, respectivamente. Un ejemplo de clase es:

    Alumno

    Nombre

    Edad

    Direccin

    Notacin: Atributo

    Generalmente son de tipos simples, ya que los atributos de tipos compuestos se representan

    mediante asociaciones de composicin con otras clases. La sintaxis de un atributo es:

    nombre = valor_inicial {propiedad}

    donde:

    nombre: si comienza con minscula se considera un atributo de objeto.

    Notacin: Asociacin (rol, multiplicidad, cualificador)

    Una asociacin, en general, es una lnea que une dos o ms smbolos. Pueden tener varios

    tipos de adornos, que definen su semntica y caractersticas. Los tipos de asociaciones entre clases

    presentes en un diagrama de clases son:

    Asociacin binaria: se identifica como una lnea slida que une dos clases. Representa una relacin de algn tipo entre las dos clases, que no exige dependencia existencial ni

    encapsulamiento. Ejemplo:

    Compaa Persona

  • Asociacin n-aria: es una forma de expresar una relacin entre tres o ms clases. Se representa como un diamante del cual salen lneas de asociacin a las clases. Ejemplo:

    Ao

    Equipo Jugador

    Agregacin: al comienzo de la lnea que simboliza una asociacin se puede ubicar un rombo que simbolice una asociacin de composicin o agregacin compuesta (rombo

    ennegrecido), lo que ocurre cuando la entidad determina la existencia de la otra, o bien el

    concepto de agregacin compartida (rombo blanco), si los objetos pueden existir ms all de la

    asociacin. Ejemplo:

    Empleado Carga

    Generalizacin: la relacin de generalizacin denota una relacin de herencia entre clases. Se representa dibujando un tringulo sin rellenar en el lado de la superclase. La subclase

    hereda todos los atributos y mensajes descritos en la superclase. Ejemplo:

    Persona

    Alumno Profesor

    Cada asociacin puede presentar algunos elementos adicionales que dan detalle a la relacin,

    como son:

  • Multiplicidad: describe la cardinalidad de la asociacin. Cada asociacin tiene, en ambos sentidos, una multiplicidad: 1 indica una ocurrencia; * indica 0 o ms ocurrencias; 1..* seala una

    o ms; 1..40 indica de 1 a 40 ocurrencias; 3,5,8 indica que hay 3 5 u 8 ocurrencias . Ejemplo:

    1 1..*

    Compaa Persona

    Nombre: describe el significado de la relacin; se agrega al nombre una punta de flecha que indica en qu sentido se debe leer la frase para interpretarla adecuadamente. Ejemplo:

    Compaa Persona

    Trabaja_para

    Rol: identificado como un nombre al final de la lnea, describe la semntica de la relacin en el sentido indicado. Ejemplo:

    empleador empleado

    Compaa Persona

    Trabaja_para

    Atributos: como consecuencia de una relacin puede necesitarse almacenar cierta informacin de detalle. sta se denota como una clase relacionada por una lnea punteada a la

    relacin. Ejemplo: considerar una relacin entre Muro y Ventana, la cual tiene como detalle un

    objeto de la clase Posicin; cabe notar que este objeto no podra tomarse como atributo de

    ninguna de las clases anteriores, ya que el contexto de su existencia est dado precisamente por la

    relacin entre las dos clases.

    Pared Ventana

    1 *

    Posicin

    x : int

    y : int

    En forma adicional, en algunas ocasiones es necesario describir que una clase est

    relacionada con un objeto de una clase o de otra, pero no de ambas. Esto se denota por medio de una

    relacin or exclusiva. Su representacin es una lnea punteada que une dos asociaciones, junto con

    la aclaracin (por medio de una propiedad) del tipo de asociacin. Ejemplo: si un automvil tiene un

    nico dueo, que puede ser una persona o una empresa, entonces

  • Empresa

    Automvil {or}

    Persona

    Notacin: Restricciones

    La asociacin exclusiva del ltimo ejemplo, expresada por el elemento {or}, es una de las

    tantas restricciones que se pueden incorporar en el modelo. El nmero y tipo de restricciones no es

    rgido o limitado, y puede tener tantas posibilidades como lo requiera el sistema en estudio.

    Ciertos autores extienden UML a travs del llamado Lenguaje de Restricciones sobre

    Objetos (OCL, Object Constraint Language), usado para expresar condiciones atachados a

    elementos de modelos. Cuando son incorporados a una clase, estas expresiones especifican reglas a

    los cuales los objetos de la clase deben adherirse. En algunos casos, cuando la expresin es muy

    compleja, se puede usar en su lugar lenguaje natural.

    Empleado

    edad

    sexo

    {sexo = hombre edad in [18,65]}

    {sexo = mujer edad in [18,60]}

    En general, se puede plantear situaciones como:

    Cliente Factura Detalle Producto

    Emite {ordered} registra

    #Cliente {unique}

    1 0..5 1 1..20 * 1

    para sealar que el nmero de cliente es nico y que los detalles de una factura deben respetar un

    orden entre ellos, y

    2..14 corre 1

    Atleta 1 subset} gana 1 Carrera

    1..14 pierde {or} 1

  • para sealar que un atleta gana o pierde una carrera pero no las dos posibilidades a la vez, y que

    quien gana debe ser alguien que corre la carrera.

    Notacin: Observacin (comentario, nota)

    Es un comentario dentro de un diagrama, es decir aclaraciones a ste. Puede estar

    relacionado con uno o ms elementos en el diagrama mediante lneas punteadas. Se representa

    mediante un rectngulo con su borde superior derecho doblado.

    Modelo Conceptual Ejemplo en Desarrollo

    Al construir el modelo conceptual para el sistema de Administracin de Proyectos, se tiene:

    Proyecto

    1

    1..*

    Actividad

    1

    1..*

    * Asignada a 1

    Tarea Recurso

    Figura 2.14: Diagrama de Clases de Alto Nivel para el SubSistema de Administracin de Proyectos

  • Habilidad

    *

    Recurso-Habilidad

    *

    Recurso

    Asalariado Part-time

    Figura 2.15: Diagrama de Clases de Alto Nivel para el SubSistema de Administracin de Recursos

    En este ltimo caso, la flecha que relaciona las clases asalariado y part-time con recurso,

    representa una asociacin de generalizacin (o bien, relacin es un).

    Slo por simplicidad, se han omitido los atributos de cada clase. Sin embargo, normalmente

    stos se consideran, como por ejemplo:

    PROYECTO

    Nombre

    Fecha de Inicio

    1

    1..*

    ACTIVIDAD TAREA

    NmeroActividad NmeroTarea

    FechaInicio FechaInicio

    Horas Horas

    Figura 2.16: Diagrama de Clases de Alto Nivel para el SubSistema de Administracin de Recursos

  • Escenarios e Interacciones entre los Objetos

    (Modelo del comportamiento del sistema: que engloba los diagramas de secuencia del sistema, y los

    contratos de las operaciones del sistema. Cules son los eventos y las operaciones del sistema?,

    qu hacen las operaciones del sistema?).

    Antes de iniciar el diseo lgico de cmo funcionar una aplicacin de software, es necesario

    investigar y definir cmo su comportamiento como una caja negra. La identificacin del comportamiento de un sistema, a travs de los llamados escenarios y las interacciones entre los

    objetos, es una descripcin de lo que el sistema hace, sin explicar la manera en que lo hace. Una

    parte de la descripcin es son los diagramas de secuencia del sistema.

    Los casos de uso indican cmo los actores interactan con el sistema que es lo que en

    realidad se desea desarrollar. Durante la interaccin, un actor genera eventos dirigidos a un sistema,

    solicitando alguna operacin a cambio. Por ejemplo, cuando un cajero ingresa el cdigo de barras de

    un producto, est diciendo al sistema que registre la compra. Con el evento se inicia una operacin

    del sistema.

    Los casos de uso dan descripciones de alto nivel; el modelo conceptual provee informacin

    preliminar de los tipos estticos del sistema. Sin embargo, se requiere desarrollar un entendimiento

    ms detallado del sistema, instanciando casos de uso usando las clases ya identificadas, e identifi-

    cando asociaciones, operaciones y nuevas clases. Esto es resuelto por los escenarios, cada uno de los

    cuales provee una secuencia especfica de interacciones entre los actores y las entidades en el

    sistema, basndose en la secuencia genrica de eventos que define el caso de uso correspondiente.

    As, un escenario es un camino a travs de un caso de uso, una especie de ejemplo en accin

    de un caso de uso; es uno de los muchos caminos posibles a travs del caso de uso correspondiente

    (un caso de uso tiene muchos escenarios). Un escenario es una elaboracin textual de un caso de

    uso, que puede ser representada grficamente mediante los diagramas que provee UML, los que dan

    una descripcin grfica de las interacciones del actor y de las operaciones que dan origen.

    Estos diagramas describen interacciones entre clases. Estas interacciones son modeladas

    como intercambios de mensajes. Estos diagramas se centran sobre clases y los mensajes que ellas se

    intercambian para cumplir algn comportamiento deseado. Los diagramas de secuencia son un tipo

    de diagrama de interaccin.

    Los diagramas de interaccin contienen los siguientes elementos:

    Roles de Clases: representan roles que los objetos pueden jugar en la interaccin.

    Lneas de vida: simbolizan la existencia de un objeto sobre un periodo de tiempo.

    Activaciones (o regiones de control): representan el tiempo durante el cual el objeto estn realizando una operacin.

    Mensajes: simbolizan la comunicacin entre objetos.

    En general, las acciones se consideran secuenciales o concurrentes, dependiendo si estn a

    diferente o a un mismo nivel respecto de la lnea de tiempo que se maneje. Tambin est la

    posibilidad de realizar iterativamente una misma accin tambin se puede agregar a un diagrama de

    secuencia. Esto se puede hacer de dos formas (alternativas entre s):

    Encerrar en un rectngulo aquel mensaje, con lo cual tanto este mismo como las secuencias en su interior se repiten hasta que se cumpla cierta condicin. Una condicin se

  • especifica al final del rectngulo, pero siempre en su interior. Ejemplo de condicin de trmino es

    [No ms tareas].

    Establecer una lnea de vida adicional que comienza en el mensaje que da inicio al ciclo, y que termina con el ltimo mensaje que se encuentra en dicho ciclo. Tambin se incluye una

    condicin de trmino, tal como [Hasta que no hayan ms Tareas].

    Diagramas de Secuencia Ejemplo en Desarrollo

    La figura 1.19 elabora el caso de uso Asignar Habilidad a Recurso (de la figura 1.13).

    Muestra cmo un administrador de recursos usa el sistema para asignar una habilidad a un recurso, y

    cmo las clases del sistema trabajan juntos para proveer esta funcionalidad. Los objetos al tope de la

    figura representan roles de clases; ellas se denominan as porque representan los objetos que

    participan en la interaccin. Las lneas punteadas que se extienden desde cada objeto representan

    lneas de vida, y los rectngulos ubicados sobre las lneas de vida representan activaciones. Las

    flechas horizontales entre lneas de vida indican los mensajes intercambiados entre objetos, y son

    rotulados con el mensaje que es enviado entre los roles de clases. Un mensaje dispara una operacin

    en el objeto receptor.

    Un diagrama de secuencia muestra objetos, no clases. Difiere del modelo conceptual dado

    que ste contiene clases que significan la existencia de objetos. Si ms de un objeto de una clase en

    particular tiene que aparecer en un diagrama de secuencia, mltiples roles de clases y lneas de vida

    son requeridas en el diagrama.

    :Administrador :Interfaz :Recurso :Habilidad :Recurso-Habilidad

    de Recursos

    Encontrar Recurso

    Encontrar Recurso

    Por Nombre

    Encontrar Habilidad

    Encontrar Habilidad por Nombre

    Asignar Habilidad

    a Recurso [Recurso no tiene asignado la Habilidad]

    Asignar Habilidad a Recurso

  • Figura 2.17: Diagrama de Secuencia para el Caso de Uso Asignar Habilidad a Recurso

    Un administrador de recursos usar la ventana del administrador de recursos, la cual es una interfaz

    para encontrar un recurso, encontrar una habilidad y asignar la habilidad al recurso. Dicha ventana

    encontrar un recurso que usa un objeto de la clase Recurso, y una habilidad que usa un objeto de la

    clase Habilidad. La ventana asignar una habilidad a un recurso si la habilidad no est ya asignada al

    recurso. Esta condicin es un guardia y se representa entre parntesis cuadrados sobre el mensaje

    que origina desde la lnea de vida de la ventana al rol de la clase Recurso-Habilidad.

    El siguiente diagrama muestra cmo representa el caso de uso Eliminar Proyectos.

    :Administrador :Interfaz :Proyecto :Actividad :Tarea

    de Proyectos

    Eliminar Proyecto

    Encontrar Proyecto

    Por Nombre

    Eliminar Actividad por Proyecto

    Encontrar Tarea por Actividad

    Eliminar Tarea

    [Hasta que no hayan Ms Tareas]

    Eliminar Actividad

    [Hasta que no hayan Ms Actividades]

    Eliminar Proyecto

    Figura 2.18: Diagrama de Secuencia para el Caso de Uso Eliminar Proyectos

    Contratos

    Como se indicara en el captulo anterior, un contrato es un documento que describe lo que una

    operacin se propone lograr. Suele redactarse en un estilo declarativo, enfatizando lo que suceder y

    no cmo se conseguir. Los contratos suelen expresarse a partir de los cambios de estado de las

  • precondiciones y de las postcondiciones. Puede elaborarse un contrato para un mtodo de una clase

    de software o para una operacin ms global del sistema.

    En general, un contrato puede emplearse con una operacin de alto nivel que se aplica al

    sistema entero o con un mtodo de bajo nivel de una clase particular. Por efectos de tiempo, se tratan

    slo stos ltimos.

    Para preparar el contrato de un caso de uso :

    Identificar las operaciones del sistema a partir de los diagramas de secuencia.

    Elaborar un contrato en cada operacin del sistema.

    Comenzar redactando la seccin de Responsabilidades; despus escribir informalmente el objetivo de la operacin.

    Completar, a continuacin, la seccin de PostCondiciones, describiendo en forma declarativa los cambios de estado de los objetos del modelo conceptual.

    Para describir las postcondiciones, utilizar las siguientes categoras: creacin y eliminacin de las instancias, modificacin de los atributos, asociaciones formadas y canceladas.

    Un ejemplo de contrato, aplicado a la captura de los datos de uno de los productos a adquirir

    por una persona al momento de comprar es el siguiente.

    Nombre Introducir Producto (Cdigo: nmero, cantiad:

    nmero)

    Responsabilidades Registrar un producto y agregarlo a la venta.

    Desplegar la descripcin y el precio del mismo.

    Tipo Referencias Cruzadas

    Casos de Uso: Comprar Productos

    Notas Utilizar el acceso sper rpido a la base de datos.

    Salida Precondiciones El sistema conoce el cdigo del producto. Postcondiciones Si se trata de una nueva venta, se cre una

    instancia de la clase Venta.

    Se cre una instancia de la clase Item de Venta.

    Se asoci una instancia que vincula el Item de Venta con la Venta.

    Se asign un valor adecuado a Venta.Item de Venta.cantidad.

    donde el significado de algunos de los componentes son:

    Nombre: de la oepracin y sus (posibles) parmetros.

    Responsabilidades: descripcin informal de las responsabilidades que dbe cumplir la operacin.

    Referencias Cruzadas: casos de uso y funciones relacionadas con el sistema.

    Notas: de diseo, algoritmos e informacin afn.

  • Modelamiento de Estados de Anlisis

    (Modelo de estado del anlisis: que rene los diagramas de estado para los conceptos y casos de

    uso).

    Un evento es un acontecimiento importante o digno de sealarse; por ejemplo, levantar el

    telfono. Un estado es la condicin de un objeto en un momento determinado: el tiempo que

    transcurre entre eventos; un telfono se encuentra en estado ocioso una vez que el telfono es colgado y no es vuelto a usar.

    Una transicin es una relacin entre dos estados; indica que, cuando ocurre un evento, el

    objeto pasa del estado anterior al siguiente. Por ejemplo: cuando ocurre el evento de levantar el

    telfono, el telfono realiza la transicin del estado ocioso al estado activo.

    Un diagrama de estados de UML describe visualmente los estados y eventos ms interesantes

    de un objeto, as como su comportamiento ante un evento. Las transiciones se muestran con flechas

    que llevan el nombre del evento respectivo. Los estados se colocan en valos. Se acostumbra incluir

    un pseudoestado inicial que cumple automticamente la transicin a otro estado en el momento de

    crear una instancia. As, para el caso del telfono:

    Descolgar telfono

    Ocioso Activo

    Colgar telfono

    Figura 2.19: Diagrama de Estados para un telfono.

    Un diagrama de estados presenta el ciclo de vida de un objeto: los eventos que le ocurren,

    sus transiciones y los estados que median entre esos eventos. No es necesario que muestre todos los

    eventos posibles.

    Un diagrama de estados puede aplicarse a varios elementos UML, como las clases, conceptos

    y casos de uso. En particular, para este ltimo caso su aplicacin consisten en describir la secuencia

    permitida de los eventos externos que reconoce y maneja un sistema dentro del contexto de un caso

    de uso. Por ejemplo, en el caso de uso Comprar Productos, no est permitido efectuar la operacin

    Pago con Tarjeta mientras no haya ocurrido el evento TerminarVenta. El diagrama de estados de

    Comprar Productos es:

  • Introducir Producto

    En Espera Introduccin

    de la Venta de Producto

    Introducir Producto

    Terminar Venta

    Efectuar Pago

    En espera del

    Pago

    Figura 2.20: Diagrama de Estados para el caso de uso Comprar Productos.

    Los diagramas de estado son buenos para describir el comportamiento de un objeto a travs

    de varios casos de uso. No son tan buenos para describir un comportamiento que involucra cierto

    nmero de objetos que colaboran entre ellos. As pues, es til combinarlos con otras tcnicas. Por

    ejemplo, con diagramas de interaccin (de secuencia, de colaboracin) que describen el

    comportamiento de varios objetos en un mismo caso de uso, y con los diagramas de actividades que

    muestran la secuencia general de las acciones de varios objetos y casos de uso.

    Si decide utilizar diagramas de estados, no trate utilizar diagramas de estado, no hay que

    dibujar uno por cada clase del sistema. Se recomienda su aplicacin slo para aquellas clases que

    presenten un comportamiento interesante, cuando la construccin de los mismos ayude a

    comprender lo que sucede. Muchos consideran que los objetos de interfaz de usuario (GUI) y de

    control tienen el tipo de comportamiento que es til describir mediante estos diagramas.

  • Resumen

    El siguiente diagrama resume las asociaciones entre los casos de uso, modelo conceptual,

    escenarios y diagramas de secuencia.

    Caso de Uso

    puebla

    genera muchos

    soporta

    Escenario Diagrama de Clases

    genera uno

    soporta

    Diagrama de

    Secuencia

    Figura 2.21: Relacin entre algunos de los diagramas del anlisis orientado al objeto.