ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja...

182
PROYECTO TERMINAL APLICACIONES DE LA METODOLOGIA UML A UN CASO PRACTICO ASESOR: LUIS FERNANDO CASTRO CAREAGA ALUMNA: ROSA MA. RODRÍGUEZ AGUILAR LICENCIATURA: COMPUTACIÓN MATRICULA: 90226236

Transcript of ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja...

Page 1: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

PROYECTO TERMINAL

APLICACIONES DE LA METODOLOGIA UMLA UN CASO PRACTICO

ASESOR: LUIS FERNANDO CASTRO CAREAGA

ALUMNA: ROSA MA. RODRÍGUEZ AGUILAR

LICENCIATURA: COMPUTACIÓN

MATRICULA: 90226236

Page 2: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos
Page 3: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________1

ÍNDICE

ÍNDICE............................................................................................................................. 1

ADMINISTRACIÓN DEL PROYECTO............................................................................ 5

INTRODUCCIÓN ............................................................................................................ 6

ADMINISTRACIÓN DEL PROYECTO ...................................................................... 7

PLAN DE DESARROLLO .................................................................................... 7

LISTA DE RIESGOS ............................................................................................ 10

PLAN DE MEDICIONES ....................................................................................... 11

DEFINICIÓN DE REQUERIMIENTOS ........................................................................... 12

DEFINICIÓN DEL PROBLEMA ...................................................................................... 13

LISTA DE CARACTERÍSTICAS DESEADAS ................................................................ 14

DIAGRAMA GENERAL DE CASOS DE USO ................................................................ 15

PROTOTIPO ................................................................................................................... 16

DETALLE DE CASOS DE USO ..................................................................................... 24

Caso de uso: Acceder al sistema ......................................................................... 24

Caso de uso: Mantenimiento de artículos ........................................................... 25

Caso de uso: Alta de artículos ............................................................................. 26

Caso de uso: Actualizar artículos ......................................................................... 27

Caso de uso: Baja artículo .................................................................................... 29

Caso de uso: Registrar préstamo ......................................................................... 30

Caso de uso: Devolución ...................................................................................... 31

Caso de uso: Ampliar tiempo de préstamo ........................................................... 33

Caso de uso: Mantenimiento de amigos .............................................................. 34

Caso de uso: Alta de amigos ................................................................................ 35

Caso de uso: Actualizar amigos ........................................................................... 36

Caso de uso: Baja de amigos ............................................................................... 38

Caso de uso: Lista de artículos prestados ............................................................ 39

Caso de uso: Lista de amigos morosos ................................................................ 41

Casos de uso: Salir del Sistema ........................................................................... 41

REQUISITOS NO FUNCIONALES ................................................................................. 42

Page 4: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________2

GLOSARIO DE TÉRMINOS ........................................................................................... 43

PLAN DE PRUEBAS ...................................................................................................... 44

ADMINISTRACIÓN DE LA CONFIGURACIÓN ............................................................. 46

ADMINISTRACIÓN DE LA CONFIGURACIÓN ......................................................... 47

ELEMENTOS DE LA CONFIGURACIÓN A RESGUARDAR .................................... 48

CREACIÓN DEL DEPÓSITO DEL PROYECTO ....................................................... 49

PLAN DE CONFIGURACIÓN .................................................................................... 49

MECANISMOS DE NOMBRADO .............................................................................. 49

DEFINICIÓN DE LÍNEA BASE .................................................................................. 49

SOLICITUD DE CAMBIOS Y SUS PROCEDIMIENTOS .......................................... 50

DISEÑO .......................................................................................................................... 52

DISEÑO ..................................................................................................................... 53

DESCRIPCIÓN DE LA ARQUITECTURA ................................................................. 53

Patrón de arquitectura .......................................................................................... 53

Patrón para aplicaciones Web

...............................................................................

55

DIAGRAMA DE INSTALACIÓN ................................................................................. 55

DIAGRMA DE PAQUETES ....................................................................................... 56

DIAGRAMA DE COMPONENTES ............................................................................ 57

DISEÑO DETALLADO ................................................................................................... 58

DISEÑO DETALLADO ............................................................................................... 59

DIAGRAMA DE CLASES DE DISEÑO ...................................................................... 59

INTERFAZ ................................................................................................................. 59

DOMINIO DEL PROBLE MA ..................................................................................... 60

MODELO DE DATOS ................................................................................................ 62

DISEÑO DE LA BASES DE DATOS ......................................................................... 64

DIAGRAMAS DE SECUENCIA ................................................................................. 65

Acceder al sistema OK ........................................................................................ 65

Acceder al sistema ERROR

..................................................................................

66

Mantenimiento de artículos ................................................................................... 67

Alta de artículos OK (Cuaderno) ........................................................................... 67

Page 5: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________3

Alta de artículos ERROR (Cuaderno) ................................................................... 67

Actualización de artículos OK (Cuaderno) ............................................................ 68

Actualización de artículos ERROR (Cuaderno) .................................................... 69

Baja de artículos OK (Cuaderno) .......................................................................... 69

Baja de artículos ERROR (Cuaderno) .................................................................. 70

Alta de artículo OK (CdMúsica) ............................................................................ 70

Alta de artículo ERROR (CdMúsica) .................................................................... 71

Actualización de artículos OK (CdMúsica) ........................................................... 71

Actualización de artículos ERROR (CdMúsica) .................................................... 72

Baja de Artículos OK (CdMúsica) ........................................................................ 73

Baja de artículos ERROR (CdMúsica) ................................................................. 73

Alta de artículos OK (Libro) .................................................................................. 74

Alta de artículos ERROR(Libro) ............................................................................ 74

Actualización de artículos OK (Libro) .................................................................. 75

Actualización de artículos ERROR (Libro) ........................................................... 76

Baja de artículos OK (Libro) ................................................................................ 76

Baja de artículos ERROR (Libro) .......................................................................... 77

Actualización de artículos ERROR (Cualquier tipo) ............................................. 77

Registro de préstamos OK ................................................................................... 78

Registro de préstamos ERROR ............................................................................ 79

Registro de préstamo (Nuevo amigo) ................................................................... 79

Registro de préstamo (Nuevo artículo) ................................................................ 80

Devolución OK ..................................................................................................... 81

Devolución ERROR ............................................................................................ 81

Ampliar tiempo de préstamo OK .......................................................................... 82

Ampliar tiempo de préstamo ERROR (Datos ya extraídos)

..................................

83

Ampliar tiempo de préstamo ERROR (Datos sin extraer) .................................... 84

Mantenimiento de amigos ..................................................................................... 85

Alta de amigos OK ................................................................................................ 85

Alta de amigos ERROR ........................................................................................ 85

Actualización de amigo OK ................................................................................... 86

Page 6: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________4

Actualización de amigo ERROR (Datos ya extraídos)

..........................................

87

Actualización de amigo ERROR (Datos sin extraer) ............................................ 88

Baja de amigo OK ................................................................................................ 89

Baja de amigo ERROR ........................................................................................ 90

Lista de artículos prestados ................................................................................. 90

Lista de amigos morosos ...................................................................................... 91

Salir ....................................................................................................................... 91

DIAGRAMA DE ESTADOS ....................................................................................... 92

DIAGRAMA DE COMPONENTES ............................................................................ 95

ACTUALIZACIÓN DE LA PLANEACIÓN .................................................................. 96

IMPLEMENTACIÓN ....................................................................................................... 98

IMPLEMENTACIÓN .................................................................................................. 98

CLASES ..................................................................................................................... 99

PLAN DE PRUEBAS UNITARIAS Y SU EJECUCIÓN .............................................. 153

PLAN DE PRUEBAS DE INTEGRACIÓN ................................................................. 160

PLAN DE PRUEBAS DE COMPONENTES............................................................... 170

CONCLUSIONES ...................................................................................................... 179

REFERENCIAS BIBLIOGRAFICAS .......................................................................... 180

Page 7: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________5

SISTEMA DE PRÉSTAMOSPERSONALES

ADMINISTRACIÓN DEL PROYECTO

Page 8: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________6

INTRODUCCIÓN

El objetivo de este Proyecto terminal es observar la importancia que tiene el Proceso

Unificado en el desarrollo de algún producto de software, además de aprender cuales son

las metodologías necesarias para su culminación.

Por lo tanto veremos que el Proceso Unificado describe un conjunto de actividades que

deben realizarse en un determinado orden y nos indican qué hacer, cómo hacerlo, cuando

hacerlo y el motivo por el cual debe ser hecho.

En este proceso es preciso diferenciar cuales son las fases de las que esta compuesto

para poder ver la iniciación y terminación de cada uno de ellas.

El Proceso Unificado propone una serie de ciclos de desarrollo, en donde hay que separar

claramente la etapa de Ingeniería de la etapa de Producción, de los cuales cada uno de

ellos se divide en fases y las fases se dividen en iteraciones.

Los objetivos de las fases son:

• Inicio del proyecto: donde es necesario definir el objetivo del proyecto;

• Elaboración: donde se define la funcionalidad y una arquitectura básica.

• Construcción: en esta parte el producto se desarrolla a través de iteraciones.

• Transición: es donde se librera el producto y se entrega al usuario para uso real.

La división temporal necesita puntos de control o hitos que separen las etapas, las fases,

las iteraciones en los flujos de trabajo, organizando las actividades fundamentales de

gestión y desarrollo, donde estas pueden ir solapadas unas con otras no necesariamente

secuenciales, y de hecho no son actividades secuenciales sino concurrentes. El resultado

de las actividades de los flujos de trabajo son los productos (también conocidos como

artefactos), en donde también son incluidos los diagramas de UML, el código, ejecutables,

etc. Esto se va haciendo de manera incremental.

Page 9: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________7

ADMINISTRACIÓN DEL PROYECTO

PLAN DE DESARROLLO

El objetivo de este proyecto es aprender el Proceso Unificado a lo largo deldesarrollo de un producto de software.

La estrategia que se seguirá para este desarrollo estará basada precisamente en elProceso Unificado (PU), que plantea 4 fases:Inicio, Elaboración, Construcción y Transición.

Estas fases, tienen flujos de trabajo que por el proceso de aprendizaje que se estarásiguiendo, se trabajarán de manera secuencial, aunque se pueden hacer iteraciones delos flujos anteriores al que estaremos aprendiendo en un momento dado.

Los flujos de trabajo que estudiaremos y trataremos de implementar son:

Administración del proyectoDefinición de requerimientosAdministración de la configuraciónAnálisisDiseñoImplementaciónPruebas

Las tareas a realizar y las fechas de entrega de cada flujo de trabajo son:

Administración del proyecto.Productos: Entrega 17 de marzo

• Plan de desarrollo• Lista de riesgos• Plan de mediciones

Definición de requerimientos.Productos:

• Definición del problema• Diagrama general de casos de uso• Prototipo

Page 10: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________8

Productos: Entrega 31 de marzo• Detalle de casos de uso• Requerimientos no funcionales• Glosario de términos• Plan de prueba del sistema

Administración de configuraciónProductos: Entrega 19 de marzo

• Elementos de la configuración a resguardar• Creación del depósito del proyecto• Plan de configuración

AnálisisProductos: Entrega 7 de abril

• Diagramas de clases del análisis• Modelo de la arquitectura del análisis

DiseñoProductos: Entrega 30 de abril

• Descripción de la arquitectura del diseño• Diagramas de paquetes• Diagrama de instalación

Productos: Entrega 12 de mayo• Diagrama de clases del diseño• Diseño de la base de datos• Diagramas de secuencia

ImplementaciónProductos: Entrega 26 de mayo

• Construcción de la interfaz• Código de clases• Plan de pruebas unitarias• Ejecución de pruebas unitarias

PruebasProductos: Entrega 4 de junio

• Plan de pruebas de integración• Plan de pruebas de componentes• Plan de pruebas del sistema

Page 11: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________9

*Con la utilización de Microsoft Project podemos observar la planeación como sigue:

Page 12: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________10

LISTA DE RIESGOS

A continuación se muestra una tabla con los riesgos considerados para este proyecto:

Riesgo Prob de Ocurr Indicador Plan de ContingenciaNo sé programar enJava.

1 Alto Estudio del lenguaje por miparte y la asistencia al tallerde Java.

Falta de conocimientoen el desarrollo deaplicaciones contecnología web.

1 Alto Estudio del lenguaje por miparte y la asistencia al tallerde Java.

Conseguir el manejadorde bases de datos paralas máquinas depruebas

1 Alto Preparación previa de lasmáquinas de prueba con elsoftware necesario.

La sincronización entrelas materiasinvolucradas en elproyecto

0.5 Significativo Comunicación entre losinvolucrados; y mutuoconocimiento del plan.

Conclusión de losproductos en la fechasposteriores a lasestablecidas en el plan

0.4 Moderado Establecer un ritmo detrabajo constante, apegadoal plan y coordinado con laprofesora y mi par.

Contar con el RationalRose en las máquinasde la escuela.

0.5 Moderado Revisión de las máquinas enlos laboratorios.

Conocimientos de otraherramienta paradocumentar (Poseidon)

0.5 Moderado Trabajar con estaherramienta desde el iniciodel proyecto.

Page 13: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________11

PLAN DE MEDICIONES

Como se comentó anteriormente, este proyecto se desarrollará tomando comobase el Proceso Unificado que plantea 4 fases, mismas que cuentan con los siguientesindicadores de su seguimiento:

1) Fase de Inicio.Indicador: Identificar los objetivos del producto a desarrollar.

2) Fase de Elaboración.Indicador: Definición de la arquitectura del producto

3) Fase de Construcción.Indicador: Producto terminado en versión beta.

4) Fase de Transición.Indicador: Liberación del producto al cliente y entrega a revisión por la maestra.

Page 14: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________12

SISTEMA PARA BIBLIOTECA

DEFINICIÓN DE REQUERIMIENTOS

Page 15: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________13

DEFINICIÓN DE REQUERIMIENTOS

DEFINICIÓN DEL PROBLEMA

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”

Objetivo del sistema:

Este sistema se construirá para apoyar a un compañero en su control del préstamode artículos personales a sus amigos. El compañero tiene algunos objetos personales quepuede prestar como cd’s musicales, libros y cuadernos.Así mismo se contará con un registro de los datos de sus amigos, tales como nombre,dirección, teléfono y correo electrónico.Entonces, cuando lleve a cabo un préstamo, hará un registro del objeto, amigo y tiempoinvolucrados. Y cuando recupere este objeto podrá procesarse su devolución.Pero habrá otra forma que tendrá para modificar la información de los préstamos y estaserá el ampliar el tiempo de préstamo para los objetos personales ya prestados.

Además podrá llevar a cabo consultas tales como la obtención de una lista de los objetosprestados en ese momento y que amigo los tienen.Y el sistema también podrá proporcionar una lista de amigos morosos en regresar losobjetos que se le han prestado, de tal forma que le sirva como herramienta para poderpedir los objetos cuyo plazo de préstamo ha vencido.

Es necesario mencionar también que el compañero podrá acceder al sistema por la reddesde cualquier máquina disponible que tenga conexión a internet; siendo él, el únicohabilitado para entrar al sistema.

Page 16: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________14

LISTA DE CARACTERÍSTICAS DESEADAS

A continuación se presentarán las características con las que el sistema debería contar:

1. Se debe poder acceder a través de internet.2. El acceso al sistema será a través de claves que permitan conservar la seguridad

e integridad de la información.3. El registro de los préstamos debe involucrar toda la información suficiente y

necesaria.4. Dentro del registro del préstamo debe ser sencillo la introducción del amigo y del

artículo involucrados.5. Los reportes deben proporcionar la información que el usuario necesita de acuerdo

a la lista requerida.6. El sistema permitirá al usuario actualizar sus registros de préstamo al marcarlo

como artículo devuelto.7. También deberá estar permitido al usuario ampliar la fecha de préstamo.8. Se podrán realizar registros de préstamos de objetos personales tales como cd’s

musicales, libros y cuadernos.9. El sistema deberá contar con datos correspondientes a los amigos, tales como

nombre, dirección, teléfono y correo electrónico.10. Se podrá obtener una lista de los amigos morosos en regresar los objetos

prestados, para poder pedírselos.11. Y también podrá generarse una lista de las cosas que tiene prestadas y a quien.12. Las pantallas que contendrá el sistema deberán ser claras, amigables y útiles para

apoyar al usuario a cumplir con sus objetivos.

Page 17: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________15

DIAGRAMA GENERAL DE CASOS DE USO

Como es sabido a continuación se mostrarán los casos de uso generales que estaráncontemplados dentro de este sistema.

Accesar al sistema Mantenimiento de artículosMantenimiento de amigos

Registrar préstamo

Devolución

Ampliar tiempo de préstamos

Lista de artículos prestadosLista de amigos morosos

Propietario

Salir del s istema

Page 18: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________16

PROTOTIPO

Ingresar Al Sistema

Pantalla principal, donde en todo momento se tendrán presentes los préstamos quese tienen actualmente.

Page 19: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________17

Registro de préstamo

Devolución

Page 20: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________18

Ampliación de tiempo de préstamo

Cambio en la fecha de devolución

Page 21: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________19

Mantenimiento de artículosAlta de artículos

Baja de artículos

Page 22: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________20

Actualización de artículos

Cambios en los valores de los artículos

Page 23: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________21

Mantenimiento de amigosAlta de amigos

Baja de amigos

Page 24: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________22

Cambios en los campos amigos

Actualización de amigos

Page 25: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________23

Lista de artículos prestados

Lista de amigos morosos

Page 26: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________24

DETALLE DE CASOS DE USO

Caso de uso : Accesar al sistema

Actor : Propietario

Descripción : El propietario debe teclear su clave de acceso para poder entrar al sistemay hacer uso del él.

Precondiciones:• El propietario accesa a la página del sistema.• El usuario necesita registrar algún préstamo, consultar las listas, actualizar el

catálogo de artículos, actualizar el catálogo de amigos o hacer una devolución.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Entra a la página del sistema 2 Despliega la interface para laintroducción de la clave deacceso

3 Teclea su clave de acceso E24 Elige la opción enviar 5 Valida la clave de acceso E1, E2

6 Muestra la interface principal delsistema que incluye el menú detrabajo

Excepciones :

Id Nombre AcciónE1 Clave de acceso incorrecta (clave no

existente o nula)El sistema informa el error en la clave ypermite nuevamente su introducción

E2 Cancelación del acceso al sistema El usuario cambia de página y no entra alsistema

Page 27: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________25

Poscondiciones:• El usuario está ya logeado en el sistema.• El sistema se ha posicionado en la pantalla principal del sistema, donde se

muestran al propietario los préstamos que tiene actualmente.

Caso de Uso : Mantenimiento de artículos

Actor : Propietario

Propietario

Alta de artículos Actualización de artículos

Mantenimiento de artículos

<<include>><<include>>

Baja de artículos

<<include>>

Descripción : El propietario puede llevar a cabo la actualización de su catálogo deartículos, operación que incluye las acciones de agregar artículo, modificarlo y eliminarlo.

Precondición :

• El propietario desea llevar a cabo un préstamo de un artículo aún no dado de altoen el sistema.

• Necesita modificar o corregir los datos asociados a algún artículo.• Tiene un artículo que ya no va a prestar y necesita darlo de baja para ya no

incluirlo en algún préstamo.

Page 28: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________26

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Para llevar a cabo algunaoperación de actualización alcatálogo, el usuarioselecciona alguna de lasopciones : “Alta de artículos”,“Actualización de artículos” o“Baja de artículos” en elmenú principal.

2 El sistema despliega la interfacecorrespondiente a la opciónseleccionada

A continuación de esto último se realiza la transacción correspondiente; cuyos pasos estarándescritos en los casos de uso incluidos dentro de éste.

Postcondiciones :• El catálogo de artículos coincide con los artículos que posee el propietario.

Caso de Uso : Alta de artículos

Actor : Propietario

PropietarioAlta de artículos

Descripción : El propietario va actualizar su catálogo de artículos, y lo hará al agregar unomás.Con esto estará dando de alta un nuevo artículo que podrá prestar más adelante.

Precondiciones:• El propietario ha adquirido un nuevo artículo y desea agregarlo a su catálogo de

artículos en el sistema.• Ó el propietario desea prestar un artículo que aún no ha dado de alta en el

sistema.

Page 29: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________27

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Elige el tipo de artículo queestá agregando

E1

2 Teclea el nombre del artículoque dará de alta

3 De acuerdo al tipo de artículo, sedespliegan los campos que sedeben llenar

E1

4 Se llenan los camposcorrespondientes a lascaracterísticas del artículo

E1

5 Se da clic al botón de“Guardar”

6 El sistema almacena el nuevoarticulo

7 Se regresa nuevamente a lainterfaz principal

Excepciones:

Id Nombre AcciónE1 Cancelación de la transacción, cuando

el propietario da clic en CancelarEl sistema se posiciona nuevamente en lapantalla principal

Poscondiciones:• El propietario ahora tiene un artículo más en su inventario; y este artículo está

disponible para ser prestado.

Caso de Uso : Actualización de artículos

Actor : Propietario

PropietarioActualización de artículos

Page 30: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________28

Descripción : El propietario va actualizar su catálogo de artículos, y lo hará modificandolas características de sus artículos en el sistema. Y estos cambios vendrán dados porcambios reales en los artículos.

Precondiciones:• Algunas características de un artículo pudo haber cambiado, por su uso o por

errores en el alta del artículo.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Muestra una lista en la pantallacon todos los artículosregistrados

E1

2 Selecciona el artículo amodificar

E1

3 Da clic al botón Actualizar 4 El sistema se posiciona en lainterfaz donde presenta lascaracterísticas del artículoseleccionado.

E1

5 Modifica las característicasnecesarias y permitidas.

E2

6 Da clic en la opción Guardar 7 Almacena los cambios hechos alartículo.

Excepciones:

Id Nombre AcciónE1 Cancelación de transacción, cuando el

propietario da clic en CancelarEl sistema se posiciona nuevamente en lapantalla principal

E2 Cancelación de transacción, cuando elpropietario da clic en Cancelar

El sistema se posiciona nuevamente en lapantalla donde se despliegan todos losartículos

Poscondiciones:• El artículo quedó almacenado en el sistema con los cambios hechos a sus

características.

Page 31: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________29

Caso de Uso : Baja de artículos

Actor : Propietario

PropietarioBaja de artículos

Descripción : El propietario va actualizar su catálogo de artículos, y lo hará al dar de bajaalguno de ellos.Esto querrá decir, que ya no tendrá disponible ese artículo personal para prestarlo.

Precondiciones:• El propietario ya no puede o quiere tener un artículo disponible para su préstamo.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Muestra una lista en la pantallacon todos los artículosregistrados

E1

2 Selecciona el artículo aeliminar

E1

3 Da clic al botón Eliminar 4 El sistema elimina el artículo delsistema.

Excepciones:

Id Nombre AcciónE1 Cancelación de transacción, cuando el

propietario da clic en CancelarEl sistema se posiciona nuevamente en lapantalla principal

Poscondiciones:• El artículo quedó eliminado del sistema, por lo que ahora no es posible llevar a

cabo el registro de préstamos para ese artículo.

Page 32: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________30

Caso de Uso : Registrar préstamo

Actor : Propietario

Propietario Alta de amigosRegistrar préstamo

Alta de artículos

<<include>>

<<include>>

Descripción : El propietario realiza el préstamo de un artículo personal y debe realizar elregistro del préstamo en el sistema. Si el artículo en cuestión, no está dado de alta en elsistema, entonces podrá darlo de alta “al vuelo”.Si el amigo al que se le hace el préstamo no está dado de alta en el sistema, entoncespodrá darlo de alta “al vuelo”.

Precondiciones:• El propietario realiza un préstamo, y necesita registrarlo en el sistema.• El propietario elige la opción “Registrar préstamo” en el menú principal.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 El usuario elige la opción“Registrar préstamo” en elmenú principal

2 El sistema muestra la interfazcorrespondiente al registro delpréstamo

3 Elige el artículo involucradoen el préstamo

E1, E3

4 Elige el amigo al que se lehace el préstamo.

E2, E3

5 Determina la fecha dedevolución del artículopersonal en cuestión.

E3

6 Elige la opción guardar 7 El sistema registra el nuevopréstamo

E3

8 Se posiciona nuevamente en lainterfaz principal

Page 33: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________31

Excepciones:

Id Nombre AcciónE1 El artículo que se presta no

está dado de alta en elsistema

• El usuario selecciona el campo check para indicarque es un “Nuevo artículo”.

• El sistema se posiciona en la pantalla de alta deartículos personales.

