Este documento presenta el proyecto de un sistema bancario para el proceso de bastanteo de poderes llamado PeruBank. Describe las historias de usuario, especificaciones técnicas, gestión del código usando GitHub, la metodología de desarrollo basada en pruebas unitarias, los casos de uso, el modelo conceptual y prototipos de pantalla. El objetivo del sistema es permitir el registro de clientes, representantes y poderes, así como la asignación, verificación y consulta de poderes.
Pedro Espino Vargas - Plan de negocios version final
Documentacion bastanteo - peru bank
1. DIVISIÓN DE ESTUDIOS PROFESIONALES PARA EJECUTIVOS
INGENIERÍA DE SISTEMAS
Proyecto Bastanteo de Poderes - PeruBank
Integrantes:
Alcántara, Jorge
Bruno, Harold
Espíritu, Hans
Villayzan Chancafe, Gabriel
GitHub:
https://github.com/hariki01/PeruBank
PROGRAMACIÓN ORIENTADA A OBJETOS
Profesor:
José Amadeo Martin Díaz
Lima, 28 de Noviembre de 2011
2. INDICE
1. INTRODUCCIÓN ........................................................................................................................... 3
2. CASO PROPUESTO ....................................................................................................................... 3
3. HISTORIAS DE USUARIO.............................................................................................................. 4
4. ESPECIFICACIONES TÉCNICAS ..................................................................................................... 6
5. GESTIÓN DEL CÓDIGO ................................................................................................................. 6
6. CONSTRUCCIÓN Y METODOLOGÍA ............................................................................................. 7
7. CASOS DE USO........................................................................................................................... 10
8. MODELO CONCEPTUAL ............................................................................................................. 11
9. PROTOTIPOS DE PANTALLA ...................................................................................................... 12
3. 1. INTRODUCCIÓN
Con esta documentación se pretende explicar y detallar las especificaciones del trabajo
desarrollado para atender los requerimientos del proyectoBastanteo de Poderes, así como para
respaldarla metodología basada en Test que se empleó a los largo del proceso.
Primero, que con esta metodología se desarrolla primero el test, para luego, en basea este,
desarrollar el código necesario para que se cumpla el requerimiento del test. Esto facilita el desarrollo
de un proyecto grupal como este, en el que se dividen los requerimientos y se van validando
granularmente.
En ese sentido, analizamos las historias de usuario detalladasen los requerimientos del proyecto y
luego pasamos a definir los test necesarios para que estas especificaciones se cumplan a cabalidad,
fragmentándolas según se considere necesario y definiendo las entidades conforme lo necesite el test
para arrojar la respuesta esperada.
Luego de haber conceptualizado los requerimientos en código, en forma de test, viene la etapa de
implementación del código para hacer funcionar los test. Y finalmente, cerrando el ciclo de desarrollo
de este proyecto, se Refactoriza el código, simplificándolo, reduciéndolo, organizándolo, pero
manteniendo las funcionalidades logradas.
2. CASO PROPUESTO
El caso propuesto es el desarrollo de un aplicativoque permita al cliente realizar el proceso de
bastanteo de poderes, donde los usuarios puedan:
- Registrar clientes
- Inscribir representantes
- Agregar poderes
- Bastantear poderes
- Verificar poderes
- Consultar poderes
- Controlar usuarios
4. 3. HISTORIAS DE USUARIO
Se describen los criterios bajos los cuales se puede dar por cumplido un requerimiento, para cada uno
de estos requerimientos se establecen criterios que nuestros Test deben cumplir para dar por
concluida una funcionalidad.
Estas se listan a continuación:
1. Registrar clientes.- Como supervisor deseo registrar clientes de modo que los abogados puedan
bastantear sus poderes bancarios.
Cuando: Espero:
Registro un cliente debo indicar su RUC, su código de - Confirmación del registro OK.
cliente interno (8 dígitos), razón social, fecha de inicio - Mensaje de error si no se ingresan los datos
de operaciones, tipo de empresa (SAA, SAC, SRL, etc.) requeridos.
y cantidad de empleados. - Mensaje de error si el cliente ya existe (RUC o
código de cliente repetido).
2. Inscribir representantes.- Como abogado deseo inscribir los representantes de cada cliente de
modo que luego puedan tener los poderes bastanteados.
Cuando: Espero:
Inscribo un representante debo indicar su tipo y - Confirmación de la inscripción Ok.
número de documento, sus nombres y apellidos, - Mensaje de error si no se ingresan los datos
cargo en la empresa y un grupo de bastanteo (A, B, C, requeridos.
etc.). - Mensaje de error si ya es representante de la
empresa (según tipo y número de documento).
3. Agregar poderes.- Como supervisor deseo agregar el listado de poderes para que los abogados
puedan asignarlos a los representantes según bastanteo.
Cuando: Espero:
Agrego un poder debo indicar su código corto de - Confirmación de la agregación Ok.
consulta (ej.: CHCO, EFRE), el nombre (ej.: Cobro de - Mensaje de error si no se ingresan los datos
Cheques, Retiro en Efectivo) y el tipo requeridos.
producto/servicio (ej: Activo, Pasivo). - Mensaje de error si ya se agregó el poder (código
corto).
4. Bastantear poderes.- Como abogado deseo poder anotar el resultado del bastanteo de modo que el
personal de agencia pueda consultarlo antes de cada operación.
5. Cuando: Espero:
Bastanteo debo indicar qué poderes puede realizar - Mensaje de confirmación Ok.
cada grupo de bastanteo de cada cliente. Además, - Mensaje de error si ya se anotó el mismo poder para
para esta asignación debo indicar el tipo de el mismo grupo de bastanteo, en el mismo cliente,
intervención (ej.: A Sola Firma, En Conjunto Con) y considerando el mismo tipo de intervención y
con qué otro(s) grupo(s) de bastanteo si corresponde combinación.
(combinación), así como el importe y la fecha de
vencimiento (normalmente 6 meses).
5. Verificar poderes.- Como personal de agencia deseo poder consultar si un representante tiene
poder para una operación o no de manera que pueda realizarla.
Cuando: Espero:
Consulto debo indicar el RUC del cliente, la - Mensaje indicando que el representante tiene poder
identificación del representante, el código de poder y cómo.
(o elegirlo de una lista), y el importe. - Mensaje indicando que el poder está dado pero ya
venció.
- Mensaje indicando que el representante no tiene
poder para realizar la operación indicada o el importe
es superior.
6. Consultar poderes.- Debo poder consultar los bastanteos registrados.
Cuando: Espero:
Consulto debo indicar el RUC del cliente, la - Lista de registros de bastanteo que se tienen
identificación del representante, el grupo de según los criterios de búsqueda ingresados.
bastanteo o tipo de intervención. - Mensaje indicando que no hay resultados
según criterios.
7. Controlar usuarios.- Como administrador deseo poder controlar a los usuarios de modo que al
ingresar puedan acceder a sus funcionalidades ya sea como supervisor, como abogado o empleado.
Cuando: Espero:
Doy de alta un usuario debo indicar qué rol tiene - Mensaje de bienvenida indicando el rol que tiene así
asignado. Cada usuario debe identificarse por una como las opciones que le corresponde.
clave al ingresar. - Mensaje de error si no se autentica correctamente.
6. 4. ESPECIFICACIONES TÉCNICAS
Lenguaje y Versión: El aplicativo fue desarrollado en JAVA v1.6.
Test: Se utiliza la librería JUnit 4 para los Test.
IDE: SpringSource Tool Suite2.8.0
5. GESTIÓN DEL CÓDIGO
El desarrollo del aplicativo se realizó con el soporte de la herramienta colaborativa GitHUB, que
permite trabajar en equipo de una manera distribuida.
El repositorio principal https://github.com/hariki01/PeruBank es administrado por uno de los
integrantes del grupo, mientras que el resto hace fork al proyecto, creando clones que permiten
alterar el código y subirlo a su repositorio clonado, para que luego el administrador del proyecto junte
el código en 1 solo.
El historial de cambios se puede mostrar de la siguiente manera, gráficamente:
7. CONSTRUCCION
El sistema de información tiene como objetivo final elaborar y probar los distintos componentes de
test en Java a partir del conjunto de la especificación lógicas y físicas del mismo con la metodología
POO, obtenido en el proceso de diseño del sistema de Información.
En esta etapa se hará realidad el modelo de diseño es decir se diseñan los objetos así como también
se codificaran el entorno de pruebas. Los programas se definirán y se prepararan para que el sitio
quede en funcionamiento. Así mismo realizara pruebas exhaustivas para asegurar el perfecto
funcionamiento del mismo.
Para este proyecto PERUBANK se utilizaran los siguientes elementos:
Plataforma: Windows 7
Lenguaje de Desarrollo: Java
Herramienta de Modelado: Rational Rose
Herramienta de diseño: Spring
Participantes en las actividades
Construcción del Sistema
Actividades
de Información
A1 A2 A3 A4 A5 A6 A7 A8 A9
Enegelbert Hans Espiritu x x x x x x x x x
Muñoz
Jorge Luis Alcántara Ospina x x x x x x x x x
Harold Josimar Bruno
Calixto
Gabriel Jesus Villayzan
Chancafe
Actividades:
A1. Preparación del entorno de Generación y construcción.
8. A2. Generación del código de los componentes y Procedimientos.
A3. Ejecución de las pruebas de Unitarias.
A4. Ejecución de las pruebas de integración.
A5. Ejecución de las pruebas del Sistema.
A6. Elaboración de los manuales de Usuarios.
A7. Definición de la formación de usuarios Finales.
A8. Construcción de los componentes y procedimiento de migración y carga inicial de datos.
MODELO Y METODOLOGIA
El lenguaje unificado de modelado (UML) es un lenguaje para representar modelos de sistemas
especialmente intensivos en uso de software y un método de desarrollo de software como
piensan muchos.
UML es un lenguaje gráfico para especificación, visualización construcción y documentación de
piezas de información usadas o producidas durante el proceso de desarrollo de software. A estas
piezas de información se le conoce como artefactos. El UML provee marco arquitectónico
modelamiento de negocios y otros sistemas que son software.
La decisión de utilizar UML (UnifiedModeling Lenguaje – Lenguaje unificado de modelado) como
notación para nuestro método de software se debe a que es un estándar de modelado y tiene los
siguientes beneficios aportados por el UML:
1. Provee a los desarrolladores en lenguaje de modelamiento visual listo para utilizar, es así
como nosotros podemos desarrollar e intercambiar modelos orientados a objetos
significativos. El UML consolida un conjunto de conceptos que son generalmente aceptados
por muchos métodos y herramientas de modelado y necesarios en una amplia gama de
aplicaciones. Este es uno de los principales beneficios aportados por UML, permitiendo el
avance de la industria de software para construir modelos que puedan ser utilizados por
deferentes herramientas, debido a su aceptación como estándar de modelado.
9. 2. Es independiente de los lenguajes de programación y de métodos y procesos de desarrollo
de software. UML puede y debe soportar todos los lenguajes de programación y varios
métodos y procesos para construir modelos sin mayor dificultad.
3. Proporciona una base frontal para entender el lenguaje de modelado. Los usuarios usan la
formalidad para ayudarse a comprender el lenguaje, pero el formalismo no debe requerir
muchos niveles o capas de uso excesivo de matemáticas. UML provee de una definición
formal del modelo estático usando el diagrama de clases. Este diagrama es muy popular y
ampliamente aceptado como aproximación formal de un modelo y del intercambio de
información, pero además, el UML expresa restricciones de OCL (ObjectConstraint Lenguaje)
y las operaciones en un lenguaje natural muy preciso.