APLICACIÓN WEB PARA LA GESTIÓN DEL SUBPROCESO DE...
Transcript of APLICACIÓN WEB PARA LA GESTIÓN DEL SUBPROCESO DE...
UNIVERSIDAD DE LAS TUNAS FACULTAD DE CIENCIAS TÉCNICAS DEPARTAMENTO DE INFORMÁTICA
APLICACIÓN WEB PARA LA GESTIÓN DEL
SUBPROCESO DE VENTA DE
DESOFT LAS TUNAS
TRABAJO DE DIPLOMA EN OPCIÓN AL TÍTULO DE INGENIERO INFORMÁTICO
AUTOR: Dayana Reyes Mora
TUTORES: Ing. Lisset del Carmen Avila de la Cruz
Ing. Rogenry Rafael Avila Batista
Las Tunas, 2013 “Año 55 de la Revolución”
DEDICATORIA
A la memoria de mi abuelo Serafín, por haber sido un ejemplo de
sacrificio y darme las fuerzas necesarias para continuar.
A mi hermano Sider Adrián, para que aprenda que con esfuerzo, se
logran las metas.
A mis padres, por su amor y apoyo incondicional.
A mi madre, por estar conmigo siempre.
A mis abuelos, por educarme y enseñarme tan buenos valores como la
responsabilidad y honradez.
A mi novio, por permitirme formar parte de su vida y ser lo mejor que me
ha pasado.
A Yeannys, porque aunque lejos, siempre está conmigo.
AGRADECIMIENTOS
A mis padres, por darme la vida y todo su amor.
A Dios, por permitirme mantener la fe y estar siempre conmigo.
A mis abuelos, por su cariño y toda su dedicación.
A Ro, porque sin su amor, comprensión y ayuda, no hubiese podido
llegar hasta aquí.
A Loyda, por su apoyo, cariño y atenciones.
A toda mi familia, por su preocupación constante.
A mis tutores, por guiarme y contribuir inmensamente en mi desarrollo
profesional.
A Lisett y Rotceh, por haber compartido sus conocimientos y dedicarme
parte de su tiempo.
A todos mis compañeros de trabajo, por su comprensión y preocupación.
A Silvia, Liliana y Adrián, por su ayuda incondicional en la realización
de este trabajo.
A DESOFT, por su contribución en mi desarrollo como profesional.
A mis compañeros de estudio, por su ayuda y darme fuerzas para
continuar.
A todos los profesores que me han guiado y enseñado en este difícil y
largo camino.
DECLARACIÓN DE AUTORÍA
OPINIÓN DEL USUARIO DEL TRABAJO DE DIPLOMA
OPINIÓN DE LOS TUTORES DEL TRABAJO DE DIPLOMA
RESUMEN La Empresa Nacional de Software (DESOFT), tiene como misión ofrecer soluciones
integrales en tecnologías de la información para la Informatización de la Sociedad
Cubana. En ella posee un papel importante la Subgerencia de Negocios, que se
encarga de gestionar íntegramente el ciclo de vida de los negocios, enfocando el
resultado a la satisfacción de los clientes, para lo cual desarrolla un conjunto de
actividades que responden a dos subprocesos, dentro de los que se destaca el de
Venta.
En este subproceso, el almacenamiento de la información en hojas Excel, ha
provocado la pérdida de datos e imposibilitado una rápida y eficaz atención al cliente.
Este trabajo tiene como objetivo la creación de una aplicación web para la gestión de
la información del Subproceso de Venta, utilizando Java como lenguaje de
programación y Spring como framework del lado del servidor; Ext JS para el diseño
de las interfaces de usuario y PostgreSQL como gestor de base de datos. Para
agilizar el proceso de desarrollo del software fue empleada la metodología AM y
RUP.
La aplicación se integra con el Sistema Económico Financiero Versat Sarasola con el
propósito de obtener los datos existentes con respecto a los clientes, facturas,
servicios y productos, para emplearlos en la realización de sus procesos como son:
la gestión de ofertas, contratos, suplementos y cheques. Permite una mejor
organización y facilita la confección de un archivo único en el que se encuentren
todos los datos referentes a los clientes de la empresa.
Palabras claves: DESOFT, Subproceso de Venta, Versat Sarasola, clientes.
ABSTRACT The National Software Company (DESOFT), has the mission to provide
comprehensive solutions in information technology for the Cuban Society. The
Business Assistant Manager Office is responsible for managing the full life cycle of
business, focusing on customer satisfaction, developing a set of activities of Sales
and Public Relations processes.
Storing the Sales Process information in Excel sheets, has caused the loss of data
and prevented a quick and efficient customer service. This work aims to create a web
application for managing the information mentioned above using the Java
programming language, the Spring Framework, Ext JS JavaScript Framework and
PostgreSQL database manager. To expedite the software development process the
AM and RUP methodology was used.
The application integrates with Versat Sarasola Financial Economic System in order
to obtain exiting data regarding customer, invoices, products and services, which
were needed for the management of offers, contracts, supplements and checks. The
software allows for better organization and facilitates the preparation of a single
service with all data related to the company's customers.
Keywords: DESOFT, Sales Process, Versat Sarasola, customers.
ÍNDICE INTRODUCCIÓN ........................................................................................................ 1 CAPÍTULO I: MARCO TEÓRICO CONCEPTUAL ..................................................... 5
1.1 Gestión basada en procesos ........................................................................ 5 1.2 Proceso de Negocios de DESOFT División Las Tunas ................................ 6 1.3 Sistema Contable Financiero Versat Sarasola............................................ 12 1.4 Valoración de aplicaciones similares vinculadas al campo de acción......... 13 1.5 Técnicas, metodologías y software utilizados ............................................. 15 1.6 Integración de aplicaciones informáticas .................................................... 20 1.7 Lenguajes de programación y tecnologías utilizadas.................................. 22 1.8 PostgreSQL ................................................................................................ 24 1.9 Pentaho Reporting ...................................................................................... 24 1.10 Patrones...................................................................................................... 25 1.11 Metodología AM con RUP........................................................................... 28 1.12 UML ............................................................................................................ 28 Conclusiones ....................................................................................................... 29
CAPÍTULO II: ANÁLISIS Y DISEÑO DEL SISTEMA ............................................... 30 2.1 Propuesta del sistema................................................................................. 30 2.2 Modelado del Negocio ................................................................................ 31 2.3 Levantamiento de Requisitos...................................................................... 33 2.4 Diseño......................................................................................................... 45 2.5 Implementación........................................................................................... 54 Conclusiones ....................................................................................................... 59
CAPÍTULO III: IMPLEMENTACIÓN DEL SISTEMA ................................................ 60 3.1 Aspectos relativos a la implementación del sistema ................................... 60 3.2 Diseño de la interfaz ................................................................................... 60 3.3 Forma general y principios en que se basa el sistema de ayuda................ 61 3.4 Forma general y principios de la protección y seguridad ............................ 61 3.5 Forma general del tratamiento de errores................................................... 62 Conclusiones ....................................................................................................... 63
CONCLUSIONES ..................................................................................................... 64 RECOMENDACIONES ............................................................................................. 65 REFERENCIAS BIBLIOGRÁFICAS ......................................................................... 66 BIBLIOGRAFÍA ........................................................................................................ 70 ANEXOS ................................................................................................................... 71
1
INTRODUCCIÓN
La Empresa Nacional de Software (DESOFT), se subordina al Ministerio de las
Comunicaciones, dirige sus esfuerzos a ofrecer soluciones integrales en Tecnologías
de la Información para la Informatización de la Sociedad Cubana, y se encarga de la
comercialización basada en la consecución del máximo beneficio económico y el
cumplimiento de su Plan de Ventas. [DESOFT, Reglamento orgánico, 2012]
DESOFT tiene dentro de su objeto social la prestación de diferentes servicios como:
despliegue, soporte, desarrollo de aplicaciones, consultorías, asesorías, formación,
además de la venta de productos asociados a las tecnologías de la información para
personas naturales y jurídicas dentro del territorio nacional y para empresas
extranjeras.
La división DESOFT Las Tunas cuenta con un sistema de gestión basado en
procesos constituido por una Gerencia y seis Subgerencias, una de Negocios que
gestiona el ciclo de vida de los proyectos por líneas de negocios, la subgerencia de
Desarrollo orientada a la producción de aplicaciones informáticas basadas
prioritariamente en software libre, la subgerencia de Despliegue y Soporte, enfocada
al despliegue de las soluciones informáticas en el cliente y a la atención de post-
venta, y las subgerencias Económica, de Recursos Humanos y de Servicios
Generales encargadas de las actividades de apoyo.
La Subgerencia de Negocios tiene la misión de gestionar íntegramente el ciclo de
vida de los negocios, enfocando el resultado a la satisfacción de los clientes. Sigue
un conjunto de actividades que responden a dos subprocesos, dentro de los que se
destaca el de Venta, que va desde la prospección o búsqueda de clientes
potenciales hasta el cierre de la venta, con la posterior relación de postventa.
Existen dos vertientes en el trabajo de Negocios, una enfocada a la búsqueda de
prospectos con la presentación de ofertas, trabajo de marketing y publicidad de
donde se obtienen los nuevos negocios y clientes potenciales y otra destinada a
ampliar la gama de los productos y servicios a aquellos que son ya clientes.
2
El desarrollo del Subproceso de Venta comienza cuando el cliente solicita los
productos o servicios que desea adquirir a la Subgerencia de Negocios, quien
responde a su petición con la entrega de una Oferta Comercial y Ficha de Cliente,
aquí se recoge toda la información necesaria para la firma de contratos. La Oferta
Comercial previamente aceptada por el cliente, se presenta al Comité de Negocios,
donde se aprueba definitivamente el proyecto y se procede a la elaboración del
Contrato Marco y Suplementos para cada uno de los servicios y/o productos
solicitados.
Luego de haber firmado el contrato se procede, en caso de una venta de producto a
la elaboración de la factura por el monto total. El resto de los servicios serán
facturados en cada etapa según corresponda a lo pactado, previa firma de las actas
de aceptación con el servicio recibido.
Las facturas son creadas en el Sistema Contable-Financiero Versat Sarasola, para lo
cual deben insertarse en dicho sistema los datos de los clientes. Una vez
confeccionadas estas se registran en el Registro de Facturas y luego entregadas al
cliente para su firma y ejecución del pago mediante cheque o transferencia bancaria.
Si el pago se realiza por mediación de cheque, se dejará constancia en el Registro
de Cheques.
Tanto el contrato como los suplementos son enumerados consecutivamente y
registrados en el Registro Comercial. Por otra parte existe un Registro de Clientes,
que permite llevar un control de todos los clientes de la empresa y junto a ellos las
formas de comunicación. Todos estos registros (Comercial, Clientes, Facturas,
Cheques) se encuentran en formato digital en hojas Excel y están conformados
según lo expuesto en la Metodología de Ventas aprobada por la Casa Matriz de
DESOFT.
El almacenamiento de todos los datos en hojas Excel dificulta la búsqueda y
obtención de información, así como la realización de cualquier tipo de análisis. Esto
es evidente en el momento de obtener los contratos próximos a vencerse o los
productos contratados a un cliente determinado, para lo cual se debe revisar línea a
línea cada uno de estos registros.
3
Además, no se cuenta con un archivo único de los datos del cliente lo que conlleva a
la captación repetitiva de los mismos. De manera general la actividad se torna
trabajosa, provocando la pérdida de datos, inadecuada manipulación de la
información, además de impedir una rápida y eficaz atención al cliente.
Partiendo de lo antes expuesto se define como problema científico: ¿Cómo mejorar
la gestión del Subproceso de Venta en el Proceso de Negocios de la División de
DESOFT Las Tunas?
Dicho problema se circunscribe dentro del objeto de estudio: gestión de la
información del Proceso de Negocios de la División de DESOFT Las Tunas. Como
campo de acción se define: la gestión informatizada del Subproceso de Venta de la
División de DESOFT Las Tunas.
Para dar solución al problema planteado se define el siguiente objetivo: desarrollar
una aplicación web como herramienta para la gestión de la información del
Subproceso de Venta de la División de DESOFT Las Tunas.
Teniendo en cuenta lo antes descrito, este trabajo se basa en la siguiente idea a defender: la elaboración de una aplicación web para la manipulación de la
información del Subproceso de Venta contribuirá a mejorar la gestión del Proceso de
Negocios en la División de DESOFT Las Tunas.
Con el propósito de darle cumplimiento al objetivo de la investigación se definen las
siguientes tareas:
Realizar un estudio acerca del Subproceso de Venta de DESOFT Las Tunas.
Estudiar tendencias y tecnologías actuales.
Analizar, diseñar e implementar una aplicación web para la gestión del
Subproceso de Venta de DESOFT Las Tunas.
4
Métodos de investigación:
Histórico-lógico: se hace un análisis y se caracterizan las aplicaciones
existentes con el objetivo de emplear su experiencia y detectar deficiencias.
Análisis-Síntesis: se utiliza principalmente para el desarrollo del marco
teórico ya que se analiza la bibliografía encontrada acerca del tema en general
y finalmente se sintetiza lo que interesa para este trabajo.
Inducción-deducción: se emplea durante todas las etapas de la
investigación para relevar la relación entre lo particular y lo general, y
viceversa.
Sistémico-estructural: se utiliza en la elaboración del sistema para la gestión
de la información, así como para abordar todos los procesos involucrados en
la temática estudiada.
Revisión documental: se emplea para la recopilación de la información
necesaria respecto al objeto de estudio de la investigación.
5
CAPÍTULO I: MARCO TEÓRICO CONCEPTUAL
En este capítulo se explican los aspectos más importantes del Proceso de Negocios
de la División de DESOFT Las Tunas, prestándole mayor atención al Subproceso de
Venta. Se analizan problemas presentes en algunas de las aplicaciones existentes
para la gestión de la información de este subproceso y las tecnologías, herramientas
y metodologías a utilizar en el desarrollo del software.
1.1 Gestión basada en procesos
La implantación de la gestión de procesos se ha revelado como una de las
herramientas de mejora del trabajo más efectivas para todos los tipos de
organizaciones. [La gestión por procesos]
Según la ISO 9001:2000, los resultados deseados se alcanzan más eficientemente
cuando los recursos y las actividades relacionadas se gestionan como un proceso.
Un proceso es cualquier actividad, o conjunto de actividades ligadas entre sí, que
utiliza recursos y controles para transformar elementos de entrada en resultados,
tales como: especificaciones, recursos, información, servicios, etc. Todas las
actividades de la organización, desde la planificación de las compras hasta la
atención de una reclamación, pueden y deben considerarse como procesos. [La
gestión por procesos]
Para operar de manera eficaz, las organizaciones tienen que identificar y gestionar
numerosos procesos interrelacionados conociéndose esto como gestión basada en
procesos; la que está dirigida a realizar procesos competitivos capaces de reaccionar
autónomamente a los cambios mediante el control constante de la capacidad de
cada uno, la mejora continua, la flexibilidad estructural y la orientación de las
actividades hacia la plena satisfacción del cliente y de sus necesidades. Es uno de
los mecanismos más efectivos para que la organización alcance altos niveles de
eficiencia. [La gestión por procesos]
La gestión basada en procesos, posibilita la realización en cualquier actividad
productiva, de servicios o comercial, de un análisis para el perfeccionamiento de
6
estas actividades y el mejoramiento de la competitividad. Además, permite mejorar el
desempeño integral del trabajo, la calidad, la reducción de los costos y otros
elementos o indicadores importantes de la organización.
Los procesos de una organización se pueden agrupar en tres tipos:
1. Procesos claves: son los que tienen contacto directo con el cliente (los
necesarios para la realización del producto/servicio, a partir de los cuales el
cliente percibirá y valorará la calidad: comercialización, planificación del
servicio, prestación del servicio, entrega, facturación, etc.)
2. Procesos estratégicos: son los responsables de analizar las necesidades y
condicionantes de la sociedad, del mercado y de los accionistas, para
asegurar una respuesta. (Dirección, Marketing, Recursos Humanos, Calidad,
etc.)
3. Procesos de soporte: son los procesos responsables de proveer a la
organización de todos los recursos necesarios en cuanto a personas,
maquinaria y materia prima, para poder generar el valor añadido deseado por
los clientes (Contabilidad, Compras, Nóminas, Sistemas de Información, etc.)
Los procesos claves inciden de un modo directo en la prestación del servicio y la
satisfacción del cliente externo, por tanto, están directamente relacionados con la
misión de la organización consumiendo gran parte de los recursos de la misma.
Constituyen la secuencia de valor añadido, desde la comprensión de las necesidades
del usuario hasta la recepción del producto/servicio por el cliente. [La gestión por
procesos]
DESOFT Las Tunas, posee un proceso clave dentro de los que garantizan su gestión
empresarial: el Proceso de Negocios.
1.2 Proceso de Negocios de DESOFT División Las Tunas
Es el encargado de gestionar el plan de ventas de la división sobre la base de
negocios viables. Además, debe lograr el cumplimiento por líneas de negocios,
diversificar la cartera de productos y servicios de la empresa y mantener el ciclo de
cobro en 30 días y sin cuentas envejecidas. [DESOFT, FP-Negocios, 2012]
7
En el Anexo 1, se representa el flujograma del Proceso de Negocio.
Para el logro de sus objetivos, el proceso desarrolla las actividades que aparecen
descritas en la tabla siguiente:
Tabla 1: Actividades del Proceso de Negocio
No Entradas Actividades Salidas
1 Solicitud de productos y
servicios
Estudio de Factibilidad y
Confección de la Oferta. Oferta Comercial
2 Oferta Comercial
Comité de Negocios.
Asignación de Recursos y
Definición del Jefe de
Proyecto.
Aprobación del proyecto.
Registro de Proyectos
3 Aprobación del Proyecto Contratación Contrato firmado.
Registro de Contratos.
4 Contratos Satisfacción del cliente Actas de conformidad,
encuestas.
5
Contratos, órdenes de
trabajo y/o actas de
aceptación.
Facturación Facturas
6 Facturas Gestión de cobro Cheques
7 Distribución de ingresos a
Datazúcar y Segurmática
Solicitud de licencias a
Datazúcar y Segurmática
Licencias de clientes
8
8 Acta de entrega del
proyecto
Recepción de toda la
documentación del
Proyecto.
Acta de inicio de
despliegue.
Cronograma.
Cuestionarios.
Informe de Definición de
Objetivos del Proyecto
(DOP).
Acta de aceptación de
reportes.
Informe de avance del
proyecto.
Reporte de capacitación
de usuarios.
Informe de problema.
Solicitud de cambio.
Informe de terminación
del proyecto.
El proceso consta de los siguientes subprocesos:
Relaciones Públicas.
Ventas.
1.2.1 Subproceso de Relaciones Públicas
En él se realizan un conjunto de acciones de comunicación estratégica coordinadas y
sostenidas a lo largo del tiempo, que tienen como principal objetivo fortalecer los
vínculos con los distintos públicos, escuchándolos, informándolos y persuadiéndolos
para lograr consenso, fidelidad y apoyo de los mismos. Dentro de las tareas que se
desarrollan se encuentran:
Envío de e-mail y cartas en fechas conmemorativas a los clientes.
9
Visitas de cortesía.
Distribución de plegables y multimedias señalizadas con el logo de DESOFT y
los servicios y productos que oferta la empresa.
Distribución de servicios a través de la radio y el canal territorial.
1.2.2 Subproceso de Venta
El Subproceso de Venta contiene cinco etapas:
1. Investigación de mercado.
2. Captación de prospecto.
3. Factibilidad de la venta.
4. Cierre de la venta.
5. Seguimiento de la venta.
Investigación de mercado.
Comprende el análisis y el desarrollo de actividades de mercadeo, con el objetivo de
mejorar el posicionamiento en el mercado y el aumento de las ventas. Para lo cual
debe identificar posibles nichos de mercado, brindar al cliente soluciones integrales,
orientando las acciones a la mejora continua. Además, en este subproceso se deben
desarrollar las siguientes tareas:
Segmentar el mercado.
Estudiar sistemáticamente el mercado y sus tendencias.
Trazar estrategias.
Participación en ferias y eventos.
Organizar labores comerciales (lanzamientos, asaltos comerciales, visitas de
cortesía)
Vigilar sistemáticamente el nivel de satisfacción del cliente.
Captación del prospecto.
Estudios de la cartera para su mejoramiento.
10
Fijación de precios y políticas de descuento.
Protección legal de marcas, nombres y símbolos.
Elaborar planes, presupuestos, demandas y pronósticos de ventas.
Sistema de atención al cliente para su protección.
Para conocer todos los detalles del cliente, con el objetivo de que el producto o
servicio se ajuste perfectamente a sus necesidades, se emplea la Ficha de prospecto
y el Cuestionario Diagnóstico, representados en los Anexos 2 y 3 respectivamente.
[DESOFT, Metodología de ventas, 2012]
Captación de prospecto
Esta etapa se inicia a partir de la demanda de un posible cliente o de alguna
oportunidad de negocio identificada. Las solicitudes se analizan teniendo en cuenta
el objetivo, alcance, recursos humanos, experiencia y carga de trabajo existente con
el propósito de conocer las necesidades del negocio identificado.
En ella se desarrollan las siguientes actividades:
Recepcionar la solicitud utilizando la Ficha de Prospecto.
Actualizar el Registro Comercial. (Anexo 4)
Coordinar la continuidad del proceso. [DESOFT, Metodología de ventas, 2012]
Estudio de Factibilidad.
Es la fase más importante del negocio, donde se evalúa la factibilidad operativa y
técnica del proyecto, se analiza la complejidad del mismo, se identifican sus riesgos,
la sostenibilidad, alcance y se tramita su aprobación final; para lo cual se ejecutan las
siguientes tareas:
Realizar entrevistas al cliente.
Evaluar de conjunto con el área técnica involucrada una estrategia de
solución.
Analizar requerimientos tecnológicos.
Elaborar estimación del plan de trabajo.
11
Evaluar la inversión requerida, el tiempo de recuperación y la ganancia
esperada (costo/beneficio).
Evaluar riesgos y proponer acciones para mitigarlos.
Hacer presentación inicial del producto, en caso que proceda.
En caso que no proceda la ejecución del negocio, fundamentar las causas e
informar al cliente en un término no mayor de 72 horas.
Confeccionar la Oferta Comercial. (Anexo 5)
Discusión y validación de la oferta o propuesta de solución con el cliente.
Firma de la oferta.
Presentación al Comité de Negocios para su aprobación.
De ser aprobada la ejecución del negocio se envía respuesta al cliente en un
término no mayor de 72 horas.
Crear expediente de clientes.
Actualizar el Registro Comercial.
De no ser aprobada la ejecución del negocio se notifica al cliente, explicando las
causas mediante un documento identificativo de la empresa, en un término no mayor
de 72 horas. [DESOFT, Metodología de ventas, 2012]
Cierre de la venta
En esta etapa se negocian las condiciones y plazos de cobros; concluyendo esta con
la firma del contrato, el cual se realiza mediante el uso de la Ficha de Cliente (Anexo
6). Se desarrollan las tareas siguientes:
Acordar términos contractuales.
Elaboración de precontrato y/o suplemento según sea el caso.
Pasar al área jurídica para su revisión y registro.
Firma del contrato y/o suplemento.
Entrega del contrato y/o suplemento al área jurídica para su custodia.
12
Crear archivo digital con los contratos establecidos.
Actualización del Registro Comercial.
Actualización del Expediente de Clientes. [DESOFT, Metodología de ventas,
2012]
Seguimiento de la venta
En esta fase se debe cuidar por el cumplimiento de los términos pactados en el
contrato, registrar y tramitar las quejas de los clientes hasta su solución o acuerdo y
velar por la satisfacción de los mismos, para lo cual realiza encuestas de satisfacción
(Anexo No 7).
Además, se realiza un seguimiento a los proyectos con el objetivo de evaluar si se
cumple lo contratado. [DESOFT, Metodología de ventas, 2012]
Luego de cerrar la venta y después de haber cumplido con lo pactado en los
contratos establecidos con los clientes, se procede a la facturación de los productos
o servicios prestados, utilizando el Sistema Contable Financiero Versat Sarasola.
1.3 Sistema Contable Financiero Versat Sarasola
Es un sistema que representa un ejemplo de sustitución de importaciones en materia
de aplicaciones informáticas. Automatiza las actividades de planificación, control y
análisis económico. Diseñado para su empleo en cualquier tipo de entidad
empresarial o presupuestada.
Permite registrar contablemente todos los hechos económicos que se originan en las
estructuras internas de las entidades, así como exponer el estado financiero y toda la
información económica y contable en este universo. Se estructura en un grupo de
subsistemas en los cuales se procesan y contabilizan los documentos primarios,
donde se anotan los movimientos, los recursos materiales, laborales y financieros
que se utilizan en una entidad. [Teico, 2001]
Los subsistemas son:
Contabilidad General.
Costos y Procesos.
13
Finanzas, Caja y Banco.
Inventarios.
Activos Fijos.
Facturación.
Nómina de Salarios.
Planificación.
Configuración.
Complementos.
La interrelación entre estos subsistemas económicos, se logra a partir del
mecanismo de contabilización implementado, donde todos tributan comprobantes
para la contabilidad, la cual los valida y los asienta en los libros. Garantizando de
esta forma un mejor control de la contabilidad, mayor veracidad de la información y
rapidez en la obtención y entrega de la misma.
Estas características le han permitido lograr la aceptación en el mercado y
diseminarse por un gran número de entidades nacionales.
1.4 Valoración de aplicaciones similares vinculadas al campo de acción
A continuación se realiza una breve descripción de aplicaciones similares
desarrolladas en el ámbito nacional e internacional, las cuales forman parte de la
base de esta investigación.
Mentor, es una aplicación creada por la División de DESOFT Holguín para una
organización brasileña. Capaz de controlar todas las actividades de una empresa
relacionadas con la atención a clientes, desde el registro de productos vendidos a
cada uno de estos, los contactos mantenidos desde la etapa de marketing hasta la
etapa de soporte.
Permite dentro de sus funcionalidades:
Controlar los clientes de la empresa, incluyendo todos los datos de estos así
como el estado de sus relaciones con los distintos departamentos de la
14
organización en función del tiempo sin contacto con el cliente, estado
financiero, etc.
Controlar las relaciones “Departamento Marketing – Clientes”, incluyendo
contactos realizados, expectativas de negocios, negocios concretados, etc.
Llevar un registro de las empresas de la competencia, sus productos y
servicios, sus relaciones con los clientes actuales o perspectivos y la
competencia que representan para cada producto y servicio de la
organización.
Automatizar el proceso de renovación de los contratos, la atención y el soporte
a los clientes, brindando al personal de soporte toda la información necesaria
sobre el cliente que lo ha contactado.
Proveer la realización de campañas comerciales entre los clientes registrados
de la empresa a través del personal de soporte técnico. [DESOFT, Manual
Mentor, 2008]
SugarCRM (Customer Relationship Management – Administración de las Relaciones
con Clientes) es un poderoso software para la administración de la relación con los
clientes, proporcionando una visión única de las interacciones con los mismos a
través de sus diferentes líneas de negocio, ofreciendo comprensión íntima de toda la
organización de sus necesidades y los patrones de compra. Ayuda a automatizar las
operaciones comerciales, de atención al cliente o marketing, facilitando el control y
seguimiento. Se centra en anticipar, conocer y satisfacer las necesidades y los
deseos presentes y previsibles de los clientes.
Gestión comercial, es un programa desarrollado en Microsoft Access indicado para
empresas que permite registrar, controlar y resumir las operaciones comerciales de
cualquier negocio, con el fin de interpretar sus resultados para conocer el curso que
siguen sus negocios. De esta manera, los gerentes y responsables de la empresa
podrán llevar un control exhaustivo de la evolución de sus negocios y actuar
estratégicamente en consecuencia. Facilita la creación de documentos habituales en
la gestión, como por ejemplo pedidos y facturas. Permite que la información pueda
15
abrirse con Word o Excel. [Braña, Programa de Gestión Comercial desarrollado en
MS Access, 2013]
Gestión Portable 2.0, es una aplicación portable que permite manejar toda la
actividad de la empresa desde cualquier ordenador. Desde una memoria USB
posibilita el control de todos los movimientos comerciales y financieros. Incluye una
completa agenda con gestor de tareas a través de la cual puede tratar datos de
clientes con los que, por ejemplo, se haya concertado una cita. Permite hacer
seguimiento de campañas de promoción, incidencias, además del manejo de la
comunicación con clientes y proveedores, pudiendo elaborar cartas personalizadas y
correos electrónicos. [Braña, Aplicación de gestión comercial que podemos copiar en
una memoria USB, 2013]
Las aplicaciones antes mencionadas permiten realizar una amplia gestión de
clientes, pero no cumplen con los requisitos del Subproceso de Ventas ni están en
correspondencia con las metodologías y procedimientos del mismo, pues fueron
desarrolladas para empresas extranjeras cuyos requerimientos no se corresponden
con las características de las empresas cubanas.
Es por ello que la autora de este trabajo decidió realizar una aplicación web que
permita gestionar toda la información necesaria acerca de los clientes para garantizar
un mejor desarrollo del subproceso que esté en correspondencia con sus exigencias.
1.5 Técnicas, metodologías y software utilizados En este epígrafe se relacionan las características principales de las diferentes
herramientas, técnicas y metodologías a utilizar en el desarrollo de la aplicación que
da solución al problema científico planteado, las cuales se manifiestan a
continuación.
1.5.1 Aplicaciones web
Las aplicaciones web son sistemas informáticos alojados en un servidor web, las
cuales son accedidas por los usuarios a través de Internet o Intranet mediante un
navegador. Son muy utilizadas hoy en día debido a las ventajas que las mismas
ofrecen. [Elemental, 2013]
16
Algunas de las cuales se ven reflejadas a continuación:
No necesitan ser descargadas, instaladas y configuradas.
Están siempre actualizadas con la última versión, sin necesidad de llamar la
atención del usuario o interferir con sus hábitos de trabajo, con la posibilidad
de que va a iniciar nuevas descargas y procedimientos de instalación.
No hay incompatibilidades con los sistemas operativos porque todo se maneja
en el navegador.
No ocupan espacio en el disco duro porque se ejecutan a través de la web.
Consumen pocos recursos de hardware porque las tareas se realizan en otro
ordenador.
Menos Bugs (errores). Con aplicaciones basadas en web, todos los usuarios
utilizan la misma versión, y los errores pueden ser corregidos tan pronto como
son descubiertos.
Múltiples usuarios concurrentes. Pueden ser utilizadas por múltiples usuarios
al mismo tiempo. [Beneficios de las aplicaciones basadas en web y el anuncio
de Microsoft en la era en vivo]
Ejemplos bien conocidos de aplicaciones web son los Webmail, Wiki, Weblog,
tiendas en línea y enciclopedias como Wikipedia. Son creadas usando frameworks
especializados como Struts, CodeIgniter, Dojo, EXT JS, Symphony, Spring, etc.
A continuación se detallan las principales características de los frameworks utilizados
para el desarrollo de la aplicación.
1.5.2 Spring
Es una plataforma que proporciona una infraestructura que actúa de soporte para
desarrollar aplicaciones Java. Se fundamenta en una configuración a base de
JavaBeans (componente utilizado en Java que permite agrupar funcionalidades para
formar parte de una aplicación) bastante simple. Se encarga de unir todos los
componentes en una aplicación, maneja su ciclo de vida y la interacción entre ellos.
[Jonson,Rod. et al, 2012]
17
Implementa la Inversión de Control (IoC) usando inyección de dependencias en los
objetos definidos en su archivo de configuración proporcionando un nivel muy bajo
de acoplamiento entre estos objetos. La inversión de control consiste en ceder el
control a una entidad externa a la aplicación, llamada “Contenedor”, que se
encargará de gestionar las instancias, así como sus creaciones y destrucciones.
Incluye además:
Soporte avanzado para la Programación Orientada a Aspectos.
Transacciones declarativas, almacenamiento en caché declarativo y validación
declarativa.
Abstracciones de gran alcance para trabajar con especificaciones de Java EE
comunes tales como JDBC (Java Database Connectivity), JPA (Java
Persistence API), JMS (Java Message Service), JTA (Java Transaction API).
Soporte de primera clase para los marcos comunes de código abierto.
Instalaciones para pruebas unitarias, así como para las pruebas de
integración.
Un marco flexible para la creación de sitios web RESTful, aplicaciones
Modelo-Vista-Controlador (MVC) y los puntos finales de servicio. [Jonson,Rod.
et al, 2012]
Spring MVC
Spring MVC es un marco que proporciona una clara separación entre la lógica de
negocios, la lógica de presentación y la lógica de navegación, además se integra con
todas las otras características de la infraestructura Spring.
Incluye particularidades como:
Configuración de gran alcance y directa de las clases de aplicación y marco
como JavaBeans. Esta capacidad de configuración incluye referencias fáciles
a través de contextos, como el de los controladores web a los objetos de
negocio y validadores.
18
Adaptabilidad y flexibilidad. Define cualquier encabezamiento de método
controlador que se necesite, en el que se pueden usar anotaciones de
parámetros (como @RequestParam, @RequestHeader, @PathVariable, y
más) para un escenario dado.
Código reutilizable, sin necesidad de duplicación.
Modelo flexible de transferencia con una asignación de nombre / valor que
soporta una fácil integración con cualquier tecnología.
Una simple pero potente biblioteca de etiquetas JSP (Java Server Page)
conocida como la biblioteca de etiquetas de Spring que ofrece soporte para
funciones tales como la unión de datos y temas. [Jonson,Rod. et al, 2012]
La ejecución de las aplicaciones en un ambiente web puede traer consigo que los
sistemas y la información sea más vulnerable a los ataques perjudicando la
integridad y disponibilidad de la información, poniendo en riesgo la continuidad del
negocio. Para mitigar estos riesgos y garantizar un nivel de seguridad adecuado
en la aplicación, se emplea Spring Security.
Spring Security
Es una excelente herramienta para la seguridad tanto de aplicaciones web como
aplicaciones Desktop que puede extenderse o adaptarse a políticas de seguridad
establecidas dentro de las organizaciones.
Provee un mecanismo de seguridad declarativo independiente del entorno donde
se despliega la aplicación, brindando una solución completa para los dos
requisitos más importantes de seguridad: Autenticación y Autorización. [Alex]
Autenticación: es el proceso de establecer que un Principal es quien dice
ser. Se conoce como “Principal” a los usuarios o dispositivos que intentan
acceder a la aplicación.
Autorización: se refiere al proceso de decidir si el Principal tiene permitido
ejecutar ciertas acciones dentro de la aplicación. Cabe aclarar que para
llegar al punto en el cual se necesite una autorización, primero debería de
haberse establecido un proceso de autenticación. [Alex]
19
Con el objetivo de reducir el esfuerzo para implementar la capa de acceso a datos,
se utiliza en el desarrollo de la aplicación Spring Data.
Spring Data
Tiene el propósito de unificar y facilitar el acceso a distintos tipos de tecnologías de
persistencia, tanto a bases de datos relacionales como a las del tipo NoSQL.
Proporciona soporte para JDBC, JPA, JDO o MyIbatis, simplificando la
implementación de la capa de acceso a datos, unificando la configuración y creando
una jerarquía de excepciones común para todas ellas. Además, integra las
tecnologías de acceso a datos tradicionales, simplificando el trabajo a la hora de
crear las implementaciones concretas.
Con cada tipo de tecnología de persistencia los DAOs (Data Access Objects) ofrecen
las funcionalidades típicas de un CRUD (Create-Read-Update-Delete) para objetos
de dominio propios, métodos de búsqueda, ordenación y paginación. Spring Data
proporciona interfaces genéricas para estos aspectos (CrudRepository,
PagingAndSortingRepository) e implementaciones específicas para cada tipo de
tecnología de persistencia. [Suárez, 2012]
1.5.3 Ext Js Es una biblioteca Javascript que permite construir aplicaciones complejas utilizando
componentes predefinidos. Provee una experiencia consistente sobre cualquier
navegador, evitando el tedioso problema de validar que el código escrito funcione
bien en cada uno (Firefox, IE, Safari, etc.). Incluye:
Componentes de interfaz de usuario de alto rendimiento y personalizables.
Modelo de componentes extensibles.
Una API (Aplication Programing Interface) fácil de usar.
Licencias Open Source y comerciales. [Sánchez]
Proporciona:
20
Un balance entre Cliente – Servidor: la carga de procesamiento se distribuye,
permitiendo que el servidor, al tener menor carga, pueda manejar más clientes
al mismo tiempo.
Comunicación asíncrona: puede comunicarse con el servidor sin necesidad de
estar sujeto a un clic o una acción del usuario, dándole la libertad de cargar
información sin que el cliente se de cuenta.
Eficiencia de la red: el tráfico de red puede disminuir al permitir que la
aplicación elija qué información desea transmitir al servidor y viceversa.
[Sánchez]
1.6 Integración de aplicaciones informáticas
La integración posibilita la creación de actividades de negocio coordinadas, de modo
que se pueda formar un proceso de negocio unificado. Permite derribar las barreras
entre las unidades de la organización y reduce la duplicación de esfuerzos, así como
los costos en desarrollo y mantenimiento de tecnologías. [Azán, Yasser. et al, 2010]
Los tipos más importantes de integración son:
Integración a nivel de datos.
Integración a nivel de aplicaciones.
Integración de procesos de negocio.
Integración de presentación.
Para obtener del Versat los datos necesarios para el funcionamiento de la aplicación,
se emplea la integración a nivel de datos, ya que se centra en compartir los datos
entre las aplicaciones. Desde un punto de vista técnico, la integración a nivel de
datos es un enfoque relativamente sencillo que es bien comprendido por la mayoría
de los desarrolladores. El acceso a bases de datos es relativamente fácil y hay varias
herramientas disponibles que hacen compartir la información de forma sencilla y
rápida. [Azán, Yasser. et al, 2010]
21
En el desarrollo de la aplicación es implementado un servicio web, con el objetivo de
permitir posteriormente integrar a ella aplicaciones que necesiten la información de
los clientes.
1.6.1 Servicios Web
Los Servicios Web (Web Services en inglés) describen una forma estandarizada de
integrar aplicaciones web. Permiten a distintas aplicaciones, de diferentes orígenes,
comunicarse entre ellas sin necesidad de escribir programas costosos. Comparten la
lógica del negocio, los datos y los procesos a través de la red, por medio de una
interfaz de programas que no interactúan directamente con los usuarios. No están
ligados a ningún sistema operativo o lenguaje de programación. Facilitan a las
organizaciones intercambiar datos sin necesidad de conocer los detalles de sus
respectivos sistemas de información. [Juric]
Servicios web RESTful
Los servicios web RESTful se basan en el concepto de REST (Representational
State Transfer en inglés) y en los métodos HTTP. Definen normalmente los URIs
(Uniform Resource Identifier en inglés) base para los servicios. REST (Transferencia
de Estado Representacional en español) es un estilo arquitectónico que se
fundamenta en estándares web y el protocolo HTTP. En una arquitectura basada en
REST todo es un recurso al cual se accede a través de una interfaz común sobre la
base de los métodos de HTTP. [Vogels]
HTTP son las siglas en inglés de HiperText Transfer Protocol (en español Protocolo
de Transferencia de Hipertexto). Es un protocolo de red (un protocolo se puede
definir como un conjunto de reglas a seguir) para publicar páginas web. Funciona a
través de solicitudes y respuestas entre un cliente (un navegador de Internet) y un
servidor (la computadora donde residen páginas web). HTTP es la base sobre la cual
está fundamentado Internet. [Castro]
Los métodos HTTP que se utilizan en REST son los siguientes:
GET define un acceso de lectura del recurso sin efectos secundarios. El
recurso no se cambia mediante una petición GET.
22
PUT crea un nuevo recurso.
DELETE quita los recursos. Las operaciones son igualmente poderosas y
pueden repetirse sin dar lugar a resultados diferentes.
POST actualiza un recurso existente o crea uno nuevo.
En RESTful los recursos son reconocidos por identificadores globales (que son
típicamente URIs), permitiendo que tengan representaciones diferentes, por ejemplo
texto, XML, JSON, etc. [Vogels]
1.7 Lenguajes de programación y tecnologías utilizadas
1.7.1 Java
Es un lenguaje de programación de alto nivel orientado a objetos. Permite la creación
de poderosas aplicaciones, sitios web o pequeños programas. Es rápido, seguro,
fiable y completamente portable, por lo que un programa escrito en Java puede
ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos
computacionales siempre y cuando se encuentre instalada la máquina virtual
correspondiente. [Álvarez]
JPA
Java Persistence API (JPA) proporciona un estándar para gestionar datos
relacionales en aplicaciones Java, de manera que se simplifique el desarrollo de la
persistencia de datos. Es una API de persistencia de POJOs (Plain Old Java Object),
es decir, objetos simples que no heredan ni implementan otras clases. [Cuello]
Hibernate
Hibernate, es una herramienta de mapeo objeto/relacional para ambientes Java que
proporciona el mapeo de atributos entre una base de datos relacional tradicional y el
modelo de objetos de una aplicación, mediante archivos declarativos (XML) o
anotaciones que permiten establecer estas relaciones. Está diseñado para ser
flexible en cuanto al esquema de tablas utilizado, para poder adaptarse a su uso
sobre una base de datos ya existente. También tiene la funcionalidad de crear la
base de datos a partir de la información disponible. [King, Gaving. et al]
23
1.7.2 Javascript
Es un lenguaje de programación interpretado, por lo que no es necesario compilar los
programas para ejecutarlos. Se utiliza principalmente para crear páginas web
dinámicas. Permite la programación orientada a objetos y es soportado por la
mayoría de los navegadores. [Pérez]
JSON
La Notación de Objeto Javascript es un formato ligero de intercambio de datos que
está basado en una de las mejores partes de este lenguaje, la notación literal de los
objetos. Aunque es un subconjunto de Javascript puede ser utilizado para
intercambiar datos entre los programas escritos en cualquier lenguaje de
programación moderno. Al ser un formato de texto resulta fácil de leer y escribir para
los humanos y muy sencillo de generar e interpretar por las computadoras. Se basa
en dos estructuras:
Una colección de pares nombre/valor. En varios lenguajes de programación
esto puede ser un objeto, un registro, un diccionario, una tabla hash, o un
arreglo asociativo.
Una lista ordenada de valores. En la mayoría de los lenguajes esto puede ser
un arreglo, un vector, una lista o una secuencia. [Crockford, 2008]
1.7.3 AJAX
AJAX son las siglas de Asynchronous JavaScript And XML. No es un lenguaje de
programación sino un conjunto de tecnologías (HTML-JavaScript-CSS-DHTML-
PHP/ASP.NET/JSP-XML) que permiten hacer páginas de Internet más interactivas.
La característica fundamental de AJAX es permitir actualizar parte de una página con
información que se encuentra en el servidor sin tener que refrescar completamente la
página. De modo similar logrando enviar información al servidor. Proporciona
además:
Utilizar tecnologías ya existentes.
Es soportada por la mayoría de los navegadores modernos.
24
Interactividad: el usuario no tiene que esperar hasta que lleguen los datos del
servidor.
Portabilidad (no requiere plugin como Flash y Applet de Java)
Mayor velocidad, debido a que no hay que retornar toda la página
nuevamente.
La página se asemeja a una aplicación de escritorio. [AJAX Ya]
1.8 PostgreSQL
Es un potente sistema de gestión de bases de datos objeto-relacional. Utiliza un
modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la
estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el
sistema continuará funcionando. Implementa ciertas características orientadas a
objetos, incluye la alta concurrencia, una amplia variedad de tipos de datos, es
multiplataforma, muy seguro y robusto. [Martínez]
1.9 Pentaho Reporting Pentaho Reporting es un conjunto de proyectos de Java con licencia Open Source
que permiten la generación de reportes. Inicialmente conocido como JFreeReport fue
adquirido por Pentaho en el año 2006. Sus principales características son:
Puede acceder a varias fuentes de datos tales como JDBC, OLAP, HQL y
POJO.
Permite la generación de los reportes en distintos formatos: PDF, HTML,
Excel, RTF.
Se pueden incluir gráficos de pastel, barras y líneas.
Los reportes pueden parametrizarce.
Se pueden incluir subreportes dentro de un reporte principal.
Permite la creación de reportes de referencias cruzadas.
Posibilita la realización de reportes interactivos. [Gorman, 2009]
25
1.10 Patrones
1.10.1 Patrón de arquitectura Modelo Vista Controlador
Es un patrón de arquitectura de software que separa los datos de una aplicación, la
interfaz de usuario, y la lógica de control en tres componentes distintos: modelo, vista
y controlador.
El modelo representa la información con la que trabaja la aplicación, es decir,
su lógica de negocio.
La vista transforma el modelo en una página web que permite al usuario
interactuar con ella.
El controlador se encarga de procesar las interacciones del usuario y realiza
los cambios apropiados en el modelo o en la vista. [El patrón MVC]
Tanto la vista como el controlador dependen del modelo, el cual no depende de las
otras clases.
Este patrón proporciona:
Clara separación entre interfaz, lógica de negocio y de presentación, que
además provoca parte de las ventajas siguientes.
Sencillez para crear distintas representaciones de los mismos datos.
Facilidad para la realización de pruebas unitarias de los componentes, así
como de aplicar desarrollo guiado por pruebas.
Reutilización de los componentes.
Simplicidad en el mantenimiento de los sistemas.
Facilidad para desarrollar prototipos rápidos.
Desarrollos más escalables. [El patrón MVC]
1.10.2 Patrones de diseño
Los patrones de diseño son una descripción de clases y objetos comunicándose
entre sí adaptada para resolver un problema de diseño general en un contexto
particular. Identifican clases, instancias, roles, colaboraciones y la distribución de
26
responsabilidades. Están basados en la recopilación del conocimiento de los
expertos en desarrollo de software. Proponen una forma de reutilizar la experiencia
de los desarrolladores. [Hernández, 2002]
Características de los patrones de diseño:
Son soluciones concretas: proponen soluciones a determinados problemas, no
son teorías genéricas.
Se utilizan en situaciones frecuentes: se basan en la experiencia acumulada
de resolver problemas reiterativos.
Favorecen la reutilización de código: ayudan a construir software basado en la
reutilización.
El uso de un patrón no se refleja en el código: al aplicar un patrón, el código
resultante no tiene por qué delatar el patrón o patrones que lo inspiró.
Son soluciones técnicas: indican resoluciones técnicas basadas en
Programación Orientada a Objetos (POO). En ocasiones tienen más utilidad
con algunos lenguajes de programación y en otras son aplicables a cualquier
lenguaje. [Hernández, 2002]
A continuación se relacionan los principales patrones de diseño utilizados
Patrón de Inversión de Control (Inversión of Control en inglés, IoC).
El patrón IoC invierte el flujo de ejecución de un programa respecto a los métodos de
programación tradicionales, en los que la interacción se expresa de forma imperativa
haciendo llamadas a procedimientos o funciones. Es una implementación del
Principio de Hollywood (no nos llames a nosotros; nosotros te llamaremos a ti), una
metodología de diseño de software. Elimina la responsabilidad de buscar o crear los
objetos dependientes y la traslada a la configuración. Reduce el acoplamiento entre
objetos. Fomenta el diseño basado en interfaces y permite reconfigurar una
aplicación sin modificar el código. [Guillerón]
27
Patrón Inyección de Dependencias (Dependency Injection en inglés, DI).
Es un patrón de diseño orientado a objetos, en el que se inyectan objetos a una clase
en lugar de ser la propia clase quien cree el objeto. [Jonson, Rod. et al, 2012]
Permite que al objeto se le entregue lo necesario para trabajar, simplifica el código,
admite la reutilización y proporciona la resolución de las dependencias entre los
componentes. Facilita trabajar con interfaces, para ocultar los detalles de la
implementación. Promueve las pruebas de manera aislada o de todos los
componentes juntos. [Bovet]
Patrón CRUD (Create, Read, Update, Delete en inglés).
Implementa las operaciones básicas: crear, leer, actualizar y borrar, que toda base
de datos debe proveer para realizar cualquier acción. Las operaciones significan lo
siguiente:
Crear es hacer persistente un objeto específico en la base de datos. Esta
operación finaliza cuando otro proceso puede leer información del objeto.
Leer es recuperar un objeto específico de la base de datos. Es la misma
operación que cuando realizamos una consulta.
Actualizar es modificar un objeto específico del grupo de objetos de la base de
datos.
Borrar es remover un objeto del grupo de objetos de la base de datos.
Patrón Singleton.
Es uno de los patrones más conocidos y utilizados. Garantiza que una clase sólo
tenga una instancia y proporciona un punto de acceso global a ella. El
funcionamiento de este patrón es muy sencillo y podría reducirse a los siguientes
conceptos:
Ocultar el constructor de la clase, para que los clientes no puedan crear
instancias.
28
Declarar en la clase una variable miembro privada que contenga la referencia
a la instancia única que queremos gestionar.
Proveer en la clase una función o propiedad que brinde acceso a la única
instancia gestionada por ella. Los clientes acceden a la instancia a través de
esta función o propiedad. [Welicki]
1.11 Metodología AM con RUP
AM es un proceso de software basado en prácticas cuyo alcance es describir cómo
modelar y documentar de manera eficaz y rápida. Fue creada, no tanto como un
método ágil cerrado en sí mismo, sino como complemento de otras metodologías,
sean éstas ágiles o convencionales. Se combina con RUP debido a que permite
hacer más ligeros los procesos que ya usan.
El Proceso Unificado de Rational (RUP) es un marco de trabajo genérico que puede
especializarse para una gran variedad de sistemas software. Está caracterizado por
ser:
Iterativo e incremental: en la que cada fase se desarrolla en iteraciones donde
se involucran actividades de todos los flujos de trabajo, con el propósito de
alcanzar una mayor cercanía a los objetivos finales, añadiendo algo nuevo de
valor en cada iteración.
Centrado en la arquitectura: el trabajo de desarrollo se centra en obtener el
patrón de la arquitectura que dirigirá la construcción del sistema en las
primeras fases garantizando un progreso continúo no solo para la versión en
curso del producto, sino para la vida entera del mismo.
Dirigido por casos de uso: lleva a los desarrolladores a garantizar que el
sistema se ajuste a las necesidades reales del usuario. [Jacobson, 2000]
RUP utiliza UML (Unified Modeling Language en inglés) para describir su sistema.
1.12 UML UML es un lenguaje de modelado visual que se usa para especificar, visualizar,
construir y documentar un sistema de software con tecnología orientada a objeto.
29
Tiene una sintaxis y semántica bien definidas, permitiendo representar el diseño de
sistemas mediante el uso de una notación común. Consta con reglas que rigen el uso
y combinación de los elementos gráficos que posee para la construcción de
diagramas, utilizando del paradigma orientado a objeto las ventajas y comodidades
que el mismo ofrece. [Larman, 2004]
Conclusiones
En este capítulo se abarcaron de manera profunda algunos conceptos necesarios
para la comprensión de la presente investigación. Además, fueron estudiados
sistemas vinculados al campo de acción en el ámbito nacional e internacional y se
realizó un análisis de las tecnologías, lenguajes y herramientas utilizadas a lo largo
del desarrollo del sistema propuesto.
30
CAPÍTULO II: ANÁLISIS Y DISEÑO DEL SISTEMA
En este capítulo se muestra el modelado del sistema realizado según la metodología
utilizada. Se realiza una propuesta del sistema y se especifican los requerimientos y
elementos relacionados con el desarrollo del mismo.
2.1 Propuesta del sistema
Para informatizar el Subproceso de Venta de DESOFT, se propone realizar una
aplicación web que cumpla con los requisitos, metodologías y procedimientos
establecidos en el área comercial. La misma debe permitir:
Facilitar a cada usuario el acceso a la información según su rol dentro de la
aplicación.
Registrar todos los datos relacionados con los clientes como nombre, código
reeup, código nit, dirección, teléfono, entre otros.
Importar del Versat mediante consultas a su base de datos, los datos
existentes con respecto a los clientes, facturas, servicios y productos, con el
objetivo de emplearlos en la realización de otros procesos dentro de la
aplicación como son: la creación de ofertas, contratos y suplementos.
Gestionar la información de las ofertas, contratos y suplementos por clientes.
Brindar todos los detalles de los clientes así como información de las ofertas,
contratos, suplementos y facturas realizadas por cada uno de los servicios y
productos contratados.
Registrar la realización de los pagos de servicios y productos vendidos
mediante cheques.
Generar reportes con los servicios y productos por cliente; clientes por
organismos; contratos próximos a vencerse y contratos vencidos.
Brindar mediante informes con el formato establecido: el registro de facturas,
de cheques, de contratos y de suplementos.
31
La aplicación a desarrollar proporcionará un mejor desarrollo del subproceso,
permitiendo una adecuada manipulación de la información y facilitando la obtención
de un archivo único en el que se encuentren todos los datos referentes a los clientes.
2.2 Modelado del Negocio
2.2.1 Modelo de dominio
Un modelo conceptual o de dominio es una representación de conceptos en un
dominio del problema. Representa cosas del mundo real, no componentes del
software. Permite descomponer el espacio del problema en unidades comprensibles
(conceptos) y contribuye a esclarecer la terminología o nomenclatura del dominio.
[Larman, 2004]
A continuación se realiza una explicación de los procesos fundamentales que se
gestionan dentro del Subproceso de Venta, haciendo énfasis en los conceptos que lo
componen y se representa el modelo de dominio obtenido.
El Subproceso de Venta comienza cuando el cliente, dígase una persona natural o
jurídica (organización o empresa), accede a la Subgerencia de Negocios para
requerir la venta de alguno de los productos que se ofertan o la prestación de un
servicio. Un producto es un conjunto de atributos tangibles e intangibles los cuales
son percibidos por sus compradores para satisfacer sus necesidades o deseos y un
servicio es todo acto o función que una parte puede ofrecer a otra, que es
esencialmente intangible y no da como resultado ninguna propiedad. Su realización
puede o no vincularse a un producto físico.
Entre los productos que puede adquirir el cliente se relacionan los siguientes
sistemas: Versat Sarasola, para la gestión contable financiera; Fastos, para el control
de los recursos humanos; Energux, para el control del combustible y la energía;
Segurmática Antivirus, entre otros. Dentro de los servicios puede solicitar:
consultorías informáticas, instalación de herramientas de seguridad informática,
descontaminación de virus, desarrollo, despliegue y soporte de sistemas
informáticos.
32
La solicitud conlleva a la elaboración de una oferta realizada por la comercial, en la
cual se propone un precio para los servicios o productos solicitados y además
entrega una ficha de cliente, en la que el mismo debe registrar todos sus datos, con
el objetivo de que una vez aceptada, firmada por su parte y aprobada en el Comité
de Negocios (órgano asesor para el análisis, evaluación y aprobación de los
negocios), se realice el contrato marco, que constituye el instrumento jurídico que
refleja todo acuerdo de voluntades entre el cliente y DESOFT (representada por el
Gerente) dirigido a crear obligaciones entre ambas partes.
Las especificaciones de cada uno de los servicios o productos solicitados, como el
precio o tiempo de servicio, son realizadas en suplementos y en anexos se
relacionan por ejemplo, aclaraciones o cambios en las disposiciones legales
establecidas en el contrato marco, así como también el cronograma de trabajo para
la realización del servicio contratado. Toda la información referente al contrato y
suplementos es recogida en el Registro Comercial, documento que forma parte de la
Metodología de Ventas del subproceso.
Luego de la firma de contratos y suplementos, es entregado al cliente el producto
contratado y designado un especialista encargado de prestarle el servicio requerido,
quedando constancia del cumplimiento de las tareas realizadas en la orden de
trabajo, documento utilizado con este propósito. El especialista emplea además un
acta de aceptación en la cual el cliente debe manifestar su conformidad con el
servicio proporcionado o el producto adquirido, cuyo documento conlleva a la
realización de una factura en el Sistema Contable Financiero Versat Sarasola, que es
emitida para hacer constar una venta de un producto o la prestación de un servicio,
en la que aparece: descripción, cantidades, precios, importe total, fecha de la
operación, nombre del comprador, del vendedor, cargo, firma y cuño por ambas
partes.
Con la firma de la factura, el cliente se compromete a realizar el pago por el importe
facturado, el cual podrá efectuar mediante cheque o transferencia bancaria. Luego la
entregará al departamento de ventas, donde la comercial dejará constancia de la
recepción del documento en el Registro de facturas.
33
Si el pago es efectuado mediante un cheque entregado al área de negocios, la
comercial dejará constancia de su recepción en el Registro de entrega de cheques
en el que se recogen datos de la persona que lo entregó, su firma y la fecha.
Figura 2.1: Modelo de dominio.
2.3 Levantamiento de Requisitos
El levantamiento de requisitos tiene como objetivo guiar el desarrollo hacia el sistema
correcto. Lo cual se consigue mediante una descripción de los requisitos del sistema,
es decir, condiciones o capacidades que el mismo debe cumplir. Los requisitos se
clasifican en funcionales y no funcionales. [Jacobson, 2000]
2.3.1 Requisitos funcionales por casos de uso del sistema
Los requisitos funcionales son las capacidades o condiciones que el sistema debe
cumplir. Los Casos de Uso del Sistema (CUS) definen conjuntos de funcionalidades
afines que el sistema debe cumplir para satisfacer los requerimientos funcionales ya
definidos. [Jacobson, 2000]
34
CUS Autenticar usuarios.
RF 1 Autenticar usuarios.
CUS Gestionar usuarios.
RF 2 Crear usuario.
RF 3 Modificar usuario.
RF 4 Buscar usuario
RF 5 Eliminar usuario.
CUS Gestionar datos del cliente.
RF 6 Modificar cliente
RF 7 Buscar cliente
CUS Gestionar ofertas
RF 8 Insertar oferta
RF 9 Modificar oferta
RF 10 Buscar oferta
RF 11 Eliminar oferta
CUS Gestionar contratos.
RF 12 Insertar contratos
RF 13 Modificar contratos
RF 14 Buscar contratos
CUS Gestionar suplementos.
RF 15 Insertar suplementos
RF 16 Modificar suplementos
CUS Gestionar cheques
RF 17 Insertar cheque
35
RF 18 Modificar cheque
RF 19 Buscar cheque
RF 20 Eliminar cheque
CUS Importar del Versat.
RF 21 Importar todos
RF 22 Importar productos y servicios.
RF 23 Importar facturas
RF 24 Importar clientes
CUS Generar informes.
RF 25 Generar Registro de Facturas
RF 26 Generar Registro de Cheques
RF 27 Generar Registro de Contratos
RF 28 Generar Registro de Suplementos
RF 29 Generar informe con servicios y productos por cliente
RF 30 Generar informe con clientes por organismos
RF 31 Generar informe con contratos próximos a vencerse
RF 32 Generar informe con contratos vencidos
CUS Visualizar gráficos
RF 33 Mostrar gráfico con el comportamiento de las ventas por meses
RF 34 Mostrar gráfico con la composición de las ventas
RF 35 Mostrar contratos vencidos y próximos a vencerse.
RF 36 Mostrar ofertas pendientes
CUS Visualizar trazas
RF 37 Mostrar trazas
36
2.3.2 Requisitos no funcionales
Los requisitos no funcionales son las propiedades o cualidades que el producto debe
tener. [Jacobson, 2000]
Requerimientos de Software
Se debe disponer de un sistema operativo que soporte Java Runtime Environment 6,
PostgreSQL 9.1, Apache Tomcat 6 y el Versat Sarasola versión 7.2 o superior. Se
podrá visualizar la aplicación siempre que sea ejecutada con alguno de los siguientes
navegadores web: Internet Explorer 6+, Firefox 3.6 +, Chrome 10+.
Requerimientos de Hardware
Se debe disponer de una máquina, con memoria RAM como mínimo de 512MB,
procesador Pentium 4 o superior y un servidor de aplicaciones con un procesador
Pentium 4 o superior y al menos 1 GB de memoria RAM.
Requerimientos de apariencia o interfaz externa
La aplicación debe ofrecer una interfaz amigable y sencilla al usuario, profesional y
fácil de entender.
Requerimientos de Seguridad
La aplicación debe garantizar la confidencialidad de la información que maneje
permitiendo que esté protegida de la divulgación y el acceso no autorizado. La
información que manipule debe ser objeto de cuidadosa protección contra la
corrupción y estados inconsistentes, para lograr de esta forma la integridad. El
acceso a la información, será permitido sólo a los usuarios autorizados.
Requerimiento de Portabilidad
La aplicación deberá funcionar en diferentes plataformas siempre que soporten los
requisitos de software.
37
Requerimiento de Usabilidad
Cada usuario que se autentique en el sistema tendrá acceso sólo a la información
que le corresponda según su rol y no necesita tener conocimientos avanzados de
informática para utilizarlo.
Requerimiento de Ayuda y Documentación
La aplicación dispondrá de una ayuda que le indicará al usuario cómo interactuar con
sus funcionalidades.
2.3.3 Actores del sistema
Los actores pueden estar representados por usuarios concretos (una persona u otro
sistema externo) que interactúan con el sistema. [Jacobson, 2000]
A continuación se describen los actores de la aplicación:
Usuario: realiza inserciones, modificaciones y eliminaciones de información.
Administrador: usuario con privilegios para realizar cambios en el sistema,
tanto en la información como en la configuración del mismo.
Versat: sistema externo que gestiona información económica contable.
Permite la creación, facturación y contabilización de cheques y transferencias
de clientes. Es utilizado por la aplicación para obtener los datos de los
clientes, facturas y los productos y servicios que se comercializan.
2.3.4 Diagrama de casos de uso del sistema
El diagrama de casos de uso representa gráficamente las relaciones de los actores
con los procesos del sistema. [Jacobson, 2000]
38
Figura 2.2: Diagrama de Casos de Uso del Sistema
2.3.5 Descripciones textuales de los casos de uso más importantes
Para comprender mejor la funcionalidad asociada a cada caso de uso, es necesario
detallarlos textualmente. A continuación se describen los casos de uso considerados
críticos por su importancia en la aplicación. (Importar del Versat, Gestionar datos del
cliente, Gestionar contratos, Gestionar suplementos).
CUS Importar del Versat
Nombre del CUS Importar del Versat
Actor Usuario
Propósito Permite importar del Versat los Clientes, Facturas,
Productos y Servicios.
Resumen El CUS se inicia cuando el usuario desea obtener los
clientes, facturas, productos y servicios del Versat.
Finaliza cuando se han importado clientes, facturas,
productos y servicios y luego guardados en la base de
39
datos del sistema para su posterior utilización por otros
procesos de la aplicación.
Referencias RF 21, RF 22, RF 23, RF 24
Pre-condiciones El usuario debe de estar autenticado en el sistema.
Debe de estar funcionando el Versat.
Pos-condiciones -
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. El usuario selecciona alguna de las opciones siguientes:
• Importar todo • Importar clientes • Importar facturas. • Importar productos y
servicios.
2. Establece la conexión con el Versat.
3. Ejecuta alguna de las siguientes acciones: • Si el usuario seleccionó la opción
Importar todo, se importan todos los clientes, facturas, productos y servicios y los guarda en la base de datos.
• Si el usuario seleccionó la opción Importar clientes, se importan todos los clientes y los guarda en la base de datos.
• Si el usuario seleccionó la opción Importar facturas, se importan todas las facturas y las guarda en la base de datos.
• Si el usuario seleccionó la opción Importar productos y servicios, se importan todos los productos y servicios y los guarda en la base de datos.
4. Indica al usuario la realización de la importación mediante una barra de progreso.
5. Muestra el mensaje “Importación realizada con éxito”.
Flujo Alterno 2.1 Si no se establece la conexión con el
Versat, muestra un mensaje de error. 4.1 Si la importación no pudo ser realizada,
40
muestra el mensaje “La importación no pudo ser realizada, intente de nuevo”.
CUS Gestionar datos del cliente.
Nombre del CUS Gestionar datos del cliente
Actor Usuario
Propósito Permite manipular los datos de un cliente.
Resumen El CUS inicia cuando el usuario selecciona la opción
Clientes para buscar o modificar clientes. Finaliza luego
de realizar alguna de las diferentes acciones.
Referencias RF 6, RF 7.
Pre-condiciones El usuario debe autenticarse en el sistema.
Deben haberse importado los clientes del Versat.
Pos-condiciones -
Sección 1: Buscar cliente
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. Da clic en la opción Clientes
del menú.
2. Muestra una interfaz con un campo de
búsqueda y un listado de todos los clientes.
3. Introduce el término de
búsqueda que puede ser:
nombre o abreviatura.
4. Filtra el listado de los clientes según el
criterio de búsqueda especificado.
Flujo Alterno 4.1 Si no existen clientes que coincidan con el
término de búsqueda, muestra un mensaje en el que indica que el cliente no se encuentra registrado.
Sección 2: Modificar cliente 1. Ejecuta la sección S1: Buscar cliente de este caso de uso.
2. Da doble clic en el cliente a
modificar.
3. Muestra una interfaz en la que aparecen
datos del cliente obtenidos del Versat y otros
campos por completar.
41
4. Añade los datos que faltan del
cliente en la interfaz y da clic en
el botón Guardar.
5. Valida los datos introducidos.
Flujo Alterno
5.1 Si los datos introducidos no son válidos
muestra un mensaje de error.
Caso de uso asociado CUS Importar del Versat (incluido)
CUS Gestionar contratos.
Nombre del CUS Gestionar contratos (incluido del CUS Gestionar
suplementos)
Actor Usuario
Propósito Permite ingresar o actualizar los datos de los contratos en
el sistema.
Resumen El CUS inicia cuando el usuario selecciona la opción
Contratos para insertar, modificar o buscar un contrato.
Finaliza luego de realizar alguna de las diferentes
acciones.
Referencias RF 12, RF 13, RF 14
Pre-condiciones El usuario debe autenticarse en el sistema.
Deben haberse importado los clientes del Versat.
Pos-condiciones -
Sección 1: Insertar contrato
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. Selecciona la opción Nuevo
contrato del menú.
2. Muestra una interfaz en la que solicita los
datos del contrato.
3. Inserta los datos y presiona el
botón Guardar.
4. Valida los datos introducidos.
5. Inserta los datos del nuevo contrato en la
42
base de datos.
Flujo Alterno
4.1 Si los datos introducidos no son válidos o
están incompletos muestra un mensaje de
error indicando al usuario que debe corregirlos
para continuar.
5.1 Si el contrato ya se encuentra registrado
en la base de datos, muestra un mensaje en
el que indica que ya existe.
Sección 2: Modificar contrato
1. Se ejecuta la sección S3: Buscar contrato del caso de uso.
2. Da doble clic en el contrato a
modificar.
3. Muestra una interfaz con todos los datos
del contrato seleccionado.
4. Modifica los datos del contrato
y da clic en el botón Guardar.
5. Valida los datos introducidos.
6. Actualiza los datos en la base de datos.
Flujo Alterno
5.1 Si los datos introducidos no son válidos
muestra un mensaje de error indicando al
usuario que debe corregirlos para continuar.
Sección S3: Buscar contrato.
1. Da clic en la opción Contratos
del menú.
2. Muestra una interfaz con un campo de
búsqueda y un listado de todos los contratos.
3. Introduce el término de
búsqueda que puede ser: fecha, cliente, número, estado o ubicación.
4. Valida los datos introducidos para realizar
la búsqueda.
5. Filtra el listado de los contratos según el
43
criterio de búsqueda especificado.
Flujo Alterno
4.1 Si los datos introducidos no son válidos
muestra un mensaje de error.
5.1 Si no existen contratos que coincidan con
el término de búsqueda, muestra un mensaje
en el que indique que el contrato no se
encuentra registrado.
Caso de Uso Asociado CUS Importar del Versat (incluido)
CUS Gestionar suplementos.
Nombre del CUS Gestionar suplementos
Actor Usuario
Propósito Permite ingresar o actualizar suplementos a los contratos
en el sistema.
Resumen El CUS inicia cuando el usuario desea insertar o modificar
un suplemento. Finaliza luego de realizar alguna de las
diferentes acciones.
Referencias RF 15, RF 16
Pre-condiciones El usuario debe autenticarse en el sistema.
Debe haber sido creado el contrato.
Deben haberse importado los clientes, productos y
servicios del Versat.
Pos-condiciones -
Sección 1: Insertar suplemento
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. Se ejecuta la sección S3: Buscar contrato del CUS
Gestionar contratos.
44
2. Da doble clic en el contrato
buscado.
3. Muestra una interfaz con todos los datos
del contrato y los suplementos asociados.
4. Selecciona la opción Adicionar
dentro de suplementos.
5. Muestra una interfaz en la que solicita los
datos del suplemento.
6. Inserta los datos y presiona el
botón Guardar.
7. Valida los datos introducidos.
8. Inserta los datos del nuevo suplemento en
la base de datos.
Flujo Alterno
7.1 Si los datos introducidos no son válidos o
están incompletos muestra un mensaje de
error indicando al usuario que debe corregirlos
para continuar.
8.1 Si el suplemento ya se encuentra
registrado en la base de datos, muestra un
mensaje en el que indique que ya existe.
Sección 2: Modificar suplemento
1. Se ejecuta la sección S3: Buscar contrato del CUS
Gestionar contratos.
2. Da doble clic en el contrato
buscado.
3. Muestra una interfaz con todos los datos
del contrato y un listado de los suplementos
asociados.
4. Da doble clic en el suplemento
que desea modificar.
5. Muestra una interfaz con todos los datos
del suplemento seleccionado.
6.Modifica los datos del
suplemento y da clic en el botón
Guardar.
7. Valida los datos introducidos.
8. Actualiza los datos en la base de datos.
Flujo Alterno
45
7.1 Si los datos introducidos no son válidos
muestra un mensaje de error indicando al
usuario que debe corregirlos para continuar.
Casos de Uso Asociados: CUS Gestionar contratos (incluido)
2.4 Diseño
El modelo de diseño es un modelo de objetos que describe la realización física de los
casos de uso. Se centra en cómo los requisitos funcionales y no funcionales tienen
impacto en el sistema a considerar.
2.4.1 Diagramas de clases del diseño
Muestran las clases del sistema y sus interrelaciones. Son utilizados tanto para
mostrar lo que el sistema puede hacer (análisis), como para mostrar cómo puede ser
construido (diseño).
A continuación se representan los diagramas de clases del diseño de los casos de
uso descritos anteriormente.
Figura 2.3: CUS Importar del Versat
46
Figura 2.4: CUS Gestionar datos del cliente
Figura 2.5: CUS Gestionar contratos
Figura 2.6: CUS Gestionar suplementos
47
2.4.2 Diagramas de secuencia
Muestran la interacción de los objetos de la aplicación en una secuencia de tiempo y
son modelados para cada caso de uso.
Figura 2.7: CUS Importar (Clientes)
Figura 2.8: CUS Importar (Facturas)
48
Figura 2.9: CUS Importar (Productos y Servicios)
Figura 2.10: CUS Gestionar datos del cliente (S1: Buscar cliente)
Figura 2.11: CUS Gestionar datos del cliente (S2: Modificar cliente)
49
Figura 2.12: CUS Gestionar contratos (S1: Insertar contrato)
Figura 2.13: CUS Gestionar contratos(S2:Modificar contrato)
Figura 2.14: CUS Gestionar contratos (S3: Buscar contrato)
50
Figura 2.15: CUS Gestionar suplementos(S1: Insertar suplemento)
Figura 2.16: CUS Gestionar suplementos (S2: Modificar suplemento)
2.4.3 Diagrama de clases persistentes
Representa las relaciones entre las clases que pueden mantener su estado en el
tiempo y en el espacio.
51
Figura 2.17: Diagrama de clases persistentes
2.4.5 Modelo de datos Describe la representación lógica y física de los datos persistentes utilizados por la
aplicación. Se utiliza para definir las relaciones entre las clases del diseño y las
estructuras de datos. [Larman, 2004]
52
Figura 2.18: Modelo de datos
La aplicación tiene diseñada una base de datos en PostgreSQL que permite
almacenar y consultar su información. La misma posee 25 tablas y dentro de las más
importantes para su desempeño se pueden encontrar las que almacenan información
correspondiente a los clientes, contratos y suplementos.
En los registros de la tabla cliente se encuentran entre otros datos: el nombre del
cliente, su dirección, código nit, código reeup, la cuenta bancaria, el teléfono,
organismo al que pertenece y la actividad que realiza.
En la tabla contratos, se puede encontrar información registrada referente al número
de contrato, fecha de firma, vigencia, cliente al que pertenece, estado (por firmar,
firmado, cancelado), el tipo (nacional, territorial, marco) y la ubicación (cliente,
municipio, expediente).La tabla suplementos, por su parte, permite registrar el
53
número, la fecha, el importe, objeto (servicio o producto al que responde), contrato al
que pertenece y el estado (activo o cancelado).
Otras tablas no menos importantes son las que relacionan información de los
usuarios y sus roles (usuario _ rol) y la que permite almacenar las trazas de todas las
operaciones realizadas en el sistema, garantizando de esta forma una mayor
seguridad y facilitando la auditabilidad de la aplicación.
2.4.6 Modelo de despliegue
Es un modelo de objetos que describe la distribución física del sistema en términos
de cómo se distribuye la funcionalidad entre los nodos de cómputo. Representa una
correspondencia entre la arquitectura del software y la arquitectura del sistema.
[Jacobson, 2000]
Figura 2.19: Modelo de despliegue
Descripción de los nodos del Modelo de despliegue. Nodo Propósito Requisitos de
software Requisitos de hardware
PC Cliente Utilizar la
aplicación web
Navegadores web: Internet Explorer 6+,
Firefox 3.6 +, Chrome
10+. Sistema Operativo: Windows o Linux.
Micro-procesador: Pentium 4 o superior. Memoria RAM: 512
MB.
Servidor de Hospedar la Sistema Operativo: Micro-procesador:
54
aplicaciones aplicación web y
el servidor de
base de datos.
Windows o Linux.
Java Runtime Environment 6. PostgreSQL 9.1 Apache Tomcat 6
Pentium 4 o superior. Memoria RAM: 1 GB
Servidor de Versat
Aloja la base de
datos del
Versat.
Versat Sarasola versión 7.2 o superior.Sistema Operativo: Windows
Micro-procesador: Pentium 4 o superior. Memoria RAM: 1 GB
2.5 Implementación
Tiene como objetivo implementar las clases y subsistemas definidos anteriormente
en términos de componentes.
2.5.1 Diagrama de la arquitectura del sistema
La arquitectura representa la estructura de los componentes del sistema y sus
relaciones.
Figura 2.20: Arquitectura del sistema
55
Figura 2.21: Vista
Figura 2.22: Controlador
56
Figura 2.23: Modelo
2.5.2 Modelo de componentes Representa un conjunto de componentes y sus relaciones. Un componente es la
parte modular de un sistema, desplegable y reemplazable que encapsula
implementación, un conjunto de interfaces y proporciona la realización de los
mismos. Típicamente contiene clases y puede ser implementado por uno o más
artefactos (ficheros ejecutables, binarios, etc.). Son las piezas reutilizables de alto
nivel a partir de las cuales se pueden construir los sistemas. [Jacobson, 2000]
57
2.5.3 Diagramas de componentes de los casos de uso más importantes
Figura 2.24: CUS Importar
Figura 2.25: CUS Gestionar datos del cliente
58
Figura 2.26: CUS Gestionar contratos
Figura 2.27: CUS Gestionar suplementos
2.5.4 Diagrama de implementación
Constituye la combinación entre el diagrama de despliegue (distribución física) y el
de componentes (representa al software).
59
Figura 2.28: Diagrama de implementación
Conclusiones En este capítulo fue explicada conceptualmente la problemática a resolver. Se
realizaron los flujos de trabajo: Modelado del Negocio, Levantamiento de Requisitos,
Diseño e Implementación según la metodología seleccionada, los cuales sentaron las
bases del desarrollo de la aplicación.
60
CAPÍTULO III: IMPLEMENTACIÓN DEL SISTEMA
En este capítulo se realiza una descripción general de aspectos esenciales de la
aplicación web para la gestión del Subproceso de Venta de DESOFT (GestVent). La
interacción con el usuario, la base de datos empleada, el diseño de las interfaces, los
principios que se tuvieron en cuenta para garantizar la protección y seguridad así
como el tratamiento de errores, son explicados a continuación.
3.1 Aspectos relativos a la implementación del sistema
GestVent es una aplicación web desarrollada en el lenguaje de programación Java,
multiplataforma y que tiene por objetivo facilitar la gestión de toda la información
relacionada con los clientes de la empresa. Además permite gestionar las ofertas,
contratos y suplementos. Tiene como propósito fundamental garantizar la realización
eficiente de sus servicios, para lo cual mantiene una comunicación eficaz con el
usuario identificado mediante los mensajes correspondientes.
Para su ejecución deben cumplirse los requerimientos de hardware definidos en el
capítulo anterior.
3.2 Diseño de la interfaz
El diseño de la interfaz de usuario es la categoría de diseño que crea un medio de
comunicación entre el hombre y la máquina. Tiene como objetivo definir un conjunto
de objetos y acciones de interfaz (y sus representaciones en la pantalla) que
posibiliten al usuario llevar a cabo todas las tareas definidas de forma que cumplan
todos los objetivos de usabilidad definidos por el sistema.[Pressman]
La interfaz de GestVent fue concebida de forma sencilla y asequible para permitir al
usuario la gestión y obtención de información de manera rápida y fácil. Los colores
azul, gris y blanco fueron seleccionados para su composición teniendo en cuenta lo
establecido en el manual de identidad de DESOFT.
Está formada por una barra de menú con diferentes opciones que permiten la
ejecución de varias tareas y con información representada mediante gráficos para
mantener informado al usuario sobre el comportamiento de los procesos gestionados
61
más importantes. La navegación se realiza mediante tabs para permitir un acceso
rápido a la información disponible y evitar abrir nuevas ventanas.
Figura 3.1 Interfaz principal
3.3 Forma general y principios en que se basa el sistema de ayuda
GestVent posee una ayuda que contempla toda la información referente a la
manipulación de los servicios que brinda, con la que el usuario podrá adquirir los
conocimientos necesarios para su explotación. En ella se describen los pasos para
realizar cada uno de los procesos que gestiona la aplicación, facilitando una mejor
utilización.
3.4 Forma general y principios de la protección y seguridad
Debido a la importancia de la información manejada por la aplicación, se hace
necesario garantizar su protección y seguridad, lo cual es implementado mediante
Spring Security que posibilita una correcta autenticación y autorización.
62
La autenticación se garantiza mediante el establecimiento de usuarios y contraseñas.
Las contraseñas no son almacenadas en texto plano en la base de datos, son
codificadas utilizando el algoritmo digest SHA. Este algoritmo genera un código de
longitud fija, conocido como hash, el cual garantiza que sea prácticamente imposible
recuperar el código original de la contraseña aunque se tenga acceso a la base de
datos.
Si al realizar la autenticación, se ha dejado algún campo vacío o se ha escrito mal la
contraseña, la aplicación le mostrará un mensaje de error informando lo sucedido.
Figura 3.2: Error en autenticación
La autorización es garantizada mediante el establecimiento de los roles
administrador y usuario en la aplicación, los cuales poseen privilegios diferentes. El
administrador tiene el acceso total a todas las funcionalidades del sistema y es el
único autorizado para crear nuevos usuarios y modificar la configuración de la
aplicación, mientras que el rol usuario sólo es autorizado a insertar, modificar y
eliminar información.
3.5 Forma general del tratamiento de errores
El tratamiento de errores se desarrolla tanto desde el lado del cliente como del
servidor. Por la parte del cliente se validan los datos aprovechando las
63
funcionalidades y los componentes que brinda el framework ExtJS, exigiéndole el
completamiento de los campos obligatorios, además de no permitir datos incorrectos
a la hora de efectuar acciones de inserción, modificación o eliminación, en función de
esto, se brinda la posibilidad de seleccionar los campos, garantizando introducir la
menor cantidad de datos.
Los errores son mostrados mediante el señalamiento del campo incorrecto, el cual es
resaltado con el borde de color rojo y al lado, al acercar el cursor del mouse, es
colocado el mensaje de error.
Por la parte del servidor se validarán los datos enviados por los usuarios a través de
los formularios, antes de que estos sean almacenados en la base de datos, además
se capturan los mensajes de error generados por la misma, para conformar textos
que sean claros para el usuario, los cuales se ubicarán en una ventana.
Conclusiones
En este capítulo fueron explicados los aspectos que se tuvieron en cuenta en el
diseño de la interfaz para facilitar la interacción del usuario con la aplicación. Se
describió además, el sistema de ayuda que contribuirá en una mejor utilización de la
aplicación, así como la forma de llevar a cabo la protección y seguridad mediante la
autenticación y autorización y los principios que se emplean para el tratamiento de
errores.
64
CONCLUSIONES
La realización de este trabajo posibilitó el cumplimiento de los objetivos y tareas
trazadas. Para ello se realizó un estudio del Subproceso de Ventas, el cual reveló la
existencia de deficiencias relacionadas con la gestión de la información.
Para darle solución al problema planteado fue realizada una investigación sobre
sistemas existentes tanto en el ámbito nacional como internacional, lo que permitió
conocer sus deficiencias y favoreció la captura de requisitos de la aplicación
propuesta.
Se estudiaron las tendencias y tecnologías actuales que facilitaron el desarrollo de la
solución, destacando el uso de Java como lenguaje de programación y de los
framework Spring y Ext Js.
Fueron documentados los flujos de trabajo: Modelamiento del Negocio,
Requerimientos, Diseño e Implementación, que permitieron obtener el diseño de un
software que cumple con los requisitos definidos por el usuario.
El sistema incluye las funcionalidades necesarias para la gestión de la información
del Subproceso de Ventas y provee un archivo en el que se encuentran todos los
datos referentes a los clientes, del cual podrán nutrirse otros sistemas que lo
requieran.
65
RECOMENDACIONES
Proponer el uso de la aplicación en todas las divisiones de DESOFT.
Evaluar la posibilidad de comercializar la aplicación a otras empresas del país.
Continuar con el desarrollo de otros servicios web Restful que permitan el
acceso a diferentes recursos.
66
REFERENCIAS BIBLIOGRÁFICAS
AJAX Ya. [Internet] Disponible en: <http://www.ajaxya.com.ar/> Consultada
15-2-2013.
Álvarez, Miguel Ángel. Descripción y características de este potente y
moderno lenguaje de programación. [Internet] Disponible en:
<http://www.desarrolloweb.com/articulos/497> Consultada: 14-12-2012.
Alex, Ben; Luke, Taylor. Spring Security.
Azán, Yasser; Díaz, Anay; González, Salvador. Una experiencia en
integración de aplicaciones empresariales. 3-4-2010.
Beneficios de las Aplicaciones basadas en web y el anuncio de Microsoft
de la era en vivo [Internet] Disponible en:
<http://es.masternewmedia.org/aplicaciones_web/temas_de_aplicaciones_we
b/Beneficios_De_Las_Aplicaciones_Basadas_En%20_Web_Y_El_Anuncio_D
e_Microsoft_De_La_Era_En_Vivo.htm> Consultada 29-1-2013.
Bovet, José. Introducción a los aspectos básicos de Spring Framework.
[Internet] Disponible en:
<http://josebovet.wordpress.com/2010/09/14/aspectos-basicos-de-spring-
framework-2> Consultada: 28-1-2013.
Braña, Francisco. Aplicación de gestión comercial que podemos copiar
en una memoria USB [Internet]. Disponible en:
<http://gratis.portalprogramas.com/Gestion-Portable.html> Consultada: 5-3-
2013
Braña, Francisco. Programa de Gestión Comercial desarrollado en MS
Access (Almacén, Compras, Ventas....). [Internet]. Disponible en:
<http://gratis.portalprogramas.com/Comercial-Gestion> Consultada: 5-3-2013.
67
Castro, Luis. ¿Qué es HTTP? [Internet] Disponible en:
<http://aprenderinternet.about.com/od/ConceptosBasico/a/Que-Es-Http.htm>
Consultada: 29-1-2013.
Crockford, Douglas. JavaScript: The Good Parts. O'Reilly. May 2, 2008.
Cuello, Ronald. Java Persistence Api (Jpa). [Internet] Disponible en:
<http://www.slideshare.net/maxmouse/java-persistence-api> Consultada: 14-
12-2012.
DESOFT. FP-Negocios 2012 V2.1 Plantilla R60-11 CGR. Ciudad de La
Habana, 2012.
DESOFT. Manual Mentor. Holguín ,2008.
DESOFT. Metodología de Ventas. 2012.
DESOFT. Reglamento orgánico. Ciudad de La Habana. 17-10-2012.
Elemental. ¿Qué son las aplicaciones web? [Internet]. Disponible en:
<http://www.e-lemental.com.pe/que-es-una-aplicacion-web> Consultada 29-1-
2013.
El patrón MVC. [Internet] Disponible en:
<http://prestashop5estrellas.wordpress.com/2010/03/29/el-patron-mvc-modelo-
vista-controlador> Consultada 11-2-2013.
Gorman, Will. Pentaho Reporting 3.5 for Java Developers. Packt
Publishing.2009
Guillerón, Gastón. Patrón Inversión de Control (IoC). [Internet] Disponible en:
<http://glnconsultora.com/blog> Consultada: 30-1-2013
Hernández Tejeda, David. Guía de patrones de diseño. 2002.
Johnson ,Rod; Hoeller, Juergen; Donald, Keith; Sampaleanu, Colin; Harrop,
Rob; Arendsen, Alef; Risberg, Thomas; Davison, Darren; Kopylenko, Dmitriy;
Pollack, Mark; Templier, Thierry; Vervaet, Edwin; Tung, Portia; Hale, Ben;
Colyer, Adrian; Lewis, John; Leau, Costil; Fisher, Mark; Brannen, Sam;
Laddad, Ramnivas; Poutsma, Arjen; Beams, Chris; Abedrabbo, Tareq;
68
Clement, Andy; Syer, Dave; Gierke, Oliver; Stoyanchev, Rossen. Spring
Framework.2012
JACOBSON, Ivar; BOOCH, Grady y RUMBAUGH, James. El Proceso
Unificado de Desarrollo de Software. Adison-Wesley. 2000.
Juric, Matjaz B; Loganathan, Ramesh; Sarang; Poornachandra, Jennings,
Frank. SOA Approach to Integration - XML, Web services, ESB, and BPEL in
real-world SOA projects. Packt Publishing, 2007.
Larman, Craig. UML y Patrones: Introducción al análisis y diseño orientado a
objetos. Editorial Félix Varela. 2004.
King, Gavin; Bauer, Christian; Rydahl Andersen, Max; Bernard, Emmanuel;
Ebersole, Steve. Tutorial básico de Hibernate. [Internet] Disponible en:
<http://www.davidmarco.es/tutoriales/hibernate-reference>. Consultada: 28-1-
2013.
La gestión por procesos [Internet] Disponible en:
<http://www.fomento.gob.es/NR/rdonlyres/9541ACDE-55BF-4F01-B8FA-
03269D1ED94D/19421/CaptuloIVPrincipiosdelagestindelaCalidad.pdf>
Consultada 14-11-2012.
Martínez, Rafael. Sobre PostgreSQL. [Internet] Disponible en:
<http://www.postgresql.org.es/sobre_postgresql> Consultada: 29-1-2013.
Pressman, Roger S. Ingeniería del Software. Un enfoque práctico. Quinta
Edición. Capítulo 15, p. 259
Pérez Valdés, Damián. ¿Qué es Javascript? [Internet] Disponible en:
<http://www.maestrosdelweb.com/editorial/%C2%BFque-es-javascript>
Consultada: 14-12-2012.
Sánchez Rosas, Eladio. Ext Js lo bueno, lo malo y lo feo. [Internet]. Disponible
en: <http://blogs.antartec.com/desarrolloweb/2008/10/extjs-lo-bueno-lo-malo-y-
lo-feo> Consultada 28-1-2013.
69
Suárez Sánchez José M. Introducción a Spring Data: soporte para JPA,
8/10/2012.[Internet] Disponible en:
<http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=springDataJ
PA> Consultada 19-2-2013.
Teico. Manual de Implantación del Versat Sarasola. 2001.
Vogels, Lars. REST with Java (JAX-RS) using Jersey–Tutorial. [Internet]
Disponible en: <http://www.vogella.com/articles/REST/article.html>
Consultada: 29-1-2013.
Welicki, León. El Patrón Singleton. [Internet] Disponible en:
<http://msdn.microsoft.com/es-es/library/bb972272.aspx> Consultada: 30-1-
2013.
70
BIBLIOGRAFÍA
Larman, Craig. UML y Patrones: Introducción al análisis y diseño orientado a
objetos. Editorial Félix Varela, 2004.
JACOBSON, Ivar; BOOCH, Grady y RUMBAUGH, James. El Proceso
Unificado de Desarrollo de Software. Adison-Wesley, 2000.
Pressman, Roger S. Ingeniería del Software. Un enfoque práctico. Quinta
edición. S.l.: McGraw-Hill Companies, 2002.
Fowler, Martin. UML Distilled Third Edition.A Brief Guide to the Standard
Object Modeling Language.
Smeets, Bram. Building Spring 2 Enterprise Applications. 2007
Minter, Dave. Beginning Spring 2 From Novice to Professional. 2008
Goodman, Danny. JavaScript Bible 4th Edition. 2001
Chappell, David. Java Web Services. First Edition March 2002
Frederick, Shea; Ramsay Colin. Learning Ext JS. 2008
Walls, Craig; Breidenbach, Ryan. Spring in Action Second Edition. 2008
García, Jesús. Ext JS in Action. 2009
Bauer, Christian; King, Gavin. Java Persistence with Hibernate. 2005
Richardson, Leonard; Ruby, Sam. RESTful Web Services. 2007
Hansen, Mark D. SOA Using Java Web Services. 2007
Pollack, Mark; Risberg, Thomas; Gierke, Oliver. Spring Data Commons –
Reference Documentation. 2010
Gierke, Oliver. Spring Data JPA - Reference Documentation. 2012
Conallen, Jim. Modeling Web Application Architectures with UML. 1999
71
ANEXOS
Anexo 1 Diagrama de flujo del Proceso de Negocios
Anexo 2 Ficha de prospecto
Anexo 3 Cuestionario diagnóstico
Anexo 4 Registro comercial
No. 1
Entidad 2
Org
an
ism
o
3 Fecha
Solicitud 4
Servicio solicitado
5
Producto 6
Alcance 7
Territorios Involucrados
8
No. C -9
No. A-9
Fecha de entrega de contrato
10
Fecha de cierre de
venta 11
No
. C
on
trato
1
2
No
. S
up
lem
en
to
12
Duración del proyecto
Observaciones 15
Inicio
13 Fin 14
Anotaciones: 1. Número consecutivo de orden. 2. Nombre de la entidad que solicita el servicio. 3. Organismo al que pertenece la entidad cliente. 4. Fecha en que se realiza la solicitud. 5. Tipo de servicio solicitado. 6. Nombre del Producto asociado al servicio (servicios de implementación, soporte, cursos y desarrollo). 7. Alcance: Nacional; Provincial o Territorial (cuando intervienen de 2 a 8 provincias). 8. Nombre de los territorios involucrados. 9. No. del Comité de Negocios y No. del Acuerdo donde fue o no aprobado el proyecto. 10. Fecha en que se entrega el contrato al cliente. 11. Fecha de firma del Contrato y/o Suplemento. 12. No. del Contrato y/o Suplemento del Negocio. 13. Fecha de Inicio del proyecto. 14. Fecha de culminación del proyecto. 15. Expresar cualquier aclaración necesaria.
Anexo 5 Oferta comercial
Anexo 6 Ficha de cliente
Anexo 7 Encuesta de satisfacción
GLOSARIO DE TÉRMINOS
Comité de Negocios: es un órgano asesor para el análisis, evaluación y aprobación
de los negocios y proyectos nuevos que se presenten, además de dar seguimiento a
los que se encuentran en ejecución y coordinar sus actividades.
Contratación: materialización de un contrato a través de la cual se conviene,
acuerda, entre las partes intervinientes, la realización de un determinado trabajo o
actividad, a cambio de la cual, el contratado, percibirá una suma de dinero estipulada
en la negociación de las condiciones o cualquier otro tipo de compensación
negociada.
Estudio de factibilidad: análisis amplio de los resultados financieros, económicos y
sociales de una inversión.
Expediente de clientes: archivo donde se guardan todos los documentos
concernientes a la ejecución de un proyecto determinado, según las metodologías y
procedimientos establecidos.
Facturación: acción y efecto de facturar.
Ficha de prospecto: registra todos los contactos que puede obtener una empresa
que, en un futuro, puede convertirse en un cliente (prospecto).
Internet: es una red de equipos de cómputo que se comunican entre sí empleando
un lenguaje común.
Intranet: es una red de ordenadores privada basada en los estándares de Internet.
Oferta comercial: es una propuesta que está constituida por el conjunto de bienes y
servicios que se ofrecen a un cliente determinado, con un precio concreto.
Precontrato: convención por la cual dos o más personas se comprometen a concluir
en tiempo futuro un determinado contrato que no se quiere o no se puede estipular.
Proyecto: conjunto de actividades coordinadas y controladas con fechas de inicio y
fin que involucran recursos y tienen por objetivo crear un producto, servicio o
resultado único.
REEUP (Registro Estatal de Empresas y Unidades Presupuestadas): es el registro
que recoge las empresas, unidades presupuestadas y demás entidades estatales y
de entidades subordinadas a las organizaciones políticas, sociales y de masas.
Subproceso: es parte de un proceso de mayor nivel que tiene su propia meta,
propietario, entradas y salidas.
Suplemento: documento que se firma con posterioridad al contrato y que se emplea
para dejar constancia de cualquier modificación o concreción del contenido del
mismo, prorrogar su vigencia o declarar su extinción por mutuo acuerdo de las
partes.
Nichos de mercado: corresponde a un segmento de mercado constituido por un
reducido número de consumidores con características y necesidades homogéneas y
fácilmente identificables.
Misión: es el propósito general o razón de ser de la empresa u organización que
enuncia a qué clientes sirve, qué necesidades satisface, qué tipos de productos
ofrece y en general, cuáles son los límites de sus actividades.