• Se da de alta el nuevo artículo.• El sistema regresa a la interfaz de registro de

préstamo con el nuevo artículo seleccionado.E2 El amigo al que se le hace

el préstamo no está dadode alta en el sistema.

• El usuario selecciona el campo check para indicarque es un “Nuevo amigo”.

• El sistema se posiciona en la pantalla de alta deamigos.

• Se da de alta el nuevo amigo.• El sistema regresa a la interfaz de registro de

préstamo con el nuevo amigo seleccionado.E3 Cancelación de

transacción, cuando elpropietario da clic enCancelar

El sistema se posiciona nuevamente en la pantallaprincipal

Poscondiciones:• El préstamo queda registrado en el sistema.• Queda registrado el artículo, si no estaba dado de alta el artículo personal.• Queda registrado el nuevo amigo, si no estaba dado de alta en el sistema.

Caso de Uso : Devolución

Actor : Propietario

Page 34: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________32

Descripción : Un artículo personal le es devuelto al propietario; por lo tanto, esto debequedar registrado en el sistema para poder prestarlo nuevamente.

Precondiciones:• Que el artículo esté dado de alta en el sistema.• Que el préstamo del artículo personal haya quedado registrado.• Que el artículo le sea devuelto.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 El usuario elige la opción“Devolución” en el menúprincipal

2 El sistema muestra la interfazcorrespondiente a la devolución,donde se muestran los préstamosactuales.

3 Selecciona el préstamocorrespondiente a ladevolución (artículo y amigo)

E1

4 Elige la opción “Guardarcambios”

5 Actualiza el préstamo,asignándole el estatus dedevuelto

6 Asigna el estatus de devuelto alartículo

7 El sistema regresa a la interfaz dedevolución.

Excepciones:

Id Nombre AcciónE1 Cancelación de transacción,

cuando el propietario da clic enCancelar

El sistema se posiciona nuevamente en la pantallaprincipal

Poscondiciones:• El préstamo queda con status de devuelto.• El artículo queda con status de devuelto por lo que ya es posible volverlo a prestar.

Page 35: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________33

Caso de Uso : Ampliar tiempo de préstamos

Actor : Propietario

Descripción : El amigo al que se le hizo un préstamo solicitó una prórroga debido a queaún está utilizando el artículo que se le prestó.Si el propietario acepta entonces debe cambiar la fecha de devolución en el sistema.

Precondiciones:• Que el amigo involucrado en el préstamo solicite una prórroga.• Que el préstamo del artículo personal esté registrado.• Que el propietario acepte el cambio en la fecha de devolución.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 El usuario elige la opción“Ampliar tiempo depréstamos” en el menúprincipal

2 El sistema muestra la interfaz de“Devolución” donde muestra lalista de los préstamos actuales.

3 Selecciona el préstamocorrespondiente a ladevolución (artículo y amigo)

E1

4 Elige la opción “Ampliartiempo”

5 Se posiciona en la interfaz decambio de fecha de devolución.(Muestra los datos generales)

6 Cambia la fecha dedevolución

E2

7 Da clic al botón “Guardar” 8 Almacena el cambio en la fechade devolución

9 Se posiciona nuevamente en lainterfaz de “Devolución”.

Page 36: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________34

Excepciones:

Id Nombre AcciónE1 Cancelación de transacción,

cuando el propietario da clic enCancelar sin modificar fechas.

El sistema se posiciona nuevamente en la pantallaprincipal.

E2 Cancelación de transacción,cuando el propietario da clic enCancelar sin cambiar la fechade devolución a un préstamo.

El sistema se posiciona nuevamente en la pantalla dedespliegue de préstamos.

Poscondiciones:• El préstamo queda con la fecha de devolución modificada.• Si la fecha de devolución había vencido, ahora el amigo no aparecerá en la lista de

morosos (por lo menos si sólo tenía prestado el artículo involucrado).

Caso de Uso : Mantenimiento de amigos

Actor : Propietario

Propietario

Alta de amigos Actualización de amigos

Mantenimiento de amigos

Baja de amigos

<<include>>

<<include>>

<<include>>

Descripción : El propietario puede llevar a cabo la actualización de su catálogo deamigos, operación que incluye las acciones de agregar amigo, modificarlo y eliminarlo.

Page 37: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________35

Precondición :

• El propietario desea llevar a cabo un préstamo de un artículo a un amigo aún nodado de alto en el sistema.

• Necesita modificar o corregir los datos asociados a un amigo.• Tiene un amigo al que ya no se le harán préstamos.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Para llevar a cabo algunaoperación de actualización alcatálogo, el propietarioselecciona alguna de lasopciones : “Alta de amigos”,“Actualización de amigos” o“Baja de amigos” en el menúprincipal.

2 El sistema despliega la interfacecorrespondiente a la opciónseleccionada.

A continuación de esto último, se realiza la transacción correspondiente; cuyos pasos estarándescritos en los casos de uso incluidos dentro de éste.

Postcondiciones :• El catálogo de amigos coincide con los amigos que tiene el propietario, y que les

puede prestar artículos.

Caso de Uso : Alta de amigos

Actor : Propietario

PropietarioAlta de amigos

Descripción : El propietario va actualizar su catálogo de amigos, y lo hará agregando unomás.Con esto estará dando de alta un nuevo amigo al que se le podrán hacer préstamos másadelante.

Page 38: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________36

Precondiciones:• El propietario tiene un nuevo “amigo” al que le hará préstamos más adelante .• Ó el propietario desea prestar un artículo a un amigo que aún no ha dado de alta

en el sistema.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Teclea los datos del amigoque dará de alta

E1

2 Da clic al botón de “Guardar” 3 El sistema almacena el nuevoamigo

4 Se posiciona nuevamente a lainterfaz principal

Excepciones:

Id Nombre AcciónE1 Cancelación de la transacción, cuando

el propietario da clic en CancelarEl sistema se posiciona nuevamente en lapantalla principal

Poscondiciones:• El propietario ahora tiene un amigo más en su catálogo al que le podrá hacer

préstamos.

Caso de Uso : Actualización de amigos

Actor : Propietario

PropietarioActualización de amigos

Page 39: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________37

Descripción : El propietario actualizará su catálogo de amigos, y lo hará modificando susdatos en el sistema.

Precondiciones:• Algunos datos de un amigo pueden haber cambiado o fueron capturados de modo

erróneo al darlos de alta.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Muestra una lista en la pantallacon todos los amigos registrados

E1

2 Selecciona el amigo al quehará cambios

E1

3 Da clic al botón “Actualizar” 4 El sistema se posiciona en lainterfaz donde presenta lascaracterísticas del amigoseleccionado.

5 Modifica las datos necesariosy permitidos.

E2

6 Da clic en la opción “Guardar” 7 Almacena los cambios hechos alamigo.

Excepciones:

Id Nombre AcciónE1 Cancelación de transacción, cuando el

propietario da clic en CancelarEl sistema se posiciona nuevamente en lapantalla principal

E2 Cancelación de transacción, cuando elpropietario da clic en Cancelar

El sistema se posiciona nuevamente en lapantalla donde se despliegan todos losamigos

Poscondiciones:• El amigo quedó almacenado en el sistema con los cambios hechos a sus datos.

Page 40: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________38

Caso de Uso : Baja de amigos

Actor : Propietario

PropietarioBaja de amigos

Descripción : El propietario va actualizar su catálogo de amigos, y lo hará al dar de bajaalguno de ellos.Esto quiere decir que ya no será posible prestarle objetos personales.

Precondiciones:• El propietario ya no prestará artículos personales a un amigo.• Este amigo se encuentra ya registrado en el sistema.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Muestra una lista en la pantallacon los amigos registrados

E1

2 Selecciona el amigo aeliminar

E1

3 Da clic al botón “Eliminar” 4 Elimina al amigo seleccionadopor el propietario.

5 Se posiciona nuevamente en lainterfaz principal.

Excepciones:

Id Nombre AcciónE1 Cancelación de transacción, cuando el

propietario da clic en “Cancelar”.El sistema se posiciona nuevamente en lapantalla principal

Poscondiciones:• El amigo quedó eliminado del sistema.• Ahora no es posible registrar préstamos para él.

Page 41: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________39

Caso de Uso : Lista de artículos prestados

Actor : Propietario

Descripción : El propietario consulta los artículos que tiene prestados en este momento. Ylo hace a través de la lista que genera el sistema y que son desplegados en pantalla.Esta vista estará siempre visible en la interfaz principal.

Precondiciones:• Para que el sistema muestre una lista de los artículos prestados, es necesario que

se tengan préstamos registrados.• Esta lista aparecerá siempre que el propietario entre al sistema.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Selecciona la opción “Lista deartículos prestados” del menúprincipal.

2 Se posiciona en la interfaz dondedespliega la lista de artículos quese tienen prestados.

Poscondiciones:

• El propietario puede revisar los préstamos que tiene hechos hasta este momento(amigo, artículo y fecha de devolución).

Page 42: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________40

Caso de Uso : Lista de amigos morosos

Actor : Propietario

Descripción : El propietario consulta los amigos que son morosos hasta este momento. Ylo hace a través de la lista que genera el sistema y que son desplegados en pantalla.

Precondiciones:

• Para que el sistema muestre una lista de amigos morosos, es necesario que setengan préstamos registrados a amigos con fechas de devolución vencidas.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Selecciona la opción “Lista deamigos morosos” del menúprincipal.

2 Se posiciona en la interfaz dondedespliega la lista de amigosmorosos.

Poscondiciones:

• El propietario puede revisar los amigos que son morosos hasta este momento(amigo y fecha de devolución).

Page 43: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________41

Caso de Uso : Salir del sistema

Actor : Propietario

Descripción : El propietario ya realizó todas las operaciones que necesitaba dentro delsistema. Ahora debe salir del sistema para que nadie que no tenga la clave pueda realizarcambios dentro del sistema que altere la integridad de la información que en éste sealmacena.

Precondiciones:

• El propietario ya no necesita realizar más transacciones dentro del sistema.

Flujo :

ACTOR SISTEMAPaso Acción Paso Acción Excepción

1 Selecciona la opción “Salir”del menú principal.

2 Sale de la interfaz en que seencontraba y se posicionanuevamente en la pantalla delogin del sistema.

Poscondiciones:

• El propietario ha salido del sistema.• Nadie puede utilizar el sistema mientras no sea logeado nuevamente.• El usuario podrá cambiar de página sin riesgo a perder la integridad en la

información que maneja el sistema.• El sistema se posiciona nuevamente en la página de login.

Page 44: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________42

REQUISITOS NO FUNCIONALES

Se desea que el sistema mantenga un equilibrio entre la facilidad de su uso y la utilidadque proporcione al usuario.

Y esto deberá estar cimentado también en un funcionamiento confiable donde semantenga la integridad de los datos que maneje.

No deberá presentar problemas para trabajar en todos los browsers de uso común.

La interfaz con el usuario deberá ser útil, navegable, amigable, clara y suficiente para elusuario y el cumplimiento de su tarea.

El tiempo máximo de espera en la apertura de las páginas no deberá ser mayor a 20segundos.

No deberá ser posible accesar al sistema si no se proporciona la clave correcta de accesoal sistema.

Como requisitos operacionales para el uso del sistema se tienen :

• Computadora personal Pentium como mínimo.• Acceso a internet.• 64 MB de memoria RAM.• Navegador de internet

Para el desarrollo de este sistema se utilizarán las siguientes herramientas :

• Poseidon (CE) para la documentación UML del sistema.• Forte for Java (CE) para la codificación.

Page 45: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________43

GLOSARIO DE TÉRMINOS

Amigo : Persona registrada en el sistema, a la que el propietario puede prestar susartículos personales.

Amigo moroso : Amigo registrado en el sistema al que se le hizo un préstamo, pero lafecha de devolución del artículo ha vencido.

Artículo personal : Objetos personales que el propietario presta a sus amigos. Losobjetos que puede prestar son cd’s musicales, libros y cuadernos.

Préstamo : El propietario presta un artículo personal a un amigo. Y esta información(artículo personal, amigo, fecha de devolución), queda registrada en el sistema.

Propietario : Usuario principal del sistema, quien es el dueño de los objetos personalesque se prestan.

Tipo de artículo : Categorías a las que pertenecen los objetos personales. Estascategorías son diskettes, cd´s programas, cd´s música, películas, libros, cuadernos,copias y manuales.

Page 46: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________44

PLAN DE PRUEBA DEL SISTEMA

Caso de uso Caso de prueba ResultadoAccesar alsistema

Introducción de unaclave de acceso noválida

El sistema muestra en la pantalla un mensajede error de clave inválida y se le permite volvera capturar al propietario

Cancelación deacceso

El usuario no proporciona la clave de acceso alsistema y sólo cambia de página.

Introducción de laclave correcta

El sistema muestra el menú principal y la listade artículos personales prestados en esemomento.

Agregar artículo Llenar datoscorrectamente

El usuario llenó correctamente los datos delartículo.El sistema almacena el nuevo artículo

Llenado de datosincompleto

Si no llenó datos obligatorios, el sistemasolicitará el llenado de éstos para almacenar elnuevo registro.

Cancelación de alta El usuario canceló la transacción antes deguardar el nuevo artículo.El sistema vuelve a la pantalla principal sinningún cambio.

Modificar artículo Cancelación decambios

El usuario dio clic en “Cancelar” a latransacción en la pantalla de muestra de losartículos .El sistema vuelve a la pantalla principal sinningún cambio.

Cancelación decambios a artículoya seleccionado

El usuario dio “Cancelar” a la transacción en lapantalla de cambios a un artículo.El sistema vuelve a la pantalla que muestratodos los artículos.

Guardar cambioscorrectamente

El usuario cambió los datos del artículo.El sistema guarda los cambios hechos.

Eliminar artículo Cancelación deeliminación

El usuario dio clic en “Cancelar” a latransacción en la pantalla que muestra losartículos.El sistema vuelve a la pantalla principal sinningún cambio.

Eliminacióncorrecta

El usuario seleccionó el artículo y dio clic albotón de “Eliminar”.El sistema borra el artículo.

Registrarpréstamo

Prestar un artículopersonal aún nodado de alta

El usuario prestará un artículo personal, peroaún no está registrado.El usuario elige la opción (Check), “NuevoArtículo”.El sistema permite dar de alta al nuevo artículo(Pantallas de Alta de artículos) y regresa a laventana de registro del préstamo

Page 47: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________45

Prestar un artículoa un amigo aún noregistrado

El usuario prestará un artículo a un amigo, peroaún no está registrado en el sistema.El usuario elige la opción (Check). “Nuevoamigo”. El sistema permite dar de alta al nuevoamigo y regresa a la ventana de registro delpréstamo.

Prestar un artículoexistente a unamigo ya existente

El usuario elige un artículo, un amigo y asignala fecha de devolución.El sistema almacena el registro.

Devolución Cancelar ladevolución sinmarcar comodevuelto

El usuario elige “Cancelar” antes de marcarcomo devuelto algún artículo.El sistema se posiciona nuevamente en lapantalla principal.

Ampliar tiempode préstamos

Cancelar sinseleccionar unpréstamo

El usuario da clic en “Cancelar” sin haber leído.

Cancelar sinmodificar la fechade devolución

El usuario da clic en “Cancelar” sin habermodificado la fecha de devolución.

Asignar fechaincongruente

El usuario cambió la fecha de devolución peroes menor que la fecha de devolución original.El sistema debe indicar la incongruencia y noalmacena el cambo aún.

Agregar amigo Cancelar sin haberintroducido losdatos

El usuario elige “Guardar ”El sistema almacena los cambios.

Agregarcorrectamente

El usuario proporciona los datos necesarios.El sistema almacena la información.

Modificar amigo Cancelar sin haberseleccionadodeterminado amigo

El usuario da clic en “Cancelar” sin habermodificado nada.

Cancelar sinmodificar los datosdel amigo

El usuario da clic en “Cancelar” y el sistemavuelve a la pantalla donde se muestran losamigos.

Modificacióncorrecta

El usuario seleccionó un amigo, y modificócorrectamente los datos.El sistema almacenó los datos correctos.

Eliminar amigo Cancelar sin habereliminado nada

El usuario da clic en “Eliminar amigo” sin haberseleccionado nada.

Eliminar amigo Se seleccionó un amigo y se eliminacorrectamente.

Page 48: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________46

SISTEMA DE PRÉSTAMOSPERSONALES

ADMINISTRACIÓN DE LACONFIGURACIÓN

Page 49: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________47

ADMINISTRACIÓN DE LA CONFIGURACIÓN

ELEMENTOS DE LA CONFIGURACIÓN A RESGUARDAR

Los elementos de la configuración son todos aquellos productos del proyecto a losque se les pueden hacer cambios durante el proceso.Y además de que nos interesa conservar sus respaldos a lo largo de sus modificaciones.

Y precisamente en nuestro caso, estos elementos coinciden con todos los productos quese generarán en el proyecto.

A continuación los productos se enlistarán agrupados por flujo de trabajo:

Administración del proyecto1. Plan de desarrollo2. Lista de riesgos3. Plan de mediciones

Definición de requerimientos1. Definición del problema2. Diagrama general de casos de uso3. Prototipo4. Detalle de casos de uso5. Requerimientos no funcionales6. Glosario de términos7. Plan de prueba del sistema

Administración de configuración1. Elementos de la configuración a resguardar2. Creación del depósito del proyecto3. Plan de configuración

Análisis1. Diagramas de clases del análisis2. Modelo de la arquitectura del análisis

Page 50: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________48

Diseño1. Descripción de la arquitectura del diseño2. Diagramas de paquetes3. Diagrama de instalación4. Diagrama de clases del diseño5. Diseño de la base de datos6. Diagramas de secuencia

Implementación1. Construcción de la interfaz2. Código de clases3. Plan de pruebas unitarias4. Ejecución de pruebas unitarias

Pruebas1. Plan de pruebas de integración2. Plan de pruebas de componentes3. Plan de pruebas del sistema

Además de estos productos, sin lugar a dudas, si algo también sufre cambios es elcódigo:

1. *.java2. *.class

Además de que es importante conservar sus distintas versiones.

CREACIÓN DEL DEPÓSITO DEL PROYECTO

La construcción de nuestro depósito del proyecto se divide a dos niveles:

v Electrónico: Estará dado en la siguiente carpetaC:\IIMAS\TOO\SISTEMA DE PRÉSTAMOS PERSONALES\DEPÓSITO\

para el trabajo en casa.

Y C:\DOCUMENTS AND SETTINGS\HURIBE\TOO\SISTEMA DE PRESTAMOSPERSONALES\ Para el trabajo en las máquinas del IIMAS.

v En papel: Estará conformado por toda la documentación que se irá entregando ala maestra a lo largo del tiempo ya planeado, hasta llegar a formar la carpetacompleta.

Page 51: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________49

PLAN DE CONFIGURACIÓN

MECANISMO DE NOMBRADO

A continuación definiremos el mecanismo que implementaremos para nombrarnuestros elementos de configuración que estarán almacenados en nuestro depósito:

XX…XX_n.mm.TIPO

• Donde XX…XX corresponde al nombre del archivo con posibles secuénciales• n.mm Versión• TIPO Tipo del documento.

Con los archivos almacenados en distintas carpetas de acuerdo al flujo de trabajo al quepertenezcan:\admonproy\\admonconfig\\defrequerimientos\\análisis\\diseño\\implementación\\pruebas\

Ejemplo:

…\SISTEMA DE PRÉSTAMOSPERSONALES\DEPÓSITO\Diseño\DiagPaquetes10_1.5.bmp

Debemos dejar claro también que las versiones iniciales de todos nuestros productos, esdecir el inicio del conteo, será a partir de la versión 1.0.

DEFINICIÓN DE LÍNEAS BASE

En esta sección deberemos determinar cuales serán las líneas base de nuestroselementos de configuración que ya mencionamos antes.Estas líneas base estarán determinadas por los productos generados, que se deberánentregar en las fechas establecidas en el plan del proyecto, pero esto se dará sólo hastaque sean aprobados por el par y la maestra.

Y será a partir de estos archivos base, que se llevarán cabo las modificaciones y cambiosque surjan a raíz del avance del proyecto, en consenso con el par y la maestra.

Page 52: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________50

SOLICITUD DE CAMBIO Y SUS PROCEDIMIENTOS

El motivo de tener determinada una solicitud para llevar a cabo los cambios, espoder contar con un registro y seguimiento de los cambios que sean requeridos a lo largodel proyecto.

El formato de la solicitud de cambio quedaría como sigue:

Forma de Solicitud de Cambio

Proyecto: Solicitante:Flujo de trabajo: Responsable:Fecha:

Nombre del producto:______________________________________________________________Razones por las que se solicita elcambio:______________________________________________________________________________________________________________________________Beneficios con elcambio:____________________________________________________________

Repercusiones en el resto delproyecto:________________________________________________

Descripción delcambio:_____________________________________________________________

Estado del cambio:AprobadoRechazado

Aprobado/Rechazado por:Administrador del proyecto (Maestra): ___________________________________Par (Compañero): ___________________________________________________Responsable (Yo): ___________________________________________________

Page 53: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________51

Debido al alcance del proyecto y a que habrá un solo responsable (multi-rol), elcambio podrá ser solicitado por el par, por la maestra ó por mi mismo; de tal forma quesea posible tener registrado a través de estos documentos los cambios hechos a laslíneas base de los productos.

Una vez solicitado el cambio, las otras dos partes del proyecto deberán determinar si esAceptado o Rechazado para su realización; quedando registrado en el mismo documento.

En caso de ser aceptado, deberá llevarse a cabo el cambio a la línea base del productoafectado; y este cambio se reportará como un anexo del estado de la configuración en losentregables ya planeados.

Page 54: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________52

SISTEMA DE PRÉSTAMOSPERSONALES

DISEÑO

Page 55: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________53

DISEÑO

Este documento servirá como el punto de partida para nuestro flujo de trabajo deimplementación.Para lograr esto deberemos llegar a un mayor nivel de detalle a partir de los productosobtenidos durante el análisis

DESCRIPCIÓN DE LA ARQUITECTURA DEL DISEÑO

Para la definición de la arquitectura deberemos basarnos en la selección de dos tipos depatrones:

• Selección de un patrón de arquitectura.

• Selección de un patrón para aplicaciones web.

Patrón de arquitectura.

Patrón Modelo-Vista-Controlador (Model-View-Controller) MVC

Este patrón se usa en aplicaciones interactivas que requieren una interfaz de usuarioflexible.

Bajo este patrón el sistema se divide en tres partes:

Ø Modelo: Encapsula los datos y la funcionalidad de la aplicación.Ø Vista: Que despliega la información contenida en el modelo, al usuario (pueden

existir varias vistas).Ø Controlador: Cada vista tiene asociado un controlador, recibe entradas que

traduce en invocaciones de métodos del Modelo o de Vista. El usuario interactúacon el sistema solamente vía controladores

Page 56: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________54

Específicamente para nuestro sistema podremos implementar este patrón como lomuestra el siguiente diagrama.

Dentro de las razones por las que se elige este patrón son las siguientes :

• Se tiene flexibilidad a la hora de cambiar las vistas y los controladores.• La aplicación puede soportar distintos tipos de interfaz de usuario.• Los componentes se pueden cambiar sin causar grandes estragos al sistema.• Separación de tareas dentro del sistema.• Logísticamente, separa claramente el desarrollo de interfaz del workflow y lógica

de negocio permitiendo desarrollar ambas en paralelo o con personalespecializado.

• También es evidente que potencia la reutilización, soporte de múltiples interfacesde usuario (Html, sHtml, Wml, Desktop applications, etc.) y de múltiples idiomas,localismos, etc.

• El cambio de interfaz no deberá de tener consecuencias para el núcleo del códigode la aplicación.

Page 57: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________55

Patrón para aplicación web.

Patrón Thin WEB client

Para llevar a cabo la selección de este patrón se consideraron los siguientes aspectos:

• Sólo se deben garantizar las mínimas características en los clientes.• Toda la lógica del negocio se ejecuta del lado del servidor.• Toda la interacción del usuario se realiza a través del browser.• El servidor siempre regresa una página formateada en HTML para ser interpretada

por el cliente.• El protocolo de conexión y comunicación que se utiliza es HTTP que es el más

utilizado.• El enlace se lleva a cabo “sin conexión”.• Manejo de páginas JSP con scripts que se ejecutan en el servidor.• Estas páginas tienen acceso a todos los recursos del servidor (lógica del negocio,

BD, etc.).• En general este conjunto de de características nos llevan también a un gran

