Sie sind auf Seite 1von 22

Ingenieria de Software – ArgoUML

ANALISIS ORIENTADO A OBJETOS

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 o como un negocio trabaja actualmente. La ejecución de un caso de uso termina cuando el actor genere un evento
que requiera un caso de uso nuevo.

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.

Instructora: América L. Sabalu S. pág. 1


Ingenieria de Software – ArgoUML
En el ejemplo que se muestra, el caso de uso Crear perfil puede o no ser realizado al ejecutarse el caso de uso Registrar
usuario.

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.

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 de clases 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.

Código Java:
public abstract class Persona {
String nombre;
String apellidos;
String dui; }

Instructora: América L. Sabalu S. pág. 2


Ingenieria de Software – ArgoUML

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 ayuda 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 {
}

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:

a) 0..*
b) 1..*
c) 0..1
d) *
ArgoUML no cuenta con la multiplicidad de tipo *, que significa muchos. Para ello es posible usar 1..* ó 0..*.

Instructora: América L. Sabalu S. pág. 3


Ingenieria de Software – ArgoUML

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;
}

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).

Instructora: América L. Sabalu S. pág. 4


Ingenieria de Software – ArgoUML

En una relación con otra entidad, la persona puede jugar otro rol. Por ejemplo, si la entidad persona estuviera relacionada
con 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.

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.

Instructora: América L. Sabalu S. pág. 5


Ingenieria de Software – ArgoUML

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 el
transcurso 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 incluidos
por 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.

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 “padre”, a la clase que
hereda se llama clase “hija”.
La clase hija heredará todos los atributos y operaciones de la clase padre que no sean privados.

Instructora: América L. Sabalu S. pág. 6


Ingenieria de Software – ArgoUML
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{ }

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 la implementen, 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.

Instructora: América L. Sabalu S. pág. 7


Ingenieria de Software – ArgoUML

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 clase antecedido por dos puntos (:) y subrayado.

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 del
objeto y la línea de tiempo de vida del objeto no es discontinua.

Instructora: América L. Sabalu S. pág. 8


Ingenieria de Software – ArgoUML

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/.

EL ENTORNO DE ArgoUML

1
2
3

6 4

La ventana principal de ArgoUML consta de:


1. Una barra de menú 4. Área de trabajo
2. Una barra de Herramientas 5. Opciones y elementos de Diagramas
3. Panel de Herramientas de Diagramas 6. Navegación de Proyectos y Archivos
Utilizaremos un ejemplo para hacer una descripción de las funciones más importantes de ArgoUML.

Instructora: América L. Sabalu S. pág. 9


Ingenieria de Software – ArgoUML

SISTEMA DE TRANSACCIONES BANCARIAS EN LINEA


DESCRIPCION DEL SISTEMA
 Se requiere un sistema que permita a un cliente de un 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 una 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

Instructora: América L. Sabalu S. pág. 10


Ingenieria de Software – ArgoUML

 Antes de iniciar la creación del Diagrama de casos de uso, iniciaremos con dar el nombre a nuestro
modelo. Para ello hacemos clic en 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.

Instructora: América L. Sabalu S. pág. 11


Ingenieria de Software – ArgoUML

 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.
 Ahora para crear un diagrama de casos de uso, seleccione el directorio raíz y con el botón derecho elija
la opción Crear diagrama y luego de clic en Diagrama de casos de uso para crear el diagrama.

 Para crear el diagrama de casos de uso, iniciamos agregando el actor identificado.

Instructora: América L. Sabalu S. pág. 12


Ingenieria de Software – ArgoUML

 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.

 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.

Instructora: América L. Sabalu S. pág. 13


Ingenieria de Software – ArgoUML

 ArgoUML trae consigo un generador de código a partir de los modelos. En el desarrollo del ejercicio veremos cómo
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 se convertirá en un método de la clase. Es más, el actor no necesariamente se convertirá en una
clase del modelo.

Instructora: América L. Sabalu S. pág. 14


Ingenieria de Software – ArgoUML

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 se
está 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
panel de 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.

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.

Instructora: América L. Sabalu S. pág. 15


Ingenieria de Software – ArgoUML

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.

Instructora: América L. Sabalu S. pág. 16


Ingenieria de Software – ArgoUML

En una primera mirada, podríamos pensar que los casos de uso identificados son “disparados” por el usuario, de tal manera
que el diagrama de casos de uso quedaría como se muestra en el diagrama 1

Diagrama 1

Instructora: América L. Sabalu S. pág. 17


Ingenieria de Software – ArgoUML

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áciles 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 sistema mostrará 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.
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, por esta 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

Instructora: América L. Sabalu S. pág. 18


Ingenieria de Software – ArgoUML

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 credencial y finalmente
los nodos de inicio de acuerdo al flujo de eventos que deben ir ocurriendo.

Instructora: América L. Sabalu S. pág. 19


Ingenieria de Software – ArgoUML

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 uso involucrados en el
proceso. Eso nos servirá para construir los casos de uso extendidos del
sistema.

Proceso: Consulta de cuentas

Instructora: América L. Sabalu S. pág. 20


Ingenieria de Software – ArgoUML

Proceso: Transacción

Instructora: América L. Sabalu S. pág. 21


Ingenieria de Software – ArgoUML

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

Instructora: América L. Sabalu S. pág. 22

Das könnte Ihnen auch gefallen