Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PRESENTADO A:
JULIO BARON VELANDIA.
PRESENTADO POR:
1
Tabla de contenido
Tabla de contenido 2
Introducción 3
Objetivos 4
Desarrollo 5
1- Planteamiento del escenario 5
2- Selección de los casos de uso 6
3- Diagramas de casos de uso. 7
4 - Diagrama De Clases 10
5- Diagramas De Secuencia 13
Diagrama de secuencia (consultar Saldo) 13
Diagrama de secuencia (Retirar Dinero) 13
Diagrama De Secuencia (Cuenta Nueva) 14
6- Diagrama de Estado 15
7- Implementación Java 16
8- Pruebas Unitarias 19
Conclusiones 21
Bibliografía 22
Recursos Electrónicos 22
2
Introducción
Para elaborar un determinado proyecto, es importante tener como guía un modelo o
metodología que permita establecer las pautas a seguir para cubrir las necesidades que
pueda llegar a tener este proyecto. Entre estas pautas se encuentra la obtención de
requerimientos lo cual marca un punto importante y primordial en la iniciación de un proyecto
dado que una mala obtención o entendimiento de estos, puede producir en fases más
profundas errores que podrían retrasar o incluso destruir cualquier proyecto.
Para la obtención adecuada de requerimientos existen los casos de uso los cuales
proporcionan una descripción muy precisa de lo que requiere el cliente, además refleja
algunos procesos importantes que se deben tener en cuenta en la realización del proyecto
junto con la definición de los actores que participaran en el mismo de una u otra forma.
Una vez se tienen planteados adecuadamente los casos de uso, se puede realizar el diseño
del software lo cual se ve representado en diagramas de diferentes tipos como diagramas de
clase, diagramas de secuencia o diagramas de estado entre otros, esto brinda un mapa o una
guía que proporciona facilidad y cierto tipo de fluidez a la hora de plasmar las ideas y
requerimientos en código fuente.
Cuando se realiza la elaboración del código fuente en un proyecto de software, es vital,
planear algunas pruebas antes de empezar a desarrollar código, estas pruebas pueden ser
planteadas incluso desde el diseño de la aplicación que es lo más recomendable, de esta
forma y junto con los diagramas elaborados en el diseño, se pueden evitar grandes
complicaciones y tener un control constante de lo que se está produciendo.
En el presente documento, se realizarán diferentes casos de uso para algunos requerimientos
obtenidos de un sistema bancario, estos serán representados posteriormente en diagramas
de secuencia, en un diagrama de estado y un diagrama de clases junto con la planeación de
algunas pruebas a realizar, y por último se plasmarán estos diseños en código fuente.
3
Objetivos
● Identificar e implementar los diferentes casos de uso presentes para un sistema
bancario a fin de atender las posibles solicitudes que se tengan.
● Realizar un diagrama de clases que represente lo planteado en los casos de
uso junto con la planeación de algunas pruebas unitarias, esto a fin de lograr
establecer un mapa a seguir entendible y funcional para la implementación del
código fuente del proyecto.
● Establecer los diferentes diagramas de secuencia de acuerdo a los casos de
uso planteados anteriormente a fin de encontrar métodos no previstos en un
inicio y entender de mejor forma los procesos que se llevarán a cabo en fases
posteriores.
● Construir un diagrama de estado que permita representar el comportamiento
en diferentes etapas de los casos de uso descritos y así lograr una visión más
clara de cómo actuaran estos en una implementación posterior en código
fuente.
● Implementar el desarrollo en código fuente del diagrama de clases planteado,
esto a fin de establecer en físico las funcionalidades pensadas en un principio
con los casos de uso y los demás diagramas elaborados.
● Mediante la elaboración y modelamiento de los casos de uso en forma de
diagramas junto con el desarrollo en código fuente del mismo, afianzar los
conocimientos adquiridos previamente y conseguir nuevas competencias
favorables para el desarrollo integral en la ingeniería de sistemas.
4
Desarrollo
5
2- Selección de los casos de uso
En primer lugar se plantea el diagrama de los casos de uso con la herramienta de diseño
UML; en este se representa el actor principal “Cliente” y los diferentes servicios que puede
solicitar a un sistema bancario.
Seguidamente, se elabora la matriz de casos de uso que permite identificar cuáles son de
mayor importancia en comparación con los demás.
C1 C2 C3 C4 C5 C6
Inscribir C.A X X X X X
(C1)
Realizar
Consignación
(C2)
Retirar Dinero X X
(C3)
Consultar X X
Saldo (C4)
Solicitar
6
Certificación
C.A (C5)
Realizar
Donación (C7)
De la matriz anterior de casos de uso se aprecian las diferentes soluciones que más influencia
dan a nuestro escenario, estas son:
- Inscripción C.A
- Retirar Dinero
- Consultar Saldo
ID Caso de uso : C4
7
Formato contraseña
Extendido
Actor/es Sistema
ID Caso de uso : C3
Actor/es Sistema
8
con número de
cuenta asociado
-
ID Caso de uso : C1
- 1.2 Otorga
información - 1.3 Valida
(Nombre, apellido, información
fecha de nacimiento, - 1.4 Presenta
número de ID) resultado
(Solicitante) - 1.5 Pide aprobación
-1.6 Aprueba
(Representante banco)
- 1.7 Asigna ID cuenta
y contraseña.
9
4 - Diagrama De Clases
A partir del análisis de los diferentes casos de uso descritos anteriormente, se identificaron
un total de siete clases relacionadas entre sí, necesarias para la realización del código fuente.
estas son:
1. SistemaBancario: Es una clase abstracta de la cual heredan tres clases concretas
que implementan todos sus métodos descritos, además, tiene asociadas dos clases
que se componen de ella “RepresentanteBancario e Historial”, tiene la clase “Cuenta”
que realiza un proceso de agregación y la clase persona que realiza una asociación
con esta.
2. Cuenta: Es una clase que tiene un proceso de auto utilización debido al uso de uno
de sus métodos “validación”, además tiene un proceso de agregación con la clase
“SistemaBancario” y es usada por la clase “Persona”.
3. Persona: Esta clase se asocia con la clase “Cuenta” dado que necesita sus atributos,
además se asocia con la clase “SistemaBancario” para tener acceso a las clases
“Consulta”, “Retiro” y “CuentaNueva”, y así obtener los servicios que estas
proporcionan.
4. RepresentanteBancario: Esta es una clase que se compone de la clase
“SistemaBancario”, es decir que existe una dependencia fuerte, pues sin esta no
podría existir, además tiene una relación de asociación con sigo misma dado que
utiliza un método propio.
5. Historial: Al igual que “RepresentanteBancario”, esta clase tiene una dependencia
fuerte con la clase “SistemaBancario”, si desapareciese, esta también desaparecería,
pues es una extensión con una relación de composición.
6. Consulta: Esta es una clase concreta la cual hereda de la clase “SistemaBancario”,
esta le brinda ciertos métodos y le proporciona un puente para establecer contacto
con las diferentes clases relacionadas a esta.
7. Retiró: Esta, al igual que sus hermanas “Consulta” y “CuentaNueva”, es una clase
concreta la cual hereda de la clase “SistemaBancario”, esta clase superior le brinda
las conexiones necesarias para hacer contacto con las diferentes clases relacionadas.
8. CuentaNueva: Esta es una clase concreta o clase hijo, la cual hereda de su padre
“SistemaBancario” todos los métodos que necesita para brindar el servicio de crear
una nueva cuenta y asociarla a una persona, por medio de esta se implementa la
relación entre las clases “Cuenta” y “Persona”.
Modelo Genérico
10
11
Modelo Con Pruebas Unitarias
12
5- Diagramas De Secuencia
Se realizaron un total de tres diagramas de secuencia en los cuales se describe la forma en
que se llevan a cabo los casos de uso (procedimiento), a continuación se describe brevemente
cada uno de estos.
Para el caso de uso “consultar saldo”, se tiene un actor en concreto “Persona” y el sistema
principal “SistemaBancario” con quien interactúa, además se tienen dos subsistemas
“Cuenta” e “Historial”, en los cuales se soporta el sistema principal para realizar validaciones,
consultas y registros, tal como se muestra a continuación.
En este diagrama se representa el caso de uso “Retirar Dinero”, en este solo se involucra un
actor “persona” el cual interactúa directamente con el sistema “sistemaBancario” y este utiliza
dos subsistemas “Cuenta” e “Historial” para realizar procesos de validación, actualización de
información y registro de datos, tal como se muestra a continuación.
13
Diagrama De Secuencia (Cuenta Nueva)
En este diagrama de secuencia, se representa el proceso de crear una nueva cuenta para un
cliente, en total, interactúan dos actores “Persona” y “ReprecentanteBancario” a través del
sistema global “SistemaBancario” para realizar la validación de los datos introducidos por el
primer actor, además, el sistema global utiliza un subsistema “Cuenta” para realizar el proceso
de asignación de cuenta, tal como se muestra a continuación.
14
6- Diagrama de Estado
Se realizó un diagrama de estado en donde se representaron los tres casos de uso escogidos
y descritos anteriormente. En este, resultaron cuatro estados principales, uno para cada caso
de uso y uno global para el funcionamiento de todo el sistema, además, se representan todos
los procesos que se llevan a cabo en cada caso de uso a modo de entrada y salida, siempre
retornando con una notificación al inicio del proceso en el estado global del sistema.
15
7- Implementación Del Código Fuente
A continuación, se dará un breve resumen de los factores más importantes de la respectiva
implementación del banco en java
Clases Usadas:
En la imagen anteriormente mostrada, se observan las diferentes clases usadas, nuestro main
el cual es el menú, el Sistema Bancario que es una clase abstracta y demás clases.
16
La clase principal es el menú la cual da inicio al programa, en la misma se plantea que al
iniciar la ejecución, lo primero que debe hacer quien utiliza el programa es registrar sus datos
para así, lograr asociarlo a una cuenta nueva. Una vez creada la cuenta .se habilitan las
opciones de consultar saldo o retirar dinero del banco.
Consultar saldo corresponde al caso de digitar “1” en el menú, lo cual crea una nueva consulta
y le pasa como parámetro la cuenta asociada a la persona que se creó anteriormente, con
esto, se puede invocar el método solicitud datos de persona
17
En la imagen anterior se ve el método solicitudDatos de la clase Persona, la cual pide los
datos del usuario para proceder a compararlos con los datos creados por el Sistema y así,
guardarlos en la cuenta.
En la imagen anterior, se observa la creación de una solicitud la cual es un método para crear
el Id de solicitud, posteriormente, si el resultado de la solicitud para validar la cuenta es
correcta entonces pasará a dar la información de la solicitud y crear un nuevo historial
asociado al id de la solicitud.
En las imagen anteriores, se muestran dos métodos correspondientes a la clase cuenta, estos
se encargan de procesar y validar la información de “usuario” y “contraseña” digitada por el
cliente, comparándolo con los datos que tiene el programa, si son correctos entonces pasará
a notificar el saldo en (InformacionDeSolicitud()) y seguidamente a crear el historial como se
observa en la siguiente imagen,
18
(Imagen de la clase Abstracta Sistema Bancario)
8- Pruebas Unitarias
Se realizaron un total de tres pruebas unitarias, para lo cual fue necesario la utilización de
JUnit, estas pruebas fueron enfocadas en ciertos puntos cruciales del software desarrollado,
estas pruebas se describen a continuación:
Esta es una prueba implementada con el fin de validar si la fecha creada por el método
“registro” de la clase “Historial”, corresponde efectivamente a la fecha actual del
sistema.
19
2. Test Validar Cuenta
Esta prueba fue implementada para verificar que se cree correctamente una cuenta
bancaria al pasarle atributos de nombre, apellido y fecha de nacimiento. Si los datos
son válidos se espera el booleano "True".
20
Conclusiones
● A partir de los casos de uso realizados, con un alto nivel de análisis y elaboración de
los mismos, se obtuvo una descripción general del sistema la cual permitió la
comprensión inicial de este y posteriormente, en base a este se logró desarrollar un
diagrama de clases que sirvió como guía para la elaboración del código fuente.
● Los diferentes diagramas trabajados a partir de los casos de uso, se pueden elaborar
de manera paralela o secuencial, o simplemente especializarse en uno de estos, pues
en ocasiones es más útil empezar por los diagramas de secuencia que centrarse
directamente en el diagrama de clases o de estados y viceversa, en otras situaciones,
solo se necesitan cierto tipo de diagramas, por lo tanto no sería necesario realizar los
demás, todo depende de cual sea el caso.
● La elaboración de los casos de uso, los diagramas de secuencia, el diagrama de
estados y el modelado de clases, facilitan de manera significativa abordar la
codificación del software, puesto que estos artefactos dan un punto de partida y una
ruta a seguir, además de proporcionar un foco constante en todo el desarrollo del
mismo..
● StarUML es una herramienta que agiliza toda la tarea del modelado de clases y los
diagramas de secuencia, puesto que podemos desarrollar ambos en un solo entorno,
nos permite trabajarlos de forma paralela y además nos brinda todas las utilidades
necesarias para la estructuración de estos.
● Mediante una temprana planeación o diseño de pruebas, se facilita en gran medida la
minimización de posibles errores que se puedan producir a lo largo del desarrollo del
código fuente, mediante estas, se puede obtener un control constante de lo que se
está elaborando.
● Mantener una concordancia en cuanto a lo que se diseña y lo que se desarrolla, es
vital para lograr obtener un producto de software confiable y consistente, puesto que
de otra forma, no serviría de nada o sería una pérdida de tiempo diseñar modelos o
diagramas que no se seguirán para hacer el código fuente y quedando así, en riesgo
de cometer errores catastróficos que pueden parar por completo el proyecto o
desviarse fácilmente de lo que se concibió en los casos de uso.
21
Bibliografía
● Relaciones entre clases: Diagramas de clases UML - Fernando Berzal
http://elvex.ugr.es/decsai/java/pdf/3C-Relaciones.pdf
Recursos Electrónicos
● Tutoriales StarUML 2.8 (Videos), Recurso electrónico disponible en:
https://www.youtube.com/playlist?list=PLPM5lchG9xUvHP4ZVwEyiv9IzE8X3DkjFT
● Diagramas de secuencia UML, Recurso electrónico disponible en:
https://msdn.microsoft.com/es-co/library/dd409377.aspx
22