flexibilidad en el tipo de los clientes que podrán participar.

DIAGRAMA DE INSTALACIÓN

A continuación definiremos los nodos que estarán involucrados en nuestro sistema.

Servidor

Cliente 1

Cliente 2

Este nodo consta de :-Servidor de páginasTomcat-JSP's-Contenedor de servlets-Contenedor de beans-BD

WWW BrowserProtocolo HTTP

WWW BrowserProtocolo HTTP<<<<Protocolo HTTP>>>>

<<<<Protocolo HTTP>>>>

Page 58: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________56

DIAGRAMAS DE PAQUETES

En este diagrama quedarán especificados los subsistemas (paquetes), de los que estaráintegrado nuestro sistema.

Page 59: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________57

DIAGRAMAS DE COMPONENTES

Ahora mostraremos los componentes de los que constará el sistema, donde se podránobservar elementos no considerados en los componentes que están más ligados alobjetivo del sistema en el diagrama anterior.

Page 60: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________58

SISTEMA DE PRÉSTAMOSPERSONALES

DISEÑODETALLADO

Page 61: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________59

DISEÑO DETALLADO

Este documento servirá como el punto de partida para nuestro flujo de trabajo deimplementación.Para lograr esto deberemos llegar a un mayor nivel de detalle a partir de los productosobtenidos durante el análisis y la definición de requerimientos.

DIAGRAMA DE CLASES DEL DISEÑO

INTERFAZPara la interfaz se presentan las siguientes clases

IHLogin

open()refresh()

IHPrincipal

open()refresh()

IHRegistro

open()refresh()

IHDevolucion

open()refresh()

IHSeleccion_prestamo

open()refresh()

IHAmpliacion

open()refresh()

IHAlta_Articulo

open()refresh()

IHBaja_Articulo

open()refresh()

IHSeleccion_Articulo

open()refresh()

IHActualizaicon_Articulo

open()refresh()

IHAlta_Amigo

open()refresh()

IHBaja_Amigo

open()refresh()

IHSeleccion_Amigo

open()refresh()

IHActualizacion_Amigo

open()refresh()

IHLista_Art_Prestados

open()refresh()

IHLista_Amig_Morosos

open()refresh()

Page 62: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________60

DOMINIO DEL PROBLEMA

LOS SERVLETS

SDevolucion

doGet(request, response)doPost(request, response)

Login

doGet(request, response)doPost(request, response)

SAAmigo

doGet(request, response)doPost(request, response)

SAArticulo

doGet(request, response)doPost(request, response)

SActAmigo

doGet(request, response)doPost(request, response)

SActArticulo

doGet(request, response)doPost(request, response)

SAmpliacion

doGet(request, response)doPost(doGet, doPost)

SBAmigo

doGet(request, response)doResponse(doGet, doResponse)

SBArticulo

doGet(request, response)doResponse(request, response)

SPrestamo

doGet(request, response)doPost(request, response)

SUpdateArticulo

doGet(request, response)doPost(request, response)

Page 63: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________61

Para las clases del dominio del problema, nuestro diagrama de clases queda dividido enlas siguientes dos partes :

Prestamoprestamo : MDPrestamoprestamos : Vector

Prestamo()getPrestamos() : Vectorset_prestamo(articulo : Integer, amigo : Integer, f echa_prestamo : String, f echa_dev : String) : Booleandev olucion(cv e_prestamo : Integer) : Booleanget_desc_articulo(cv e_prestamo : Integer) : Stringget_desc_tipo_articulo(cv e_prestamo : Integer) : Stringget_amigo(cv e_prestamo : Integer) : Stringget_f echadev (cv e_prestamo : Integer) : Stringcambia_f echa(cv e_prestamo : Integer, f echa : String) : Boolean

Amigoamigo : MDAmigoamigos : Vector

Amigo()set_amigo(nombre : String, direccion : String, telefono : String, correo : String) : Booleanget_amigos_elim() : Vectorget_amigos_act() : Vectordelete_amigo(cve_amigo : Integer) : Booleanget_amigo(cve_amigo : Integer) : Vectorupdate_amigo(cve_amigo : Integer, nombre : String, direccion : String, telefono : Str ing, correo : String) : Booleanget_amigos_morosos() : Vectorget_amigos_query() : VectorgetAmigos() : Vector

Articulo

artic ulo : MDArtic uloarticulos : Vec torcd : MDCDmusicacuaderno : MDCuadernolibro : MDLibro

Articulo()get_articulos( ) : Vectorget_articulos_elim() : Vec torpresta_ar ticulo(cve_articulo : Integer, con : Connection) : Booleandevuelve_articulo(cve_articulo : Integer, con : Connection) : Booleanset_cd(nombre : String, tipo_articulo : Integer , desc_estado : String, interprete : String, genero : Str ing, canciones : Integer, original : Integer, tipo : Integer) : Integerset_cuaderno(nombre : String, tipo_articulo : Integer, descrip_estado : String, profesor : String, num_materias : Integer, num_hojas : Integer) : Integerset_libro(nombre : String, tipo_articulo : Integer, desc rip_estado : String, autor : Str ing, editorial : String, edic ion : String, genero : String, isbn : String, paginas : Integer ) : Integerdelete_ar tic ulo(cve_articulo : Integer) : Booleanget_tipo_articulo(cve_ar ticulo : Integer) : Integerget_articulo(cve_artic ulo : Integer, tipo_articulo : Integer) : Vec torupdate_cd(cve_articulo : Integer, nombre : String, es tado : String, interprete : Str ing, genero : String, canc iones : Integer , original : Integer, tipo : Integer) : Booleanupdate_cuaderno(cve_articulo : Integer, nombre : String, es tado : String, profesor : String, materias : Integer, hojas : Integer) : Booleanupdate_libro(cve_ar tic ulo : Integer, nombre : String, estado : String, autor : String, editor ial : Str ing, edic ion : String, genero : String, is bn : Str ing, paginas : Integer) : Booleanget_art_prestados() : Vectorget_articulos_query() : Vec tor

Page 64: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________62

MODELO DE DATOS

A continuación se tiene la primer parte de dos, del diagrama de clases de nuestro modelode datos.

MDAmigo

MDAmigo()get_amigos() : Vectoravector(rset : ResultSet) : Vectorget_amigos_elim() : Vectorget_amigos_act() : Vectorget_amigo(cv e_art iculo : Integer) : Vectorset_amigo(nombre : String, direccion : String, telef ono : String, correoe : String) : Booleandelete_amigo(cv e_amigo : Integer) : Booleanupdate_amigo(cv e_amigo : Integer, nombre : String, direccion : String, telef ono : String, correoe : String) : Booleanget_conexion() : Connectionget_amigos_morosos() : Vectorav ector_morosos(rset : ResultSet) : Vectoravector_f echa(rset : ResultSet) : Vectoracomoda_f echa(f echa : String, char : Character) : Stringget_amigos_query () : Vector

MDPropietariomiusuario : Stringmipassword : Stringelpassword : String

MDPropietario()get_password(con : Connection) : Booleanv alidar_usuario() : Booleanget_conexion() : Connection

MDPrestamo

MDPrestamo()get_conexion() : Connectionget_prestamos() : Vectorav ector(rset : ResultSet) : Vectorset_prestamo(cv e_articulo : Integer, cv e_amigo : Integer, f echa_prestamo : String, f echa_dev : String) : Booleanacomoda_f echa(f echa : String, char : Character) : Stringv alida_f echa(f echa : String) : Booleancambia_f echa(cv e_prestamo : Integer, f echa : String) : Booleanget_art iculo(cv e_prestamo : Integer) : Integerget_desc_articulo(cv e_prestamo : Integer) : Stringget_desc_tipo_articulo(cv e_prestamo : Integer) : Stringget_amigo(cv e_prestamo : Integer) : Stringget_f echadev (cv e_prestamo : Integer) : String

Conexion

get_conexion() : Connection

Page 65: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

________________________________________________________________________________63

Segunda parte del diagrama de clases para el modelo de datos.

MDArticulo

MDArticulo()set_articulo(nombre : String, tipo_articulo : Integer, desc_estado : String, con : Connection) : Integerdelete_articulo(cv e_articulo : Integer) : Booleanpresta_articulo(cv e_articulo : Integer, con : Connection) : Booleandevuelv e_articulo(cv e_articulo : Integer, con : Connection) : Booleanget_articulos() : Vectorget_articulos_elim() : Vectoravector(rset : ResultSet) : Vectorget_tipo_articulo(cv e_articulo : Integer) : Integerget_conexion() : ConnectiongetArticulo(cv e_articulo : Integer, tipo_articulo : Integer) : Vectorupdate_cd(cv e_articulo : Integer, nombre : String, estado : String, interprete : String, genero : String, canciones : Integer, original : Integer, tipo : Integer) : Booleanupdate_cuaderno(cv e_articulo : Integer, nombre : String, estado : String, prof esor : String, materias : Integer, hojas : Integer) : Booleanupdate_libro(cv e_articulo : Integer, nombre : String, estado : String, autor : String, editorial : String, edicion : String, genero : String, isbn : String, paginas : Integer) : Booleanupdate_articulo(cv e_articulo : Integer, nombre : String, estado : String, con : Connection) : Integerget_art_prestados() : Vectorav ector_f echa(rset : ResultSet) : Vectorget_articulos_query () : Vectorav ector_disponible(rset : ResultSet) : Vectoracomoda_f echa(fecha : String, char : Character) : String

MDCDmusica

MDCDmusica()set_cd(nombre : String, tipo_articulo : Integer, descrip_estado : String, interprete : String, genero : String, num_canciones : Integer, original : Integer, tipo : Integer) : Booleanupdate_cd(cv e_articulo : Integer, interprete : String, genero : String, canciones : Integer, original : Integer, tipo : Integer, con : Connection) : Boolean

MDCuaderno

MDCuaderno()set_cuaderno(nombre : String, t ipo_articulo : Integer, descrip_estado : String, prof esor : String, num_materias : Integer, num_hojas : Integer) : Integerupdate_cuaderno(cv e_articulo : Integer, prof esor : String, num_materias : By te, num_hojas : Short, con : Connection) : Integer

MDLibro

MDLibro()set_libro(nombre : String, tipo_articulo : Integer, descrip_estado : String, autor : String, editorial : String, edicion : String, genero : String, ISBN : String, num_paginas : Integer) : Integerupdate_libro(cv e_articulo : Integer, autor : String, editorial : String, edicion : String, genero : String, ISBN : String, paginas : Integer, con : Connection) : Integerget_conexion() : Connection

Page 66: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES_____________________________________________________ADMINISTRACIÓN DELPROYECTO

________________________________________________________________________________64

DISEÑO DE LA BASE DE DATOS

A continuación se muestran las tablas que integrarán nuestra base de datos.

CVE_ARTICULO = CVE_ARTICULO

CVE_ARTICULO = CVE_ARTICULO

CVE_ARTICULO = CVE_ARTICULO

CVE_AMIGO = CVE_AMIGO

CVE_ARTICULO = CVE_ARTICULO

ARTICULO

CVE_ARTICULONOMBRETIPO_ARTICULODESCRIP_ESTADODISPONIBLESTATUS

integervarchar(50)tinyintvarchar(60)binarybinary

<pk>

CDMUSICA

CVE_ARTICULOINTERPRETEGENERONUM_CANCIONESORIGINALTIPO

integervarchar(50)varchar(20)smallintbinarybinary

<pk,fk>

PROPIETARIO

USUARIOPASSWORDNOMBRE

varchar(10)varchar(10)varchar(50)

<pk><pk>

AMIGO

CVE_AMIGONOMBREDIRECCIONTELEFONOCORREOESTATUS

integervarchar(50)varchar(50)varchar(20)varchar(30)binary

<pk>

PRESTAMO

CVE_PRESTAMOCVE_ARTICULOCVE_AMIGOFECHA_PRESTAMOFECHA_DEVSTATUS

integerintegerintegerdatedatebinary

<pk><fk2><fk1>

CUADERNO

CVE_ARTICULONUM_MATERIASNUM_HOJAS

integertinyintsmal lint

<pk,fk>LIBRO

CVE_ARTICULOAUTOREDITORIALEDICIONGENEROISBNNUM_PAGINAS

integervarchar(50)varchar(50)varchar(10)varchar(20)varchar(13)integer

<pk,fk>

TIPO_ARTICULO

TIPO_ARTICULODESC_TIPO

tinyintvarchar(30)

<pk>

Esta BD será construida y manejada con Adaptive Server Anywhere (ASA) como nuestromanejador de la base de datos.Dentro de esta notación que se manejó la flecha è, representa a 1-*.

Page 67: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________65

DIAGRAMAS DE SECUENCIA

A continuación se mostrarán los diagramas de secuencia, ligados a sus diagramas decasos de uso correspondientes.Se presentarán los diagramas correspondientes a sus vertientes, es decir, lo casosexitosos (OK) y los erróneos (ERROR, que representan los casos inconclusos).

ACCESAR AL SISTEMA OK

login : IHLogin Login : Login dprop :MDPropietario

prestamo :Prestamo

dprestamo :MDPrestamo

pal : IHPrincipalusuario

acceso_paginaopen( )

usuario_password

doPost(request : , response : ) MDPropietario( )

validar_usuario( )

get_password(con : Connection)

Prestamo( )

getPrestamos( )

forward( )

MDPrestamo( )

get_prestamos( )

Page 68: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________66

ACCESAR AL SISTEMA ERROR

error :IHLogin_error

login : IHLogin login : Login dprop :MDPropietario

usuario

acceso_paginaopen( )

usuario_passworddoPost(request : , response : )

MDPropietario( )

val idar_usuario( )

forward( )get_password(con : Connection)

Se manda un mensaje de error, y se queda en la pantalla de login.

Page 69: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________67

MANTENIMIENTO DE ARTICULOS

ALTA DE ARTÍCULOS OK (CUADERNO)

usuario pal : IHPrincipal alta :IHAlta_Art iculo_Cuaderno

art : SAArticulo articulo : Art iculo cuaderno :MDCuaderno

sel :IHSeleccion_tipo

alta_articulos

datos

guardardoPost(request : , response : )

set_cuaderno(nombre : String, tipo_articulo : Integer,descrip_estado : String, prof esor : String, num_materias :

Integer, num_hojas : Integer)

forward( )

CUADERNO forward( )

Articulo( )

MDCuaderno( )

set_cuaderno(nombre : St ring, tipo_articulo :Integer, descrip_estado : St ring, prof esor : String,

num_materias : Integer, num_hojas : Integer)

forward( )

ALTA DE ARTÍCULOS ERROR (CUADERNO)

usuario pal : IHPrincipal alta :IHAlta_Articulo_Cuaderno

sel : IHSeleccion_tipo

alta_articulos

datos

cancelar

forward( )

CUADERNOforward( )

forward( )

Page 70: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________68

ACTUALIZACIÓN DE ARTÍCULOS OK (CUADERNO)

getArticulo(cv e_art iculo : Integer, tipo_articulo : Integer)

usuario pal : IHPrincipal sel :IHSeleccion_Articu

art : Articulo dart : MDArticuloact_art :SActArticulo

supdate :SUpdateArticulo

act_art :IHActualizacion_Articulo_Cuade

actualizacion_articulosforward( )

selecc_articulo

actual izar

modi fica_campos

guardar

Articulo( )

get_articulo(cv e_art iculo : Integer, tipo_articulo : Integer)MDArticulo( )

doGet(request : , response : )

modificar( )

refresh( )

Articulo( )

update_cuaderno(cv e_art iculo : Integer, nombre : String, estado :String, prof esor : String, materias : Integer, hojas : Integer)

MDArticulo( )

update_cuaderno(cv e_articulo : Integer, nombre : String, estado: String, prof esor : String, materias : Integer, hojas : Integer)

doPost(request : , response : )forward( )

Page 71: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________69

ACTUALIZACIÓN DE ARTÍCULOS ERROR (CUADERNO)

usuario pal : IHPrincipal sel :IHSeleccion_Art iculo

art iculo : Art iculo dart : MDArt iculosart : SAArt iculo act_art :IHActualizacion_Articulo_Cuader

actualizacion_articulosforward( )

selecc_articulo

actualizar

modifica_campos

cancelar

Articulo( )

get_articulo(cv e_articulo : Integer, t ipo_articulo : Integer)

forward( )

doPost(request : , response : )forward( )

MDArticulo( )

getArticulo(cv e_articulo : Integer, t ipo_articulo : Integer)

BAJA DE ARTÍCULOS OK (CUADERNO)usuario pal : IHPrincipal baja :

IHBaja_Art iculoart : Articulo dart : MDArticulosbarticulo :

SBArticulo

baja_articulosforward( )

seleccion_articulo

eliminar

Articulo( )

get_articulos_el im( ) MDArticulo( )

get_articulos_elim( )

doPost(request : , response : )Articulo( )

delete_articulo(cve_articulo : Integer)

MDArticulo( )

delete_articulo(cv e_articulo : Integer)

forward( )

Page 72: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________70

BAJA DE ARTÍCULOS ERROR (CUADERNO)

usuario pal : IHPrincipal baja :IHBaja_Articulo

art : Articulo dart : MDArticulo

baja_art iculosf orward( )

cancelar

Articulo( )

get_articulos_elim( ) MDArticulo( )

get_articulos_elim( )

f orward( )

ALTA DE ARTÍCULOS OK (CDMUSICA)

usuario pal : IHPrincipal alta_cd :IHAlta_Articulo_CD

alta_art :SAArticulo

articulo : Art iculo mdcd :MDCDmusica

sel_tipo :IHSeleccion_tipo

alta_articulos

datos

guardardoPost(request : , response : )

set_cd(nombre : String, tipo_articulo : Integer,descrip_estado : String, interprete : String,genero : String, num_canciones : Integer,

original : Integer, tipo : Integer)

forward( )

CD Musicalforward( )

Articulo( )

set_cd(nombre : String, tipo_articulo : Integer,desc_estado : String, interprete : String,

genero : String, canciones : Integer, original :Integer, tipo : Integer)

MDCDmusica( )

forward( )

Page 73: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________71

ALTA DE ARTÍCULOS ERROR (CDMUSICA)

usuario pal : IHPrincipal alta_cd :IHAlta_Articulo_CD

sel : IHSeleccion_tipo

alta_articulos

datos

cancelar

refresh( )

forward( )forward( )

ACTUALIZACIÓN DE ARTÍCULOS OK (CDMUSICA)

update_cd(cv e_articulo : Integer, nombre : String,estado : String, interprete : String, genero : String,canciones : Integer, original : Integer, tipo : Integer)

usuario pal : IHPrincipal sel : IHSeleccion_Articulo mdart : MDArticuloSUpdate :SUpdateArticulo

act_art :SActArticulo

art : Articuloact_art :IHActualizacion_Articulo_CD

actualizacion_art iculosforward( )

selecc_articulo

actual izar

Articulo( )

get_articulos_elim( )

doPost(request : , response : )forward( )

get_articulo(cve_articulo : Integer,tipo_articulo : Integer)

Articulo( )

MDArticulo( )

getArticulo(cv e_articulo : Integer, tipo_articulo : Integer)

MODIFICA CAMPOS

GUARDAR CAMBIOS doPost(request : , response : ) Articulo( )

update_cd(cv e_articulo : Integer, nombre : String, estado : String, interprete : String,genero : St ring, canciones : Integer, original : Integer, tipo : Integer)

MDArticulo( )

MDArticulo( )

get_articulos_elim( )

Page 74: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________72

ACTUALIZACIÓN DE ARTÍCULOS ERROR (CDMUSICA)

usuario pal : IHPrincipal sel_Art :IHSeleccion_Articulo

art : Articulo dart : MDArticuloih_act_art :IHActualizacion_Articulo_CD

act_art :SActArticulo

ACTUALIZACIÓN DE ARTÍCULOSforward( ) Articulo( )

get_articulos_elim( )MDArticulo ( )

get_articulos_elim( )

SELECCIONA UN ARTICULO doPost (request : , response : )forward( )

Articulo( )

get_articulo(cv e_articulo : Integer, tipo_articulo : Integer)MDArticulo ( )

getArticulo(cv e_articulo : Integer, tipo_articulo : Integer)

ACTUALIZA CAMPOS

CANCELAR

forward( )

Page 75: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________73

BAJA DE ARTÍCULOS OK (CDMUSICA)

usuario pal : IHPrincipal baja :IHBaja_Art iculo

art : Articulo dart : MDArticulosb_art : SBArt iculo

baja_articulosforward( )

seleccion_articulo

eliminar

refresh( )

Articulo( )

get_articulos_el im( ) MDArticulo( )

get_articulos_elim( )

doPost(request : , response : )

Articulo( )

delete_articulo(cv e_articulo : Integer)MDArticulo( )

delete_articulo(cv e_articulo : Integer)

BAJA DE ARTÍCULOS ERROR (CDMUSICA)

usuario pal : IHPrincipal baja :IHBaja_Articulo

art : Articulo dart : MDArticulo

baja_articulosforward( )

seleccion_articulo

cancelar

refresh( )

Articulo( )

get_articulos_elim( ) MDArticulo( )

get_articulos_elim( )

Page 76: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________74

ALTA DE ARTÍCULOS OK (LIBRO)

usuario pal : IHPrincipal alta :IHAlta_Articulo_Libro

articulo :SAArticulo

art : Articulo mdlibro : MDLibrosel_tipo :IHSeleccion_tipo

alta_articulos

datos

guardar

forward( )

LIBROforward( )

doPost(request : , response : )Articulo( )

set_libro(nombre : String, tipo_articulo : Integer, descrip_estado : String, autor: String, editorial : String, edic ion : String, genero : String, isbn : String,

paginas : Integer)MDLibro( )

set_libro(nombre : String, tipo_articulo : Integer,descrip_estado : String, autor : String, editorial : String,

edicion : String, genero : String, ISBN : String,num_paginas : Integer)

forward( )

ALTA DE ARTÍCULOS ERROR (LIBRO)

usuario pal : IHPrincipal alta :IHAlta_Articulo_Libro

sel : IHSeleccion_tipo

alta_articulos

datos

cancelar

refresh( )

forward( )

SELECCION DE LIBRO

forward( )

Page 77: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________75

ACTUALIZACIÓN DE ARTÍCULOS OK (LIBRO)

getArticulo(cv e_articulo : Integer, tipo_articulo : Integer)

usuario pal : IHPrincipal sel : IHSeleccion_Articulo dl ib : MDLibrosupdate_art :SUpdateArticulo

sactart :SActArticulo

art : Articuloact_art_libro :IHActualizacion_Articulo_Libro

actualizacion_articulosforward( )

selecc_articulo

actual izar

Articulo( )

get_articulos_eli m( )

modifi ca_campos

guardar

doPost(request : , response : ) forward( )

get_articulo(cve_articulo : Integer,tipo_articulo : Integer)

Articulo( )

MDLibro( )

doPost(request : , response : ) Articulo( )

update_libro(cv e_articulo : Integer, nombre : String, estado : String,autor : String, editorial : String, edicion : String, genero : String, isbn :

String, paginas : Integer)

update_libro(cv e_articulo : Integer, nombre : String, estado : String, autor : String, editorial :String, edicion : String, genero : String, isbn : String, paginas : Integer)

MDLibro( )

forward( )

Page 78: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________76

ACTUALIZACIÓN DE ARTÍCULOS ERROR (LIBRO)

usuario pal : IHPrincipal sel : IHSeleccion_Articulo sact_l ibro :SActArticulo

dart : MDArticuloart : Articuloact_art :IHActualizaicon_Articulo

actualizacion_articulosforward( )

selecc_articulo

actual izar

Articulo( )

get_articulos_elim( )

modifica_campos

cancelar

refresh( )

MDArticulo( )

get_articulos_elim( )

doPost(request : , response : ) forward( )

get_articulo(cve_articulo : Integer,

tipo_articulo : Integer)

Articulo( )

MDArticulo( )

getArticulo(cve_articulo : Integer,t ipo_articulo : Integer)

BAJA DE ARTÍCULOS OK (LIBRO)

usuario pal : IHPrincipal baja :IHBaja_Art iculo

art : Articulo dart : MDArticulosbaja : SBArt iculo l ib : Libro

baja_articulosforward( )

seleccion_articulo

eliminar

Articulo( )

get_articulos_elim( ) MDArticulo( )

get_articulos_elim( )

doPost(request : , response : )

Articulo( )

delete_articulo(cv e_articulo : Integer)MDArticulo( )

delete_articulo(cv e_articulo : Integer)

forward( )

Page 79: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________77

BAJA DE ARTÍCULOS ERROR (LIBRO)

