5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 1/28
UNIVERSIDAD DE EL SALVADOR
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
HERRAMIENTAS DE PRODUCTIVIDAD
UML
ANALISIS ORIENTADO A OBJETOS
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 2/28
CONCEPTUALIZACION
Actor
Un actor es una entidad externa al sistema que necesita intercambiar información con el sistema. La notación utilizada en
UML para representar un actor es una figura humana con el nombre del actor.
Caso de uso
A diferencia las técnicas de análisis estructurado, el diagrama de casos de uso no persigue modelar un flujo de datos. Un
caso de uso puede definirse como un flujo completo de eventos en el que se especifica la interacción entre el actor y el
sistema. La ejecución de un caso de uso termina cuando el actor genere un evento que requiera un caso de uso nuevo.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 3/28
Extensión
Una extensión indica que la realización del caso de uso que extiende no es obligatoria durante la realización del caso de uso
que está siendo extendido.
En el ejemplo que se muestra, el caso de uso Crear perfil puede o no ser realizado al ejecutarse el caso de uso Registrarusuario.
Inclusión
Una inclusión indica que un caso de uso se realizará incondicionalmente durante la realización del caso de uso que lo
referencia.
En el ejemplo que se muestra, el caso de uso Autenticar debe ser realizado para que el caso de uso Mostrar contenido sea
realizado correctamente.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 4/28
Clases
Una clase define las características de un tipo de objeto. Estas características toman la forma de atributos y operaciones que
ese tipo de objetos realiza.
Para representar gráficamente una clase en el modelo conceptual se utiliza un rectángulo con el nombre. En el diagrama declases se representa a través de un rectángulo divido horizontalmente en tres partes: nombre, atributos y operaciones.
Código Java:
class Persona{
String nombre;
String apellidos;
String dui;
}
Clase abstracta
Las clases abstractas incorporan un nivel de abstracción que permite definir un comportamiento específico a una clase, sin
detallar dicho comportamiento. A diferencia de las interfaces, las clases abstractas pueden tener métodos implementados. La
representación de las clases abstractas es igual que las clases normales, excepto que el nombre se escribe en cursiva.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 5/28
Código Java:
public abstract class Persona {
String nombre;
String apellidos;
String dui;
}
Relaciones
Existen 4 tipos de relaciones: composición, asociación, uso y herencia.
Todas las relaciones describen ciertos detalles que deben ser tomados en cuenta, para hacer una descripción correcta del
modelo.
Navegabilidad
La navegabilidad se refiere al sentido en el que se puede dar la relación.
En el ejemplo que se presenta, la relación entre Persona y Empresa, que podría llamarse Trabaja se da de Persona a
Empresa. La navegabilidad de las relaciones ayudan a hacer más clara la semántica del modelo. Sin la navegabilidad,podríamos interpretar que la Empresa trabaja para la Persona, lo que tergiversaría el significado (semántica) del modelo.
Código Java:
public class Persona {
…
Empresa patrono;
…
}
public class Empresa{
}
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 6/28
Multiplicidad
La multiplicidad se refiere a la cantidad objetos de una clase puede estar relacionados con otra cantidad de objetos de otra
clase.
Por defecto las relaciones de asociación no requieren la especificación explícita de la multiplicidad cuando esta es de 1.Cuando esta cantidad de objetos no es conocida, se puede indicar un rango estimado. Las multiplicidades más utilizadas
son:
0..*
1..*
0..1
*
ArgoUML no cuenta con la multiplicidad de tipo *, que significa muchos. Para ello es posible usar 1..* ó 0..*.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 7/28
Código Java:
public class Persona {
Empresa patrono;
}
public class Empresa{
List<Persona> empleados; // Persona empleados[]; es otra alternativa
}
Cuando en las relaciones binarias, las clases se relacionan con muchos objetos entre ellos, se está indicando una relación de
muchos a muchos, que en POO es perfectamente describible sin requerir una entidad intermedia a menos que esta relación
incorpore nuevos elementos al modelo. En esos casos son necesarias las clases de asociación.
Código Java:
public class Persona {
List<Empresa> patronos;
}
public class Empresa{
List<Persona> empleados;
}
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 8/28
Rol
El rol se puede definir como las responsabilidades que cumple cada uno de los objetos en la relación. La interpretación
semántica del modelo que se presenta puede ser leído de la siguiente manera: Una o varias personas trabajan como
empleados para una o varias empresas (sus patronos).
En una relación con otra entidad, la persona puede jugar otro rol. Por ejemplo, si la entidad persona estuviera relacionadacon la entidad Libro, teniendo como rol escritor podríamos leer esa relación como: Una o varias personas, escritores, son
los autores de uno o varios libros publicados.
Clases de asociación
Las clases de asociación son utilizadas cuando en la asociación entre dos entidades, es necesario incorporar nuevos atributos
producto de esa relación.
Se denota con una clase que se une a la línea de asociación a través de una línea discontinua.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 9/28
Código Java:
public class Persona{
List<Trabajo> trabajos;
}
public class Empresa{
}
public class Trabajo{
Double salario;
}
Composición
La composición es una forma de incorporar niveles de abstracción al modelo. Indica que una clase contiene (o está
compuesta por) objetos de otras clases.
A diferencia de la agregación, la composición indica que la relación entre los objetos es de tipo “parte/todo”. En el ejemplo
que se muestra, cuando el objeto de la clase Empleado, que incluye dos objetos (uno de la clase Persona y otro de la clase
Puesto), será destruido cuando el objeto que los contiene sea destruido.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 10/28
Código Java:
public class Empleado{
Persona persona = new Persona();
Puesto puesto = new Puesto();}
Este tipo de relación sirve para indicar al programador que los objetos incluidos en el objeto que los contiene, serán
referenciados por valor. En leguajes como C++, donde el uso de punteros es fundamental, esta especificación es útil.
En lenguajes como Java, donde únicamente los tipos primitivos se referencian por valor, este tipo de relaciones se
implementan bajo el supuesto que la misma clase inicializará los objetos que componen el objeto base. Sin embargo, en eltranscurso de la ejecución, a menos que los objetos se declarar como tipo final, es posible asignarles un objeto creado fuera
de los métodos de la clase. Por esta razón, este tipo relaciones son poco usadas en el modelado de objetos cuando se
programará en Java o se asume que la composición y la agregación tienen el mismo significado.
Agregación
La agregación es similar a la composición. Indica que el objeto de una clase, estará compuesto por objetos de otras clases.
A diferencia de la composición, la agregación indica que los objetos incluidos en el objeto que los contiene son incluidospor referencia.
En este ejemplo, los objetos de Persona y Puesto que se incluyen en un objeto Empleado, existen indistintamente de que el
objeto empleado exista.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 11/28
Código Java:
public class Empleado{
Persona persona;
Puesto puesto;}
Herencia
La herencia es otra forma de abstracción. A la clase base se le llama clase “madre”, a la clase que hereda se llama clase
“hija”.
La clase hija heredará todos los atributos y operaciones de la clase madre que no sean privados.
En el ejemplo, la clase Empleado hereda de la clase Persona y la extiende.
Código Java:
public class Persona{
}
public class Empleado extends Persona{
}
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 12/28
Uso
La relación de uso indica que una clase hace uso de otra en un momento determinado.
En las relaciones de tipo uso se utilizan la figura de una relación cliente/servidor. Las clases que usan son llamadas clientes
y las clases usadas son llamadas servidores.
Código Java:
public class Marcador{
}
public class Persona{
public void marcar(){
Marcador marcador = new Marcador();
marcador.registrar(this.codigo, new Date()){
...
}
}
}
Interfaces
Las interfaces son utilizadas para especificar el comportamiento mínimo que deben cumplir todas las clases que laimplementen, sin especificar cómo será implementado dicho comportamiento.
Son una especie de “plantilla” que debe ser detallado por las clases que las implementan. Esto es usado para garantizar la
compatibilidad entre clases, sin limitar sus propias características. Un ejemplo de esto es la interfaz Iterable, que permite
que todas las clases que implementan dicha interfaz puedan ser recorridas por una instrucción de tipo foreach.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 13/28
Código Java:
interface Laboral{verificarAsistencia();
calcularDescuentos();
}
public class Empleado extends Persona implements Laboral{
…
}
Objeto
La representación gráfica para un objeto consiste en un rectángulo con el nombre del objeto. El nombre del objeto es el
mismo nombre de la clases antecedido por dos puntos (:) y subrayado.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 14/28
Diagrama de secuencia
Los diagramas de secuencia son una representación de los mensajes que intercambian los objetos en el transcurso del
tiempo.
En ArgoUML, la notación de los objetos en el diagrama de secuencia varía en cuanto a que no se subraya el nombre delobjeto y la línea de tiempo de vida del objeto no es discontinua.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 15/28
ArgoUML
ArgoUML es una herramienta gráfica para el diseño de software orientado a objetos. Pretende dar soporte al proceso en las
fases de análisis, diseño, programación y documentación.
Las características principales de ArgoUML son:
Estándares abiertos: XMI (XML Metadata Interchange), SVG (Scalable Vector Graphics), PGML (Precision
Graphics Markup Lenguage).
100% independiente de la plataforma, gracias al uso exclusivo de Java para su desarrollo.
Open source
Características cognitivas como: reflexión en la acción, diseño oportunista y, comprensión y resolución de
problemas.
Para detalles sobre la instalación y configuración de ArgoUML consulte la guía rápida en el sitio oficial:http://argouml.tigris.org/.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 16/28
EL ENTORNO DE ArgoUML
La ventana principal de ArgoUML consta de:
1. Una barra de menú
2. Una barra de herramientas
3. Un panel navegador de objetos
4. Un panel de tareas
5. Un área de trabajo, según el tipo de objeto que estemos editando
6. Un panel de detalles
Utilizaremos un ejemplo para hacer una descripción de las funciones más importantes de ArgoUML.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 17/28
SISTEMA DE TRANSACCIONES BANCARIAS EN LINEA
DESCRIPCION DEL SISTEMA
Se requiere un sistema que permita a un cliente de una banco realizar transacciones bancarias en línea. Una vez que el
usuario ingrese sus credenciales de acceso, si las credenciales son válidas, el sistema deberá desplegar el contenido principal
del sistema.
El contenido principal es un menú de opciones y un lista de cuentas asociadas al cliente.
El cliente podrá ver los detalles de la cuenta seleccionándola de la lista de cuentas mostradas en el contenido principal.
Como parte de los detalles debe mostrarse una opción para consultar los movimientos de la cuenta.
Para realizar una transacción el cliente deberá seleccionar una de las opciones del menú, donde posteriormente debe
seleccionar la cuenta con la que desea realizar dicha transacción.
Al realizar una transacción, el sistema debe validar que la cuenta que esté siendo cargada (a la que se le esté restando de su
saldo) tenga suficiente saldo para poder ser cargada.
CASOS DE USO
Actores
Cliente
Casos de uso
Iniciar sesión
Consultar cuenta
Iniciar transacción
Consultar movimientos
Diagrama de casos de uso
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 18/28
Antes de iniciar la creación del diagrama de casos de uso, iniciaremos con dar un nombre al modelo. Para ello hacemos clicen nodo Modelo sin título del panel de navegación de objetos. En la pestaña Propiedades del panel de detalles escribimos el
nombre Sistema de transacciones bancarias.
Nótese que en el panel de tareas se agrega una tarea pendiente de prioridad media. Al revisar la tarea nos indica que el
nombre no es adecuado, puesto que ese nombre se convertirá posteriormente en un nombre de paquete.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 19/28
Al hacer clic en el botón siguiente, nos permitirá cambiar el nombre a bancaenlinea. Ahora ya tenemos el nombre del
paquete ingresado de forma correcta.
Nótese que ArgoUML nos advertirá de cualquier inconsistencia de nuestro modelo a través de Críticas, que irán
apareciendo en el panel de tareas.
Para crear nuestro diagrama de casos de uso, iniciamos agregando el actor identificado.
Al agregar el actor, se puede observar que se activan varias de las pestañas del panel de detalles. Las pestañas del panel de
detalles se activan según el componente que se seleccione en el diagrama.
Revisaremos las pestañas más importantes que se tienen disponibles para los actores.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 20/28
La pestaña más importante de todos los objetos es la de propiedades. En esta pestaña podemos agregar el nombre del actor,
en este caso Cliente.
La pestaña Documentación nos permite ir documentando los diagramas. En este ejemplo únicamente agregaremos el autor y
la versión del modelo.
ArgoUML trae consigo un generador de código a partir de los modelos. En el desarrollo del ejercicio veremos como los
diagramas van integrándose de forma consistente, que junto a la función de generador de código puede producir una base de
implementación del código del modelo.
Puede observarse que la pestaña de código del actor genera una clase con el mismo nombre. En general, se considera que
los actores no deberían ser clases del modelo. Sin embargo, dependiendo del problema esto puede ser necesario.
En la opción Operaciones de la pestaña Propiedades, es posible incorporar operaciones al actor. Esto no necesariamente seconvertirá en un método de la clase. Es más, el actor no necesariamente se convertirá en una clase del modelo.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 21/28
ArgoUML además nos provee de una lista de control de calidad del modelado. La pestaña Lista de control realiza una serie
de preguntas que permiten afinar el modelado. Estas preguntas no tienen ningún impacto directo en el modelo en el que seestá trabajando, simplemente es una ayuda que nos provee ArgoUML para verificar la validez del modelo.
Ahora podemos agregar un caso de uso al modelo. Seleccionamos la elipse que se encuentra en la barra de objetos del panelde edición.
De la misma forma que con el actor, varias de las pestañas del panel de detalles se activan al seleccionar el caso de uso
recién ingresado. Le damos el nombre al caso de uso: Iniciar sesión. Nótese que también los casos de uso pueden ser
concebidos como una clase en ArgoUML, por lo que es posible definir operaciones.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 22/28
En la pestaña de código fuente también se encontrará código generado, que supone también que se trata de una clase.
Usualmente los casos de uso no se convierten en una clase en el modelo de clases. Generalmente, esto depende del nivel de
detalle con el que se aborde el problema, y cuando esto ocurre, es una señal de que es necesaria una iteración de afinamiento
para ahondar más en los detalles del problema.
Ahora es necesario establecer la relación entre el caso de uso y el actor. Para ello se utiliza el icono de asociación que se
encuentra en la barra de objetos del panel de edición.
Una vez incorporada la asociación entre el actor y el caso de uso, podemos darle un nombre a la asociación. En este caso Ingresar credenciales.
En una primera mirada, podríamos pensar que los casos de uso identificados son “disparados” por el usuario, de tal maneraque el diagrama de casos de uso quedaría como se muestra en el diagrama 1
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 23/28
Diagrama 1
Análisis
Hemos identificado ya una serie de casos de uso que se requieren en el sistema.
Es importante entender la relación que existe entre los casos de uso y los
actores, o entre los casos de uso mismos.
Las relaciones entre los actores y los casos de uso resultan relativamente
fácil de advertir. Sin embargo, las relaciones entre los casos de uso es algo
que requiere de un análisis más detallado.
Cuando un usuario use (o realice) el caso de uso Iniciar sesión, si el nombre
de usuario y clave son correctas, el sistema deberá mostrar las opciones del
sistema y las cuentas de ese usuario. Si las credenciales no son correctas, el
sistema deberá mostrar un mensaje de error al usuario.
Para que un cliente realice el caso de uso Consultar movimiento, el sistema
debería brindar una forma en la que el cliente seleccione la cuenta de la que
desea hacer una consulta. Sin embargo, esto solo puede hacerse si ha iniciado
la sesión. Con eso podemos asumir que al iniciar la sesión, el sistemamostrará las cuentas bancarias. Algo similar ocurre con las opciones del
sistema, por ejemplo realizar un pago.
Al realizar una transacción satisfactoriamente, podríamos dar al cliente la
posibilidad de regresar a la pantalla principal del sistema, donde se muestra
la lista de cuentas relacionadas.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 24/28
Podemos asumir que por tratarse de un menú, las opciones del sistema siempre
estarán disponibles para el usuario. Para hacer esto posible, haremos una
modificación en el modelo de comportamiento que tenemos hasta ahora, separando
segmentos de los casos de uso que tenemos hasta ahora, para poder reutilizarlos
en cualquier momento.
Podemos observar que una vez que el cliente haya iniciado sesión, el sistema
puede mostrarle las opciones del sistema y las cuentas de las que es dueño. La
posibilidad está condicionada a que el inicio de sesión haya sido exitoso, poresta razón estos casos de uso son extensiones del caso de uso Iniciar sesión.
Lo mismo podemos presumir del caso de uso Consultar movimientos, ya que es
hasta que el cliente realice el caso de uso Consultar cuenta, el sistema le
permitirá elegir el caso de uso Consultar movimientos, que permitirá regresar
también a la pantalla principal del sistema.
Diagrama 2
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 25/28
ACTIVIDADES
El diagrama de actividades tiene como objetivo ayudarnos a conocer lo que se espera que ocurra al interior de cada uno de
los casos de uso.
Los diagramas de actividades describen procesos, por lo que en un diagrama puede describirse el comportamiento de uno o
más casos de uso.
Una vez agregado el diagrama, nos aparecerá un nodo con el nombre Sin nombre ActivityGraph. Al seleccionarlo se activan
las pestañas aplicables en el panel de detalles. En la pestaña nombre agregamos el nombre Ingreso al sistema. Dentro del
nodo del diagrama que acabamos de agregar se mostrarán los objetos que vayamos agregando a ese diagrama.
Por defecto ArgoUML ingresa un objeto con el nombre bancaenlinea activity 1, que podemos cambiar a bancaenlinea
ingreso al sistema.
Ahora podemos incorporar los objetos que contendrá el diagrama. Como es lógico iniciaremos con el objeto de inicio,
posteriormente ingresamos la actividad Ingresar al sistema, posteriormente la actividad Ingresa credenciales y finalmente
los nodos de inicio de acuerdo al flujo de eventos que deben ir ocurriendo.
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 26/28
Procesos: Ingreso al sistema
El proceso inicia con el hecho de que el usuario ingresa al sistema. El sistema muestra la pantalla correspondiente para que
posteriormente, el usuario ingrese las credenciales de acceso al sistema. Si las credenciales son correctas, el proceso
termina. Si no son correctas, el sistema solicita al usuario que repita el ingreso de sus credenciales. En ese punto, el usuario
puede intentarlo de nuevo o finalizar el proceso.
Puede notarse que esta descripción de los procesos nos servirá para identificar el curso de eventos de los casos de usoinvolucrados en el proceso. Eso nos servirá para construir los casos de uso extendidos del sistema.
Proceso: Consulta de cuentas
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 27/28
Proceso: Transacción
5/17/2018 Guía de laboratorio N° 2-ArgoUML - slidepdf.com
http://slidepdf.com/reader/full/guia-de-laboratorio-n-2-argouml-55ab5964812fa 28/28
EJERCICIOS
1. Elabore los casos de uso extendidos del ejemplo desarrollado en esta guía.
2. Realice un análisis para el sistema descrito a continuación.
SISTEMA DE PAGOS
Se requiere un sistema para el control de los pagos que se realizan en una institución.
El gestor de pagos podrá ingresar los datos de pago que incluyen el monto a pagar, el concepto de pago, el nombre del
cobrador del documento de pago y la fecha.
Los documentos de pago solo pueden ser autorizados por el jefe de la unidad de finanzas de la institución. Para ello el jefe
de finanzas debe contar con una opción de consulta de los pagos pendientes de autorización y tener la capacidad de
autorizarlos o denegar su realización.
El gestor de pagos podrá consultar todos aquellos pagos que ya han sido autorizados y tener la capacidad para imprimirlos
en forma de cheques.Realice:
Diagrama de casos de uso
Diagrama de actividades
Casos de uso extendidos
Top Related