UNIVERSIDAD PRIVADA ANTONIO GUILLERMO URRELO
CARRERA PROFESIONAL DE INGENIERIA INFORMATICA Y DE SISTEMAS
“ANÁLISIS Y DISEÑO DE UN SISTEMA INFORMATICO PARA MEJORAR EL CONTROL DEL PROCESO DE REGISTRO DE COMPROBANTES DE
COMPRA Y VENTA DE LA“EMPRESA CONSTRUCTORA P&M S.A.C.”
TRABAJO DE INVESTIGACION
PARA OPTAR POR EL TITULO DE INGENIERO INFORMÁTICO Y DE SISTEMAS
PRESENTADO POR
Bach. Luis Adhemir Añazgo Delgado
COPYRIGHT © 2014 by Luis
Adhemir Añazgo Delgado
UNIVERSIDAD PRIVADA ANTONIO GUILLERMO URRELO FACULTAD DE DERECHO Y CIENCIA POLÍTICA
CARRERA PROFESIONAL DE INGENIERIA INFORMATICA Y DE SISTEMAS
APROBACIÓN DE TRABAJO DE INVESTIGACION PARA OPTAR TITULO DE INGENIERO INFORMÁTICO Y DE
SISTEMAS
“ANÁLISIS Y DISEÑO DE UN SISTEMA INFORMATICO PARA MEJORAR EL CONTROL DEL PROCESO DE REGISTRO DE COMPROBANTES DE COMPRA
Y VENTA DE LA “EMPRESA CONSTRUCTORA P&M S.A.C.”
Presidente:
Secretario:
Vocal:
DEDICATORIA
A Dios por darme la vida y fortaleza en los
momentos más difíciles de mi vida.
A mis padres y mi hermano por haberme
brindado su amor, valores, educación.
A mi abuela por ser mi mayor fuente de
aprendizajes y valores que tuve en mi vida.
A Paola mi razón de salir adelante y superar
AGRADECIMIENTO
A mi familia por su constante e inconmensurable apoyo, quienes contribuyen día a día a
esforzarme por ser mejor persona y un ejemplo para ellos.
Al señor Abraham Eusalio Portilla Mendoza, Gerente General de EMPRESA
CONSTRUCTORA P&M S.A.C. por su apoyo incondicional y brindarme las
PRESENTACIÓN
Señores Miembros del jurado:
De acuerdo a lo establecido para la obtención del Título Profesional de Ingeniero
Informático y de Sistemas presento a vuestra consideración Miembros del Jurado el
siguiente informe titulado “ANÁLISIS Y DISEÑO DE UN SISTEMA
INFORMÁTICO PARA MEJORAR EL CONTROL DEL PROCESO DE REGISTRO
DE COMPROBANTES DE COMPRA Y VENTA DE LA “EMPRESA
CONSTRUCTORA P&M S.A.C.” ”.
El presente informe, lo propongo para que sea analizado con la finalidad de ser
sometido a evaluación y se emita el dictamen respectivo.
Cajamarca, Julio del 2014
RESUMEN
El presente trabajo de investigación se ha realizado para el control de comprobantes de
compra y ventas de la EMPRESA CONSTRUCTORA P&M S.A.C. ubicada en la
Ciudad de Chimbote realizándose estudios previos sobre la problemática, los procesos
críticos, pasando por el análisis y diseño siguiendo los lineamientos de la metodología
de desarrollo ágil eXtreme Programming (XP) y finalizando con la construcción de un
prototipo funcional llamado "Sistema de Control de Comprobantes de Compra y Venta"
que va a permitir en un futuro controlar todos los comprobantes de compra y venta
emitidos y recibidos por conceptos de las actividades de obra realizadas, brindando a los
distintos usuarios que utilicen dicha aplicación, acceso rápido, ágil, fácil de entender y
oportuna para poder tener una rápida y oportuna decisión respecto al control de dichos
comprobantes.
Para la elaboración del prototipo funcional del Sistema de Control de Comprobantes de
Compra y Venta se ha utilizado eXtreme Programming (XP) por ser una metodología
centrada en el usuario, rápida, haciendo que este forme parte del equipo de desarrollo.
La aplicación de este proyecto será implementado haciendo uso de los lenguajes de
programación JavaServer Faces, Spring Framework y utilizará como repositorio de
datos a MySQL. Las herramientas de desarrollo a utilizar serán de software libre e
incluirán: ArgoUML, Power Designer.
Con la elaboración del prototipo de Sistema de Control de Comprobantes de Compra y
Venta se busca generar un prototipo funcional que sea útil, de fácil uso, entendimiento y
muy confiable que permita evaluar su funcionamiento real y así obtener los resultados
ABSTRACT
This research work has been done to control proof of purchase and sales of P & M
CONSTRUCTION COMPANY SAC Chimbote previous studies carried out on the
problem, critical processes, through the analysis and design following the guidelines of
the agile development methodology eXtreme Programming (XP) and ending with the
construction of a functional prototype called "Control System Voucher Buy and Sell
"which will allow in the future to control all buying and selling vouchers issued and
received by concepts of work activities performed, giving different users using that
application, quick, agile, easy to understand and access timely to have a quick and
timely decision regarding the control of these vouchers.
To prepare the working prototype of the Control System of Proof of Purchase and Sale
was used eXtreme Programming (XP) methodology for being user-centric, fast, making
this part of the development team. The implementation of this project will be
implemented using programming languages JavaServer Faces, Spring Framework and
used as a data repository to MySQL. The development tools are free to use software and
include: ArgoUML, Power Designer.
With the development of the prototype control system Proof of Purchase and Sale is to
generate a reliable functional prototype that is useful, easy to use, understanding and to
evaluate its actual performance and get the results for the control of receipts, providing
delivery of timely and accurate information, as this will serve to make better decisions
INTRODUCCIÓN
El presente informe de tiene por objeto la aplicación de los conocimientos adquiridos
durante mi formación académica universitaria dentro del marco empresarial, para el
caso en la “EMPRESA CONSTRUCTORA P&M S.A.C.”, y plasmarlo mediante la
Metodología XP, para la futura implementación y puesta en marcha del sistema
informático.
El presente proyecto de estudio surge de la necesidad de realizar un control del registro
de comprobantes de compra y venta de manera eficiente en el área de contabilidad de
EMPRESA CONSTRUCTORA P&M S.A.C. de tal forma que se pueda tener un mejor
verificación de entradas y salidas de sus recursos económicos.
También permitiendo obtener información confiable, rápida y actualizada de los
comprobantes que están por pagar y cobrar así también como su respectiva fecha,
cantidad y proveedor o cliente.
A continuación resumiré el presente trabajo por capítulos:
En el capítulo I: La Institución
En este capítulo se definen las generalidades de la empresa, objetivos generales,
objetivos específicos, estructura orgánica, misión, visión.
En el capítulo II: El Problema
En este capítulo se describe la realidad problemática, análisis de la problemática, la
En el capítulo III: Marco Teórico
En este capítulo se describen todas las teorías utilizadas para el desarrollo de esta
investigación.
En el capítulo IV: Aplicación de la Metodología XP
En este capítulo se realiza el desarrollo del prototipo funcional del sistema.
En el capítulo V: Viabilidad del Sistema
En este capítulo se describe la viabilidad del sistema informático.
En el capítulo VI: Conclusiones y Recomendaciones
En este capítulo se detallan las conclusiones generales, específicas y recomendaciones.
Referencias
INDICE
Pág.
DEDICATORIA I
AGRADECIMIENTO II
PRESENTACION III
RESUMEN IV
ABSTRACT V
INTRODUCCION VI
LISTA DE TABLAS XVI
LISTA DE FIGURAS XVII
CAPITULO I
LA INSTITUCIÓN
1.1.NATURALEZA 1
1.1.1. Nombre o Razón Social 1
1.1.2. Finalidad 1
1.1.3. Objetivos 1
1.1.3.1. Objetivo General 1
1.2.2. Base Legal 3
1.2.3. Ubicación Geográfica 3
1.2.4. Estructura Orgánica 3
1.2.4.1. Alta Dirección 4
1.2.4.2. Dirección Intermedia 4
1.2.4.3. Estructura de Apoyo 4
1.2.5. Organigrama 5
1.2.6. Funciones 5
1.2.6.1. Alta Dirección 5
1.2.6.2. Dirección Intermedia 6
1.2.6.3. Estructura de Apoyo 6
1.3.MISION 7
1.4.VISION 7
1.5.DIAGNOSTICO INFORMÁTICO 8
1.5.1. Hardware 8
1.5.2. Software 9
CAPITULO II
EL PROBLEMA
2.1. PROBLEMA 10
2.1.1. Realidad Problemática 10
2.3. OBJETIVO 12
2.3.1. Objetivo General 12
2.3.2. Objetivos Específicos 13
2.4. JUSTIFICACIÓN E IMPORTANCIA 13
2.4.1. Justificación 13
2.4.2. Importancia 14
CAPITULO III
MARCO TEÓRICO
3.1. SISTEMA 15
3.1.1. Definición 15
3.1.2. Clasificación de los Sistemas 16
3.1.2.1. Según su relación con el medio ambiente 16
3.1.2.2. Según su Naturaleza 17
3.1.2.3. Según su Origen 17
3.1.2.4. Según sus Relaciones 18
3.1.2.5. Según su Cambio con el Tiempo 18
3.1.2.6. Según el Tipo de Variables que lo Definen 19
3.1.2.7. Otras Clasificaciones 19
3.2. SISTEMA DE INFORMACION 19
3.2.2.2. Sistema de Información Gerencial 21
3.2.2.3. Sistema de Soporte a Decisiones 21
3.2.2.4. Sistema de Información Ejecutiva 21
3.2.3. Sistemas de Gestión 22
3.2.4. Aplicaciones de Escritorio 22
3.3. LENGUAJES DE PROGRAMACION 22
3.3.1. JavaServer Faces 24
3.3.2. RichFaces 27
3.3.3. Spring Framework 27
3.3.4. Spring Security 28
3.3.5. JPA + Hibernate 29
3.4. METODOLOGIAS DE DESARROLLO DE SOFTWARE 30
3.4.1. Definición 30
3.4.2. Metodologías Agiles de Desarrollo 31
3.4.2.1. Definición 31
3.4.2.2. Programación Extrema 32
3.5. BASE DE DATOS 35
3.5.1. Definición 35
3.5.2. Sistemas Gestores de Base de Datos 35
3.5.2.1. Definición 35
3.5.2.2. MYSQL 37
3.6. SOFTWARE GRATIS (FREEWARE) 37
3.6.1. Definición 37
3.6.1.1. Software de Desarrollo Gratuito 37
3.7.1. Definición 38
3.7.2. Objetivos de XP 39
3.7.3. Variables de XP 39
3.7.3.1. Coste 39
3.7.3.2. Tiempo 39
3.7.3.3. Calidad 40
3.7.3.4. Ámbito 40
3.7.4. Los Valores de XP 41
3.7.4.1. Comunicación 41
3.7.4.2. Sencillez 42
3.7.4.3. Retroalimentación 42
3.7.4.4. Valentía 42
3.7.5. Actividades Básicas de XP 43
3.7.5.1. Codificar 43
3.7.5.2. Hacer Pruebas 43
3.7.5.3. Escuchar 43
3.7.5.4. Diseñar 44
3.7.6. Las Fases de XP 45
3.7.6.1. Planificación del Proyecto 45
3.7.6.1.1. Historias de Usuario 45
3.7.6.1.2. Tareas de Ingeniería 46
3.7.6.1.3. Iteraciones 46
3.7.6.2. Diseño 47
3.7.6.3. Desarrollo 49
3.7.6.4. Pruebas 51
3.7.6.4.1. Test de Aceptación 52
3.8. ANTECEDENTES 53
3.9. MARCO CONCEPTUAL 54
3.10.HIPOTESIS 54
3.11.METODO DE INVESTIGACION 55
3.11.1.Tipo de Investigación 55
3.11.2.Diseño de Investigación 55
3.11.3.Área de Investigación 55
3.11.4.Población 55
3.11.5.Muestra 56
3.11.6.Técnicas e Instrumentos de Recolección de Datos 56
3.11.6.1.Técnicas 56
3.11.6.2.Instrumentos 56
3.11.7.Metodología de Investigación 56
CAPITULO IV
APLICACIÓN DE LA METODOLOGIA XP
4.1. FASE I: PLANIFICACION 58
4.1.1. Historias de Usuario 61
4.1.4. Iteraciones 85
4.1.5. Rotaciones 86
4.1.6. Reuniones 86
4.2. FASE II: DISEÑO 86
4.2.1. Metáfora Del Sistema 86
4.2.2. Tarjetas C.R.C. 89
4.2.3. Soluciones Puntuales 91
4.2.4. Reuniones 92
4.2.5. Funcionalidad Mínima 92
4.2.6. Reciclaje 93
4.3. DIAGRAMAS 93
4.3.1. Modelado de Negocio 94
4.3.2. Caso de Uso del Sistema 95
4.3.3. Casos de Uso 96
4.3.4. Diagrama de la Base de Datos 108
4.3.5. Diagrama de Despliegue 109
4.3.6. Diagrama de Componentes 110
4.3.7. Interfaces 111
CAPITULO V
5.1.2. Factibilidad Económica 120
5.1.3. Factibilidad Operativa 121
5.2. COSTOS Y BENEFICIOS DEL SISTEMA PROPUESTO 121
5.2.1. Costos de Desarrollo del Sistema 121
5.2.2. Costos de Mantenimiento del Sistema 122
5.2.3. Beneficios 123
5.2.4. Análisis Económico 126
5.3. RESULTADOS Y DISCUSION 127
5.3.1. Resultados 127
5.3.2. Discusión 127
CAPITULO VI
CONCLUSIONES Y RECOMENDACIONES
6.1. CONCLUSIONES GENERALES 128
6.2. CONCLUSIONES ESPECIFICAS 128
6.3. RECOMENDACIONES 129
REFERENCIAS
A. BIBLIOGRAFIA 131
LISTA DE TABLAS
Nº Título de la Tabla Pág. Tabla N 01: Características de la Computadora 8 Tabla N 02: Características de la Impresora 8 Tabla N 03: Características del Modem 9 Tabla N 04: Características del Software 9 Tabla N 05: Personas Relacionadas con el Sistema 60 Tabla N 06: Costos del Desarrollo del Sistema 122 Tabla N 07: Beneficios obtenidos del ahorro de tiempo 124
Tabla N 08: Beneficios Económicos 125
LISTA DE FIGURAS
Nº Título de la Figura Pág. Figura N 01: Organigrama de “EMPRESA CONSTRUCTORA P&M S.A.C.” 5 Figura N 02: Esquema Gráfico General De Un Sistema 16 Figura N 03: Reglas de Trabajo de XP 34 Figura N 04: Ejemplo de Historia de Usuario 46
Figura N 05: Tarjeta C.R.C. 48
Figura N 06: Test de Aceptación 53
Figura N 07: Fases de la Metodología XP 58
Figura N 08: Autenticar Usuario 61
Figura N 09: Diseño de la Interfaz de Autenticación 62
Figura N 10: Logueo de Usuario 62
Figura N 11: Gestionar Usuario del Sistema 63 Figura N 12: Diseño de la Interfaz para la Gestión de Usuarios 63
Figura N 13: Listar Usuarios 63
Figura N 14: Inserción De Usuarios 64
Figura N 15: Eliminación De Usuarios 64 Figura N 16: Modificación de Usuarios 65 Figura N 17: Gestionar Parámetros del Sistema 65 Figura N 18: Diseño de la Interfaz para la Gestión de Parámetros 65
Figura N 19: Listar Parámetros 66
Figura N 22: Modificación de Parámetros 67 Figura N 23: Gestionar Clientes y Proveedores 67 FIGURA N 24: Diseño de la Interfaz para la Gestión de Clientes y Proveedores 68 Figura N 25: Listar Clientes y Proveedores 68 Figura N 26: Inserción de Clientes y Proveedores 69 Figura N 27: Eliminación de Clientes y Proveedores 69 Figura N 28: Modificación de Clientes y Proveedores 70 Figura N 29: Gestionar Comprobantes de Compra y Venta 70 Figura N 30: Diseño de la Interfaz para la Gestión de Comprobantes de Compra y
Venta 70
Figura N 46: Eliminación De Documentos Sustentatorios 78 Figura N 47: Modificación de Documentos Sustentatorios 78 Figura N 48: Generar Reporte de Compras y Ventas 78 Figura N 49: Mostrar Reporte de Compras y Ventas de cada Obligación Mensual 79 Figura N 50: Generar Reporte de Compras y Ventas no Canceladas 79 Figura N 51: Mostrar Reporte de Compras y Ventas de cada Obligación Mensual que
aún no han sido Canceladas 80
Figura N 52: Generar Reporte de Pagos y Cobros Semanales 80 Figura N 53: Mostrar Reporte de los Pagos y Cobros que están por Realizarse en cada
Semana 81
Figura N 54: Generar Reporte de Doc. Sustentatorios sin Comprobantes Asignados 81 Figura N 55: Mostrar Reporte de Doc. Sustentatorios sin Comprobantes Asignados en
cada Semana 82
Figura N 56: Estimación de Esfuerzos 83 Figura N 57: Velocidad del Proyecto 84 Figura N 58: Tarjeta C.R.C. Conexión 89 Figura N 59: Tarjeta C.R.C. Usuario 89 Figura N 60: Tarjeta C.R.C. Parámetros 89 Figura N 61: Tarjeta C.R.C. Proveedores 90 Figura N 62: Tarjeta C.R.C. Comprobantes 90 Figura N 63: Tarjeta C.R.C. Documentos Sustentatorios 90 Figura N 64: Tarjeta C.R.C. Cronograma 91
Figura N 65: Modelado de Negocio 94
CAPITULO I
LA INSTITUCIÓN
1.1. NATURALEZA
1.1.1. Nombre o Razón Social:
”EMPRESA CONSTRUCTORA P&M S.A.C.”
1.1.2. Finalidad:
Ejecución y mantenimiento de obras civiles.
1.1.3. Objetivos:
1.1.3.1. Objetivo General:
Brindar un servicio de alta calidad a sus clientes a fin de
satisfacer y mejorar sus necesidades ampliando el
posicionamiento en el mercado, mejorando la imagen y
servicios.
1.1.3.2. Objetivos Específicos:
Satisfacer los requerimientos y necesidades de los clientes.
Prestar servicios eficientes y de alta calidad.
Mantener control en los procesos de la organización, con el
Mejorar la calidad de los servicios prestados.
1.2. DESCRIPCION DE LA ORGANIZACION 1.2.1. Reseña Histórica
La “EMPRESA CONSTRUCTORA P&M S.A.C.”, es una empresa
familiar dedicada al rubro de la construcción, es una empresa constituida
el día 13 de Diciembre del 2006, conformada por los socios Abraham
Eusalio Portilla Mendoza y Tomas Francisco Portilla Mendoza.
Su origen se basa en la continuidad funcional y operativa en la Región
Ancash de emprendimientos empresariales, por lo que se considera
importante y valiosa la experiencia, ofreciendo servicios de construcción
de alta calidad.
Por lo tanto se constituye “EMPRESA CONSTRUCTORA P&M
S.A.C.”, con capital propio, es decir, sin requerimientos crediticios,
ofreciendo sus servicios al sector público y privado dentro del rubro de la
construcción de edificios, alquiler de equipos y maquinarias.
Ha volcado su experiencia en emprendimientos empresariales de obras
civiles, remodelación, adecuación, mantenimiento integral y todo lo
relacionado a la construcción tales como albañilería, instalaciones
1.2.2. Base Legal
Constitución y Estatutos de “EMPRESA CONSTRUCTORA P&M
S.A.C.”, realizada ante Notario Público Honorato W. Campos Iturrizaga.
Registro Único de Contribuyente (RUC) Nº 20445661687
1.2.3. Ubicación Geográfica
La “EMPRESA CONSTRUCTORA P&M S.A.C.” se encuentra ubicado
en:
Departamento : Ancash
Provincia : Santa
Distrito : Nuevo Chimbote
Urbanización : David Dasso
Calle : Mz E. Lt 23
1.2.4. Estructura Orgánica
La “EMPRESA CONSTRUCTORA P&M S.A.C.” tiene la siguiente
estructura orgánica:
Alta dirección.- Elemento que representa el papel de la dirección general
de la empresa o la función del empresario.
Dirección intermedia.- Elemento que representa el papel de los mandos
intermedios o de los ejecutivos o directivos de la línea jerárquica de la
Base operativa.- Elemento que recoge los centros operativos de la
empresa y el conjunto de personas (técnicos y trabajadores) que están
directamente relacionados con la producción y venta de los bienes y
servicios.
Tecnoestructura.- Elemento que representa el papel de los analistas,
especialistas o expertos en las distintas funciones de la dirección y de la
explotación.
Estructura de apoyo.- Elemento que integra el papel de los centros y de
los expertos que apoyan logísticamente y asesoran el desarrollo de las
actividades básicas y funciones directivas de la empresa.
1.2.4.1. Alta Dirección Gerencia General
1.2.4.2. Dirección intermedia Administración
o Recursos Humanos
o Contabilidad
Asesoría Legal
1.2.4.3. Estructura de Apoyo Logística
Finanzas
Informática
1.2.5. Organigrama
Figura 01: Organigrama de “EMPRESA CONSTRUCTORA P&M S.A.C.”
GERENCIA GENERAL
ADMINISTRACION
RECURSOS
HUMANOS CONTABILIDAD
ASESORIA LEGAL
LOGISTICA JEFATURA DE OBRAS FINANZAS INFORMATICA
Fuente: Elaboración propia
1.2.6. Funciones
La “EMPRESA CONSTRUCTORA P&M S.A.C.” tiene las siguientes
funciones:
1.2.6.1. Alta Dirección Gerencia General
Dirigir, organizar, asesorar, supervisar y evaluar el
1.2.6.2. Dirección intermedia Administración
Programar, dirigir, coordinar y supervisar las labores del
personal a su cargo.
o Recursos Humanos
o Coordinar y controlar la asistencia, puntualidad y
dedicación del personal de la institución.
o Contabilidad
o Operar las políticas, normas, sistemas y procedimientos
necesarios para garantizar la exactitud y seguridad en la
captación y registro de las operaciones financieras,
presupuestales de la entidad.
Asesoría Legal
Analizar y estudiar expedientes de carácter legal y elaborar
los informes correspondientes.
1.2.6.3. Estructura de Apoyo Logística
Gestionar, controlar y hacer el pago por adquisiciones de
recursos, bienes y servicios.
Jefatura de Obras
Coordinar las actividades de mantenimiento preventivo y
correctivo de los bienes materiales e inmuebles, las
inspecciones de obras y los trabajos de construcción,
Finanzas
Desarrollar de manera eficiente las actividades de control,
manejo y desembolso de fondos, valores y documentos
negociables de la empresa.
Informática
Brindar la administración necesaria a los equipos y
tecnología para realizar acciones que permitan la
automatización y operación de los datos y sistemas de
información.
1.3. MISION
Proporcionar a nuestros clientes servicios de construcción con calidad superando
sus expectativas usando la mejor tecnología, materiales con personal altamente
calificado.
1.4. VISION
Posicionar en el ámbito estatal como la mejor empresa en el ramo de la
edificación y mantenernos a la vanguardia en cuanto a las nuevas tecnologías de
construcción, basándonos en la especialización y capacitación de nuestro
personal, respetando las normas para la conservación del medio ambiente.
Contando para ello con un capital humano de primer nivel con más de 7 años de
experiencia en el sector construcción, así como modernas maquinarias y equipos
1.5. DIAGNÓSTICO INFORMÁTICO 1.5.1. Hardware
La “EMPRESA CONSTRUCTORA P&M S.A.C.” cuenta actualmente
con 3 computadoras, 1 impresora, 1 modem.
03 Computadoras:
Tabla N 01: Características de la Computadora Características Detalle
Microprocesador Intel Core2 Quad Q8200 2.33GHz Memoria RAM 4 GB
Disco Duro 500 GB
Monitor Marca SAMSUNG 17” Disk Drive 3.5”
Lector Marca LG, RW-DVD Fuente: Elaboración Propia
01 Impresora:
Tabla N 02: Características de la Impresora Características Detalle
Marca CANON
Modelo MP2200
Tecnología Tinta Velocidad 12 ppm
01 Modem:
Tabla N 03: Características del Modem Características Detalle
Marca TP-LINK
Modelo TL-WA701ND
Puertos 4
Velocidad 100 Mpps Fuente: Elaboración Propia
1.5.2. Software
Tabla N 04: Características del Software Características Detalle Sistema Operativo Windows 7
Ofimática LibreOffice 4.2.0 Leguaje de Programación Ninguno
CAPITULO II
EL PROBLEMA
2.1. PLANTEAMIENTO DEL PROBLEMA
2.1.1. Descripción de la Realidad Problemática
“EMPRESA CONSTRUCTORA P&M S.A.C”, fue fundada en el año
2006 en la Ciudad de Chimbote por sus dos socios, constituyéndose
cómo una sociedad anónima cerrada, cuyo objeto es brindar los servicios
de ingeniería civil (Construcción y Mantenimiento de Obras Civiles
construyendo edificios públicos, plazas, veredas, mantenimiento de
carreteras tanto en el sector público y privado.
De acuerdo al Reglamento de la Ley de contrataciones del Estado, se
encuentra inscrita en el Registro Nacional de Contratistas, gozando de
una capacidad de contratación anual de 540 mil nuevos soles, lo cual le
permite ejecutar obras civiles por el mismo valor; además de ello cuenta
con licencia de funcionamiento, y estatutos correspondientes;
documentos que le permite realizar sus actividades brindando sus
servicios al Estado y entidades privadas.
La empresa por tener como actividad principal la construcción de obras
civiles, ejecuta de acuerdo a su capacidad de contratación una o más
obras en simultáneo ya sea en forma directa o consorciada, atendiendo a
Actualmente para el desarrollo de sus actividades administrativas cuenta
con nueve empleados fijos, pues la mayoría son contratados de manera
temporal dependiendo la duración de ejecución de la obra.
En todo el procedimiento de ejecución de las diversa obras que realiza en
simultaneo, Empresa Constructora P&M SAC, realiza una serie de
actividades comerciales, entre ellas de Compras al contado o a crédito de un bien o servicio, por lo cual la empresa realiza el respectivo pago de
su valor empleando diversos medios de cancelación como por ejemplo
cheques, depósitos, letras etc.
Por otro lado también realiza Ventas por lo general de Servicios de Construcción y Ejecución de obras, por lo cual la empresa emite su
respectivo comprobante (factura) a quien brindó sus servicios.
De esta manera la Empresa posee una serie de comprobantes tanto de
compras como ventas que realiza, los cuales son registrados solamente en
un formato de Excel, siéndoles dificultoso controlar y planificar el pago
puntual en la fecha pactada de cada obligación asumida con los
proveedores y demás acreedores.
Por lo expuesto; Empresa Constructora P&M S.A.C, se encuentra en la
imperiosa necesidad de implementar un programa que le permita
simplificar el procedimiento de registro de pagos y cobros de los
diferentes comprobantes que ingresan a la oficina de administración,
2.1.2. Análisis de la Realidad Problemática
Con el proceso actual, la empresa viene ordenando, registrando, y
realizando búsqueda de comprobantes de compra y venta de forma
manual, de acuerdo al periodo de facturación.
Además se debe de verificar que a los comprobantes con un monto
mayor a 1000 dólares o 3500 soles deben de adicionarse un documento
que sustente el pago o cobro por concepto de dicho comprobante
(voucher, cheque, depósito, etc) que justifique su cancelación.
Asimismo realiza manualmente la programación de pagos y cobros de
dichos comprobantes originando con ello demoras y conflictos sobre todo
al momento de cumplir oportunamente sus obligaciones para sus
proveedores y también poder solicitarles sus comprobantes de compra
por pagos ya realizados.
2.2. FORMULACIÓN DEL PROBLEMA
¿En qué medida el Análisis y Diseño de un Sistema Informático para el control
del proceso de registro de comprobantes de compra y venta podrá ser una
alternativa para mejorar el control de los ingresos y pagos a la “EMPRESA
CONSTRUCTORA P&M S.A.C.”?
2.3. OBJETIVOS
2.3.1. Objetivo General
Analizar y diseñar un Sistema Informático que permite el control
del proceso de registro de comprobantes de compra y venta para
2.3.2. Objetivos Específicos
Analizar y evaluar el proceso de registro de comprobantes actual.
Aplicar la metodología XP en los flujos de trabajo del proyecto.
Determinar si es factible la implementación de un Sistema
Informático.
Modelar la Arquitectura mediante el Análisis y Diseño del Sistema
Informático.
2.4. JUSTIFICACION E IMPORTANCIA 2.4.1. Justificación
Se busca reducir el tiempo del registro de comprobantes en la
brevedad posible y esto se lograra con la automatización de dicho
proceso mediante el análisis y diseño.
Tener un Modelado Arquitectónico, en base al Análisis y Diseño de
las diferentes acciones que se desarrollan en el registro de
comprobantes.
Se tendrá actualizado el registro de pagos y cobros de los diversos
comprobantes de pago y pueda agilizar la búsqueda de aquellos que
están pendientes por pagar o cobrar.
Obtener beneficios directos como: Generación de reportes con
información actualizada y oportuna.
Obtener beneficios indirectos como: Competitividad, eficiencia,
2.4.2. Importancia
El presente trabajo contribuirá en la elaboración de un prototipo el cual
servirá para una posterior implementación de un Sistema Informático
hecho a medida el cual controlara el registro de comprobantes de compra
CAPITULO III
MARCO TEÓRICO
3.1. Sistema
3.1.1. Definición
Un sistema es un conjunto de partes o elementos organizados y
relacionados que interactúan entre sí para lograr un objetivo. Los sistemas
reciben (entrada) datos, energía o materia del ambiente y proveen (salida)
información, energía o materia.
Un sistema puede ser físico o concreto (una computadora, un televisor, un
humano) o puede ser abstracto o conceptual (un software)
Cada sistema existe dentro de otro más grande, por lo tanto un sistema
puede estar formado por subsistemas y partes, y a la vez puede ser parte de
un súper sistema.
Los sistemas tienen límites o fronteras, que los diferencian del ambiente.
Ese límite puede ser físico (el gabinete de una computadora) o conceptual.
Si hay algún intercambio entre el sistema y el ambiente a través de ese
límite, el sistema es abierto, de lo contrario, el sistema es cerrado.
El ambiente es el medio en externo que envuelve física o conceptualmente
a un sistema. El sistema tiene interacción con el ambiente, del cual recibe
entradas y al cual se le devuelven salidas. El ambiente también puede ser
Un grupo de elementos no constituye un sistema si no hay una relación e
interacción, que de la idea de un "todo" con un propósito.
Figura N 02: Esquema Gráfico General De Un Sistema
Fuente: ALGESA
3.1.2. Clasificación de los Sistemas
La clasificación de un sistema al igual que el análisis de los aspectos del
mismo es un proceso subjetivo; depende del individuo que lo hace, del
objetivo que se persigue y de las circunstancias particulares en las cuales
se desarrolla. En este punto se dan lineamientos generales sobre las
diferentes clases de sistemas y algunos ejemplos que corresponden a su
definición.
3.1.2.1. Según su relación con el medio ambiente 3.1.2.1.1. Sistemas abiertos
Sistema que intercambia materia, energía o
información con el ambiente. Ejemplos: Célula, ser
humano, ciudad, perro, televisor, familia, estación de
3.1.2.1.2. Sistemas cerrados:
Sistema que no intercambia materia, energía o
información con el ambiente. Ejemplos: Universo,
reloj desechable, llanta de carro.
3.1.2.2. Según su Naturaleza
3.1.2.2.1. Sistemas concretos
Sistema físico o tangible. Ejemplos: Equipo de
sonido, edificio, pájaro, guitarra, elefante.
3.1.2.2.2. Sistemas abstractos
Sistema simbólico o conceptual. Ejemplos: Sistema
hexadecimal, idioma español, lógica difusa.
3.1.2.3. Según su Origen
3.1.2.3.1. Sistemas naturales
Sistema generado por la naturaleza. Ejemplos: Río,
bosque, molécula de agua.
3.1.2.3.2. Sistemas artificiales
Sistema producto de la actividad humana; son
concebidos y construidos por el hombre. Ejemplos:
3.1.2.4. Según sus Relaciones 3.1.2.4.1. Sistemas simples
Sistema con pocos elementos y relaciones. Ejemplos:
Juego de billar, péndulo, f(x) = x + 1, palanca.
3.1.2.4.2. Sistemas complejos
Sistema con numerosos elementos y relaciones entre
ellos. Ejemplos: Cerebro, universidad, cámara
fotográfica
Esta clasificación es relativa porque depende del
número de elementos y relaciones considerados. En la
práctica y con base en límites sicológicos de la
percepción y comprensión humanas, un sistema con
más o menos siete elementos y relaciones se puede
considerar simple.
3.1.2.5. Según su cambio en el tiempo 3.1.2.5.1. Sistemas estáticos
Sistema que no cambia en el tiempo. Ejemplos:
Piedra, vaso de plástico, montaña.
3.1.2.5.2. Sistemas dinámicos
Sistema que cambia en el tiempo. Ejemplos:
Universo, átomo, la tierra, hongo. Esta clasificación
es relativa porque depende del periodo de tiempo
3.1.2.6. Según el tipo de variables que lo definen 3.1.2.6.1. Sistemas discretos
Sistema definido por variables discretas. Ejemplos:
lógica booleana, alfabeto.
3.1.2.6.2. Sistemas continuos
Sistema definido por variables continúas. Ejemplos:
alternador, río.
3.1.2.7. Otras Clasificaciones
3.1.2.7.1. Sistemas jerárquicos
Sistema cuyos elementos están relacionados mediante
relaciones de dependencia o subordinación
conformando una organización por niveles. Ejemplos:
Gobierno de una ciudad.
3.1.2.7.2. Sistemas de control
Sistema jerárquico en el cual unos elementos son
controlados por otros. Ejemplos: Lámpara.
3.1.2.7.3. Sistemas de control con retroalimentación
Sistema de control en el cual los elementos
controlados envían información sobre su estado a los
3.2. Sistemas de Información
3.2.1. Definición
Un sistema de información es un conjunto de elementos que interactúan
entre sí con el fin de apoyar las actividades de una empresa o negocio.
Requiere usualmente el equipo computacional (hardware) que es
necesario para que el sistema de información pueda operar. No obstante
se puede diseñar un sistema de información sin que este esté ligado a
ningún software, debido a que el objetivo principal es apoyar las
actividades de la empresa.
Es necesario el recurso humano que interactúa con el Sistema de
Información, el cual está formado por las personas que utilizan el
sistema.
Un sistema de información realiza cuatro actividades básicas: entrada,
almacenamiento, procesamiento y salida de información.
3.2.2. Tipos de Sistemas de Información
3.2.2.1. Sistema de Procesamiento de Transacciones
Cuando un sistema recopila, almacena y altera la información
creada a partir de transacciones llevadas a cabo dentro de una
organización se denomina sistema de procesamiento de
transacciones. Tiene como finalidad procesar las transacciones
diarias de una empresa, acumulando toda la información
3.2.2.2. Sistema de Información Gerencial
Un sistema de información gerencial es aquel utilizado por la
empresa para solventar inconvenientes en la misma. Es decir, el
objetivo del mismo es la suministración de información para la
resolución de problemas a través de la interacción entre
tecnologías y personas.
Los datos aportados por el sistema deben disponer de cuatro
cualidades elementales: calidad, oportunidad, cantidad y
relevancia.
3.2.2.3. Sistema de soporte a Decisiones
Este sistema se basa en el estudio y la comparación entre un
conjunto de variables con el objeto de contribuir a la toma de
decisiones dentro de una empresa. El apoyo dado por el sistema
involucra la estimación, valoración y balance entre alternativas.
Al igual que el sistema de información gerencial, esta tecnología
interacciona con personas en el filtrado de información que
permite optar por la decisión más acertada.
3.2.2.4. Sistema de Información Ejecutiva
Esta tecnología es utilizada por los gerentes de una empresa, ya
que permite acceder a la información interna y externa de la
misma, disponiendo de los datos que puedan llegar a afectar su
De esta manera, el ejecutivo podrá conocer el estado de todos
los indicadores, incluso aquellos que no cumplan con las
expectativas y a partir de esto, tomar las medidas que considere
adecuadas.
3.2.3. Sistemas de Gestión
Un sistema de gestión es una estructura probada para la gestión y mejora
continua de las políticas, los procedimientos y procesos de la
organización.
3.2.4. Aplicaciones de Escritorio
Una aplicación de escritorio es una aplicación diseñada para su
funcionamiento a través del sistema operativo que la estación
computacional utiliza.
El software o aplicación de escritorio, también conocido como un recurso
o un "app", es un programa informático diseñado para ayudar al usuario a
realizar singulares o múltiples tareas específicas relacionadas. Ayuda a
resolver problemas en el mundo real. Los ejemplos incluyen software
empresarial, software de contabilidad, suites de oficina, software de
gráficos, y reproductores de medios.
3.3. Lenguajes de Programación
Un lenguaje de programación es un lenguaje diseñado para describir el conjunto
de programación es un modo práctico para que los seres humanos puedan dar
instrucciones a un equipo.
Por otro lado, el término "lenguaje natural" define un medio de comunicación
compartido por un grupo de personas (por ejemplo: inglés o francés).
Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada
que ver con los lenguajes de programación; se los conoce como protocolos de
comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de
programación es muy estricto:
A CADA instrucción le corresponde UNA acción de procesador.
El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata
de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 (datos
binarios).
El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos,
razón por la cual se han desarrollado lenguajes intermediarios comprensibles
para el hombre. El código escrito en este tipo de lenguaje se transforma en
código máquina para que el procesador pueda procesarlo.
El ensamblador fue el primer lenguaje de programación utilizado. Es muy
similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No
obstante, este lenguaje se parece tanto al lenguaje máquina que depende
estrictamente del tipo de procesador utilizado (cada tipo de procesador puede
tener su propio lenguaje máquina). Así, un programa desarrollado para un
equipo no puede ser portado a otro tipo de equipo. El término "portabilidad"
describe la capacidad de usar un programa de software en diferentes tipos de
ensamblador en otro tipo de equipo, a veces será necesario volver a escribir todo
el programa.
Por lo tanto, un lenguaje de programación tiene varias ventajas:
Es mucho más fácil de comprender que un lenguaje máquina.
Permite mayor portabilidad, es decir que puede adaptarse fácilmente para
ejecutarse en diferentes tipos de equipos.
Existen muchos paradigmas relacionados a los lenguajes de programación. Para
esta investigación se tocará el tema de los lenguajes de programación orientados
a escritorio.
3.3.1. JavaServer Faces
JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de
interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages
(JSP) como la tecnología que permite hacer el despliegue de las páginas,
pero también se puede acomodar a otras tecnologías
como XUL (acrónimo de XML-based User-interface Language, lenguaje
basado en XML para la interfaz de usuario).
JSF incluye:
Un conjunto de APIs para representar componentes de una interfaz
de usuario y administrar su estado, manejar eventos, validar entrada,
definir un esquema de navegación de las páginas y dar soporte para
internacionalización y accesibilidad.
Dos bibliotecas de etiquetas personalizadas para JavaServer Pages
que permiten expresar una interfaz JavaServer Faces dentro de una
página JSP.
Un modelo de eventos en el lado del servidor.
Administración de estados.
Beans administrados.
La especificación de JSF fue desarrollada por la Java Community
Process como JSR 127, que definía JSF 1.0 y 1.1, JSR 252 que
define JSF 1.2 y JSR 314 para JSF 2.0
Versiones
JSF 1.0 (11-03-2004) - Lanzamiento inicial de las especificaciones
de JSF.
JSF 1.1 (27-05-2004) - Lanzamiento que solucionaba errores. Sin
cambios en las especificaciones ni en el renderkit de HTML.
JSF 1.2 (11-05-2006) - Lanzamiento con mejoras y corrección de
errores.
JSF 2.0 (12-08-2009) - Lanzamiento con mejoras de funcionalidad y
performance y facilidad de uso.
JSF 2.1 (22-10-2010) - Lanzamiento de mantenimiento, con
mínimos cambios.
JSF 2.2 (16-04-2013) - Lanzamiento que introduce soporte a HTML
Implementaciones
Las principales implementaciones de JSF son:
JSF Reference Implementation de Sun Microsystems.
MyFaces proyecto de Apache Software Foundation.
Extensiones
Algunas extensiones de JSF son:
RichFaces Agrega componentes visuales y soporte para AJAX.
ICEfaces Contiene diversos componentes para interfaces de usuarios
más enriquecidas, tales como editores de texto enriquecidos,
reproductores de multimedia, entre otros.
jQuery4jsf Contiene diversos componentes sobre la base de uno de
los más populares framework javascript jQuery.
PrimeFaces Es una librería muy liviana, todas las decisiones hechas
son basadas en mantener a PrimeFaces lo más liviano posible.
PrimeFaces es una librería muy simple que no necesita dependencias
y configuraciones.
OpenFaces Librería open source que contiene diferentes
componentes JSF, un Framework Ajax y un Framework de
3.3.2. RichFaces
Richfaces es una biblioteca de código abierto basada en Java que permite crear aplicaciones web con Ajax.
Construye sobre el framework de Java Server Faces. Sobre él,
implementa unos filtros para permitir peticiones Ajax en la página. La
singularidad del planteamiento que ofrece es que la petición Ajax
provoca una ejecución en el servidor y finalmente una renderización
parcial o total de la página del navegador. Así, el control de lo que
sucede está en el servidor.
Richfaces está desarrollado y mantenido por JBoss.
3.3.3. Spring Framework
Spring es un framework para el desarrollo de aplicaciones y contenedor de inversión de control, de código abierto para laplataforma Java.
La primera versión fue escrita por Rod Johnson, quien lo lanzó junto a la
publicación de su libro Expert One-on-One J2EE Design and
Development (Wrox Press, octubre 2002). El framework fue lanzado
inicialmente bajo la licencia Apache 2.0 en junio de 2003. El primer gran
lanzamiento fue la versión 1.0, que apareció en marzo de 2004 y fue
seguida por otros hitos en septiembre de 2004 y marzo de 2005. La
versión 1.2.6 de Spring Framework obtuvo reconocimientos Jolt Awards
y Jax Innovation Awards en 2006.34 Spring Framework 2.0 fue lanzada
de 2009, y Spring 3.1 dos años más tarde. La versión actual es 3.2.0.5 El
inicio del desarrollo de la versión 4.0 fue anunciado en enero de 20136
Si bien las características fundamentales de Spring Framework pueden
ser usadas en cualquier aplicación desarrollada en Java, existen variadas
extensiones para la construcción de aplicaciones web sobre la
plataforma Java EE. A pesar de que no impone ningún modelo de
programación en particular, este framework se ha vuelto popular en la
comunidad al ser considerado una alternativa, sustituto, e incluso un
complemento al modelo EJB (Enterprise JavaBean).
3.3.4. Spring Security
Spring Security es uno de los framework de seguridad J2EE más
populares y completos usado por parte de instituciones, empresas e
universidades muy importantes. Con Spring Security es bastante trivial
incorporar la infraestructura básica de seguridad en una aplicación ya
implementada sin necesidad de escribir ni una línea de código gracias a
su naturaleza no invasiva. Además, posee componentes ya
implementados que permiten la integración con sistemas externos con
mucha facilidad. Inicialmente fue basado en el proyecto Acegi Security,
que con los años se fue convirtiendo en un producto robusto y maduro,
actualmente miembro de la familia de productos Spring. Debido a que
muchos de los conceptos como la inyección de dependencias y
programación orientada a aspectos los hereda de Spring, es aconsejable
La seguridad de la aplicación en sí se considera como un requisito
transversal, y por lo tanto se puede encapsular en forma de aspecto y más
tarde aplicarse de forma declarativa en cualquier punto de nuestra
aplicación. Spring Security ofrece módulos que aíslan ese tipo de lógica,
permitiendo además que la aplicación tenga una arquitectura robusta,
limpia y débilmente acoplada.
Otro de los elementos que ayuda a que los componentes de nuestra
aplicación tengan acoplamiento bajo es el patrón de diseño llamado
inyección de dependencias. En vez de que las clases se encarguen de
obtener sus propias referencias, éstas son instanciadas e inyectadas desde
una entidad externa llamada contenedor. El bajo acoplamiento también se
consigue con las interfaces. Es importante que los objetos conozcan sus
referencias a través de las interfaces, ya que se consigue ocultar la
implementación y cambiarla sin necesidad de tocar la referencia. Para
cualquier proyecto no trivial es casi un patrón de uso obligatorio
3.3.5. JPA + Hibernate
JPA – Java Persistence API es una especificación (concretamente
JSR-317 en su última versión) que debutó con JEE5 junto a EJB 3.0 y que
intentó superar la complejidad que suponía hasta el momento utilizar EJB
(en el caso de JPA hablaríamos de los EJB de Entidad usados para la
persistencia) , además de estandarizar hasta cierto punto los ORM que
de la especificación amplió sus capacidades con nuevas opciones de
mapeo y una API para la creación de consultas programáticamente, algo
con lo que Hibernate ya contaba bastante antes de la aparición de JPA
1.0.La versión 2.1 está ya muy cerca de su publicación final
Siempre que se habla de JPA tenemos que tener muy claro que no es más
que una especificación por lo que para utilizarla tendremos que recurrir a
un producto que implemente este estándar, y que además este producto
puede ofrecer soluciones y alternativas propias fuera del estándar
pudiéndose combinar ambas (aunque en este caso sería complicado
cambiar de implementación a posteriori). De todas implementaciones,
voy a utilizar Hibernate como “vendor” por ser la más conocida y
utilizada aunque existen otras alternativas excelentes comoOpenJPA de
Apache, ObjectDB o la ya mencionada TopLink.
3.4. Metodologías de desarrollo de Software
3.4.1. Definición
Una metodología de desarrollo de software se refiere al entorno que se
usa para estructurar, planificar y controlar el proceso de desarrollo de un
sistema de información.
Una determinada metodología no es necesariamente aplicable a todo tipo
de proyectos, más bien cada tipo de proyecto tiene una metodología a la
que se adapta mejor.
Una metodología de desarrollo de software consiste en:
- Una filosofía de desarrollo de software con una base de procesos de
- Múltiples herramientas, modelos y métodos, para asistir en el proceso
de desarrollo de software.
- Suele estar documentada de manera formal.
- Suele estar promovida por algún tipo de organización, ya sea esta
pública o privada, la cual se encarga de promover su uso.
Cada metodología de desarrollo tiene más o menos su propio enfoque de
en qué debe consistir un proyecto de desarrollo de software, pero todas se
basan en una serie de enfoques generalistas como:
Waterfall Model – Lineal
Prototyping – Iterativo
Incremental – combinación de iterativo y lineal
Spiral – Combinación de iterativo y lineal
Rapid Application Development (RAD) – iterativo
3.4.2. Metodologías Ágiles de Desarrollo 3.4.2.1. Definición
El desarrollo ágil de software son métodos de ingeniería del
software basados en el desarrollo iterativo e incremental, donde
los requerimientos y soluciones evolucionan mediante la
colaboración de grupos auto organizados y multidisciplinarios.
Existen muchos métodos de desarrollo ágil; la mayoría
minimiza riesgos desarrollando software en lapsos cortos. El
iteración del ciclo de vida incluye: planificación, análisis de
requerimientos, diseño, codificación, revisión y documentación.
Una iteración no debe agregar demasiada funcionalidad para
justificar el lanzamiento del producto al mercado, sino que la
meta es tener una «demo» (sin errores) al final de cada iteración.
Al final de cada iteración el equipo vuelve a evaluar las
prioridades del proyecto.
Los métodos ágiles enfatizan las comunicaciones cara a cara en
vez de la documentación. La mayoría de los equipos ágiles están
localizados en una simple oficina abierta, a veces llamadas
"plataformas de lanzamiento" (bullpen en inglés). La oficina
debe incluir revisores, escritores de documentación y ayuda,
diseñadores de iteración y directores de proyecto. Los métodos
ágiles también enfatizan que el software funcional es la primera
medida del progreso. Combinado con la preferencia por las
comunicaciones cara a cara, generalmente los métodos ágiles
son criticados y tratados como "indisciplinados" por la falta de
documentación técnica.
3.4.2.2. Programación Extrema (eXtreme Programming)
El primer proyecto de programación extrema empezó el 6 de
marzo de 1996. XP es uno de los muchos procesos ágiles
populares. Ha sido comprobado que es una metodología exitosa
en muchas compañías de diferentes tamaños e industrias a nivel
El motivo de su éxito se debe a que hace énfasis en la
satisfacción del cliente. En vez de entregar todo lo que uno
podría desear en una fecha futura este proceso entrega el
Software que uno necesita cuando se lo necesita. XP da
empoderamiento a los desarrolladores para que éstos respondan
de manera segura a los cambios de los requerimientos del
cliente, incluso si estos se presentan en partes posteriores del
ciclo de vida.
XP se enfatiza en el trabajo en equipo. Administradores, clientes
y desarrolladores son todos participantes que se encuentran en
un mismo nivel dentro de un equipo colaborativo. La
programación extrema implementa un ambiente simple, y sin
embargo, efectivo que facilita a los equipos el alcanzar alta
productividad. Los equipos se auto – organizan alrededor del
problema para resolverlo tan eficientemente como sea posible.
XP mejora un proyecto de software en cinco maneras
esenciales; comunicación, simplicidad, retroalimentación,
respeto y valentía.
XP comunica constantemente con los clientes y los
compañeros programadores.
Ellos mantienen su diseño simple y limpio.
Consiguen retroalimentación al probar su software
El sistema es entregado a los clientes tan pronto como es
posible y se implementan cambios de acuerdo a las
sugerencias.
Cada pequeño éxito depende en el respeto hacia las
contribuciones únicas que cada miembro del equipo
aporta.
Esta fundación permite a los programadores extremos
responder de forma valiente a los constantes
requerimientos y tecnología.
El aspecto más sorpresivo de XP son sus reglas simples. XP
puede ser asemejado a un rompecabezas. Existen muchas piezas
pequeñas. Individualmente las piezas no poseen sentido, pero
cuando son combinadas una imagen completa puede ser
diferenciada.
FIGURA N 03: Reglas de Trabajo de XP
Las reglas pueden parecer incómodas e incluso ingenuas al
inicio, pero están basadas en valores y principios.
Estas reglas proponen expectativas entre los miembros del
equipo pero no son la meta final por sí mismas. Estas reglas
definen un ambiente que promueve la colaboración en el equipo
y el empoderamiento, lo cual es la meta. Una vez que se ha
conseguido, el trabajo en equipo productivo continuará incluso
si las reglas cambian para encajar dentro de las necesidades de la
compañía.
3.5. Bases de Datos
3.5.1. Definición
El término de bases de datos fue escuchado por primera vez en 1963, en
un simposio celebrado en california – USA. Una base de datos se puede
definir como un conjunto de información relacionada que se encuentra
agrupada o estructurada. Desde el punto de vista de la informática, la
base de datos es un sistema formado por un conjunto de datos
almacenados en discos que permiten el acceso directo a ellos y un
conjunto de programas que manipulen ese conjunto de datos.
3.5.2. Sistemas Gestores de Bases de Datos 3.5.2.1. Definición
Entre sus funciones está:
Definir una base de datos: consiste en especificar los tipos
de datos, estructuras y restricciones para los datos que se
almacenarán.
Construir una base de datos: es el proceso de almacenar los
datos sobre algún medio de almacenamiento.
Manipular una base de datos: incluye funciones como
consulta, actualización, etc. de bases de datos.
Si el sistema soporta bases de datos relacionales se llama
RDBMS en inglés o SGBDR en español.
Otras funciones de los SGBD:
En la manipulación de una base de datos, los SGBD deben
incluir un control de concurrencia, o sea, deben permitir a
varios usuarios tener acceso "simultáneo" a la base de datos.
Controlar la concurrencia implica que si varios usuarios
acceden a la base de datos, la actualización de los datos se
haga de forma controlada para que no haya problemas.
Un SGBD también debe encargase de cumplir las reglas de
integridad y redundancias.
Otra función importante en un SGBD es su capacidad de
realizar copias de seguridad y de recuperación de datos.
Restricción de accesos no autorizados.
Suministrar múltiples interfaces de usuario.
3.5.2.2. MYSQL
MySQL es un sistema de gestión de base de datos relacional de
código abierto. La información contenida en una base de datos
MySQL se almacena en forma de tablas relacionadas. Bases de
datos MySQL se utilizan normalmente para el desarrollo de
aplicaciones web (a menudo usando PHP).
Una base de datos MySQL se puede acceder (a través de
Querys) utilizando directamente, C, C + +, Eiffel, Java, Perl,
PHP y lenguajes de programación Python. También hay apoyo
de terceros para la conexión en un entorno Windows.
Las Bases de datos MySQL se consultan con un subconjunto de
los comandos de Lenguaje de consulta estructurado (SQL).
3.6. Software Gratis (Freeware)
3.6.1. Definición
El software gratis o freeware es un software distribuido libre para su uso,
sin costo y por tiempo ilimitado. Este software suele incluir una licencia
de uso para poder redistribuirlo con ciertas restricciones. A diferencia del
Software Libre, este software no se distribuye con el código fuente (salvo
algunas excepciones) y su uso está restringido a la licencia que acoge en
concreto el software.
3.6.1.1.1. Mysql
MySQl es una herramienta visual unificada para
arquitectura de bases de datos, desarrollo y
administradores de base de datos. Provee modelado
de data, desarrollo SQL y herramientas de
administración comprensiva para la configuración
del servidor, administración de usuarios y
herramientas adicionales. Está disponible para las
plataformas: Windows, Linux y Mac OS.
3.7. Programación extrema (eXtreme Programming)
3.7.1. Definición
La programación extrema o eXtreme Programming (XP) es una
metodología de desarrollo de la ingeniería de software formulada por
Kent Beck, autor del primer libro sobre la materia, Extreme
Programming Explained: Embrace Change (1999). Es el más destacado
de los procesos ágiles de desarrollo de software. Al igual que éstos, la
programación extrema se diferencia de las metodologías tradicionales
principalmente en que pone más énfasis en la adaptabilidad que en la
previsibilidad. Los defensores de la XP consideran que los cambios de
requisitos sobre la marcha son un aspecto natural, inevitable e incluso
deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a
los cambios de requisitos en cualquier punto de la vida del proyecto es
requisitos al comienzo del proyecto e invertir esfuerzos después en
controlar los cambios en los requisitos.
Se puede considerar la programación extrema como la adopción de las
mejores metodologías de desarrollo de acuerdo a lo que se pretende
llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el
ciclo de vida del software.
3.7.2. Objetivos de XP
Los objetivos de la programación extrema son:
La satisfacción del cliente
Potenciar el trabajo en grupo, involucrando a todos dentro del
desarrollo del software.
3.7.3. Variables de XP 3.7.3.1. Coste
XP nos propone que juguemos todas las partes implicadas en el
proyecto hasta que el valor que alcancen las cuatro variables sea
el correcto para todas las partes: “Si quieres más calidad en
menos tiempo tendrás que aumentar el equipo e incrementar el
coste”.
3.7.3.2. Tiempo
planteamientos maduros, esto repercutiría en la confianza de los
clientes, al entregarle trabajos con fallos.
3.7.3.3. Calidad
Con la calidad suele suceder un fenómeno extraño:
frecuentemente un proyecto que tratemos de aumentar la calidad
conduce a que el proyecto pueda realizarse en menos tiempo,
siempre con unos márgenes obviamente. Cuando un equipo de
desarrollo se acostumbra a realizar pruebas intensivas, se siguen
estándares de codificación, poco a poco se comenzara a andar
más rápido y más seguro, por tanto más preparados para futuros
cambios, sin estrés y así sucesivamente.
3.7.3.4. Ámbito
El ámbito del proyecto suele ser conveniente que sea establecida
por el equipo de desarrollo. Es una variable muy importante que
nos va a decir dónde vamos a llegar con nuestro software, que
problemas vamos a resolver y cuales vamos a dejar para
siguientes versiones.
Y es que los requisitos nunca son claros al principio y el mismo
desarrollo del software hace cambiar los requisitos. Por tanto el
ámbito debe de ser dúctil, podremos jugar con él, si el tiempo
para el lanzamiento es limitado, siempre habrá cosas que
Además con el agravante de que estas cuatro variables no
guardan una relación tan directa como en principio pueda
parecer. El incremento del número de programadores no
repercutirá de manera lineal en el tiempo de desarrollo del
proyecto.
3.7.4. Los valores de XP
Una de las cosas que a los programadores nos tiene que quedar muy claro
es que en el ciclo de vida del desarrollo de un proyecto software los
cambios van a aparecer, cambiarán los requisitos, las reglas de negocio,
el personal, la tecnología, todo va a cambiar. Por tanto el problema no es
el cambio en sí, ya que este va a suceder sino la incapacidad de
enfrentarnos a estos cambios.
Como en otra cualquier actividad humana necesitamos valores para
desarrollar nuestro trabajo y conseguir los planteamientos iniciales.
Estos cuatro valores son:
3.7.4.1. Comunicación
Cuántas veces hemos tenido problema en nuestro equipo de
desarrollo por falta de comunicación, por no comentar un
cambio crítico en el diseño, por no preguntar lo que pensamos al
cliente. La mala comunicación no surge por casualidad y hay
3.7.4.2. Sencillez
Lograr la sencillez no es fácil. Tenemos cierta tendencia a
pensar en qué programaremos mañana, la próxima semana y el
próximo mes.
La sencillez y la comunicación se complementan, cuanto más
simple es tu sistema menos tienes que comunicar de él.
3.7.4.3. Retroalimentación
Por medio de pruebas funcionales a nuestro software este nos
mantendrá informado del grado de fiabilidad de nuestro sistema,
esta información realmente no tiene precio. Los clientes y las
personas que escriben pruebas tienen una retroalimentación real
de su sistema.
La retroalimentación actúa junto con la sencillez y la
comunicación, cuanto mayor retroalimentación más fácil es la
comunicación. Cuanto más simple un sistema más fácil de
probar. Escribir pruebas nos orienta como simplificar un
sistema, hasta que las pruebas funcionen, cuando las pruebas
funcionen tendrá mucho hecho.
3.7.4.4. Valentía
Asumir retos, ser valientes antes los problemas y afrontarlos.
Nuestro trabajo se asimila al de un escalador cuando hacemos