usuario pal : IHPrincipal baja :IHBaja_Articulo

art : Articulo dart : MDArticulo

baja_articulosforward( )

seleccion_articulo

cancelar

forward( )

Articulo( )

get_articulos_elim( ) MDArticulo( )

get_articulos_elim( )

ACTUALIZACIÓN DE ARTICULOS ERROR (CUALQUIER TIPO)

usuario pal : IHPrincipal sel : IHSeleccion_Art iculo art : Articulo dart : MDArt iculo

actualizacion_articulosforward( )

cancelar

forward( )

Articulo( )

get_articulos_el im( )MDArticulo( )

get_articulos( )

Page 80: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________78

REGISTRO DE PRÉSTAMO OK

usuario pal : IHPrincipal reg : IHRegistro prest : Prestamo dprest :MDPrestamo

art : Articulo amig : Amigosprestamo :SPrestamo

regis trar_prestamoforward( )

datos

guardar

ge t_articulos( )

getAmigos( )

doPost(request : , response : )

set_prestamo(articulo : Integer, amigo : Integer,f echa_prestamo : String, f echa_dev : String)

Prestamo( )

MDPrestamo( )

set_prestamo(cv e_articulo : Integer, cv e_amigo : Integer,f echa_prestamo : String, f echa_dev : String)

forward( )

Page 81: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________79

REGISTRO DE PRÉSTAMO ERROR

usuario pal : IHPrincipal reg : IHRegistro art : Articulo amig : Amigo dart : MDArt iculo damigo :MDAmigo

registrar_prestamoforward( )

datos

cancelar

forward( )

get_articulos( )

getAmigos( )

get_articulos( )

get_amigos( )

REGISTRO DE PRÉSTAMO (NUEVO AMIGO)

usuario pal : IHPrincipal reg : IHRegistro prest : Prestamo dprest :MDPrestamo

sprestamo :SPrestamo

alta_amigo :IHAlta_Amigo

REGISTRAR PRESTAMOforward( )

datos

guardar

MDPrestamo( )

set_prestamo(cv e_articulo : Integer, cv e_amigo : Integer,f echa_prestamo : String, f echa_dev : String)

Por cuestion de espacio no sepone la extracción de amigos yarticulos

NUEVO AMIGO

forward( )A partir de aquí se pasa al escenariode dar de alta un amigo

doPost(request : , response : )Prestamo( )

set_prestamo(articulo : Integer, amigo : Integer,f echa_prestamo : String, fecha_dev : String)

forward( )

Page 82: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________80

REGISTRO DE PRÉSTAMO (NUEVO ARTICULO)

usuario pal : IHPrincipal reg : IHRegistro prest : Prestamosprest : SPrestamosel_tipo :IHSeleccion_tipo

Por cuestion de espacio no sepone la extracción de amigos yarticulos

A partir de aquí se pasa alescenario de dar de alta unarticulo

registrar_prestamoopen( )

datos

guardar

NUEVO AMIGO forward( )

doPost(request : , response : )Prestamo( )

set_prestamo(articulo : Integer, amigo : Integer,fecha_prestamo : String, fecha_dev : String)

forward( )

Page 83: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________81

DEVOLUCIÓN OK

usuario pal : IHPrincipal dev : IHDev olucion prest : Prestamo dprest :MDPrestamo

sdev : SDev olucion

devolucionforward( )

seleccion

guardar_cambios

MDPrestamo( )

cambia_f echa(cv e_prestamo : Integer, f echa : String)

Prestamo( )

getPrestamos( )

doPost(request : , response : )

Prestamo( )

dev olucion(cv e_prestamo : Integer)

forward( )

DEVOLUCIÓN ERROR

usuario pal : IHPrincipal dev : IHDev olucion prest : Prestamo dprest :MDPrestamo

sprest :SPrestamo

devolucion forward( )

seleccion

cancelar

forward( )

Prestamo( )

getPrestamos( )MDPrestamo( )

get_prestamos( )

Page 84: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________82

AMPLIAR TIEMPO PRESTAMO OK

usuario pal : IHPrincipal sel_prest :IHSeleccion_prestamo

prest : Prestamo dprest :MDPrestamo

samp :SAmpliacion

ampl :IHAmpliacion

ampliar_tiempoopen( )

getPrestamos( )

Prestamo( )

MDPrestamo( )

get_prestamos( )

seleccionar_prestamo

ampliar_tiempo

forward( )

doPost(request, response)

Prestamo( )

cambia_f echa(cve_prestamo : Integer, f echa : String)

MDPrestamo( )

cambia_f echa(cve_prestamo : Integer,f echa : String)

get_desc_articulo(cv e_prestamo : Integer)

get_desc_t ipo_articulo(cv e_prestamo : Integer)

Prestamo( )

get_amigo(cv e_prestamo : Integer)

get_f echadev (cve_prestamo : Integer)

forward( )

CAMBIAR FECHA

Page 85: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________83

AMPLIAR TIEMPO PRESTAMO ERROR (DATOS YA EXTRAIDOS)

usuario pal : IHPrincipal sel_prest :IHSeleccion_prestamo

prest : Prestamo dprest :MDPrestamo

samp :SAmpliacion

ampl :IHAmpliacion

ampliar_tiempoopen( )

seleccionar_prestamo

ampliar_tiempo

getPrestamos( )

Prestamo( )

MDPrestamo( )

get_prestamos( )

forward( )

get_desc_articulo(cv e_prestamo : Integer)

get_desc_tipo_articulo(cv e_prestamo : Integer)

Prestamo( )

get_amigo(cve_prestamo : Integer)

get_fechadev (cv e_prestamo : Integer)

CAMBIAR FECHA

CANCELAR

forward( )

Page 86: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________84

AMPLIAR TIEMPO PRESTAMO ERROR (DATOS SIN EXTRAER)

pal : IHPrincipalusuario sel_prest :IHSeleccion_prestamo

prest : Prestamo dprest :MDPrestamo

ampliar_tiempoopen( )

seleccionar_prestamo

CANCELAR

getPrestamos( )

Prestamo( )

MDPrestamo( )

get_prestamos( )

forward( )

Page 87: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________85

MANTENIMIENTO DE AMIGOS

ALTA DE AMIGOS OK

usuario pal : IHPrincipal amigo :IHAlta_Amigo

amigo : Amigo damigo :MDAmigo

samigo : SAAmigo

alta_amigos forward( )

llenado_datosdoPost(request : , response : )

Amigo( )

set_amigo(nombre : String, direccion : String,telefono : String, correo : String)

MDAmigo( )

set_amigo(nombre : String, direccion : String,telef ono : String, correoe : String)

forward( )

ALTA DE AMIGOS ERROR

usuario pal : IHPrincipal

alta_amigos

amigo :IHAlta_Amigo

amigo :IHAlta_Amigo

open( )

llenado_datos

cancelar

refresh( )

Page 88: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________86

ACTUALIZACIÓN DE AMIGOS OK

usuario pal : IHPrincipal sel_amigo :IHSeleccion_Amigo

amigo : Amigo damigo :MDAmigo

sactamigo :SActAmigo

act_amigo :IHActualizacion_Amigo

actualizacion_amigosforward( )

Amigo( )

getAmigos( ) MDAmigo( )

get_amigos( )

seleccion_amigo

actualizarforward( )

Amigo(cve_articulo : Integer)

get_amigo(cve_ami go : Integer) MDAmigo( )

get_amigo(cv e_articulo : Integer)

actualiza_datos

guardar doPost(request : , response : )

Amigo( )

update_amigo(cv e_amigo : Integer, nombre : String,direccion : String, telef ono : String, correo : String)

MDAmigo( )

update_amigo(cv e_amigo : Integer, nombre : String,direccion : String, telef ono : String, correoe : String)

forward( )

Page 89: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________87

ACTUALIZACIÓN DE AMIGOS ERROR (DATOS YA EXTRAIDOS)

usuario pal : IHPrincipal sel_amigo :IHSeleccion_Amigo

amigo : Amigo damigo :MDAmigo

sactamigo :SActAmigo

act_amigo :IHActualizacion_Amigo

actualizacion_amigosforward( )

seleccion_amigo

actualizar

Amigo( )

getAmigos( ) MDAmigo( )

get_amigos( )

forward( )Amigo(cve_articulo : Integer)

get_amigo(cve_amigo : Integer) MDAmigo( )

get_amigo(cv e_articulo : Integer)

actual iza_datos

CANCELAR

forward( )

Page 90: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________88

ACTUALIZACIÓN DE AMIGOS ERROR (DATOS SIN EXTRAER)

usuario pal : IHPrincipal sel_amigo :IHSeleccion_Amigo

amigo : Amigo damigo :MDAmigo

actualizacion_amigosforward( )

CANCELAR

Amigo( )

getAmigos( ) MDAmigo( )

get_amigos( )

forward( )

Page 91: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________89

BAJA DE AMIGOS OK

usuario pal : IHPrincipal baja :IHBaja_Amigo

amigo : Amigo damigo :MDAmigo

sbamig : SBAmigo

baja_amigos

forward( )

get_amigos_eli m( )MDAmigo( )

get_amigos_elim( )

seleccion_amigo

ELIMINAR

delete_amigo(cv e_amigo : Integer)

MDAmigo( )

forward( )

doPost(request, response)

Amigo( )

delete_amigo(cv e_amigo : Integer)

Page 92: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________90

BAJA DE AMIGOS ERROR

usuario pal : IHPrincipal baja :IHBaja_Amigo

amigo : Amigo damigo :MDAmigo

baja_amigos

forward( )

seleccion_amigo

CANCELAR

forward( )

get_amigos_elim( )MDAmigo( )

get_amigos_elim( )

LISTA DE ARTICULOS PRESTADOS

usuario pal : IHPrincipal prestados :IHLista_Art_Prestados

articulo : Articulo darticulo :MDArticulo

lista_art_prestados

open( )

get_art_prestados( )

Articulo( )

MDPrestamo( )

get_art_prestados( )

regresar

forward( )

Page 93: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________91

LISTA DE AMIGOS MOROSOS

usuario pal : IHPrincipal morosos :IHLista_Amig_Morosos

amigo : Amigo damigo :MDAmigo

lista_amigos_morosos

forword( )

regresar

forward( )

get_amigos_morosos( )

Amigo( )

MDPrestamo( )

get_amigos_morosos( )

SALIR

usuario pal : IHPrincipal login : IHLogin

SALIRforward( )

Page 94: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________92

DIAGRAMAS DE ESTADOS

Estos diagramas fueron utilizados para la representación de la navegación entre laspantallas, y fue dividido en los tres siguientes diagramas :

Trabajo con los préstamos

Inicio

IHLogin

IHPrincipalIHRegistro

entrada_pagina

login_password_correctos

IHDevolucion

IHSeleccion_prestamo

IHAmpliacion

guardar / cancelarguardar / cancelar

guardar /cancelar IHLista_art_pr

estados

IHLista_amigos_morosos

guardar

cancelarregresar

regresar

registrar_prestamo devolucion

ampl iar_tiempo

lista_art_prestados

lista_amig_morosos

sali r

Page 95: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________93

Trabajo con los artículos

IHLogin

Inicio

entrada_pagina

IHPrincipal

login_password_correctos

IHAlta_articulo

IHBaja_articulo

IHSeleccion_articulo

guardar / cancelar

salir

alta_articulos

baja_articulos

guardar / cancelar

actualizacion_articulos

IHActualizacion_articulo

guardar / cancelar

actualizar

cancelar

Page 96: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________94

Trabajo con los amigos

Inicio

IHLogin

entrada_pagina

IHPrincipal

login_password_correctos

IHAlta_amigo IHBaja_amigo IHSeleccion_Amigo

IHActual izacion_amigo

sali r

alta_amigosguardar / cancelar

baja_amigos

eliminar / cancelar

actualizacion_amigos

actualizarguardar / cancelar

cancelar

Page 97: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________95

DIAGRAMAS DE COMPONENTES

Ahora mostraremos los componentes de los que constará el sistema, que en la granmayoría, coinciden con la distribución de los paquetes. Esto debido a la sencillez de sucontenido.

Listas Actualizacion_Prestamos

Actualizacion_Articulos

Actualizacion_Amigos

Servlets

Tomcat Seguridad

BD Beans JSPS

Page 98: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________96

ACTUALIZACIÓN DE LA PLANEACIÓN

Las tareas a realizar y las fechas actualizadas de entrega (pasadas y venideras) de cadaflujo de trabajo son:

Administración del proyecto.Productos: Entrega 17 de marzo

• Plan de desarrollo• Lista de riesgos• Plan de mediciones

Definición de requerimientos.Productos: Entrega 31 de marzo

• Definición del problema• Diagrama general de casos de uso• Prototipo• Detalle de casos de uso• Requerimientos no funcionales• Glosario de términos• Plan de prueba del sistema

Administración de configuraciónProductos: Entrega 19 de marzo

• Elementos de la configuración a resguardar• Creación del depósito del proyecto• Plan de configuración

AnálisisProductos: Entrega 7 de abril

• Diagramas de clases del análisis• Modelo de la arquitectura del análisis

Diseño (alto nivel)Productos: Entrega 30 de abril

• Descripción de la arquitectura del diseño• Diagramas de paquetes• Diagrama de instalación

Page 99: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________97

Diseño (detallado)Productos: Entrega 12 de mayo

• Diagrama de clases del diseño• Diseño de la base de datos• Diagramas de secuencia• Diagramas de estados• Diagramas de componentes• Actualización de la planeación

ImplementaciónProductos: Entrega 26 de mayo

• Construcción de la interfaz• Código de clases• Plan de pruebas unitarias• Ejecución de pruebas unitarias

PruebasProductos: Entrega 4 de junio

• Plan de pruebas de integración• Plan de pruebas de componentes• Plan de pruebas del sistema

**A continuación con la utilización de Microsoft Project se podrá observar la planeaciónoriginal (línea base), y los datos reales del proyecto :

Page 100: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________98

SISTEMA DE PRÉSTAMOSPERSONALES

IMPLEMENTACIÓN

Page 101: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________99

IMPLEMENTACIÓN

CLASES

package clases_ros;import java.util.*;

public class Amigo { MDAmigo amigo; Vector amigos;/************************************************************************************/ public Vector getAmigos() { amigo = new MDAmigo(); amigos = new Vector(); amigos = amigo.getAmigos(); return amigos; }/************************************************************************************/ public boolean set_amigo(String nombre, String direccion, String telefono, Stringcorreoe) { amigo = new MDAmigo(); return amigo.set_amigo(nombre, direccion, telefono, correoe); }/**********************************************************************************/public Vector get_amigos_elim() { amigo = new MDAmigo(); return amigo.get_amigos_elim(); }/**********************************************************************************/public Vector get_amigos_act() { amigo = new MDAmigo(); return amigo.get_amigos_act(); }/**********************************************************************************/ public boolean delete_amigo(int cve_amigo) //ELIMINACION LOGICA DEL AMIGO { amigo = new MDAmigo(); return amigo.delete_amigo(cve_amigo); }/**********************************************************************************/public Vector get_amigo(int cve_amigo) {

Page 102: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________100

amigo = new MDAmigo(); return amigo.get_amigo(cve_amigo); }/**********************************************************************************/ public boolean update_amigo(int cve_amigo, String nombre, String direccion, Stringtelefono, String correoe) //ACTUALIZACION DE UN AMIGO { amigo = new MDAmigo(); return amigo.update_amigo(cve_amigo, nombre, direccion, telefono, correoe); }/************************************************************************/ public Vector get_amigos_morosos() { amigo = new MDAmigo(); return amigo.get_amigos_morosos(); }/****************************************************************************/ public Vector get_amigos_query() //MOSTRADO DE TODOS LOS ARTICULOS QUESE PUEDEN ELIMINAR { //EXISTEN Y NO ESTÁN PRESTADOS amigo = new MDAmigo(); return amigo.get_amigos_query(); }/************************************************************************************//* public static void main(String[] args) { Vector vect; Amigo amig = new Amigo(); vect = amig.getAmigos(); System.out.println("VAMONOS"); }*/}

Page 103: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________101

package clases_ros;import java.util.*;import java.sql.*;

public class Articulo { private MDArticulo articulo; private Vector articulos; private MDCDmusica cd; private MDCuaderno cuaderno; private MDLibro libro;/***************************************************************************/ public Vector getArticulos() { articulo = new MDArticulo(); articulos = new Vector(); articulos = articulo.getArticulos(); return articulos; }/***************************************************************************/ public Vector get_articulos_elim() { articulo = new MDArticulo(); articulos = new Vector(); articulos = articulo.get_articulos_elim(); return articulos; }/***************************************************************************/ public boolean presta_articulo(int cve_articulo, Connection con) { articulo = new MDArticulo(); return articulo.presta_articulo(cve_articulo, con); }/***************************************************************************/ public boolean devuelve_articulo(int cve_articulo, Connection con) { articulo = new MDArticulo(); return articulo.devuelve_articulo(cve_articulo, con); }/******************************************************************************************/ public int set_cd(String nombre, int tipo_articulo, String descrip_estado, Stringinterprete, String genero, int canciones, int original, int tipo) { cd = new MDCDmusica(); return cd.set_cd(nombre, tipo_articulo, descrip_estado, interprete, genero,canciones, original, tipo); }/*************************************************************************************/

Page 104: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________102

public int set_cuaderno(String nombre, int tipo_articulo, String descrip_estado, String profesor, int num_materias, int num_hojas) { cuaderno = new MDCuaderno(); return cuaderno.set_cuaderno(nombre, tipo_articulo, descrip_estado, profesor,num_materias, num_hojas); }/******************************************************************************************/ public int set_libro(String nombre, int tipo_articulo, String descrip_estado, String autor, String editorial, String edicion, String genero, String isbn, int paginas) { libro = new MDLibro(); return libro.set_libro(nombre, tipo_articulo, descrip_estado, autor, editorial, edicion, genero, isbn, paginas); }/**********************************************************************************/ public boolean delete_articulo(int cve_articulo) //ELIMINACION DEL ARTICULO { articulo = new MDArticulo(); return articulo.delete_articulo(cve_articulo); }/************************************************************************/ public int get_tipo_articulo(int cve_articulo) { articulo = new MDArticulo(); return articulo.get_tipo_articulo(cve_articulo); }/**********************************************************************************/ public Vector getArticulo(int cve_articulo, int tipo_articulo) { //EXTRACCION DE LOS DATOS DEL ARTICULO PARA SUACTUALIZACION articulo = new MDArticulo(); return articulo.getArticulo(cve_articulo, tipo_articulo); }/**********************************************************************************/ public boolean update_cd(int cve_articulo, String nombre, String estado, Stringinterprete, String genero, int canciones, int original, int tipo) { articulo = new MDArticulo(); return articulo.update_cd(cve_articulo, nombre, estado, interprete, genero, canciones,original, tipo); }/**********************************************************************************/ public boolean update_cuaderno(int cve_articulo, String nombre, String estado, String profesor, int materias, int hojas) { articulo = new MDArticulo(); return articulo.update_cuaderno(cve_articulo, nombre, estado, profesor, materias,hojas);

Page 105: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________103

}/**********************************************************************************/ public boolean update_libro(int cve_articulo, String nombre, String estado, String autor, String editorial, String edicion, String genero, String isbn, int paginas) { articulo = new MDArticulo(); return articulo.update_libro(cve_articulo, nombre, estado, autor, editorial, edicion,genero, isbn, paginas); }/************************************************************************/ public Vector get_art_prestados() { articulo = new MDArticulo(); return articulo.get_art_prestados(); }/**********************************************************************************/ public Vector get_articulos_query() //MOSTRADO DE TODOS LOS ARTICULOS QUESE PUEDEN ELIMINAR { //EXISTEN Y NO ESTÁN PRESTADOS articulo = new MDArticulo(); return articulo.get_articulos_query(); }/***************************************************************************/

/* public static void main(String[] args) { Vector vect; Articulo artic = new Articulo(); boolean b = artic.presta_articulo(4); System.out.println(b); }*/}

Page 106: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________104

CLASE CONEXION

package clases_ros;

import java.util.*;import java.sql.*;

public class Conexion {

public Connection get_conexion() { Driver driver; Connection connection; String dbURL = "jdbc:odbc:SAP"; Properties p = new Properties(); p.put("user", "SAP"); p.put("password", "SAP"); connection = null; try { String driverName = "sun.jdbc.odbc.JdbcOdbcDriver"; driver = (Driver)Class.forName(driverName).newInstance(); connection = driver.connect(dbURL, p); } catch(ClassNotFoundException e) { System.out.println( e.getMessage() ); } catch(SQLException e) { System.out.println( e.getMessage() ); } catch(Exception ex ) { System.out.println("Error." + ex.getMessage() ); } return connection; }/* public static void main(String args[]) { Connection co; Conexion c = new Conexion(); co = c.get_conexion(); if (co == null) { System.out.println(""); System.out.println("no se conecto"); }

Page 107: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________105

else { System.out.println(""); System.out.println(co.toString()); } }*/}

Page 108: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________106

CLASE AMIGO

package clases_ros;import java.util.*;import java.sql.*;import java.text.*;

