ANÁLISIS Y DISEÑO ORIENTADO A
OBJETOS CON
UML
( Parte II )
La notación UML
Es una fusión de las notaciones de :
Grady Booch
James Rumbaugh (OMT) Ivar Jacobson (OOSE)
Han buscado ante todo la simplicidad; UML
es intuitivo, homogéneo y coherente.
UML no es una notación cerrada: es
genérica, extensible y configurable por el usuario.
Notación
Un solo diagrama no puede expresar toda la
información para describir un sistema : funcional, no funcional, organizacional.
Cada vista representa una proyección del
sistema, mostrando un aspecto particular del mismo.
Cada vista se describe en un cierto número
de diagramas.
Vistas del UML
Vista de Casos de Uso Vista de Lógica Vista de Componentes Vista de Concurrencia Vista de DespliegueVista de Casos de Uso
Muestra la funcionalidad del sistema
talcomo es percibida por actores
externos.
Su contenido consuce el proceso de
desarrollo y verificación.
Utiliza :
Diagramas de Casos de Uso
Vista Lógica
Muestra el diseño de la funcionalidad
del sistema : Estructura y
Comportamiento
Descripción de estructura :
Diagramas de objetos y clases
Descripción de comportamiento :
Diagramas de secuencia, colaboración,
Vista de Componentes
Muestra la organización del código y
demás archivos.
Consiste en el Diagrama de
Componentes.
Vista de Despliegue
Muestra la implantación del sistema en
la arquitectura física.
Las computadoras y los dispositivos
perifericos son denominados
nodos.
nodos
Consiste en el Diagrama de
Despliegue.
Utilizado por los equipos de desarrollo,
Vista de Concurrencia
Muestra la concurrencia en el sistema,
dividido en procesos y procesadores.
Da cuenta de los aspectos de comunicación
y sincronización derivados.
Descripción dinámica : Diagramas de
Estado, Secuencia, Colaboración y Actividades.
Descripción de implementación : Diagramas
Diagramas de Casos de Uso
Diagramas de
Colaboración ComponentesDiagramas de
Diagramas de Distribución Diagramas de Objetos Diagramas de Estados Diagramas de Secuencia Diagramas de Clases Diagramas de Actividad Modelo Modelo
Diagramas UML ( 9 )
De casos de uso: representan las funciones
del sistema desde el punto de vista del usuario.
De secuencia: representación temporal de los
objetos del sistema y sus interacciones.
De colaboración: son una representación
espacial de los objetos, enlaces e interacciones.
De clases: representan la estructura estática en
Diagramas UML ...
De actividades: representan el comportamiento
de una operación en términos de acciones;
De transición de estados: representan el
comportamiento de una clase en términos de estados.
De componentes: representan los
componentes físicos de una aplicación.
De despliegue: representan el despliegue de
los componentes sobre los dispositivos materiales.
Los Estereotipos
Forman parte de los mecanismos de
extensibilidad, previstos en UML.
Permite a los usuarios añadir nuevas clases
de elementos de modelado, además de los predefinidos por UML.
Facilitan la unificación de conceptos
parecidos, como <<categoría>> y <<subsistema>>,
Modelado del Negocio
CASO USO DE NEGOCIO ACTOR DE NEGOCIO REALIZACIÓN DE CASO USO DE NEGOCIO TRABAJADOR DE NEGOCIO UNIDAD DE LA ORGANIZACIÓN ENTIDAD DE NEGOCIOPERFIL
PERFIL CUENTACUENTA CREDITOCREDITO
CLIENTE PRESTAMO ANALISTA
: PERFIL : CUENTA : CREDITO
:ASISTENTE :ANALISTA : CLIENTE PRESTAMO CLIENTE MODELO DE CASOS DE USO DE NEGOCIO MODELO DE OBJETOS DE NEGOCIO MODELO DE CASOS DE USO MODELO DE ANÁLISIS
Los Paquetes
Ofrecen un mecanismo general para
la partición de los modelos y la agrupación de los elementos de modelado.
Dividen y organizan los modelos de
la misma manera que los directorios organizan los sistemas de archivos. Cada paquete corresponde a un
subconjunto del modelo y contiene, según el modelo, clases, objetos, relaciones, componentes, así como diagramas asociados.
Nombre de Nombre de
Paquete Paquete
Los Paquetes
Cada paquete es una agrupación de
elementos según un criterio puramente lógico.
La forma general del sistema (la arquitectura
del sistema) viene expresada por la jerarquía de paquetes y por la red de relaciones de
Estereotipos de Paquetes
<<categoría>> y <<subsistema>>
permiten distinguir, si es necesario, los paquetes de la vista lógica y los
paquetes de la vista de realización.
Un paquete define un espacio de
nombres, de modo que dos elementos diferentes, contenidos por dos paquetes diferentes, pueden tener el mismo
nombre.
Un paquete puede contener otros
paquetes, sin límite en el nivel de anidamiento. Un nivel dado puede
contener una mezcla de paquetes y de otros elementos de modelado.
CLASE CLASE CLASE CLASE PAQUETE PAQUETE PAQUETE PAQUETE Anidamiento de Anidamiento de paquetes paquetes
Dependencia entre Paquetes
Cada elemento pertenece a un solo
paquete.
Una clase contenida por un paquete
puede también aparecer en otro
paquete bajo la forma de un elemento importado, a través de una relación de dependencia estereotipada entre paquetes.
Una relación de dependencia significa
que al menos una clase del paquete cliente utiliza los servicios ofrecidos por al menos una clase del paquete proveedor. CLIENTE CLIENTE PROVEEDOR PROVEEDOR <<import>>
Visibilidad entre Paquetes
CLIENTE CLIENTE PROVEEDOR PROVEEDOR REALIZACION REALIZACION Cada elemento contenido por un
paquete posee un parámetro que señala si el elemento es visible o no desde el exterior del paquete.
En el caso de las clases, sólo
las indicadas como públicas aparecen en la interfaz del paquete que las contiene;
pueden entonces ser utilizadas por las clases miembros de los paquetes clientes.
Las clases de realización sólo
se pueden utilizar dentro del paquete que las contiene.
PAQUETE
PAQUETE
PAQUETE
Dependencias Circulares
Por razones de compilación
en la realización hay que evitar las dependencias circulares transitivas.
Las dependencias circulares
pueden reducirse rompiendo uno de los paquetes
implicados en dos paquetes mas pequeños. PAQ 01 PAQ 01 PAQ 02 PAQ 02 PAQ 01 PAQ 01 PAQ 02 PAQ 02 PAQ 02 PAQ 02 DEPENDENCIAS CIRCULARES
CASOS DE USO
( UC )
Describen bajo la forma de acciones y
reacciones el comportamiento de un sistema desde el punto de vista de un usuario.
Permiten definir los límites del sistema y las
relaciones entre el sistema y el entorno.
Es una manera específica de utilizar un
sistema. Es la imagen de una funcionalidad del sistema, desencadenada en respuesta a la
Necesidades de información
Las necesidades se expresan a menudo de manera no
estructurada, sin fuerte coherencia.
Frecuentemente, las necesidades se contradicen, se
cometen olvidos, subsisten imprecisiones y el análisis del sistema parte sobre una mala base.
Los UC reubican la expresión de las necesidades sobre
los usuarios, partiendo del punto de vista muy simple que dice que un sistema se construye ante todo para sus usuarios.
La terminología empleada en la redacción de los UC es
la empleada por los usuarios en su quehacer cotidiano, de modo que la expresión de las necesidades se facilita en gran medida.
Modelo de Casos de Uso
Comprende los actores, el
sistema y los propios casos de uso.
El conjunto de
funcionalidades de un sistema se determina
examinando las necesidades funcionales de cada actor, expresadas en forma de
familias de interacciones con el caso de uso. ACTOR B SISTEMA ACTOR A CASO USO 01 CASO USO 01 CASO USO 02 CASO USO 02 CASO USO 03 CASO USO 03
Actor
Representa un papel o rol interpretado por una
persona o una cosa que interactúa con un sistema. Los actores se determinan observando los usuarios
directos del sistema, los responsables de su uso o de su mantenimiento, así como los otros sistemas que interactúan con el sistema en cuestión.
La misma persona puede interpretar el rol de varios actores, y varias personas pueden interpretar el
Categorías de Actores
Primarios : agrupa a todo aquello que utiliza
las funciones principales del sistema para satisfacer un requerimiento.
Secundarios : agrupa a todo aquello de lo
que el sistema se vale para atender los requerimientos de los actores principales.
Tipos actores :
Personas Dispositivos
Actores y Escenarios
Se describen actor por actor, en términos de
escenarios, mostrando la información
intercambiada y las acciones en la manera de utilizar el sistema.
Un UC agrupa una familia de escenarios de
uso según un criterio funcional.
Describen interacciones entre los actores y
el sistema sin entrar en detalles de cada escenario.
Escenarios : Instancias de un Caso de Uso
Los UC deben ser vistos como
clases cuyas instancias son los escenarios.
Cada vez que un actor
interactúa con el sistema un
UC instancia un escenario; este escenario corresponde al flujo de mensajes intercambiados por los objetos durante la
interacción particular que corresponde al escenario.
CASO DE USO
CASO DE USO
Escenario 1
Qué es un Escenario de Caso de Uso ?
Qué es un Escenario de Caso de Uso ?
Es una descripción de una situación del
negocio que puede ser visualizada por los usuarios de un sistema.
Es decir un escenario es una secuencia de
interacciones ocurriendo bajo ciertas
condiciones para lograr el objetivo del actor primario, y teniendo un particular resultado con respecto a este objetivo.
Modelo de Comunicación e Interacción
Modelo de Comunicación e Interacción
Actor Primario
Actor Primario Actor SecundarioActor Secundario
Responsabilidad Responsabilidad - Objetivo 1 - Objetivo 2 . Acción 1 Responsabilidad Responsabilidad - Objetivo 1 . Acción 1 Responsabilidad Responsabilidad Interacción 1 Interacción 2 - Acción backup para Objetivo 2 Stma. en construcción Stma. en construcción
Relaciones entre Actores y Casos de Uso
De Comunicación : La participación del actor
se señala por una flecha entre el actor y el UC. El sentido de la flecha indica el iniciador de la interacción.
De Inclusión : Entre UC’s, significa que una
instancia del UC fuente comprende también el comportamiento descrito por el UC destino.
De extensión : Entre UC’s, significa que el UC
fuente extiende el comportamiento del UC destino.
Implementación de relaciones
Giro por Giro por Internet Internet Giro Giro Identificaci Identificacióónn << << ExtiendeExtiende>>>> << <<IncluyeIncluye>>>> Cliente Cliente Local Local Cliente Cliente Remoto Remoto Cliente Cliente << << ComunicaComunica>>>> << << ComunicaComunica>>>>Construcción de Casos de Uso
Un UC debe ser ante todo simple, inteligible, descrito
de manera clara y concisa. La descripción de la
interacción se concentra sobre lo que debe hacerse en el UC, no sobre la manera de como hacerlo.
El nro. actores que interactúan con el UC es limitado, y
por regla general, hay un solo actor por UC.
En la construcción de los UC hay que preguntarse :
¿Cuáles son las tareas del actor ?
¿Qué informaciones debe el actor crear, guardar, modificar,
destruir o simplemente leer ?
El actor,¿deberá informar al stma. de los cambios externos? El stma.,¿deberá informar al actor de las condiciones internas?
DIAGRAMA DE CASOS DE USO
HACER CONSULTA HACER RESERVA BORRAR RESERVA PRESTAR ITEM REGISTRAR LECTOR DEVOLVER ITEM CONTROLAR ACCESO LECTOR BIBLIOTECARIO DIRECTOR USUARIO VERIFICAR MULTAS <<extend>> <<include>> GESTIONAR PERSONAL SI_ADMINISTRATIVOANATOMIA DE UN PROCESO DE NEGOCIOS
ANATOMIA DE UN PROCESO DE NEGOCIOS
Nivel de Actor Externo Nivel de Actor Interno
Nivel de CU del Sistema
Reglas de Implementación de un Caso de Uso
La descripción de un UC comprende los elementos sgtes.:
Inicio: el evento que inicia el UC; debe expresarse con la frase “El
UC empieza cuando X se produce”.
Fin : el evento que causa la parada del UC; debe expresarse con la
frase “Cuando Y se produce, el UC ha terminado”.
Interacción con el actor : describe claramente lo que el actor desea
le proporcione el sistema.
Intercambio información : expresa en lenguaje natural la forma de
la interacción entre el sistema y los actores en forma de parámetros.
Cronología y origen de la información : describe cuando el
sistema necesita información interna o externa y cuando las almacena.
Las repeticiones de comportamiento : que pueden describirse por
medio de pseudocódigo.
Opcionalidad : expresan las opciones para algunas de las acciones
Transición hacia los Objetos
El paso hacia la
aproximación a objetos se efectúa asociando una colaboración entre objetos a cada escenario instancia de un UC. Los escenarios, se representan por diagramas de interacción entre objetos. Objeto 1 Objeto 1 Objeto 2 Objeto 2 Objeto 3 Objeto 3 << << RealizaRealiza>>>> << << ParticipaParticipa>>>> << <<Participa>>Participa>> << << ParticipaParticipa>>>> CASO DE USO CASO DE USO COLABORACI COLABORACIÓÓNN
Descomposición hacia objetos
Caso Uso 1 Caso Uso 1 Actor 1 Actor 1 Caso Uso 2 Caso Uso 2 << << Incluye>>Incluye>> Actor 3 Actor 3 Actor 2 Actor 2 << << ComunicaComunica>>>> << << ComunicaComunica>>>> Caso Uso 3Caso Uso 3 Actor 4Actor 4
<< << ComunicaComunica>>>> << << ComunicaComunica>>>> Caso Uso 1 Caso Uso 1 Objeto 1 Objeto 4 Objeto 6 Objeto 2 Objeto 5 Objeto 7 Objeto 14 Objeto 9 Objeto 8 Objeto 10 Objeto 3 Objeto 12 Objeto 11 Objeto 13 Caso Uso 2 Caso Uso 2 Caso Uso 3 Caso Uso 3
Estudiante desea matricularse en un curso
Estudiante desea matricularse en un curso
1. Verificar que la persona es un estudiante a través del sistema de cómputo. Si no es un estudiante solicitarle que primero se inscriba en la institución.
2. Determinar si hay vacantes en el curso. Si no hay informar al estudiante y proponerle si le gustaría matricularse en algún otro curso.
3. Determinar cuáles son los pre-requisitos para el curso. Si el estudiante no tiene los pre-requisitos:
Informarle de la falta.
Estudiante desea matricularse . . .
Estudiante desea matricularse . . .
4. Recibir el primer pago e imprimir el respectivo recibo.
5. Añadir en la lista del curso al alumno, una vez que haya efectuado el primer pago.
6. Informar al estudiante de los materiales (libros, etc.) que debe adquirir para el curso.
Ejemplo de Diagrama de Casos de Uso para un
Stma. Matricula Matricula Matricula Estudiante Estudiante Sistema Facturación Sistema Facturación Registrador Registrador Mantener
Mantener CurriculumCurriculum
Profesor Profesor
Requerir Listado Curso
Requerir Listado Curso
Mantener Curso a dictar
CASO DE USO # - El nombre apropiado es el objetivo expresado con una frase de verbo activa.
Objetivo dentro
del Contexto - necesario.Una sentencia del objetivo dentro del contexto si es
Alcance & Nivel - Sistema que está siendo considerado como caja negra en el diseño. El nivel puede ser :
Resumen o Tarea Primaria o Subfunción.
Precondiciones - Como esperamos encontrar el estado del mundo
Condición Final de
Éxito - El estado del mundo luego de un final exitoso. Condición Final de
Falla - El estado del mundo si se abandona el objetivo. Actores Primarios
y Secundarios - Un nombre del rol o descripción para el actor primario.- Otros sistemas confiables para llevar a cabo el caso de uso.
Disparador o
Trigger - La acción sobre el sistema que activa o inicia el caso de uso.
Formato de Especificación para Casos de Uso
DESCRIPCION Paso Acción
1 - Colocar aquí los pasos del escenario desde el activador al objetivo a lograr en condiciones normales, sin considerar particularidades. 2 <…>
3
Extensiones Paso Acción de División o bifurcación
1a - Condición causante de la división :
<acción o nombre del sub caso de uso>
Variaciones Acción de División o bifurcación
Información
Relacionada - Nombre del caso de uso.
Prioridad - Cuan critica es para su sistema u organización.
Performance - La cantidad de tiempo que este caso de uso tomaría.
Frecuencia - Cuan frecuente se espera que ocurra o se presente.
Canales a actores - ej.: Interactivo, archivos estáticos, bases de datos,
interrupciones (timeouts).
Asuntos abiertos - Lista de asuntos esperando decisión afectando el caso de uso.
Fecha iberación
o release - Fecha o release requerido
… Cualquier otra información de administración …
- La acción sobre el sistema que activa o inicia el caso de uso.
Superordinado - Opcional, nombre de caso de uso(s) que incluyen a este.
Subordinado - Opcional, dependiendo de las herramientas, enlaces a sub casos de uso.
CASO DE USO 5 - Comprar Mercaderías. Objetivo dentro
del Contexto - Comprador expide requerimiento a nuestra compañía directamente, espera envío de mercaderías, y acepta que sean cargadas a su cuenta o facturadas.
Alcance & Nivel - Compañía & Resumen
Precondiciones - Nosotros conocemos al comprador, su dirección, etc. Condición Final
de Éxito - valor monetario de las mercaderías. Comprador tiene sus mercaderías y nosotros tenemos el Condición Final
de Falla - Nosotros no enviamos las mercaderías, el comprador no tiene que pagar su valor. Actor Primario - Comprador, cualquier agente (o computadora) actuando
por el cliente. Disparador o
DESCRIPCION Paso Acción
1 - Entra llamada de comprador con un requerimiento compra 2 - Compañía captura nombre comprador, dirección,
mercaderías requeridas, etc.
3 - Compañía entrega información sobre mercaderías al comprador, precios, fechas entrega, etc.
4 - Comprador confirma la orden.
5 - Compañía crea la orden, envía la orden a comprador. 6 - Compañía envía factura al comprador.
7 - Comprador paga la factura.
EXTENSIONES Paso Acción de División o Bifurcación
3a - Compañía no dispone de uno de los items ordenados : 3a.1 Renegociar orden
4a - Comprador paga directamente con tarjeta de crédito. 4a.1 Aceptar pago por tarjeta de crédito (use case 44) 7a - Comprador devuelve mercadería.
CASO DE USO 5 - Comprar Mercaderías.
VARIACIONES Paso Acción
1 - Comprador puede utilizar : * entrada telefónica,
* entrada por fax,
* formato de orden de web, * EDI
7 - Comprador puede pagar : * contado o money order * cheque
INFORMACION RELACIONADA
- Comprar Mercaderías
Prioridad - Alta
Performance - 45 minutos por orden, 45 días hasta el pago
Frecuencia - 200 /dia
Canal a Actor Primario
- Puede ser por teléfono, archivo, o interactivo.
Actores Secundarios - Cia. Tarjeta de Crédito, Banco, Servicio Envíos.
Canales a Actores Secundarios
ASUNTOS ABIERTOS
- Que pasaría si nosotros solo tenemos parte de la orden ? - Que pasaría si la tarjeta de crédito es robada ?
Release - 1.0 … Cualquier otra información de administración … Caso de Uso Superordinado
- Administrar la relación con el cliente (use case 2)
Casos de Uso Subordinados
- Crear orden (use case 15)
- Tomar pago por tarjeta de crédito (use case 44) - Manejar mercaderías devueltas (use case 105)
Diagrama Casos de Uso para un CAJERO AUTOMATICO sacar dinero transferir Cliente Stma.Banco transaccion(cta, importe)( ) pedir saldo
Representación de Objetos
Se representan por un
rectángulo que contiene bien el
nombre del objeto, el nombre yla clase del objeto (separados por dos puntos), o bien
solamente la clase del objeto (anónimo).
Nombre Objeto
Nombre Objeto : Clase
Representación de los Enlaces entre Objetos
Los objetos se vinculan por enlaces, que son instancias de las relaciones entre las clases de los objetosconsiderados.
: Carro
: Rueda : Rueda : Rueda : Rueda : Motor Diagrama Objetos Carro Carro Rueda Rueda Motor Motor 4 1 1 1 Diagrama Clases
Diagramas de Colaboración
Expresan a la vez el contexto de un grupo
de objetos (a través de objetos y enlaces) y la interacción entre estos objetos
(representada por el envío de mensajes).
El contexto de una interacción comprende
los argumentos, las variables locales
creadas durante la ejecución, así como los enlaces entre los objetos que participan en la interacción.
Representación de la Colaboración
Una interacción se realiza
por un grupo de objetos que colaboran intercambiando mensajes. En un diagrama de colaboración, el tiempo no se representa de manera implícita, sólo se
enumeran para indicar el orden de los envíos.
: Cabina : Puerta abrir : Ascensor : Cabina : Puerta : Luz 2: cerrar 1: subir 3: Encender
El lugar del usuario
: : PersonaPersona : Ascensor : Cabina 2: Venir 1: Llamar La notación permite incluir a un actor en un diagrama de colaboración para representar el desencadenamiento de las interacciones por un elemento externo al sistema.Los Objetos activos
: Procesar Texto : Escaner : Impresora 1: Leer 2: Escribir Objeto activo Son los que poseen el flujo de control.
Un objeto activo puede
activar un objeto pasivo por el tiempo de una operación enviándole un mensaje.
Una vez tratado el mensaje el flujo de control se
Representación de mensajes
Se representa por una flecha colocada
cerca de un enlace y dirigida hacia el objeto destinatario del mensaje.
Un mensaje desencadena una acción en el
objeto destinatario.
El mensaje, sus argumentos y valores de
retorno, se colocan dentro de la
interacción; también se coloca el grado de anidamiento o la sincronización en el
Sincronización de un mensaje
Se expresa en forma de una secuencia de envío de mensaje terminada por el carácter /. : Objeto A : Objeto B A.1, B.3 / LeerEl mensaje se envía cuando los envíos A.1 y B.3 han sido satisfechos.
Secuencia y Resultado
La secuencia
indica el nivel de anidamiento del envío del mensaje dentro de la
interacción.
El resultado está
constituído por una lista de valores devueltos por el mensaje. : Objeto A : Objeto B * ||[i:=1..n]: mensaje : Objeto A : Objeto B : Objeto A : Objeto B [X > Y] : Mensaje p : = resultado
Un mensaje se envía iterada y concurrentemente a un
Ejemplo de Diagrama de Colaboración para Caso de Uso : Préstamo Libro
: Socio : Encargado : Libro : Ficha libro : Ficha Socio : Préstamo 1: Coger libro 2: Solicitar préstamo 8: Autorizar préstamo
3: Verificar situación socio
4: Situación socio Ok
5: Verificar situación libro 6: Situación libro Ok
Ejemplo de Diagrama de Colaboración para
Caso de Uso : Crear nuevo Curso
: : RegistradorRegistrador unFormatoCurso unFormatoCurso :: FormatoCurso FormatoCurso elAdministrador elAdministrador :: AdministradorCurriculum AdministradorCurriculum unCurso unCurso :: Curso Curso
1: set info curso 2: procesar
3: add curso
: Computadora : ServidorImpresion : Cola : Impresora 2:Print (file) 3:Almacenar (file) [Impresora ocupada] 4:Print (file) [Impresora libre] 1:Print (file)