Documentacion bastanteo - peru bank

487 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
487
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Documentacion bastanteo - peru bank

  1. 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. 2. INDICE1. INTRODUCCIÓN ........................................................................................................................... 32. CASO PROPUESTO ....................................................................................................................... 33. HISTORIAS DE USUARIO.............................................................................................................. 44. ESPECIFICACIONES TÉCNICAS ..................................................................................................... 65. GESTIÓN DEL CÓDIGO ................................................................................................................. 66. CONSTRUCCIÓN Y METODOLOGÍA ............................................................................................. 77. CASOS DE USO........................................................................................................................... 108. MODELO CONCEPTUAL ............................................................................................................. 119. PROTOTIPOS DE PANTALLA ...................................................................................................... 12
  3. 3. 1. INTRODUCCIÓN Con esta documentación se pretende explicar y detallar las especificaciones del trabajodesarrollado para atender los requerimientos del proyectoBastanteo de Poderes, así como pararespaldarla 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 desarrollode un proyecto grupal como este, en el que se dividen los requerimientos y se van validandogranularmente.En ese sentido, analizamos las historias de usuario detalladasen los requerimientos del proyecto yluego 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 testpara arrojar la respuesta esperada.Luego de haber conceptualizado los requerimientos en código, en forma de test, viene la etapa deimplementación del código para hacer funcionar los test. Y finalmente, cerrando el ciclo de desarrollode este proyecto, se Refactoriza el código, simplificándolo, reduciéndolo, organizándolo, peromanteniendo las funcionalidades logradas. 2. CASO PROPUESTO El caso propuesto es el desarrollo de un aplicativoque permita al cliente realizar el proceso debastanteo de poderes, donde los usuarios puedan: - Registrar clientes - Inscribir representantes - Agregar poderes - Bastantear poderes - Verificar poderes - Consultar poderes - Controlar usuarios
  4. 4. 3. HISTORIAS DE USUARIOSe describen los criterios bajos los cuales se puede dar por cumplido un requerimiento, para cada unode estos requerimientos se establecen criterios que nuestros Test deben cumplir para dar porconcluida una funcionalidad.Estas se listan a continuación:1. Registrar clientes.- Como supervisor deseo registrar clientes de modo que los abogados puedanbastantear 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 demodo 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 abogadospuedan 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 elpersonal de agencia pueda consultarlo antes de cada operación.
  5. 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 tienepoder 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 alingresar 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. 6. 4. ESPECIFICACIONES TÉCNICASLenguaje 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, quepermite trabajar en equipo de una manera distribuida.El repositorio principal https://github.com/hariki01/PeruBank es administrado por uno de losintegrantes del grupo, mientras que el resto hace fork al proyecto, creando clones que permitenalterar el código y subirlo a su repositorio clonado, para que luego el administrador del proyecto junteel código en 1 solo.El historial de cambios se puede mostrar de la siguiente manera, gráficamente:
  7. 7. CONSTRUCCIONEl sistema de información tiene como objetivo final elaborar y probar los distintos componentes detest en Java a partir del conjunto de la especificación lógicas y físicas del mismo con la metodologíaPOO, 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énse codificaran el entorno de pruebas. Los programas se definirán y se prepararan para que el sitioquede en funcionamiento. Así mismo realizara pruebas exhaustivas para asegurar el perfectofuncionamiento del mismo.Para este proyecto PERUBANK se utilizaran los siguientes elementos:Plataforma: Windows 7Lenguaje de Desarrollo: JavaHerramienta de Modelado: Rational RoseHerramienta de diseño: SpringParticipantes 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 ChancafeActividades:A1. Preparación del entorno de Generación y construcción.
  8. 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. 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.
  10. 10. Casos de Uso de SistemaProyecto Perú Bank
  11. 11. Modelo Conceptual AdmPoderes * poderes : List<Poderes> + <<Constructor>> AdmPoderes () + registrarPoderes (String codigo, String nombre, String tipoProducto) : void + registrarPoderesparabastanteo (String codigo, String nombre, String tipoProducto) : void - validarDuplicado (String nombre, String tipoProducto) : void + validarPoder (String nombre, String tipoProducto) : void - validarDatosPoderes (String codigo, String nombre, String tipoProducto) : void - poderExiste (String nombre, String tipoProducto) : boolean + buscarPoderes (String nombre, String tipoProducto) : Poderes + buscarcodigoPoder (String nombre, String tipoProducto) : String ... admpoder AdmBastanteos* bastanteos : List<Bastanteo>+ <<Constructor>> AdmBastanteos ()+ registrarBastanteo (String codigo, String codigopoder, String grupo, String codcli, String intervencion, double importe, String fechavenc) : void+ validarBastanteo (String codigopoder, String grupo, String codcli, String intervencion) : void+ validarFecha (Date fecha1, Date fecha2) : void AdmRepresentantes+ retornoFecha (Date fecha1, Date fecha2) : boolean * representantes : List<Representante>- validarDatos (String codigo, String codigopoder, String grupo, String codcli, String intervencion, double importe, String fechavenc) : void admbastanteo + <<Constructor>> AdmRepresentantes ()+ bastanteoexisteCodigo (String codigopoder, String grupo, String codcli, String intervencion) : String + registrarRepresentante (String codigo, String nombres, String apellidos, String tipodoc, String ndoc, String cargo, String grupo, String codcli) : void+ bastanteoExisteCodigo (String codigoCliente, String codigoPoder) : String - validarDuplicado (String tipodoc, String ndoc) : void+ bastanteoExisteGrupo (String codigoBastanteo) : String - representanteExiste (String tipodoc, String ndoc) : boolean+ bastanteoExisteIntervencion (String codigoBastanteo) : String admrep - validarDatosrep (String codigo, String nombres, String apellidos, String tipodoc, String ndoc, String cargo, String grupo, String codcli) : void+ bastanteoExisteFecha (String codigoBastanteo) : String + buscarRepresentante (String tipodoc, String ndoc) : Representante+ validarConsulta (String grupo1, String Intervencion1, String grupo2, String Intervencion2) : void + representanteExisteNdoc (String ndoc) : String+ bastanteoExisteImporte (String codigoBastanteo) : double + validarRepresentanteNdoc (String ndoc) : void+ validarImporte (double importe1, double importe2) : void + representanteExisteGrupo (String codigo) : String ... ... AdmBastanteoVerificacionTest * admcli : AdmClientes = new AdmClientes() * admpoder : AdmPoderes = new AdmPoderes() * admrep : AdmRepresentantes = new AdmRepresentantes() * admbastanteo : AdmBastanteos = new AdmBastanteos() + llenarDatos () : void + ValidarEstadoFecha (boolean sw) : void + VerificarBastanteoPoderYComo () : void + VerificarBastanteoPoderYaVencio () : void + VerificarBastanteoImporteSuperior () : void ... AdmBastanteoTest * admcli : AdmClientes = new AdmClientes() * admpoder : AdmPoderes = new AdmPoderes() + LlenarDatos () : void + siIngresoDatosDeberiaRegistrarBastanteoaSolafirma () : void + siIngresoDatosnoDeberiaRegistrarBastanteoaduplicadoSolafirma () : void + siIngresoDatosDeberiaRegistrarBastanteoconCombinacion () : void + siIngresoDatosnoDeberiaRegistrarBastanteoconCombinacionaexistente () : void ... admcli AdmClientes * clientes : List<Cliente> + <<Constructor>> AdmClientes () + registrarCliente (String codigo, String ruc, String razonSocial, String fechaInicio, String tipoEmpresa, int empleados) : void - validarDuplicado (String codigo, String ruc) : void + validarCliente (String nombre) : void admcli - clienteExiste (String codigo, String ruc) : boolean + clienteexisteCodigo (String nombre) : String - validarDatos (String codigo, String ruc, String razonSocial, String fechaInicio, String tipoEmpresa) : void + buscarCliente (String codigo) : Cliente + clienteExisteRuc (String ruc) : String + validarClienteRuc (String ruc) : void ... admcli AdmRepresentanteTest * admcli : AdmClientes = new AdmClientes() + LlamarClientes () : void + siIngresoDatosDeberiaRegistrarRepresentante () : void + IngresoDatosRepClienteInexistente () : void + IngresoDatosVaciosRepresentante () : void + IngresoRepresentanteDuplicado () : void ... Representante Bastanteo- codigo : String - codigo : String- nombres : String - codigopoder : String- apellidos : String - grupo : String- tipodoc : String - codcli : String- ndoc : String - intervencion : String- cargo : String * importe : double- grupo : String - fechavenc : String- codcli : String + <<Constructor>> Bastanteo (String codigo, String codigopoder, String grupo, String codcli, String intervencion, double importe, String fechavenc)+ <<Constructor>> Representante (String codigo, String nombres, String apellidos, String tipodoc, String ndoc, String cargo, String grupo, String codcli) + getCodigo () : String+ getCodigo () : String + getCodigopoder () : String+ getNombres () : String + getGrupo () : String+ getApellidos () : String + getCodCli () : String+ getTipodoc () : String + getIntervencion () : String+ getNdoc () : String + getImporte () : double+ getCargo () : String + getFechaVenc () : String+ getGrupo () : String ...+ getCodcli () : String ... Usuario Cliente <<Unresolved Class>>- nombre : String - codigo : String Exception- documento : String - ruc : String- email : String - razonSocial : String- user : String - fechaInicio : String- clave : String - tipoEmpresa : String- rol : String - empleados : int+ <<Constructor>> Usuario (String nombre, String documento, String email, String user, String clave, String rol) + <<Constructor>> Cliente (String codigo, String ruc, String razonSocial, String fechaInicio, String tipoEmpresa, int empleados)+ <<Constructor>> Usuario () + getCodigo () : String+ getNombre () : String + getRuc () : String+ getDocumento () : String + getRazonSocial () : String ClienteException+ getEmail () : String + getFechaInicio () : String+ getUser () : String + getTipoEmpresa () : String + <<Constructor>> ClienteException (String mensaje)+ getClave () : String + getEmpleados () : int ...+ getRol () : String ... ... AdmUsuario Combinacion Poderes AdmCombinacion* usuarios : List<Usuario> - codigo : String - codigo : String * combinaciones : List<Combinacion>* roles : List<Rol> - grupo : String - nombre : String + <<Constructor>> AdmCombinacion ()+ <<Constructor>> AdmUsuario () - combinacion : String - tipoProducto : String + registrarCombinacion (String codigo, String grupo, String combinacion) : void+ registrarUsuario (String nombre, String documento, String email, String user, String clave, String rol) : Usuario + <<Constructor>> Combinacion (String codigo, String grupo, String combinacion) + <<Constructor>> Poderes (String codigo, String nombre, String tipoProducto) - validarDatos (String codigo, String grupo, String combinacion) : void+ RegistrarRol (String nombre, String opcion) : Rol + getCodigo () : String + getCodigo () : String + bastanteoexistecombinacion (String codigo, String grupo) : String+ logon (String user, String clave) : void + getGrupo () : String + getNombre () : String + validarCombinacion (String codigo, String grupo, String combinacion) : void+ encuentraUsuario (String user, String clave) : Usuario + getCombinacion () : String + getTipoProducto () : String ... ... ... ... AdmLlenarDatos Rol AdmPoderesTest AdmClienteTest AdmUsuarioTest RepresentanteTest BastanteoTest - nombre : String+ registrarVariosClientes () : AdmClientes - opcion : String + siIngresoDatosDeberiaRegistrarPoderes () : void + siIngresoDatosDeberiaRegistrarCliente () : void + ejecutarLogon () : void + representanteDeberiaCrearseConDatosIniciales () : void + bastanteoDeberiaCrearseConDatosIniciales () : void+ registrarVariosPoderes () : AdmPoderes + <<Constructor>> Rol (String nombre, String opcion) + IngresoDatosPoderNulo () : void + deberiaValidarDatosRequeridos () : void + siRegistrarUsuario () : void ... ...+ registrarVariosRepresentantes () : AdmRepresentantes + getNombre () : String + IngresoDatosPoderDuplicado () : void + noDeberiaRegistrarClientesDuplicados () : void + siRegistrarRol () : void+ registrarVariosBastanteos () : AdmBastanteos + getOpcion () : String ... ... ... ... ... ClienteTest UsuarioTest+ clienteDeberiaCrearseConDatosIniciales () : void + usuarioAdd () : void ... ... 11
  12. 12. PROTOTIPOS DE PANTALLAMENU PRINCIPAL 12
  13. 13. REGISTRO DE CLIENTES 13
  14. 14. REGISTRO DE REPRESENTANTES 14
  15. 15. REGISTRO DE PODERES 15
  16. 16. REPRESENTANTE TIENE PODER Y COMO 16
  17. 17. EL PODER ESTA DADO PERO YA VENCIO 17
  18. 18. REPRESENTANTE NO TIENE PODER PARA REALIZAR LA OPERACIÓN INDICA O EL IMPORTE ESSUPERIOR 18
  19. 19. LISTADO DE REGISTRO DE BASTANTEO 19
  20. 20. NO HAY RESULTADO 20

×