public class MDAmigo{/**********************************************************************************/public Vector getAmigos() { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) { return vect; }

try { est = con.createStatement(); selectSQL = "SELECT AMIGO.nombre, "+ "AMIGO.cve_amigo "+ " FROM AMIGO "+ " WHERE STATUS = 1;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector(resset); return vect; }

}/**********************************************************************************/ private Vector avector(ResultSet rset)

Page 109: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________107

{ Vector renglon = null; Vector tabla = null; String dato;

try { tabla = new Vector();//probar while (rset.next()) { renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); renglon.add(dato); } tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} return tabla; }/**********************************************************************************/public Vector get_amigos_elim() { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) return vect;

try { est = con.createStatement(); selectSQL = "SELECT nombre, direccion, telefono, correoe, cve_amigo "+ " FROM AMIGO WHERE STATUS = 1 AND cve_amigo not in "+ "(SELECT cve_amigo from PRESTAMO WHERE status = 0 );";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (resset == null) return vect; else

Page 110: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________108

{ vect = avector(resset); return vect; } }/**********************************************************************************/public Vector get_amigos_act() { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) return vect;

try { est = con.createStatement(); selectSQL = "SELECT nombre, direccion, telefono, correoe, cve_amigo "+ " FROM AMIGO "+ " WHERE STATUS = 1;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (resset == null) return vect; else { vect = avector(resset); return vect; } }/**********************************************************************************/public Vector get_amigo(int cve_amigo) { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) return vect;

Page 111: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________109

try { est = con.createStatement(); selectSQL = "SELECT nombre, direccion, telefono, correoe, cve_amigo "+ " FROM AMIGO "+ " WHERE cve_amigo = " + cve_amigo + ";";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (resset == null) return vect; else { vect = avector(resset); return vect; } }/**********************************************************************************/ public boolean set_amigo(String nombre, String direccion, String telefono, String correoe) { //INSERCION DE UN NUEVO ARTICULO int cve_amigo = -1; //REGRESA SU CVE DE ARTICULO String insertSQL; ResultSet reset; int registros = -1; Connection con;

con = get_conexion(); if (con == null) return false;

try { Statement est = con.createStatement(); insertSQL="INSERT INTO AMIGO (nombre, direccion, telefono, correoe, status, )VALUES('"+ nombre + "', '" + direccion + "', '" + telefono + "', '" + correoe + "', 1);"; registros = est.executeUpdate(insertSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros != 1) { return false; } return true; }/**********************************************************************************/ public boolean delete_amigo(int cve_amigo) //ELIMINACION LOGICA DEL AMIGO

Page 112: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________110

{ Connection con; String delfSQL; int registros = -1;

con = get_conexion(); if (con == null) return false;

try { Statement est = con.createStatement(); delfSQL="UPDATE AMIGO SET STATUS = 0 WHERE cve_amigo = " + cve_amigo +";"; registros = est.executeUpdate(delfSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros != 1) return false; return true; }/**********************************************************************************/ public boolean update_amigo(int cve_amigo, String nombre, String direccion, Stringtelefono, String correoe) //ACTUALIZACION DE UN AMIGO { Connection con; String updateSQL; int registros = -1;

con = get_conexion(); if (con == null) return false;

try { Statement est = con.createStatement(); updateSQL = "UPDATE AMIGO SET nombre = '" + nombre + "', direccion = '" +direccion + "', telefono = '" + telefono + "', correoe = '" + correoe + "'" + " WHERE cve_amigo = " + cve_amigo + ";"; registros = est.executeUpdate(updateSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros != 1) return false;

Page 113: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________111

return true; }/**********************************************************************************/ private Connection get_conexion() { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }/************************************************************************/ public Vector get_amigos_morosos() { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) return vect; DateFormat df = DateFormat.getDateInstance(); String hoy = new String(df.format(new java.util.Date())); hoy = acomoda_fecha(hoy, '/'); try { est = con.createStatement(); selectSQL = "SELECT AMIGO.nombre, AMIGO.telefono, AMIGO.correoe, " + "ARTICULO.nombre, PRESTAMO.fecha_dev "+ "FROM PRESTAMO, ARTICULO, AMIGO "+ "WHERE PRESTAMO.status = 0 AND PRESTAMO.cve_articulo =ARTICULO.cve_articulo "+ " AND PRESTAMO.cve_amigo = AMIGO.cve_amigo "+ " AND PRESTAMO.fecha_dev < \'" + hoy + "\' " + " ORDER BY AMIGO.nombre, ARTICULO.nombre ;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector_morosos(resset); return vect; } }

Page 114: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________112

/************************************************************************/ private Vector avector_morosos(ResultSet rset) //TRASPASA EL RESULTSET A UNVECTOR { Vector renglon = null; Vector tabla = null; String dato; try { tabla = new Vector();//probar while (rset.next()) { renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); if (i == 5) dato = acomoda_fecha(dato, '-'); renglon.add(dato); } tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return tabla; }/************************************************************************/ private Vector avector_fecha(ResultSet rset) //TRASPASA EL RESULTSET A UNVECTOR { Vector renglon = null; Vector tabla = null; String dato;

try { tabla = new Vector();//probar while (rset.next()) { renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); if (i == 3 || i == 4) { dato = acomoda_fecha(dato, '-'); }

renglon.add(dato);

Page 115: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________113

} tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return tabla; }/*****************************************************************************/ private String acomoda_fecha(String fecha, char car) { String dia = "", mes = "", ano = ""; int indice1 = 0, indice2 = 0;

indice2 = fecha.indexOf(car, indice1); dia = fecha.substring(indice1, indice2); indice1 = indice2 + 1;

indice2 = fecha.indexOf(car, indice1); mes = fecha.substring(indice1, indice2); indice1 = indice2 + 1;

ano = fecha.substring(indice1, fecha.length());

if (dia.length() == 1) dia = "0" + dia;

return ano + "/" + mes + "/" + dia; }/**********************************************************************************/ public Vector get_amigos_query() //MOSTRADO DE TODOS LOS ARTICULOS QUESE PUEDEN ELIMINAR { //EXISTEN Y NO ESTÁN PRESTADOS String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion(); if (con == null) return vect; try { est = con.createStatement(); selectSQL = "SELECT AMIGO.nombre, AMIGO.direccion, AMIGO.telefono, "+ " AMIGO.correoe FROM AMIGO "+ " WHERE AMIGO.status = 1 "+ " ORDER BY AMIGO.nombre;";

Page 116: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________114

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector(resset); return vect; } }/**********************************************************************************//* public static void main (String args[]) { Vector vect; MDAmigo amigo = new MDAmigo(); vect = amigo.get_amigos_query(); System.out.println("salida"); }*/}

Page 117: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________115

CLASE ARTÍCULO

package clases_ros;import java.util.*;import java.sql.*;

public class MDArticulo {/**********************************************************************************/ public int set_articulo(String nombre, int tipo_articulo, String descrip_estado, Connectioncon) { //INSERCION DE UN NUEVO ARTICULO int cve_articulo = -1; //REGRESA SU CVE DE ARTICULO int contador = 0; String insertSQL, selectSQL; ResultSet resel, hay; int registros = -1;

Integer tipo = new Integer(tipo_articulo); String tipo_art = tipo.toString(); try { Statement est = con.createStatement(); selectSQL = "SELECT COUNT(*) FROM ARTICULO;"; hay = est.executeQuery(selectSQL); if (hay.next()) { contador = hay.getInt(1); } if (contador == 0) { cve_articulo = 1; } else { selectSQL = "select maximo = max(cve_articulo) from ARTICULO;"; resel = est.executeQuery(selectSQL); if (resel.next()) { cve_articulo = resel.getInt(1); } else { return -1; } cve_articulo = cve_articulo + 1 ; }

Page 118: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________116

insertSQL="INSERT INTO ARTICULO (cve_articulo, nombre, tipo_articulo,descrip_estado, disponible, status, ) VALUES("+

cve_articulo + ", '"+ nombre + "', " + tipo_art + ", '" + descrip_estado + "', 1, 1);"; registros = est.executeUpdate(insertSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros == 1) { return cve_articulo; } return registros; }/**********************************************************************************/ public boolean delete_articulo(int cve_articulo) //ELIMINACION LOGICA DELARTICULO { Connection con; String delfSQL; int registros = -1;

con = get_conexion(); if (con == null) return false;

try { Statement est = con.createStatement(); delfSQL="UPDATE ARTICULO SET STATUS = 0, DISPONIBLE = 0 WHEREcve_articulo = " + cve_articulo + ";"; registros = est.executeUpdate(delfSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros != 1) return false; return true; }/**********************************************************************************/ public boolean presta_articulo(int cve_articulo, Connection con) { //PRESTAMO DE ARTICULO => YA NO DISPONIBLE //Connection con; //PARA PRESTAMO NI PARA ELIMINAR String updateSQL; int registros = 0; boolean respuesta = false; Statement est; //con = get_conexion(); if (con == null)

Page 119: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________117

return false;

try { est = con.createStatement(); updateSQL="UPDATE ARTICULO SET DISPONIBLE = 0 WHERE cve_articulo = " +cve_articulo + ";"; registros = est.executeUpdate(updateSQL);

}catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros == 1) respuesta = true; return respuesta; }/**********************************************************************************/ public boolean devuelve_articulo(int cve_articulo, Connection con) { //DEVOLUCIÓN DE UN ARTICULO => DISPONIBLE //Connection con; String updateSQL; int registros = 0; boolean respuesta = false; Statement est; //con = get_conexion(); if (con == null) return false;

try { est = con.createStatement(); updateSQL="UPDATE ARTICULO SET DISPONIBLE = 1 WHERE cve_articulo = " +cve_articulo + ";"; registros = est.executeUpdate(updateSQL);

}catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros == 1) respuesta = true; else respuesta = false; return respuesta; }/**********************************************************************************/ public Vector getArticulos() //LLENADO DE LISTBOX REGISTRO DE PRÉSTAMOS { String selectSQL;

Page 120: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________118

ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) { return vect; }

try { est = con.createStatement(); selectSQL = "SELECT ARTICULO.nombre + '-' + TIPO_ARTICULO.desc_tipo, "+ "ARTICULO.cve_articulo "+ " FROM ARTICULO, TIPO_ARTICULO "+ " WHERE ARTICULO.tipo_articulo = TIPO_ARTICULO.tipo_articulo AND "+ " ARTICULO.disponible = 1 AND ARTICULO.status = 1;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector(resset); return vect; }

}/**********************************************************************************/ public Vector get_articulos_elim() //MOSTRADO DE TODOS LOS ARTICULOS QUESE PUEDEN ELIMINAR { //EXISTEN Y NO ESTÁN PRESTADOS String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) { return vect; }

Page 121: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________119

try { est = con.createStatement(); selectSQL = "SELECT ARTICULO.nombre, TIPO_ARTICULO.desc_tipo,ARTICULO.descrip_estado, "+ "ARTICULO.cve_articulo, ARTICULO.tipo_articulo "+ " FROM ARTICULO, TIPO_ARTICULO "+ " WHERE ARTICULO.tipo_articulo = TIPO_ARTICULO.tipo_articulo AND "+ " ARTICULO.disponible = 1 AND ARTICULO.status = 1 "+ " ORDER BY TIPO_ARTICULO.desc_tipo, ARTICULO.nombre;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector(resset); return vect; }

}/**********************************************************************************/ private Vector avector(ResultSet rset) //CONVIERTE EN VECTOR EL RESULTSET { //PARA MOSTRARLO EN EL JSP Vector renglon = null; Vector tabla = null; String dato;

try { tabla = new Vector();//probar while (rset.next()) { renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); renglon.add(dato); } tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return tabla;

Page 122: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________120

}/************************************************************************/ public int get_tipo_articulo(int cve_articulo) //EXTRACCION DEL TIPO DE ARTICULO { //PARA DETERMINAR QUE JSP MOSTRAR String selectSQL; ResultSet resset = null; Statement est; Connection con; String dato = ""; int tipo = -1; con = get_conexion();

if (con == null) return tipo;

try { est = con.createStatement(); selectSQL = "SELECT tipo_articulo " + " FROM ARTICULO WHERE cve_articulo = " + cve_articulo +";"; resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return tipo; try { if (resset.next()) dato = resset.getString(1); else return tipo; }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (dato.length() == 0) return tipo; Integer tipo_articulo = new Integer(dato); return tipo_articulo.intValue(); }/**********************************************************************************/ private Connection get_conexion() //CONEXION A LA BD { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }/**********************************************************************************/

Page 123: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________121

public Vector getArticulo(int cve_articulo, int tipo_articulo) { //EXTRACCION DE LOS DATOS DEL ARTICULO PARA SUACTUALIZACION String selectSQL; ResultSet resset = null; Vector vect = null; Statement est;

Connection con; con = get_conexion();

if (con == null) return vect;

try { est = con.createStatement(); if (tipo_articulo == 1) { selectSQL = "SELECT ARTICULO.nombre, ARTICULO.descrip_estado,CDMUSICA.interprete, "+ " CDMUSICA.genero, CDMUSICA.num_canciones, CDMUSICA.original,CDMUSICA.tipo " + " FROM ARTICULO, CDMUSICA "+ " WHERE ARTICULO.cve_articulo = " + cve_articulo + " ANDARTICULO.cve_articulo = CDMUSICA.cve_articulo;"; } else { if (tipo_articulo == 2) { selectSQL = "SELECT ARTICULO.nombre, ARTICULO.descrip_estado,CUADERNO.profesor, "+ " CUADERNO.num_materias, CUADERNO.num_hojas " + " FROM ARTICULO, CUADERNO "+ " WHERE ARTICULO.cve_articulo = " + cve_articulo + " ANDARTICULO.cve_articulo = CUADERNO.cve_articulo;"; } else { selectSQL = "SELECT ARTICULO.nombre, ARTICULO.descrip_estado,LIBRO.autor, LIBRO.editorial, "+ " LIBRO.edicion, LIBRO.genero, LIBRO.isbn, LIBRO.num_paginas " + " FROM ARTICULO, LIBRO "+ " WHERE ARTICULO.cve_articulo = " + cve_articulo + " ANDARTICULO.cve_articulo = LIBRO.cve_articulo;"; } } resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );}

Page 124: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________122

catch (Exception e) {} if (resset == null) return vect; else { vect = avector(resset); return vect; }

}/**********************************************************************************/ public boolean update_cd(int cve_articulo, String nombre, String estado, Stringinterprete, String genero, int canciones, int original, int tipo) { int respuesta_art = -1, respuesta_cd = -1; Connection con; String updateSQL; MDCDmusica cd = new MDCDmusica(); con = get_conexion(); if (con == null) //no se puedo conectar return false; try { con.setAutoCommit(false); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {}

respuesta_cd = cd.update_cd(cve_articulo, interprete, genero, canciones, original,tipo, con); respuesta_art = update_articulo(cve_articulo, nombre, estado, con); if (respuesta_art != 1 || respuesta_cd != 1) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return false; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return true;

Page 125: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________123

} }/**********************************************************************************/ public boolean update_cuaderno(int cve_articulo, String nombre, String estado, String profesor, int materias, int hojas) { int respuesta_art = -1, respuesta_cuaderno = -1; Connection con; String updateSQL; MDCuaderno cuaderno = new MDCuaderno(); con = get_conexion(); if (con == null) //no se puedo conectar return false; try { con.setAutoCommit(false); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {}

respuesta_cuaderno = cuaderno.update_cuaderno(cve_articulo, profesor, materias,hojas, con); //se actualiza el cuaderno Cuaderno respuesta_art = update_articulo(cve_articulo, nombre, estado, con); //se actualiza elarticulo Articulo if (respuesta_art != 1 || respuesta_cuaderno != 1) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return false; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return true; } }/**********************************************************************************/ public boolean update_libro(int cve_articulo, String nombre, String estado, String autor, String editorial, String edicion, String genero, String isbn, int paginas) { int respuesta_art = -1, respuesta_libro = -1; Connection con;

Page 126: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________124

String updateSQL; MDLibro libro = new MDLibro(); con = get_conexion(); if (con == null) //no se puedo conectar return false; try { con.setAutoCommit(false); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {}

respuesta_libro = libro.update_libro(cve_articulo, autor, editorial, edicion, genero, isbn, paginas, con); //se actualiza el libro Libro respuesta_art = update_articulo(cve_articulo, nombre, estado, con); //se actualiza elarticulo Articulo if (respuesta_art != 1 || respuesta_libro != 1) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return false; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return true; } }/**********************************************************************************/ private int update_articulo(int cve_articulo, String nombre, String estado, Connection con) { int registros = -1; String updateSQL;

try { Statement est = con.createStatement(); updateSQL="UPDATE ARTICULO SET nombre = '" + nombre + "', descrip_estado ='" + estado + "' WHERE cve_articulo = " + cve_articulo + ";"; registros = est.executeUpdate(updateSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );}

Page 127: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________125

catch (Exception e){} return registros; }/************************************************************************/ public Vector get_art_prestados() { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) return vect;

try { est = con.createStatement(); selectSQL = "SELECT ARTICULO.nombre, TIPO_ARTICULO.desc_tipo, "+ "PRESTAMO.fecha_prestamo, PRESTAMO.fecha_dev, AMIGO.nombre " + "FROM PRESTAMO, ARTICULO, TIPO_ARTICULO, AMIGO "+ "WHERE PRESTAMO.status = 0 AND PRESTAMO.cve_articulo =ARTICULO.cve_articulo "+ " AND ARTICULO.tipo_articulo = TIPO_ARTICULO.tipo_articulo " + " AND PRESTAMO.cve_amigo = AMIGO.cve_amigo "+ " ORDER BY TIPO_ARTICULO.desc_tipo, ARTICULO.nombre ;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector_fecha(resset); return vect; } }/************************************************************************/ private Vector avector_fecha(ResultSet rset) //TRASPASA EL RESULTSET A UNVECTOR { Vector renglon = null; Vector tabla = null; String dato;

try

Page 128: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________126

{ tabla = new Vector();//probar while (rset.next()) { renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); if (i == 3 || i == 4) { dato = acomoda_fecha(dato, '-'); }

renglon.add(dato); } tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return tabla; }/**********************************************************************************/ public Vector get_articulos_query() //MOSTRADO DE TODOS LOS ARTICULOS QUESE PUEDEN ELIMINAR { //EXISTEN Y NO ESTÁN PRESTADOS String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) return vect;

try { est = con.createStatement(); selectSQL = "SELECT ARTICULO.nombre, TIPO_ARTICULO.desc_tipo,ARTICULO.descrip_estado, "+ " ARTICULO.disponible FROM ARTICULO, TIPO_ARTICULO "+ " WHERE ARTICULO.tipo_articulo = TIPO_ARTICULO.tipo_articulo AND "+ " ARTICULO.status = 1 "+ " ORDER BY ARTICULO.disponible, TIPO_ARTICULO.desc_tipo,ARTICULO.nombre;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex)

Page 129: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________127

{System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector_disponible(resset); return vect; } }/************************************************************************/ private Vector avector_disponible(ResultSet rset) //TRASPASA EL RESULTSET A UNVECTOR { //TRABAJA SOBRE SI ESTÁS DISPONIBLE O NO Vector renglon = null; Vector tabla = null; String dato;

try { tabla = new Vector();//probar while (rset.next()) { renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); if (i == 4) { Integer idato = new Integer(dato); int datoi = idato.intValue(); if (datoi == 1) dato = "DISPONIBLE"; else dato = "PRESTADO"; } renglon.add(dato); } tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return tabla; }/*****************************************************************************/ private String acomoda_fecha(String fecha, char car) {

Page 130: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________128

String dia = "", mes = "", ano = ""; int indice1 = 0, indice2 = 0;

indice2 = fecha.indexOf(car, indice1); dia = fecha.substring(indice1, indice2); indice1 = indice2 + 1;

indice2 = fecha.indexOf(car, indice1); mes = fecha.substring(indice1, indice2); indice1 = indice2 + 1;

ano = fecha.substring(indice1, fecha.length());

if (dia.length() == 1) dia = "0" + dia;

return ano + "/" + mes + "/" + dia; }

/**********************************************************************************//* public static void main (String args[]) { Vector bol = null; MDArticulo art = new MDArticulo(); bol = art.get_articulos_query(); System.out.println("ya actualizo el articulo "); }*/}

Page 131: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________129

CLASE MDCDMUSICA

package clases_ros;import java.util.*;import java.sql.*;

public class MDCDmusica{/******************************************************************************************/ public int set_cd(String nombre, int tipo_articulo, String descrip_estado, String interprete, String genero, int canciones, int original, int tipo) { int cve_articulo = -1; int registros = -1; Connection con; String insertSQL; MDArticulo art= new MDArticulo();

con = get_conexion(); if (con == null) //no se puedo conectar return -2; try {con.setAutoCommit(false); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {}

cve_articulo = art.set_articulo(nombre, tipo_articulo, descrip_estado, con); if (cve_articulo == -1) return -1; try { Statement est = con.createStatement(); insertSQL="INSERT INTO CDMUSICA VALUES("+ cve_articulo + ", '"+ interprete + "', '" + genero + "', " + canciones + ", " + original + ", " + tipo + ");"; registros = est.executeUpdate(insertSQL);

}catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros != 1) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );}

Page 132: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________130

return -1; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return registros; } }

/******************************************************************************************/ public int update_cd(int cve_articulo, String interprete, String genero, int canciones, intoriginal, int tipo, Connection con) { int registros = -1; String updateSQL;

try { Statement est = con.createStatement(); updateSQL="UPDATE CDMUSICA SET interprete = '"+ interprete + "', genero = '" +genero + "', num_canciones = " + canciones + ", original = " + original + ", tipo = " + tipo + " WHERE cve_articulo = " + cve_articulo + ";"; registros = est.executeUpdate(updateSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return registros; }/******************************************************************************************/ private Connection get_conexion() { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }/******************************************************************************************//* public static void main (String args[]) { int l; MDCDmusica cd = new MDCDmusica(); l = cd.update_cd("CHICAGO MOVIE", "SOUNDTRACKS", 14, 1, 1);

Page 133: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________131

System.out.println(l); }*/}

CLASE MDCUADERNO

package clases_ros;import java.util.*;import java.sql.*;

public class MDCuaderno {/*************************************************************************************/ public int set_cuaderno(String nombre, int tipo_articulo, String descrip_estado, String profesor, int num_materias, int num_hojas) { int cve_articulo = -1; int registros = -1; Connection con; String insertSQL; MDArticulo art= new MDArticulo();

con = get_conexion(); if (con == null) //no se puedo conectar return -2; try {con.setAutoCommit(false); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {}

cve_articulo = art.set_articulo(nombre, tipo_articulo, descrip_estado, con); if (cve_articulo == -1) return -1;

try { Statement est = con.createStatement(); insertSQL="INSERT INTO CUADERNO VALUES("+ cve_articulo + ", " + num_materias + ", " + num_hojas + ", '" + profesor + "');"; registros = est.executeUpdate(insertSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){}

if (registros != 1)

Page 134: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________132

{ try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return -1; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return registros; } }/*************************************************************************************/ public int update_cuaderno(int cve_articulo, String profesor, int materias, int hojas,Connection con) { int registros = -1; String updateSQL;

try { Statement est = con.createStatement(); updateSQL="UPDATE CUADERNO SET num_materias = " + materias + ", num_hojas= " + hojas + ", profesor = '" + profesor + "' WHERE cve_articulo = " + cve_articulo + ";"; registros = est.executeUpdate(updateSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} return registros; }/*************************************************************************************/ private Connection get_conexion() { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }/*************************************************************************************//* public static void main (String args[]) { int l;

Page 135: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________133

MDCuaderno cuaderno = new MDCuaderno(); l = cuaderno.set_cuaderno("ANALISIS DE ALGORITMOS", 2, "MAS O MENOS", 3,100); System.out.println(l); }*/}

CLASE MDLIBROpackage clases_ros;import java.util.*;import java.sql.*;

public class MDLibro{/******************************************************************************************/ public int set_libro(String nombre, int tipo_articulo, String descrip_estado, String autor, String editorial, String edicion, String genero, String isbn, int paginas) { int cve_articulo = -1; int registros = -1; Connection con; String insertSQL; MDArticulo art= new MDArticulo();

con = get_conexion(); if (con == null) //no se puedo conectar return -2; try {con.setAutoCommit(false); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {}

cve_articulo = art.set_articulo(nombre, tipo_articulo, descrip_estado, con); if (cve_articulo == -1) return -1; try { Statement est = con.createStatement(); insertSQL="INSERT INTO LIBRO VALUES("+ cve_articulo + ", '"+ autor + "', '" + editorial + "', '" + edicion + "', '"+ genero + "', '" + isbn + "', " + paginas + ");"; System.out.println(insertSQL); registros = est.executeUpdate(insertSQL);

}catch (SQLException ex)

Page 136: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________134

{System.out.println( ex.getMessage() );} catch (Exception e) {} if (registros != 1) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return -1; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return registros; } }/******************************************************************************************/ public int update_libro(int cve_articulo, String autor, String editorial, String edicion, String genero, String isbn, int paginas, Connection con) { int registros = -1; String updateSQL;

try { Statement est = con.createStatement(); updateSQL="UPDATE LIBRO SET autor = '" + autor + "', editorial = '" + editorial + "', edicion = '" + edicion + "', genero = '" + genero + "', isbn = '" + isbn + "', num_paginas = " + paginas + " WHERE cve_articulo = " + cve_articulo + ";"; registros = est.executeUpdate(updateSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return registros; }/******************************************************************************************/ private Connection get_conexion() { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }

Page 137: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________135

/******************************************************************************************//* public static void main (String args[]) { int l; MDLibro libro = new MDLibro(); l = libro.set_libro("POWER BUILDER 6", 3, "NUEVO", "ROBERTO PEREZ","PRESSMAN", "2A EDICION", "PROGRAMACION", "1234567899632", 500); System.out.println(l); }*/}

CLASE PRESTAMO

package clases_ros;

import java.text.*;import java.util.*;import java.sql.*;

public class MDPrestamo {

public void MDPrestamo() { }/************************************************************************/ private Connection get_conexion() { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }/************************************************************************/ public Vector get_prestamos() { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

Page 138: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________136

if (con == null) { return vect; }

try { est = con.createStatement(); selectSQL = "SELECT ARTICULO.nombre, AMIGO.nombre,TIPO_ARTICULO.desc_tipo, "+ "PRESTAMO.fecha_dev, PRESTAMO.cve_prestamo, "+ "PRESTAMO.cve_articulo, PRESTAMO.cve_amigo, " + "ARTICULO.tipo_articulo, "+ "PRESTAMO.fecha_prestamo FROM PRESTAMO, ARTICULO,TIPO_ARTICULO, "+ "AMIGO WHERE PRESTAMO.cve_articulo = ARTICULO.cve_articulo AND "+ "PRESTAMO.cve_amigo = AMIGO.cve_amigo AND PRESTAMO.status = 0AND "+ " ARTICULO.tipo_articulo = TIPO_ARTICULO.tipo_articulo " + " ORDER BY PRESTAMO.fecha_dev, ARTICULO.nombre ;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector(resset); return vect; }

}/************************************************************************/ private Vector avector(ResultSet rset) //TRASPASA EL RESULTSET A UN VECTOR { Vector renglon = null; Vector tabla = null; String dato;

DateFormat df = DateFormat.getDateInstance(); java.util.Date fecha;

try { tabla = new Vector();//probar while (rset.next()) {

Page 139: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________137

renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); if (i == 4) { dato = acomoda_fecha(dato, '-'); }

renglon.add(dato); } tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return tabla; }

/************************************************************************/ public boolean set_prestamo(int articulo, int amigo, String fecha_prestamo, Stringfecha_dev) { int registros = -1; MDArticulo art = new MDArticulo(); boolean ubol = false; Connection con; String insertSQL;

con = get_conexion(); if (con == null) //no se puedo conectar return false; /*VALIDACION DE LA FECHA DE PRESTAMOS*/ boolean bofecha = false; String fecha_prestamo2 = "", fecha_dev2 = ""; bofecha = valida_fecha(fecha_prestamo); //VALIDACION FECHA PRESTAMO if (!bofecha) return false; bofecha = valida_fecha(fecha_dev); //VALIDACION FECHA DEVOLUCION if (!bofecha) return false;

fecha_prestamo2 = acomoda_fecha(fecha_prestamo, '/'); //SE ACOMODA FECHA DE2003/05/27 A 27/05/2003 fecha_dev2 = acomoda_fecha(fecha_dev, '/'); //SE ACOMODA FECHA DE 2003/05/27A 27/05/2003 try {

Page 140: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________138

con.setAutoCommit(false); Statement est = con.createStatement();

insertSQL="INSERT INTO PRESTAMO (cve_articulo, cve_amigo, fecha_prestamo, "+ "fecha_dev, status) VALUES(" + articulo + ", " + amigo + ", \'" +fecha_prestamo2 + "\', \'" + fecha_dev2 + "\', 0);"; registros = est.executeUpdate(insertSQL); }catch (SQLException ex) { System.out.println( ex.getMessage() ); } catch (Exception e) {System.out.println( e.getMessage() );}

ubol = art.presta_articulo(articulo, con); if (registros != 1 || ubol == false) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return false; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return true; } }/*****************************************************************************/ private String acomoda_fecha(String fecha, char car) //TRASPASA LA FECHA DEDD/MM/AAAA A AAAA/MM/DD { String dia = "", mes = "", ano = ""; int indice1 = 0, indice2 = 0;

indice2 = fecha.indexOf(car, indice1); dia = fecha.substring(indice1, indice2); indice1 = indice2 + 1;

indice2 = fecha.indexOf(car, indice1); mes = fecha.substring(indice1, indice2); indice1 = indice2 + 1;

Page 141: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________139

ano = fecha.substring(indice1, fecha.length());

if (dia.length() == 1) dia = "0" + dia;

return ano + "/" + mes + "/" + dia; }

/*****************************************************************************/ private boolean valida_fecha (String fecha) //VALIDA QUE LA FECHA TRAIGA SUSDOS / { int indice1 = 0, indice2 = 0; int contador = 0; if (fecha.length() < 8) return false; while (indice2 < fecha.length()) { indice2 = fecha.indexOf('/', indice1); if (indice2 != -1) { contador = contador + 1; indice1 = indice2 + 1; } else indice2 = fecha.length(); } if (contador == 2) { return true; } else return false; }

/*****************************************************************************/ public boolean devolucion(int cve_prestamo) { int articulo = -1; int registros = -1; MDArticulo art = new MDArticulo(); boolean ubol = false; Connection con; String updateSQL;

con = get_conexion(); if (con == null) //no se puedo conectar return false; /*VALIDACION DE LA FECHA DE PRESTAMOS*/

Page 142: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________140

try { con.setAutoCommit(false); Statement est = con.createStatement();

updateSQL="UPDATE PRESTAMO SET status = 1 WHERE cve_prestamo = " +cve_prestamo + ";"; registros = est.executeUpdate(updateSQL); }catch (SQLException ex) { System.out.println( ex.getMessage() ); } catch (Exception e) {System.out.println( e.getMessage() );} articulo = get_articulo(cve_prestamo); ubol = art.devuelve_articulo(articulo, con); if (registros != 1 || ubol == false) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return false; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return true; } }/*****************************************************************************/ public boolean cambia_fecha(int cve_prestamo, String fecha) //AMPLIAR FECHA DEPRÉSTAMOS { int registros = -1; boolean ubol = false; Connection con; String updateSQL; String fecha2 = "";

con = get_conexion(); if (con == null) //no se puedo conectar return false;

/*VALIDACION DE LA FECHA DE PRESTAMOS*/

Page 143: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________141

boolean bofecha = false; bofecha = valida_fecha(fecha); //VALIDACION FECHA PRESTAMO if (!bofecha) return false; fecha2 = acomoda_fecha(fecha, '/'); //SE ACOMODA FECHA DE 2003/05/27 A27/05/2003

try { con.setAutoCommit(false); Statement est = con.createStatement();

updateSQL="UPDATE PRESTAMO SET fecha_dev = \'" + fecha2 + "\' "+ " WHERE cve_prestamo = " + cve_prestamo + ";";

registros = est.executeUpdate(updateSQL); }catch (SQLException ex) { System.out.println( ex.getMessage() ); } catch (Exception e) {System.out.println( e.getMessage() );} if (registros != 1) { try { con.rollback(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return false; } else { try { con.commit(); }catch (SQLException ex) {System.out.println( ex.getMessage() );} return true; } }/************************************************************************/ public int get_articulo(int cve_prestamo) //ME DA LA CLAVE DE ARTICULO QUETIENE ESTE PRESTAMO { String selectSQL; ResultSet resset = null; Statement est; Connection con; String dato = "";

Page 144: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________142

int articulo = -1; con = get_conexion();

if (con == null) return articulo;

try { est = con.createStatement(); selectSQL = "SELECT cve_articulo " + " FROM PRESTAMO WHERE cve_prestamo = " + cve_prestamo +";"; resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return articulo; try { if (resset.next()) dato = resset.getString(1); else return articulo; }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (dato.length() == 0) return articulo; Integer art = new Integer(dato); return art.intValue(); }/************************************************************************/ public String get_desc_articulo(int cve_prestamo) //TRAE LA DESC DEL ARTICULOEN ESTE PRESTAMO { String selectSQL; ResultSet resset = null; Statement est; Connection con; String articulo = ""; con = get_conexion();

if (con == null) return articulo;

try { est = con.createStatement(); selectSQL = "SELECT ARTICULO.nombre " +

Page 145: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________143

"FROM PRESTAMO, ARTICULO "+ "WHERE PRESTAMO.cve_prestamo = " + cve_prestamo + " " + " AND PRESTAMO.cve_articulo = ARTICULO.cve_articulo;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return articulo;

try { if (resset.next()) articulo = resset.getString(1); else return articulo; }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (articulo.length() == 0) return ""; return articulo; }/************************************************************************/ public String get_desc_tipo_articulo(int cve_prestamo) { String selectSQL; ResultSet resset = null; Statement est; Connection con; String tipo = ""; con = get_conexion();

if (con == null) return tipo;

try { est = con.createStatement(); selectSQL = "SELECT TIPO_ARTICULO.desc_tipo " + "FROM PRESTAMO, ARTICULO, TIPO_ARTICULO "+ "WHERE PRESTAMO.cve_prestamo = " + cve_prestamo + " " + " AND PRESTAMO.cve_articulo = ARTICULO.cve_articulo " + " AND ARTICULO.tipo_articulo = TIPO_ARTICULO.tipo_articulo;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e)

Page 146: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________144

{} if (resset == null) return tipo; try { if (resset.next()) tipo = resset.getString(1); else return tipo; }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (tipo.length() == 0) return ""; return tipo; }/************************************************************************/ public String get_amigo(int cve_prestamo) { String selectSQL; ResultSet resset = null; Statement est; Connection con; String amigo = ""; con = get_conexion();

if (con == null) return amigo;

try { est = con.createStatement(); selectSQL = "SELECT AMIGO.nombre " + "FROM PRESTAMO, AMIGO "+ "WHERE PRESTAMO.cve_prestamo = " + cve_prestamo + " " + " AND PRESTAMO.cve_amigo = AMIGO.cve_amigo;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return amigo; try { if (resset.next()) amigo = resset.getString(1); else return amigo;

Page 147: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________145

}catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (amigo.length() == 0) return ""; return amigo; }/************************************************************************/ public String get_fechadev(int cve_prestamo) { String selectSQL; ResultSet resset = null; Statement est; Connection con; String fecha = ""; con = get_conexion();

if (con == null) return fecha;

try { est = con.createStatement(); selectSQL = "SELECT PRESTAMO.fecha_dev " + "FROM PRESTAMO "+ "WHERE PRESTAMO.cve_prestamo = " + cve_prestamo + ";";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return fecha; try { if (resset.next()) fecha = resset.getString(1); else return fecha; }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e){} if (fecha.length() == 0) return ""; return acomoda_fecha(fecha, '-'); }/*****************************************************************************//* public static void main (String args[])

Page 148: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________146

{ boolean bol = false; MDPrestamo prest = new MDPrestamo(); bol = prest.cambia_fecha(17, "10/06/2003");

DateFormat df = DateFormat.getDateInstance(); System.out.println(df.format(new java.util.Date())); }*/}

CLASE PROPIETARIO

package clases_ros;import java.util.*;import java.sql.*;

public class MDPropietario { private String miusuario; private String mipassword; private String elpassword;

public MDPropietario(String usuario, String password){ miusuario = usuario; mipassword = password;} private boolean get_password(Connection con) { String selectSQL, pass; PreparedStatement est; ResultSet rset; try { selectSQL = "SELECT usuario, password FROM propietario WHERE usuario = ?"; est = con.prepareCall(selectSQL); est.setString(1,miusuario); rset = est.executeQuery(); if (rset.next()) { elpassword = rset.getString(2); return true; } else return false; }catch (SQLException ex)

Page 149: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________147

{System.out.println( ex.getMessage() );} catch (Exception e) {} return false; } public boolean validar_usuario() { Connection con; boolean get; String pass = "", selectSQL;

con = get_conexion(); if (con == null) { return false; }

get = this.get_password(con); if (get == false) { return false; }

if (mipassword.equals(elpassword)) { return true; } else { return false; } }

private Connection get_conexion() { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }/* public static void main (String args[]) { boolean resultado; MDPropietario prop = new MDPropietario("ROSA", "AGUILA12345"); resultado = prop.validar_usuario(); System.out.println(resultado); }*/}

Page 150: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________148

CLASE MDTIPOART

package clases_ros;import java.text.*;import java.util.*;import java.sql.*;public class MDTipoart{/************************************************************************/ public MDTipoart() { }/************************************************************************/ private Connection get_conexion() { Connection connection; Conexion con = new Conexion(); connection = con.get_conexion(); return connection; }/************************************************************************/ public Vector get_tipos() { String selectSQL; ResultSet resset = null; Vector vect = null; Statement est; Connection con; con = get_conexion();

if (con == null) { return vect; }

try { est = con.createStatement(); selectSQL = "SELECT desc_tipo, tipo_articulo " + "FROM TIPO_ARTICULO ;";

resset = est.executeQuery(selectSQL); }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} if (resset == null) return vect; else { vect = avector(resset);

Page 151: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________149

return vect; }

}/************************************************************************/ private Vector avector(ResultSet rset) //TRASPASA EL RESULTSET A UN VECTOR { Vector renglon = null; Vector tabla = null; String dato;

try { tabla = new Vector();//probar while (rset.next()) { renglon = new Vector(); for (int i=1; i<=rset.getMetaData().getColumnCount(); i++) { dato = rset.getString(i); renglon.add(dato); } tabla.add(renglon); } }catch (SQLException ex) {System.out.println( ex.getMessage() );} catch (Exception e) {} return tabla; }/*****************************************************************************//* public static void main (String args[]) { Vector vect = new Vector(); MDTipoart tipo = new MDTipoart(); vect = tipo.get_tipos(); }*/}

package clases_ros;

import java.util.*;

public class Prestamo { private MDPrestamo prestamo; private Vector prestamos;

Page 152: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________150

public Prestamo() { }/************************************************************************************/ public Vector getPrestamos() { prestamo = new MDPrestamo(); prestamos = new Vector(); prestamos = prestamo.get_prestamos(); return prestamos; }/************************************************************************************/ public boolean set_prestamo(int articulo, int amigo, String fecha_prestamo, Stringfecha_dev) { prestamo = new MDPrestamo(); return prestamo.set_prestamo(articulo, amigo, fecha_prestamo, fecha_dev); }/************************************************************************************/ public boolean devolucion(int cve_prestamo) { prestamo = new MDPrestamo(); return prestamo.devolucion(cve_prestamo); }/************************************************************************************/ public String get_desc_articulo(int cve_prestamo) { prestamo = new MDPrestamo(); return prestamo.get_desc_articulo(cve_prestamo); }/************************************************************************************/ public String get_desc_tipo_articulo(int cve_prestamo) { prestamo = new MDPrestamo(); return prestamo.get_desc_tipo_articulo(cve_prestamo); }/************************************************************************/ public String get_amigo(int cve_prestamo) { prestamo = new MDPrestamo(); return prestamo.get_amigo(cve_prestamo); }/************************************************************************/ public String get_fechadev(int cve_prestamo) { prestamo = new MDPrestamo(); return prestamo.get_fechadev(cve_prestamo); }/*****************************************************************************/ public boolean cambia_fecha(int cve_prestamo, String fecha)

Page 153: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________151

{ prestamo = new MDPrestamo(); return prestamo.cambia_fecha(cve_prestamo, fecha); }/************************************************************************************//* public static void main(String[] args) { Vector vect; Prestamo prest = new Prestamo(); vect = prest.getPrestamos(); System.out.println("VAMONOS"); } */}

Page 154: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________152

CLASE TIPOART

package clases_ros;import java.util.*;

public class Tipoart { private MDTipoart dTipoart; private Vector tipos;

public Tipoart() { }/************************************************************************************/ public Vector get_tipos() { dTipoart = new MDTipoart(); tipos = new Vector(); tipos = dTipoart.get_tipos(); return tipos; }/************************************************************************************//* public static void main(String[] args) { Vector vect; Prestamo prest = new Prestamo(); vect = prest.getPrestamos(); System.out.println("VAMONOS"); } */}

Page 155: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________153

PLAN DE PRUEBAS UNITARIAS Y SU EJECUCIÓN

Clase ConexionMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

Connection :get_conexion()

BD y datos correctos(“SAP”, “SAP”, “SAP”)

Conexión exitosa, objetoconnection válido.

Conexión exitosa, objetoconnection válido.

Referencia de datosincorrecta

Objeto connection nulo. Objeto conneciton nulo.

Usuario o passwordincorrectos

Objeto connection nulo. Objeto conneciton nulo.

Clase MDArticuloMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

Int : set_articulo(Stringnombre, inttipo_articulo, Stringdescrip_estado)

set_articulo(“ernestohernandez uribe”, 2,“maleta”)

Inserción correcta delnuevo registro en la tablaARTICULO.

Nuevo registro en latabla ARTICULO.

set_articulo(“ernestohernandez uribe”, 2,“maleta”), obteniendo lacve_articulo

Inserción correcta delnuevo ARTICULO, ycomo resultado lacve_articulo.

No se insertó nuevoregistro, cve_articuloincorrecta.

set_articulo(“ernestohernandez uribe”, 2,“maleta”), obteniendo lacve_articulo

Inserción correcta delnuevo ARTICULO, ycomo resultado lacve_articulo.

Nuevo artículo insertado,y como resultado su cveque se le asignó.

Set_articulo(“ANALISIS DEALGORITMOS”, 2, “DOSTRES”), con tablaARTICULO vacía.

Inserción correcta delnuevo ARTÍCULO ytener como resultado lacve_articulo.

Inserción correcta delnuevo ARTÍCULO y sinningún resultado.

Set_articulo(“ANALISIS DEALGORITMOS”, 2, “DOSTRES”), con tablaARTICULO vacía.

Inserción correcta delnuevo ARTÍCULO ytener como resultado lacve_articulo.

No se inserta el nuevoARTICULO.

Set_articulo(“ANALISIS DEALGORITMOS”, 2, “DOSTRES”), con tablaARTICULO vacía.

Inserción correcta delnuevo ARTÍCULO ytener como resultado lacve_articulo.

Artículo insertadocorrectamente y comoresultado sucve_articulo.

Connection :get_conexion

get_conexion() Conexión a la BD. Conexión a la BD.

int deletef_articulo(intcve_articulo)

deletef_articulo(2); 2existe.

El ARTICULO concve_articulo 2 eliminado.

ARTICULO, noeliminado.

deletef_articulo(2); 2existe.

El ARTICULO concve_articulo 2 eliminado.

ARTICULO concve_articulo eliminado.

deletef_articulo(2); 2 noexiste.

El ARTICULO noeliminado.

El ARTICULO noeliminado.

deletef_articulo(2); tablavacía.

El ARTICULO noeliminado, sin truenes.

El ARTICULO noeliminado, sin truenes.

int deletel_articulo(intcve_articulo)

deletel_articulo(2); 2existe.

El ARTICULO concve_articulo 2 eliminadológicamente. (status = 0)

El ARTICULO concve_articulo 2 eliminadológicamente. (status = 0)

Page 156: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________154

deletel_articulo(2); 2 noexiste.

No se elimina ningúnARTICULO

No se elimina ningúnARTICULO

deletel_articulo(2); 2 tablavacía.

No se elimina ningúnARTICULO

No se elimina ningúnARTICULO

ResulSet:get_articulos_disp()

get_articulos_disp() ResulSet con todos losartículos disponibles(disponible == 1, status==1)

ResulSet con todos losartículos disponibles(disponible == 1, status==1)

ResulSet: get_articulo(int cve_articulo)

get_articulo(1) ResulSet con el articuloque tiene la cve_articulo1.

ResulSet con el articuloque tiene la cve_articulo1.

get_articulo(3);cve_articulo == 3 noexiste.

ResulSet vacío. ResulSet vacío.

Boolean:prestar(cve_articulo)

prestar(3); cve_articulo==3 existe

Articulo con cve_articulo==3, disponible = 0

Articulo con cve_articulo==3, disponible = 0

prestar(3); cve_articulo==3 no existe

Sin cambios. Sin cambios.

ClaseMDCuadernoMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

Connection :get_conexion()

get_conexion() Conexión a la BD. Conexión a la BD.

int set_cuaderno(Stringnombre, inttipo_articulo, Stringdescrip_estado, intnum_materias, intnum_hojas)

set_cuaderno("ANALISIS DEALGORITMOS", 2, "MAS OMENOS", 3, 100)

Inserción correcta denuevo ARTICULO y denuevo CUADERNO,con la mismacve_articulo.

Inserción correcta denuevo ARTICULO y denuevo CUADERNO,con la mismacve_articulo.

set_cuaderno("ANALISIS DEALGORITMOS", 2, "MAS OMENOS", 3, 100)Tratando de insertar a tablasCUADERNOS tabla que noexiste

Inserta nuevoARTICULO, no puedeinsertar nuevoCUADERNO y seelimina el ARTICULOinicial.

Inserta nuevoARTICULO, no puedeinsertar nuevoCUADERNO y NO seelimina el ARTICULOinicial.

set_cuaderno("ANALISIS DEALGORITMOS", 2, "MAS OMENOS", 3, 100)Tratando de insertar a tablasCUADERNOS tabla que noexiste

Inserta nuevoARTICULO, no puedeinsertar nuevoCUADERNO y seelimina el ARTICULOinicial.

Inserta nuevoARTICULO, no puedeinsertar nuevoCUADERNO y seelimina el ARTICULOinicial.

set_cuaderno("ANALISIS DEALGORITMOS", 2, "MAS OMENOS", 3, 100)con tabla ARTICULO yCUADERNO vacías.

Inserción correcta denuevo ARTICULO y denuevo CUADERNO,con la mismacve_articulo.

Inserción correcta denuevo ARTICULO y denuevo CUADERNO,con la mismacve_articulo.

intdeletef_cuaderno(intcve_articulo)

Deletf_cuaderno(2); 2 existe. Eliminación física delCUADERNO concve_articulo ==2.

Eliminación física delCUADERNO concve_articulo ==2.

Deletf_cuaderno(2); 2 NOexiste.

No se elimina nada. No se elimina nada.

Page 157: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________155

Deletf_cuaderno(2); tablavacía.

No se elimina nada. No se elimina nada.

int deletel_cuaderno(intcve_articulo)

Deletl_cuaderno(2); 2 existe. Se actualiza alCUADERNO concve_articulo ==2,ARTICULO.status = 0.

Se actualiza alCUADERNO concve_articulo ==2,ARTICULO.status = 0.

Deletl_cuaderno(2); 2 NOexiste.

No se elimina nada. No se elimina nada.

Deletl_cuaderno(2); tablavacía.

No se elimina nada. No se elimina nada.

ResultSetget_cuaderno(cve_articulo)

Get_cuaderno(2) ResultSet con elCUADERNO decve_articulo ==2

ResultSet con elCUADERNO decve_articulo ==2

Get_cuaderno(2), clave 2 noexiste

ResultSet vacío. ResultSet vacío.

Get_cuaderno(2), la tablaCUADERNO vacía.

ResultSet vacío. ResultSet vacío.

ClaseMDCDMusicaMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

Connection :get_conexion()

get_conexion() Conexión a la BD. Conexión a la BD.

int set_cd(Stringnombre, inttipo_articulo, Stringdescrip_estado, Stringinterprete, Stringgenero, intnum_canciones, bitoriginal, bit tipo)

set_cd("METHEORA", 1,"MAS O MENOS", “LINKINPARK”, “ROCKALTERNATIVO”, 15, 1, 1)

Inserción correcta denuevo ARTICULO y denuevo CDMUSICA, conla misma cve_articulo.

Inserción correcta denuevo ARTICULO y denuevo CDMUSICA, conla misma cve_articulo.

set_cd("METHEORA", 1,"MAS O MENOS", “LINKINPARK”, “ROCKALTERNATIVO”, 15, 1, 1)En la tabla CDMUSIC, queno existe.

No se inserta nada. No se inserta nada.

set_cd("METHEORA", 1,"MAS O MENOS", “LINKINPARK”, “ROCKALTERNATIVO”, 15, 1, 1)TABLAS ARTICULO YCDMUSICA vacías.

Inserción correcta denuevo ARTICULO y denuevo CDMUSICA, conla misma cve_articulo.

Inserción correcta denuevo ARTICULO y denuevo CDMUSICA, conla misma cve_articulo.

int deletef_cd(intcve_articulo)

deletf_cd(2); 2 existe. Eliminación física delCDMUSICA concve_articulo ==2.

Eliminación física delCDMUSICA concve_articulo ==2.

deletf_cd(2); 2 no existe. No se elimina nada. No se elimina nada.deletf_cd(2); tabla vacía. No se elimina nada. No se elimina nada.

Int: deletel_cd(intcve_articulo)

deletl_cd(2); 2 existe. Se actualiza alCDMUSICA concve_articulo ==2,ARTICULO.status = 0.

No se actualiza alCDMUSICA concve_articulo ==2.

Page 158: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________156

deletl_cd(2); 2 existe. Se actualiza alCDMUSICA concve_articulo ==2,ARTICULO.status = 0.

Se actualiza alCDMUSICA concve_articulo ==2,ARTICULO.status = 0.

deletl_cd(2); 2 NO existe. No se elimina nada. No se elimina nada.deletl_cd(2); tabla vacía. No se elimina nada. No se elimina nada.

ResultSet: get_CD(intcve_articulo)

get_CD(2); 2 existe. ResultSet con elCDMUSICA concve_articulo ==2.

ResultSet con elCDMUSICA concve_articulo ==2.

get_CD(2); 2 no existe. ResultSet vacío. ResultSet vacío.get_CD(2); CDMUSICAvacía.

ResultSet vacío. ResultSet vacío.

Clase MDLibroMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

Connection :get_conexion()

get_conexion() Conexión a la BD. Conexión a la BD.

int set_libro(Stringnombre, inttipo_articulo, Stringdescrip_estado, Stringautor, String editorial,String edicion, Stringgenero, String ISBN,int num_paginas)

set_libro("JSPPROGRAMMING", 3,"MAS O MENOS",“ERNETO HERNÁNDEZ”,“LOPEZ ED”, “2ª ED”,“TECNICO”,“5555555555555”, 450)

Inserción correcta denuevo LIBRO y de nuevoARTICULO, con lamisma cve_articulo.

Inserción correcta denuevo LIBRO y de nuevoARTICULO, con lamisma cve_articulo.

set_libro("JSPPROGRAMMING", 3,"MAS O MENOS",“ERNETO HERNÁNDEZ”,“LOPEZ ED”, “2ª ED”,“TECNICO”,“5555555555555”, 450); enla tabla LIBR que noexiste.

No se inserta nada. No se inserta nada.

set_libro("JSPPROGRAMMING", 3,"MAS O MENOS",“ERNETO HERNÁNDEZ”,“LOPEZ ED”, “2ª ED”,“TECNICO”,“5555555555555”, 450);tablas ARTICULO YLIBRO vacías.

Inserción correcta denuevo ARTICULO y denuevo LIBRO, con lamisma cve_articulo.

Inserción correcta denuevo ARTICULO y denuevo LIBRO, con lamisma cve_articulo.

int deletef_libro(intcve_articulo)

deletf_libro(3); 3 existe. Eliminación física delLIBRO con cve_articulo==3.

Eliminación física delLIBRO con cve_articulo==3.

deletf_libro(3); 3 no existe. No se elimina nada. No se elimina nada.deletf_libro(3); tabla vacía. No se elimina nada. No se elimina nada.

Int: deletel_libro(intcve_articulo)

deletl_libro(3); 3 existe. Se actualiza al LIBROcon cve_articulo ==3,ARTICULO.status = 0.

Se actualiza al LIBROcon cve_articulo ==3.

deletl_libro(3); 3 NO existe. No se elimina nada. No se elimina nada.deletl_libro(3); tabla vacía. No se elimina nada. No se elimina nada.

Page 159: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________157

ResultSet: get_libro(intcve_articulo)

get_libro(3); 3 existe. ResultSet con el LIBROcon cve_articulo ==3.

ResultSet con el LIBROcon cve_articulo ==3.

get_libro(3); 3 no existe. ResultSet vacío. ResultSet vacío.get_libro(3); LIBRO vacía. ResultSet vacío. ResultSet vacío.

Clase MDAmigoMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

Connection :get_conexion()

get_conexion() Conexión a la BD. Conexión a la BD.

int set_amigo(Stringnombre, Stringdireccion, Stringtelefono, Stringcorreoe)

set_amigo("ERNESTOHERNANDEZ URIBE",“PINO #8 COL LOSENCINOS”, "56-89-78-74",“[email protected]”)

Inserción correcta denuevo AMIGO.

Inserción correcta denuevo AMIGO.

set_amigo("ERNESTOHERNANDEZ URIBE",“PINO #8 COL LOSENCINOS”, "56-89-78-74",“[email protected]”); enla tabla AMIG que noexiste

No se inserta nada. No se inserta nada.

set_amigo("ERNESTOHERNANDEZ URIBE",“PINO #8 COL LOSENCINOS”, "56-89-78-74",“[email protected]”);tabla AMIGO vacía.

Inserción correcta denuevo AMIGO.

Inserción correcta denuevo AMIGO.

int deletef_amigo(intcve_amigo)

deletf_amigo(3); 3 existe. Eliminación física delAMIGO con cve_amigo==3.

Eliminación física delAMIGO con cve_amigo==3.

deletf_amigo(3); 3 noexiste.

No se elimina nada. No se elimina nada.

deletf_amigo(3); tablavacía.

No se elimina nada. No se elimina nada.

Int: deletel_amigo(intcve_amigo)

deletl_amigo(3); 3 existe. Se actualiza al AMIGOcon cve_amigo ==3.

Se actualiza al AMIGOcon cve_amigo ==3.

deletl_amigo(3); 3 NOexiste.

No se elimina nada. No se elimina nada.

deletl_amigo(3); tablavacía.

No se elimina nada. No se elimina nada.

ResultSet:get_amigo(intcve_amigo)

get_amigo(3); 3 existe. ResultSet con el AMIGOcon cve_amigo ==3.

ResultSet con el AMIGOcon cve_amigo ==3.

get_amigo(3); 3 no existe. ResultSet vacío. ResultSet vacío.get_amigo(3); AMIGOvacía.

ResultSet vacío. ResultSet vacío.

ResultSet:get_amigos()

get_amigos() ResultSet con losAMIGOS (status == 1)

ResultSet con losAMIGOS (status == 1)

get_amigos(), AMIGOvacía.

ResultSet vacío. ResultSet vacío.

Page 160: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________158

ClaseMDPropietarioMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

MDPropietario:MDPropietario(Stringusuario, Stringpassword)

MDPropietario(“ROSA”,“AGUILA12345”)

Nuevo objetoMDPropietario

Nuevo objetoMDPropietario

String : get_conexion() get_conexion() Conexión a la BD. Conexión a la BD.int set_amigo(Stringnombre, Stringdireccion, Stringtelefono, Stringcorreoe)

set_amigo("ERNESTOHERNANDEZ URIBE",“PINO #8 COL LOSENCINOS”, "56-89-78-74",“[email protected]”)

Inserción correcta denuevo AMIGO.

Inserción correcta denuevo AMIGO.

Boolean :get_password(Connection con)

Get_password(con)(LOS DATOS SONCORRECTOS)

TRUE TRUE

Get_password(con)MDPropietario(“ROS”,“AGUILA12345”)USUARIO NOEXISTENTE.

FALSE FALSE

Get_password(con)MDPropietario(“ROSA”,“AGUILA1234”) USUARIOEXISTENTE, PEROPASSWORDINCORRECTO.

TRUE TRUE

Bolean:validar_usuario()

Validar_usuario()(DATOS CORRECTOS)

TRUE TRUE

Validar_usuario()MDPropietario(“ROS”,“AGUILA12345”)USUARIO NOEXISTENTE.

FALSE FALSE

Validar_usuario()MDPropietario(“ROSA”,“AGUILA1234”) USUARIOEXISTENTE, PEROPASSWORDINCORRECTO.

FALSE FALSE

ServletLoginMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

doGet(HttpServletRequestrequest,HttpServletResponseresponse)

Llamada de JSP IHLogindoGet(HttpServletRequestrequest,HttpServletResponseresponse)Usuario y password

Validación de usuario ypassword.

Validación de usuario ypassword.

Page 161: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________159

correctos.

ClaseMDPrestamoMétodos

Casos de prueba Resultadosesperados

Resultadosobtenidos

String : get_conexion() get_conexion() Conexión a la BD. Conexión a la BD.int set_prestamo(intcve_amigo, intcve_articulo, Datefecha_prestamo, Datefecha_Dev)

set_amigo(2, 3, "26/05/2003”,“26/06/2003”)

Inserción correcta denuevo PRESTAMO.

No se llevó a cabo lainserción.

set_amigo(2, 3, "26/05/2003”,“26/06/2003”)

Inserción correcta denuevo PRESTAMO.

Inserción correcta denuevo PRESTAMO.

set_amigo(2, 3, "26/05/2003”,“26/06/2003”); el AMIGO 2, noexiste

No se inserta nuevoPRESTAMO.

No se inserta nuevoPRESTAMO.

set_amigo(2, 3, "26/05/2003”,“26/06/2003”); el ARTICULO 3,no existe

No se inserta nuevoPRESTAMO.

No se inserta nuevoPRESTAMO.

ResultSet :get_prestamos_actuales()

get_prestamos_actuales() ResultSet con todos lospréstamos actuales(status == 0, nodevueltos)

ResultSet con todoslos préstamosactuales (status == 0,no devueltos)

Get_prestamos_actuales(); nohay prestamos

ResultSet vacío. ResultSet vacío.

ResultSet:get_articulos_prestados()

get_articulos_prestados() ResultSet con artículosprestados y a quien.

ResultSet conartículos prestadoscon relación amigoserrónea.

get_articulos_prestados() ResultSet con artículosprestados y a quien.

ResultSet conartículos prestados ya quien.

get_articulos_prestados(); sintener prestado nada.

ResultSet vacío. ResultSet vacío.

ResultSet:get_amigos_morosos()

Get_amigos_morosos() ResultSet con amigos alos que se les hizopréstamos, y que deacuerdo a la fechaactual, la fecha dedevolución ya pasó.

ResultSet que nocontiene a losmorosos, problemascon fechas.

Get_amigos_morosos(), sinamigos morosos.

ResultSet vacío. ResultSet con datos.

Bolean: devolucion(intcve_prestamo)

devolucion(2); 2 existe. Actualización tablaPRESTAMO, status = 1,cuando cve_prestamo== 2

Actualización tablaPRESTAMO, status =1, cuandocve_prestamo == 2

devolucion(2); 2 no existe. No se actualiza. No se actualiza.

Page 162: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________160

PLAN DE PRUEBAS DE INTEGRACIÓN

Para llevar a cabo la integración del sistema se seguirá el patrón Bottom-Up , pero porrama.Es decir, una vez que ya tengo probadas mi clases de datos para determinadafuncionalidad, ahora le integro las clases de negocios necesarias(llamadas), y realizo laspruebas correspondientes.Después ya que tengo probadas mis interfaces de usuario (jsp’s) correspondientes adicha funcionalidad, las agrego a la funcionalidad que ya tenía en mis objetos de negociosy datos.Así sucesivamente se irá agregando la funcionalidad al sistema hasta haber cubiertotodas la pantallas.*Como nota importante cabe recalcar que para esta etapa, las pruebas unitarias de lasclases ya han sido ejecutadas.

Acceso al sistema

Casos de prueba Resultados esperadosValidarusuario

Usuario “ROSA”, Password “AGUI12345”

*MDPropietarioà Conexion

Conexión : new Conexión()Connection : get_conexion()

MDPropietario crea la instancia de la claseConexión.

MDPropietario obtiene la instancia Connectioncon la conexión a la BD ya realizada.

*Propietarioà MDPropietario

MDPropietario : New MDPropietario()Boolean : Validar_usuario(usuario, pass)

El objeto Propietario crea la instancia deMDPropietario.

CASO CORRECTOPropietario verifica que el usuario introducido esválido al invocar el método validar_usuario deMDPropietarioCASO INCORRECTOValidar_usuario en MDPropietario regresa falsocomo respuesta ante el usuario introducido.

Entrada alsistema

*IHLoginà Propietario

Propietario : new Propietario()Boolean:validar_usuario(usuario,password)

IHLogin instancia a Propietario.

CASO CORRECTOForward IHPrincipalCASO INCORRECTOForward IHLogin_error

*IHLoginà IHPrincipal

forward() IHPrincipal

Entrada al sistema.Es partir de esta pantalla de donde se puedenllegar a todas las opciones.

Page 163: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________161

Mantenimiento de Artículos

Alta de Artículos (Cuaderno)

Casos de prueba Resultados esperadosDar de altauncuaderno

Nuevo Cuaderno (nombre, tipo 2,descrip_estado, disponible, existe,profesor, num_materias, num_hojas)*MDCuadernoà Conexión

Conexion : new Conexion()Connection : get_conexion()

MDCuaderno crea la instancia de la claseConexión.

MDCuaderno obtiene la instancia Connectioncon la conexión a la BD ya realizada.

*MDCuadernoà MDArticulo

MDArticulo : new MDArticuloBoolean : set_articulo(datos articulo)

MDCuaderno crea la instancia de la claseMDArticulo

MDCuaderno llama al método que crea unregistro del articulo en la tabla Articulo

*Cuadernoà MDCuaderno

MDCuaderno : new MDCuaderno()Boolean : set_cuaderno(datos cuaderno)

Cuaderno crea la instancia de MDCuaderno

Cuaderno llama a la inserción el nuevo cuaderno

*IHAlta_articuloà Cuaderno

Cuaderno : new Cuaderno()Bolean : set_cuaderno(datos cuaderno)

IHAlta_articulo instancia a Cuaderno

IHArticulo llama a la inserción del nuevocuaderno.

Dar de altauncuadernoERROR

*IHAlta_articulo – IHPrincipal

forward IHPrincipal

El usuario da CANCELAR y se regresa a laventana principal

Actualización de Artículos (Cuaderno)

Casos de prueba Resultados esperadosActualizarunCuadernoexistente

Cuaderno (nombre2, tipo 2,descrip_estado, disponible, existe,profesor, num_materias2, num_hojas2)donde cve_articulo == cve_articuloelegido*MDArticuloà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDArticulo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*MDCuadernoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDCuaderno instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Articuloà *MDArticulo Articulo instancia la clase MDArticulo

Page 164: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________162

MDArticulo : new MDArticulo()Vector : get_articulos()

Invoca el método get_articulos que obtiene unvector con todos los artículos disponibles.

*Cuadernoà MDCuaderno

MDCuaderno : new MDCuaderno()Cuaderno : get_cuaderno(cve_articulo)

Cuaderno instancia la clase MDCuaderno

Se invoca la método que trae el Cuaderno con laclave de artículo

*IHSeleccion_Articuloà Articulo

Articulo : new Articulo()Vector: get_articulos()

IHSeleccion_Articulo instancia la clase Articulo

Invoca el método que obtiene el vector con losartículos disponibles.

*IHSeleccion_Articulo –IHActualizacion_Articulo

forward(cve_articulo)IHActualizacion_Articulo

El usuario elige MODIFICAR y se pasa el controla la pantalla IHActualizacion_Articulo

*IHActualizacion_articuloà Cuaderno

Cuaderno : new Cuaderno()Cuaderno : get_cuaderno(cve_articulo)

IHActualizacion_Articulo instancia Cuaderno

Invoca el método que extrae el cuaderno que seseleccionó en la pantalla anterior.

*MDCuadernoà MDAritulo

Boolean : update_articulo(datos articulo)

MDCuaderno invoca el método update_articuloque modifica los datos al registro en Articulo delCuaderno modificado.

*Cuadernoà MDCuaderno

Boolean : update_cuaderno(datosmodificados)

Cuaderno invoca el método update_cuaderno deMDCuaderno que se encarga de modificar uncuaderno.

*IHActualizacion_articuloà Cuaderno

Bolean : update_cuaderno(datos articulo)

La pantalla invoca el método update_cuadernode Cuaderno que se encargará de actualizar lainformación del Cuaderno.

*IHActualizacion_articulo –IHSeleccion_Articulo

forward() IHSeleccion_Articulo

Una vez que se modificaron los datos delCuaderno, el sistema regresa a la pantalla deselección de artículos.

ActualizarunCuadernoexistenteERROR

*IHActualizacion_articulo –IHSeleccion_Articulo

forward() IHSeleccion_Articulo

El usuario dio CANCELAR en la pantalla deIHActualización_articulo y el sistema regresa a lapágina IHSeleccion_articulo.

*IHSeleccion_articulo – IHPrincipal El usuario da CANCELAR en la pantallaIHSeleccion_articulo y el sistema regresa a lapantalla principal.

Page 165: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________163

Baja de Artículos (Cuaderno)

Casos de prueba Resultados esperadosBaja de unCuadernoexistente

Selección de Cuaderno (cve_articulo, tipo2)

*MDArticuloà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDArticulo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*MDArticuloà MDCuaderno

Boolean : delete_cuaderno(cve_articulo)

La creación de la instancia de MDcuaderno yafue probada anteriormente.

MDArticulo invoca el método delete_cuadernopara eliminar primero el registro del cuadernocorrespondiente a la cve del articulo.

*Articuloà MDArticulo

Vector : get_articulos()Articulo invoca el método get_Articulos paraextraer en un vector todos los artículosdisponibles y que pueden ser eliminados.

*Articuloà MDArticulo

Boolean : delete_articulo(cve_articulo)

La creación de la instancia de MDArticulo ya fueprobada anteriormente.

Articulo invoca al método delete_articulo queeliminará el registro de la tabla Articulo.

*IHBaja_articuloà Articulo

Articulo : new Articulo()Boolean : delete_articulo(cve_articulo)

IHBaja_articulo instancia a la clase Articulo

La pantalla invoca al método delete_articulo,para que se elimine el articulo seleccionado;después de que el usuario seleccionóELIMINAR.

*IHBaja_articulo – IHPrincipal

forward() IHPrincipal

Después de que el artículo es eliminado, elsistema debe regresar a la pantalla principal.

Baja de unCuadernoexistenteERROR

*IHBaja_articulo – IHPrincipal

forward() IHPrincipal

Si el usuario eligió CANCELAR, el sistemaregresa a la pantalla IHPrincipal.

Estos tres casos de prueba se repiten para los Artículos de tipo CDMusical y Libro. Ladiferencia sólo radica en que en vez de referenciar al objeto Cuaderno, serán CDMusica oLibro; y en vez de MDCuaderno, serán MDCDMusica o MDLibro.

Page 166: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________164

Registro de Préstamo

Casos de prueba Resultados esperadosRegistrarun nuevopréstamo

Nuevo Prestamo (cve_articulo,cve_amigo, fecha_prestamo,fecha_devolución, prestado)*MDPrestamoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDPrestamo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*MDArticuloà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDArticulo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*MDAmigoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDAmigo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Articuloà MDArticulo

Vector : get_articulos()

Se invoca el método get_articulos que extrae unvector con todos los artículos disponibles parasu préstamo.

*Amigoà MDAmigo

Vector : get_amigos()

Se invoca el método get_amigos que extrae unvector con todos los amigos disponibles parahacerles un préstamo.

*IHRegistroà Articulo

Vector : get_articulos()

Se invoca el método get_articulos que extrae unvector con todos los artículos disponibles parasu préstamo.

*IHRegistroà Amigo

Vector : get_amigos()

Se invoca el método get_amigos que extrae unvector con todos los amigos disponibles parahacerles un préstamo.

*Prestamoà MDPrestamo

Boolean : set_prestamo(datos prestamo)

Se invoca el método set_prestamo para insertarel nuevo préstamo en la tabla Prestamo.

*IHRegistroà IHPrincipal

forward() IHPrincipal

Una vez que el usuario registró el préstamo, elsistema regresa a la pantalla principal.

Registrarun nuevopréstamoERROR

*IHRegistroà IHPrincipal

forward() IHPrincipal

Una vez que el usuario pudo ya haber capturadolos datos del préstamo pero elige CANCELAR yel sistema regresa a la pantalla principal.

Page 167: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________165

Devolución

Casos de prueba Resultados esperadosDevoluciónde unartículoprestado

Selección de Prestamo (cve_prestamo)

*MDPrestamoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDPrestamo instancia la clase Conexión

Obtiene el objeto Connection con la conexión a laBD ya realizada

*Prestamoà MDPrestamo

Vector : get_prestamos()

Invoca el método get_prestamos para extraer unvector con los préstamos actuales.

*IHDevolucionà Prestamo

Vector : get_prestamos()

Invoca el método get_prestamos para extraer unvector con los préstamos actuales.

*Prestamoà MDPrestamo

Boolean : devolucion(cve_prestamo)

Invoca el método para actualizar el préstamocomo devuelto.

*IHDevolucionà Prestamo

Boolean: devolucion(cve_prestamo)

Se invoca el método devolución para marcar elpréstamo como devuelto.

*IHDevolucionà IHPrincipal

forward() IHPrincipal

Una vez que el usuario da ACTUALIZAR, elsistema regresa a la pantalla principal.

Devoluciónde unartículoprestadoERROR

*IHDevolucionà IHPrincipal

forward() IHPrincipal

Si el usuario, en vez de ACTUALIZAR daCANCELAR, entonces el sistema regresa a lapantalla principal.

Ampliar tiempo préstamo

Casos de prueba Resultados esperadosCambiar lafecha dedevoluciónampliandotiempo depréstamo.

Selección de Prestamo, cve_prestamo ==cve_prestamo

*MDPrestamoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDPrestamo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Prestamoà MDPrestamo

Vector : get_prestamos()

Invoca el método get_prestamos para extraer unvector con los préstamos actuales.

*IHSeleccion_prestamoà Prestamo

Vector : get_prestamos()

Se invoca al método que extrae todos lospréstamos actuales para mostrar en pantalla.

*Prestamoà MDPrestamo

Prestamo : get_prestamo(cve_prestamo)

Prestamo invoca al método get_prestamo paraextraer los datos del préstamo que correspondecon la clave y desplegarlos en pantalla.

*IHAmpliacionà Prestamo La pantalla invoca al método get_prestamo paraextraer los datos del préstamo que corresponde

Page 168: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________166

Prestamo : get_prestamo(cve_prestamo) con la clave y desplegarlos en pantalla.*Prestamoà MDPrestamo

Boolean :ampliar_prestamo(cve_prestamo, datosprestamo)

Se invoca al método ampliar_prestamo paramodificar los datos del préstamocorrespondiente a la clave.

*IHAmpliacionà Prestamo

Bolean :ampliar_prestamo(cve_prestamo, datosprestamo)

El usuario elige ACTUALIZAR y se invoca almétodo ampliar_prestamo para modificar losdatos del préstamo correspondiente a la clave.

*IHAmpliarà IHSeleccion_prestamo

forward() IHSeleccion_prestamo

Una vez actualizado el préstamo, el sistemaregresa a la pantalla IHSeleccion_prestamo

Cambiar lafecha dedevoluciónampliandotiempo depréstamoERROR.

*IHAmpliarà IHSeleccion_prestamo

forward() IHSeleccion_prestamo

El usuario elige CANCELAR en la pantallaIHAmpliar y el sistema regresa a la pantallaIHSeleccion_prestamo

Cambiar lafecha dedevoluciónampliandosu tiempopréstamoERROR.

*IHSeleccion_prestamoà IHPrincipal

forward() IHPrincipal

Antes de elegir un préstamo, el usuario eligeCANCELAR y el sistema regresa a la pantallaprincipal.

Mantenimiento de Amigos

Alta de Amigos

Casos de prueba Resultados esperadosDar de altaun amigo

Nuevo Amigo (nombre, direccion,telefono, correoe, existe)*MDAmigoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDAmigo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Amigoà MDAmigo

Boolean : set_amigo(datos_amigo)

Se invoca el método set_amigo para insertar unnuevo amigo que tiene datos_amigo.

*IHAlta_amigoà Amigo

Boolean : set_amigo(datos_amigo)

Se invoca el método set_amigo para insertar unnuevo amigo que tiene datos_amigo.

*IHAlta_amigoà IHPrincipal

forward() IHPrincipal

Una vez que el usuario dio GUARDAR y elsistema guardó el nuevo amigo, el sistemaregresa a la pantalla principal.

Dar de altaun amigoERROR

*IHAlta_amigoà IHPrincipal

forward() IHPrincipal

El usuario dio CANCELAR y el sistema regresaa la pantalla principal.

Page 169: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________167

Actualización de Amigos

Casos de prueba Resultados esperadosActualizarun Amigoexistente

Amigo (nombre, direccion, telefono,correoe, existe) donde cve_amigo ==cve_amigo elegido*MDAmigoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDAmigo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Amigoà MDAmigo

Vector : get_amigos()

Se invoca el método get_amigos para obtenerun vector con los amigos existentes en elsistema.

*IHSeleccion_amigoà Amigo

Vector : get_amigos()

Se invoca el método get_amigos para obtenerun vector con los amigos existentes en elsistema.

*Amigoà MDAmigo

Amigo : get_amigo(cve_amigo)

Se extrae el amigo que corresponda a la cve deamigo solicitada.

*IHActualizacion_amigoà Amigo

Amigo : get_amigo(cve_amigo)

Se extrae el amigo que corresponda a la cve deamigo solicitada.

*Amigoà MDAmigo

Boolean : update_amigo(cve_amigo,datos_amigo)

Se invoca al método update_amigo paraactualizar al amigo con la cve_amigo con losdatos_amigo.

*IHActualizacion_amigoà Amigo

Boolean : update_amigo(cve_amigo,datos_amigo)

Se invoca al método update_amigo paraactualizar al amigo con la cve_amigo con losdatos_amigo.

*IHActuliazacion_amigo àIHSeleccion_Amigo

forward() IHSeleccion_amigo

Una vez el usuario elige ACTUALIZAR, elsistema almacena los cambios y regresa a lapantalla de selección de amigos.

Actualizarun AmigoexistenteERROR

*IHActuliazacion_amigo àIHSeleccion_Amigo

forward() IHSeleccion_amigo

El usuario elige CANCELAR y el sistemaalmacena los cambios y regresa a la pantalla deselección de amigos.

Actualizarun AmigoexistenteERROR

*IHSeleccion_amigoà IHPrincipal

forward() IHPrincipal

El usuario elige CANCELAR y el sistema regresaa la pantalla principal.

Page 170: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________168

Baja de Amigos

Casos de prueba Resultados esperadosEliminar unamigo

Amigo cve_amigo == cve_amigo elegido

*MDAmigoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDAmigo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Amigoà MDAmigo

Vector : get_amigos()

Se invoca el método get_amigos para extraer unvector con todos los amigos existentes.

*IHBaja_amigoà Amigo

Vector : get_amigos()

Se invoca el método get_amigos para extraer unvector con todos los amigos existentes.

*Amigoà MDAmigo

Boolean : delete_amigo(cve_amigo)

Se llama al método delete_amigo para eliminarel amigo con cve_amigo.

*IHBaja_amigoà Amigo

Boolean : delete_amigo(cve_amigo)

Se llama al método delete_amigo para eliminarel amigo con cve_amigo.

*IHBaja_amigoà IHPrincipal

forward() IHPrincipal

Una vez que el usuario eligió ELIMINAR, elsistema da de baja al amigo seleccionado yregresa a la página principal.

Eliminar unamigoERROR

*IHBaja_amigoà IHPrincipal

forward() IHPrincipal

El usuario eligió CANCELAR y el sistemaregresa a la pantalla principal.

Lista de Artículos Prestados

Casos de prueba Resultados esperadosGenerarlista deartículosprestados

Lista de artículos prestados()

*MDPrestamoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDPrestamo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Prestamoà MDPrestamo

Vector : get_articulos_prestados()

Se invoca el método get_articulos_prestadospara obtener un vector que contenga losartículos prestados.

*IHLista_art_prestadosà Prestamo

Vector : get_articulos_prestados()

Se invoca el método get_articulos_prestadospara obtener un vector que contenga losartículos prestados.

*IHLista_art_prestadosà IHPrincipal

Regresar() IHPrincipal

Cuando el usuario oprime REGRESAR, elsistema regresa a la ventana principal.

Page 171: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________169

Lista de Amigos Morosos

Casos de prueba Resultados esperadosGenerar lalista deamigosmorosos

Lista de amigos morosos()

*MDPrestamoà Conexión

Conexión : new Conexión()Connection : get_conexion()

MDPrestamo instancia la clase Conexión

Obtiene el objeto Connection con la conexión ala BD ya realizada

*Prestamoà MDPrestamo

Vector : get_amigos_morosos()

Se invoca el método get_amigos_morosos paraobtener un vector que contenga los amigosmorosos.

*IHLista_amig_morososà Prestamo

Vector : get_amigos_morosos()

Se invoca el método get_amigos_morosos paraobtener un vector que contenga los amigosmorosos.

*IHLista_amig_morososà IHPrincipal

Regresar() IHPrincipal

Cuando el usuario oprime REGRESAR, elsistema regresa a la ventana principal.

Salir

Casos de prueba Resultados esperadosSalir delsistema

Salir()

*IHPrincipalà IHLogin

Salir()

El sistema regresa a la pantalla de login

Page 172: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________170

PLAN DE PRUEBAS DE COMPONENTES

Acceso al sistema

Casos de prueba Resultados esperadosAccesar al sistema Usuario “ROSA”, Password

“AGUI12345”(Correcto)

El IHLogin, cede el control a Login que seencarga de verificar al usuario con el objetoPropietario que llama a MDPropietario que seconecta a la BD a través del objeto Conexionpara validar si el usuario existe.El usuario existe y es entrada exitosa al sistema,y se cede el control y se posiciona en la pantallainicial IHPrincipal.

Usuario “ROSA”, Password“AGU5”(No existe)

Los objetos Propietario y MDPropietariodeterminan que el usuario capturado no existe.Posicionamiento en la pantalla de IHLogin_error,informando que los datos capturados no fueroncorrectos.

Mantenimiento de Artículos

Alta de Artículos (Cuaderno)

Casos de prueba Resultados esperadosDar de alta un cuaderno Nuevo Cuaderno (nombre,

tipo 2, descrip_estado,disponible, existe, profesor,num_materias, num_hojas)

El IHPrincipal llama a la pantalla IHAlta_Articulodonde el usuario captura al nuevo artículo, y losobjetos Cuaderno y Artículo (negocios y datos)se encargan de almacenar al nuevo artículo. Elsistema se posiciona nuevamente en la pantallainicial IHPrincipal.

Dar de alta un cuadernoERROR

Nuevo Cuaderno (nombre,tipo 2, descrip_estado,disponible, existe, profesor,num_materias, num_hojas)+ CANCELAR

El IHPrincipal llama a la pantalla IHAlta_Articulodonde el usuario captura al nuevo artículo, perose elige la opción CANCELAR. El sistema seposiciona nuevamente en la pantalla inicialIHPrincipal.

Page 173: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________171

Actualización de Artículos (Cuaderno)

Casos de prueba Resultados esperadosActualizar un Cuadernoexistente

Cuaderno (nombre2, tipo 2,descrip_estado, disponible,existe, profesor,num_materias2,num_hojas2) dondecve_articulo == cve_articuloelegido

El IHPrincipal llama a la pantallaIHSeleccion_Articulo que muestra los artículosexistentes con los objetos Articulo (negocios ydatos). El usuario selecciona su artículo.Entonces se pasa a la páginaIHActualizacion_Articulo que con los objetosCuaderno (negocios y datos) se muestran susdatos actuales. Modifica sus campos; los objetosCuaderno y Artículo se encargan de almacenarlos cambios. El sistema se posicionanuevamente en la pantalla IHSeleccion_Articulo.

Actualizar un Cuadernoexistente ERROR

Cuaderno (nombre2, tipo 2,descrip_estado, disponible,existe, profesor,num_materias2,num_hojas2) dondecve_articulo == cve_articuloelegido + CANCELAR

El IHPrincipal llama a la pantallaIHSeleccion_Articulo donde el usuarioselecciona su artículo, para después navegar alIHActualizacion_Articulo donde modifica suscampos; pero se CANCELA la operación. Elsistema se posiciona nuevamente en la pantallaIHSeleccion_Articulo.

Baja de Artículos (Cuaderno)

Casos de prueba Resultados esperadosBaja de un Cuadernoexistente

Selección de Cuaderno(cve_articulo, tipo 2)

El IHPrincipal llama a la pantalla IHBaja_Articuloque muestra los artículos que le devuelven losobjetos Articulo (negocios y datos) . El usuarioselecciona su artículo; los objetos Articulo yCuaderno se encargan de eliminar al artículopersonal seleccionado. Después se llega a lapantalla inicial IHPrincipal.

Baja de un Cuadernoexistente ERROR

Selección de Cuaderno(cve_articulo, tipo 2)

El IHPrincipal llama a la pantalla IHBaja_Articulodonde el usuario selecciona su artículo; peroselecciona la opción cancelar; y después senavega a la pantalla inicial IHPrincipal.

Page 174: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________172

Alta de Artículos (CDMusica)

Casos de prueba Resultados esperadosDar de alta un CDmusical

Nuevo CDMusica (nombre,tipo 1, descrip_estado,disponible, existe, interprete,genero, num_canciones,original, audio)

El IHPrincipal llama a la pantalla IHAlta_Articulodonde el usuario captura al nuevo artículo, y losobjetos CDMusica y Artículo se encargan dealmacenar al nuevo artículo. El sistema seposiciona nuevamente en la pantalla inicialIHPrincipal.

Dar de alta un CDmusical ERROR

Nuevo CDMusica (nombre,tipo 1, descrip_estado,disponible, existe, interprete,genero, num_canciones,original, audio) +CANCELAR

El IHPrincipal llama a la pantalla IHAlta_Articulodonde el usuario captura al nuevo artículo, peroelige CANCELAR. El sistema se posicionanuevamente en la pantalla inicial IHPrincipal.

Actualización de Artículos (CDMusica)

Casos de prueba Resultados esperadosActualizar un CD musicalexistente

CDMusica (nombre, tipo 1,descrip_estado, disponible,existe, interprete, genero,num_canciones, original,audio) donde cve_articulo ==cve_articulo elegido

El IHPrincipal llama a la pantallaIHSeleccion_Articulo que muestra los artículosdisponibles que le regresan los objetos Articulo(negocios y datos). El usuario selecciona suartículo, para después navegar alIHActualizacion_Articulo que muestra los datoscorrespondientes que le devuelven los objetosCDMusica (negocios y datos), se modifican suscampos; los objetos CDMusica y Articulo seencargan de almacenar los cambios. El sistemase posiciona nuevamente en la pantallaIHSeleccion_Articulo.

Actualizar un CD musicalexistente ERROR

CDMusica (nombre, tipo 1,descrip_estado, disponible,existe, interprete, genero,num_canciones, original,audio) donde cve_articulo ==cve_articulo elegido +CANCELAR

El IHPrincipal llama a la pantallaIHSeleccion_Articulo donde el usuarioselecciona su artículo, para después navegar alIHActualizacion_Articulo donde modifica suscampos; pero se CANCELA la operación. Elsistema se posiciona nuevamente en la pantallaIHSeleccion_Articulo.

Page 175: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________173

Baja de Artículos (CDMusica)

Casos de prueba Resultados esperadosBaja de un CD musicalexistente

Selección de CD musical(cve_articulo, tipo 1)

El IHPrincipal llama a la pantalla IHBaja_Articuloque muestra todos los artículos disponibles quele regresan los objetos Articulo (negocios ydatos). El usuario selecciona su artículo; losobjetos Articulo y CDMusica se encargan deeliminar al artículo personal seleccionado.Después se regresa a la pantalla inicialIHPrincipal.

Baja de un CD musicalexistente ERROR

Selección de CD musical(cve_articulo, tipo 1)

El IHPrincipal llama a la pantalla IHBaja_Articulodonde el usuario selecciona su artículo; peroelige la opción CANCELAR. Después regresa ala pantalla inicial IHPrincipal.

Alta de Artículos (Libro)

Casos de prueba Resultados esperadosDar de alta un Libro Nuevo Libro (nombre, tipo 3,

descrip_estado, disponible,existe, autor, editorial,edición, genero, ISBN,num_paginas)

El IHPrincipal llama a la pantalla IHAlta_Articulodonde el usuario captura al nuevo artículo, y losobjetos Libro y Artículo se encargan dealmacenar al nuevo artículo. El sistema seposiciona nuevamente en la pantalla inicialIHPrincipal.

Dar de alta un LibroERROR

Nuevo CDMusica (nombre,tipo 3, descrip_estado,disponible, existe, interprete,genero, num_canciones,original, audio) +CANCELAR

El IHPrincipal llama a la pantalla IHAlta_Articulodonde el usuario captura al nuevo artículo, perose CANCELA la operación. El sistema seposiciona nuevamente en la pantalla inicialIHPrincipal.

Page 176: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________174

Actualización de Artículos (Libro)

Casos de prueba Resultados esperadosActualizar un Libroexistente

Libro (nombre, tipo 3,descrip_estado, disponible,existe, autor, editorial,edición, genero, ISBN,num_paginas) dondecve_articulo == cve_articuloelegido

El IHPrincipal llama a la pantallaIHSeleccion_Articulo que muestra los artículosque le regresan los objetos Articulo (negocios ydatos). El usuario selecciona su artículo, paradespués ceder el control aIHActualizacion_Articulo donde modifica suscampos; los objetos Libro y Articulo se encargande almacenar los cambios. El sistema seposiciona nuevamente en la pantallaIHSeleccion_Articulo.

Actualizar un CD Libroexistente ERROR

Libro (nombre, tipo 3,descrip_estado, disponible,existe, autor, editorial,edición, genero, ISBN,num_paginas) dondecve_articulo == cve_articuloelegido + CANCELAR

El IHPrincipal llama a la pantallaIHSeleccion_Articulo donde el usuarioselecciona su artículo, para después navegar alIHActualizacion_Articulo donde modifica suscampos; pero se elige la opción CANCELAR. Elsistema se posiciona nuevamente en la pantallaIHSeleccion_Articulo.

Baja de Artículos (Libro)

Casos de prueba Resultados esperadosBaja de un Libroexistente

Selección de Libro(cve_articulo, tipo 3)

El IHPrincipal llama a la pantalla IHBaja_Articuloque muestra los artículos disponibles que ledevuelven los objetos Articulo (negocios ydatos). El usuario selecciona su artículo; losobjetos Articulo y Libro se encargan de eliminaral artículo personal seleccionado. Después seregresa a la pantalla inicial IHPrincipal.

Baja de un Libroexistente ERROR

Selección de Libro(cve_articulo, tipo 3)

El IHPrincipal llama a la pantalla IHBaja_Articulodonde el usuario selecciona su artículo; seselecciona CANCELAR. Después el sistemaregresa a la pantalla inicial IHPrincipal.

Actualización de Artículos (CUALQUIER TIPO)

Casos de prueba Resultados esperadosActualizar un artículoexistente ERROR

Articulo (nombre, tipo ,descrip_estado, disponible,existe) donde cve_articulo== cve_articulo elegido

El IHPrincipal llama a la pantallaIHSeleccion_Articulo que muestra todos losartículos disponibles que traen los objetosArticulo (negocios y datos). El usuarioselecciona su artículo, pero se CANCELA laoperación. El sistema se posiciona nuevamenteen la pantalla IHPrincipal.

Page 177: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________175

Registro de Préstamo

Casos de prueba Resultados esperadosRegistrar un nuevopréstamo

Nuevo Prestamo(cve_articulo, cve_amigo,fecha_prestamo,fecha_devolución, prestado)

El IHPrincipal llama a la pantalla IHRegistro, quemuestra los artículos disponibles que le traen losobjetos Articulo (negocios y datos) y los amigosque devuelven los objetos Amigo (negocios ydatos). El usuario captura al nuevo préstamo; losobjetos Prestamo (negocios y datos) seencargan de almacenar al nuevo prestamo. Elsistema se posiciona nuevamente en la pantallainicial IHPrincipal.

Registrar un nuevopréstamo ERROR

Nuevo Prestamo(cve_articulo, cve_amigo,fecha_prestamo,fecha_devolución, prestado)+ CANCELAR

El IHPrincipal llama a la pantalla IHRegistro, quecontiene los artículos y amigos que los objetosArticulo y Amigo le devuelven. El usuario capturaal nuevo préstamo; pero se elige la opciónCANCELAR. El sistema se posicionanuevamente en la pantalla inicial IHPrincipal.

Registro de Préstamo (NUEVO AMIGO)

Casos de prueba Resultados esperadosRegistrar un nuevopréstamo

Nuevo Prestamo(cve_articulo, cve_amigo,fecha_prestamo,fecha_devolución, prestado)

El IHPrincipal llama a la pantalla IHRegistro, quecontiene los artículos y amigos que los objetosArticulo y Amigo le devuelven. Se elige la opciónNUEVO AMIGO (caso de prueba Alta de Amigo).El usuario captura al nuevo préstamo; losobjetos Prestamo se encargan de almacenar alnuevo préstamo. El sistema se posicionanuevamente en la pantalla inicial IHPrincipal.

Registro de Préstamo (NUEVO ARTÍCULO)

Casos de prueba Resultados esperadosRegistrar un nuevopréstamo

Nuevo Prestamo(cve_articulo, cve_amigo,fecha_prestamo,fecha_devolución, prestado)

El IHPrincipal llama a la pantalla IHRegistro, quecontiene los artículos y amigos que los objetosArticulo y Amigo le devuelven. Se elige la opciónNUEVO ARTÍCULO (caso de prueba Alta deArtículo). El usuario captura al nuevo préstamo;los objetos Prestamo se encargan de almacenaral nuevo préstamo. El sistema se posicionanuevamente en la pantalla inicial IHPrincipal.

Page 178: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________176

Devolución

Casos de prueba Resultados esperadosDevolución de unartículo que fue prestado

Selección de Prestamo(cve_prestamo)

El IHPrincipal llama a la pantalla IHDevoluciondonde los objetos Prestamo (negocios y datos)muestran los préstamos actuales. El usuarioselecciona el préstamo; los objetos Prestamo yArticulo se encargan de actualizar lainformación. Después se regresa a la pantallainicial IHPrincipal.

Devolución de unartículo que fue prestadoERROR

Selección de Prestamo(cve_prestamo)

El IHPrincipal llama a la pantalla IHDevoluciondonde los objetos Prestamo muestran lospréstamos actuales. El usuario selecciona elpréstamo pero elige la opción CANCELAR ydespués el sistema regresa a la pantalla inicialIHPrincipal.

Ampliar tiempo préstamo

Casos de prueba Resultados esperadosCambiar la fecha dedevolución ampliando sutiempo de préstamo.

Selección de Prestamo,cve_prestamo ==cve_prestamo

El IHPrincipal llama a la pantallaSeleccion_prestamo donde los objetosPrestamo (negocios y datos) muestran lospréstamos actuales. El usuario selecciona elpréstamo; los objetos Prestamo, Articulo yAmigo (negocios y datos) se encargan deextraer los datos del préstamo. El usuarioproporciona la nueva fecha y elige GUARDAR,Prestamo (negocios y datos) almacena loscambios. Después se regresa a la pantalla inicialIHSeleccion_prestamo.

Cambiar la fecha dedevolución ampliando sutiempo de préstamoERROR.

Selección de Prestamo,cve_prestamo ==cve_prestamo

El IHPrincipal llama a la pantallaSeleccion_prestamo donde los objetosPrestamo muestran los préstamos actuales. Elusuario selecciona el préstamo; los objetosPrestamo, Articulo y Amigo (negocios y datos)se encargan de extraer los datos del préstamo.El usuario proporciona la nueva fecha, peroCANCELA; entonces el sistema regresa a lapantalla inicial IHSeleccion_prestamo.

Cambiar la fecha dedevolución ampliando sutiempo de préstamoERROR.

Selección de Prestamo,cve_prestamo ==cve_prestamo

El IHPrincipal llama a la pantallaSeleccion_prestamo donde los objetosPrestamo muestran los préstamos actuales. Elusuario selecciona CANCELAR. Y después elsistema regresa a la pantalla inicial IHPrincipal.

Page 179: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________177

Mantenimiento de Amigos

Alta de Amigos

Casos de prueba Resultados esperadosDar de alta un amigo Nuevo Amigo (nombre,

direccion, telefono, correoe,existe)

El IHPrincipal llama a la pantalla IHAlta_Amigodonde el usuario captura los datos del nuevoamigo, y los objetos Amigo (negocios y datos)se encargan de almacenarlo. El sistema seposiciona nuevamente en la pantalla inicialIHPrincipal.

Dar de alta un amigoERROR

Nuevo Amigo (nombre,direccion, telefono, correoe,existe)

El IHPrincipal llama a la pantalla IHAlta_Amigodonde el usuario captura los datos del nuevoamigo, pero elige CANCELAR. El sistema seposiciona nuevamente en la pantalla inicialIHPrincipal.

Actualización de Amigos

Casos de prueba Resultados esperadosActualizar un Amigoexistente

Amigo (nombre, direccion,telefono, correoe, existe)donde cve_amigo ==cve_amigo elegido

El IHPrincipal llama a la pantallaIHSeleccion_Amigo que muestra todos losamigos existentes que regresan los objetosAmigo (negocios y datos). El usuario seleccionaal amigo, para después pasar alIHActualizacion_amigo que extrae todos losdatos que regresan los objetos (negocios ydatos), donde modifica sus campos; los objetosAmigo se encargan de almacenar los cambios.El sistema se posiciona nuevamente en lapantalla IHSeleccion_Amigo.

Actualizar un Amigoexistente ERROR

Amigo (nombre, direccion,telefono, correoe, existe)donde cve_amigo ==cve_amigo elegido +CANCELAR

El IHPrincipal llama a la pantallaIHSeleccion_Amigo que con ayuda de losobjetos amigo extrae los amigos existentes. Elusuario selecciona al amigo, pero después eligeCANCELAR. El sistema se posicionanuevamente en la pantalla IHSeleccion_Amigo.

Actualizar un Amigoexistente ERROR

Amigo (nombre, direccion,telefono, correoe, existe)donde cve_amigo ==cve_amigo elegido +CANCELAR

El IHPrincipal llama a la pantallaIHSeleccion_Amigo que con ayuda de losobjetos amigo extrae los amigos existentes. Elusuario selecciona al amigo y pasa a la pantallaIHActualizacion_amigo que muestra los datosque traen los objetos AMIGO (negocios y datos),donde se pueden modificar sus datos, perodespués elige CANCELAR. El sistema seposiciona nuevamente en la pantallaIHSeleccion_Amigo.

Page 180: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________178

Baja de Amigos

Casos de prueba Resultados esperadosEliminar un amigo de loscandidatos a préstamos

Amigo cve_amigo ==cve_amigo elegido

El IHPrincipal llama a la pantalla IHBaja_Amigomuestra todos los amigos disponibles quedevuelven los objetos Amigo (negocios y datos).Selecciona uno de ellos, y los objetos Amigo(negocios y datos) se encargan de almacenar elcambio. El sistema se posiciona nuevamente enla pantalla inicial IHPrincipal.

Eliminar un amigo de loscandidatos a préstamosERROR

Amigo cve_amigo ==cve_amigo elegido

El IHPrincipal llama a la pantalla IHBaja_Amigoque con el objeto Amigo muestra todos losamigos disponibles. El selecciona CANCELAR.El sistema se posiciona nuevamente en lapantalla inicial IHPrincipal.

Lista de Artículos Prestados

Casos de prueba Resultados esperadosGenerar la lista deartículos prestados enpantalla

Lista de artículos prestados() El IHPrincipal llama a la pantallaIHLista_Art_Prestados que con ayuda de losobjetos Préstamo, Artículo y Amigo (negocios ydatos), se extraen y muestran en pantalla todoslos artículos prestados hasta el momento degenerar esta lista. Si el usuario eligeREGRESAR el sistema se posicionanuevamente en la pantalla inicial IHPrincipal.

Lista de Amigos Morosos

Casos de prueba Resultados esperadosGenerar la lista deamigos morosos enpantalla

Lista de amigos morosos() El IHPrincipal llama a la pantallaIHLista_Amig_Morosos que con ayuda de losobjetos Préstamo y Amigo (negocios y datos),se extraen y muestran en pantalla todos losamigos que no han entregado los artículosprestados, hasta el momento de generar estalista. Si el usuario elige REGRESAR el sistemase posiciona nuevamente en la pantalla inicialIHPrincipal.

Salir

Casos de prueba Resultados esperadosSalir del sistema Salir() El IHPrincipal regresa a la pantalla IHLogin

donde el usuario tendrá que proporcionarnuevamente su usuario y password parareingresar al sistema.

Page 181: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________179

CONCLUSIONES

Después de la conclusión en la elaboración del proyecto terminal se observa la relevante

importancia que tiene el Proceso Unificado en el desarrollo de proyectos de Ingeniería del

Software, este plantea toda una metodología en su desarrollo, que son el conjunto de

actividades necesarias para transformar los requisitos de un usuario en un producto de

software.

El sistema se basa conceptualmente en el diseño de los casos de uso, donde fueron

plasmados los requerimientos del usuario inicialmente; como estos se fueron modificando

en el transcurso del mismo, viendo su importancia que tiene el hacer uso de la iteraciones

para la mejor implementación del sistema; y que esto se hizo también de manera

incremental, hasta su terminación.

Page 182: ASESOR: LUIS FERNANDO CASTRO CAREAGA …148.206.53.84/tesiuami/UAMI11277.pdf · Caso de uso: Baja artículo .....29 Caso de uso: Registrar préstamo ... • Diagrama general de casos

SISTEMA DE PRÉSTAMOS PERSONALES “MONTE PÍO EN CASA”________________________________________________________________________________

_____________________________________________________________________________180

REFERENCIAS BIBLIOGRAFICAS

Rumbaugh, James, Blaha, Michael, Premerlani, William, Eddy, Frederick, Lorensen,William. Modelado y Diseño Orientados a Objetos. Metodología OMT. 2ª Reimpresión.Prentice Hall. 1998.

Jacobson, I., Christerson, M., Jonsson, P., Övergaad, G. Object Oriented SoftwareEngineering: A Use Case Driven Approach. Addison-Wesley, 1992.

Booch G., J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide,Addison-Wesley, 1999.

Booch, G. Object-Oriented Analysis and Design with Applications, 2nd edition.Benjamin Cummings, 1993.

Buschamann F. et al. A system of Patterns. Patterns-oriented software architecture.John Wiley & Son 1996.

Coad P. at. al., Object Models, Strategies, Patterns and Applications, Yourdon PressComputing Series, Prentice Hall, 1995.

Fowler M. y Scott K. UML gota a gota. Addison Wesley, Pearson. 1999.

Fowler M. Analysis Patterns. Reusable Object Models. Addison Wesley, 1997.

Jacobson I., Booch G., Rumbaugh J. The Unified Software Development Process,Addison Wesley , 1999.

Kruchten P., The Rational Unified Process. An Introduction. 2nd edition. AddisonWesley. 2000.

Larman C., Applying UML and Patterns, An Introduction to Object-Oriented Analysisand Design, Prentice Hall 1998.

Quatrani T., Visual Modeling with Rational Rose and UML, Addison-Wesley, 1998.

Robillard P., Kruchten P., d’Astous. Software Engineering Process with the UPEDU.Addison Wesley, 2003.

Rumbaugh J., I. Jacobson, Booch G., The Unified Modeling Language ReferenceManual, Addison-Wesley, 1999.

http://calisto.sip.ucm.es/people/pablo/teaching/tp0304/09%20Proceso%20Unificado%20Rational.pdf .