UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación DESARROLLO DE SISTEMA DE ADMINISTRACIÓN DE PRECIOS PARA LA EMPRESA CENTRAL MADEIRENSE



Documentos relacionados
Elementos requeridos para crearlos (ejemplo: el compilador)

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Capítulo 5. Cliente-Servidor.

Workflows? Sí, cuántos quiere?

Unidad 1. Fundamentos en Gestión de Riesgos

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Guía Metodológica para el diseño de procesos de negocio

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Resumen General del Manual de Organización y Funciones

Metodología básica de gestión de proyectos. Octubre de 2003

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Sistemas de información

Primer avance de proyecto de software para la gestión de inscripciones en cursos

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

EL PROCESO DE BENCHMARKING

Sesión No. 7. Contextualización: Nombre de la sesión: Intelisis Business Intelligence PAQUETERÍA CONTABLE

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Anexo 4 Documento de Arquitectura

2 EL DOCUMENTO DE ESPECIFICACIONES

Capítulo I. Marco Teórico

CARACTERISTICAS DEL SISTEMA


Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Capitulo III. Diseño del Sistema.

Capitulo 5. Implementación del sistema MDM

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Gestión de Configuración del Software

IAP TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

<Generador de exámenes> Visión preliminar

-OPS/CEPIS/01.61(AIRE) Original: español Página Estructura del programa de evaluación con personal externo

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

1 EL SISTEMA R/3 DE SAP AG

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Solución GeoSAS. Otros módulos

Gestión de la Configuración

Unidad III. Software para la administración de proyectos.

Empresa Financiera Herramientas de SW Servicios

Descripción General de Softengine Pinakes

Análisis y diseño del sistema CAPÍTULO 3

Capítulo II. Arquitectura del Software

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

Novedades. Introducción. Potencia

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Ingeniería de Software. Pruebas

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

Procedimiento de Sistemas de Información

Capacitación Rational Funcional Tester

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

Visión General de GXportal. Última actualización: 2009

TRÁFICO DE PISO 2. Rev. 1 15/04/09

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

- MANUAL TÉCNICO - Implantación de software de Marketing Online

Mesa de Ayuda Interna

MACROPROCESO GESTIÓN TECNOLÓGICA

Novedades en Q-flow 3.02

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

Base de datos en Excel

JAVA EE 5. Arquitectura, conceptos y ejemplos.

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

CARACTERÍSTICAS HERRAMIENTA E-BUSINESS E-SYNERGY (EXACTSOFTWARE)

CAPÍTULO 1 Instrumentación Virtual

Figure 7-1: Phase A: Architecture Vision

Capítulo 3. Análisis y Diseño

6 Anexos: 6.1 Definición de Rup:

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Capítulo 2. Marco Teórico

En el siguiente apartado se detallan ciertos conceptos que ayudan a comprender en mayor medida el Proyecto.

MINING SOLUTIONS LIMITADA

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

CONSTRUCCIÓN DEL PROCESO PAGO DE FACTURAS. BizAgi Process Modeler

Oficina Online. Manual del administrador

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

8972 Personalización y Configuración de Microsoft Dynamics CRM 4.0

Hospital Nacional de Maternidad UNIDAD DE INFORMATICA

CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler

Manual del usuario del Módulo de Administración de Privilegios del Sistema Ingresador (MAPSI)

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Gestión y Desarrollo de Requisitos en Proyectos Software

Diseño dinámico de arquitecturas de información

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

CMMI (Capability Maturity Model Integrated)

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa

Proceso: AI2 Adquirir y mantener software aplicativo

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Anteproyecto Fin de Carrera

Transcripción:

UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación DESARROLLO DE SISTEMA DE ADMINISTRACIÓN DE PRECIOS PARA LA EMPRESA CENTRAL MADEIRENSE Por Mariana Gamboa Sansón INFORME FINAL DE CURSOS EN COOPERACION Presentado ante la Ilustre Universidad Simón Bolívar como requisito parcial para optar por el título de Ingeniero de la Computación Sartenejas, 17 de Octubre de 2007

ii

Desarrollo de Sistema de Administración de Precios para la empresa Central Madeirense Por: Mariana Gamboa Sansón RESUMEN La empresa Entrust Consultores es una empresa que ofrece a sus clientes, entre otros servicios, consultoría en el área de desarrollo Web bajo estándares de programación Oracle y Java, para implementar sistemas internos que contribuyan con un mejor proceso de producción y administración de estas. Esta empresa planteó un diseño de un sistema de administración para ofrecer a su cliente Central Madeirense, la cual es una red de supermercados a nivel nacional, y este sistema deberá suplir las principales necesidades de negocio que tiene en uno de sus departamentos más importantes como lo es el Departamento de Compras y Promociones. Este departamento es el encargado de gestionar las vigencias de costos y precios de los productos que vende Central Madeirense al público, negociando con los proveedores que los ofrecen y estableciendo precios de venta basados en esas negociaciones. El sistema de administración de costos y precios, permite a Central Madeirense crear y aprobar las cotizaciones que negocie con sus distintos proveedores, y establecer y aprobar los precios de venta de los artículos, los cuales han de ser publicados en cada supermercado. Además, le brinda la opción de fijar precios promocionales a los artículos por un período de tiempo limitado. Este sistema automatiza la gestión de los precios y costos que estén vigentes y los que no. Para desarrollar este proyecto se utilizó una metodología basada en Extreme Programming, tomando de esta el desarrollo iterativo e incremental y las estrategias para tomar en cuenta los requerimientos constantemente cambiantes. El desarrollo del proyecto se llevó a cabo en una serie de iteraciones de cuatro fases: la primera para levantar requerimientos, la segunda para elaborar prototipos que serían aprobados por los usuarios finales, la tercera en la que se llevó a cabo la implementación de las funcionalidades relacionadas a los requerimientos levantados y la última en la cual se hicieron pruebas unitarias de lo implementado en esa iteración. Fue desarrollado en lenguaje Java bajo el marco de trabajo Oracle Application Development Framework el cual tiene una arquitectura basada en el patrón de desarrollo Model View Controller, y se utilizó la tecnología Java Server Faces para la implementación de las capas del sistema relacionadas con la interfaz con el usuario. iii

ÍNDICE GENERAL Página I. INTRODUCCIÓN...... 1 II. ENTORNO EMPRESARIAL....... 3 III. MARCO TECNOLÓGICO Y METODOLÓGICO... 6 1. Marco de trabajo Oracle ADF... 2. Arquitectura MVC en Oracle ADF... 3. Tecnología utilizada......... 4. Metodología de desarrollo........ IV. SIAP......... 1. Descripción general........ 2. Procesos de negocio........ 3. Requerimientos del usuario........ V. DISEÑO E IMPLEMENTACIÓN DE LA SOLUCIÓN........ 1. Capa de servicios de negocio...... 2. Capa del modelo...... 3. Capa de la vista...... 4. Capa del controlador...... 5. Proceso de implementación...... 6. Resultado........ VI. CONCLUSIONES Y RECOMENDACIONES...... REFERENCIAS BIBLIOGRÁFICAS...... APÉNDICE A......... APÉNDICE B......... APÉNDICE C... 6 7 11 12 15 15 16 18 20 20 29 29 29 34 35 36 38 41 43 51 iv

ÍNDICE DE FIGURAS Figura 2.1: Organigrama de la empresa... Figura 3.1: Arquitectura de Oracle ADF... Figura 3.2: Componentes del Oracle ADF Model..... Figura 3.3: Fases de las iteraciones en el proceso de desarrollo... Figura 4.1: Flujo de los procesos de negocio... Figura 5.1: Organización de los paquetes en la capa de servicios de negocio...... Figura 5.2: Estructura del paquete correspondiente al módulo de cotizaciones....... Figura 5.3: Entity Objects del módulo de cotizaciones.... Figura 5.4: Estructura del paquete correspondiente al módulo de precios........ Figura 5.5: Entity Objects del módulo de precios... Figura 5.6: Estructura del paquete correspondiente al módulo de promociones...... Figura 5.7: Entity Objects del módulo de promociones... Figura 5.8: Application Module del módulo de cotización..... Figura 5.9: Application Module del módulo de precios.. Figura 5.10: Application Module del módulo de promociones.. Figura 5.11: Mapa de navegación para crear una cotización... Figura 5.12: Mapa de navegación para consultar y editar cotizaciones.......... Figura 5.13: Mapa de navegación de los módulos de precios y promociones........ Figura 5.14: Paquete de clases que rigen el comportamiento de las páginas Web........ Figura 5.15: Página principal del módulo de cotizaciones... Página 4 7 10 13 18 20 21 22 23 24 25 26 27 28 28 30 31 32 33 35 v

CAPÍTULO I INTRODUCCIÓN Actualmente la necesidad que tienen las empresas de automatizar sus procesos de negocio, adaptándolos a tecnologías portables y escalables, se convierte en una de las prioridades para lograr el crecimiento que éstas desean. Existe una gran variedad de tecnologías aplicables en el ambiente Web que proporcionan estos beneficios y que se ajustan a cualquier necesidad de negocio de las empresas en general. Oracle desarrolló un marco de trabajo Web, llamado Oracle Application Development Framework enfocado al desarrollo de sistemas orientados a servicios empresariales. Entrust Consultores ofrece a sus clientes, entre otros servicios, consultoría de desarrollo de sistemas Web bajo el ambiente de trabajo Oracle ADF. Uno de los clientes de Entrust Consultores es Central Madeirense, una empresa de red de supermercados con más de cuarenta sucursales a nivel nacional. Para Central Madeirense la administración de los costos y precios de los productos que compra para ofrecer al público, constituye la actividad más importante del negocio de esta cadena de supermercados. Esta actividad incluye una serie de procesos relacionados unos con otros para lograr llevarla a cabo con efectividad, desde el momento que la empresa negocia con los proveedores de los productos, hasta que el precio de venta de los mismos es publicado en cada una de las sucursales. La motivación de este proyecto fue ofrecerle a Central Madeirense una solución automatizada para lograr esta administración, de forma tal que sea usable, portable y eficaz, desde el punto de vista del usuario, y mantenible, flexible e interoperativo, desde el punto de vista del personal de tecnología de la información de dicha empresa. Oracle ADF ofrece todas estas características y otras, en la implementación de sistemas Web. 1

El presente documento explica las características de la arquitectura Oracle Application Development Framework y como ésta fue aplicada para realizar el diseño e implementación del sistema de administración de precios para Central Madeirense, como proyecto de pasantía. Está organizado en cinco capítulos, cuyos contenidos se explican a continuación. En el capítulo dos se describe las principales características de Entrust Consultores, para dar una idea clara del entorno empresarial sobre el cual se hizo el desarrollo del proyecto. En el capítulo tres se explica la tecnología, herramientas, marcos de trabajo y metodologías que fueron utilizadas para llevar a cabo la implementación del proyecto. En el capítulo cuatro se describe las características generales del sistema, así como también el contexto y las necesidades del negocio tomadas en cuenta al momento de diseñarlo e construirlo. En el capítulo cinco se explican las características del sistema, pero esta vez desde el punto de vista tecnológico, detallando cada capa de la arquitectura del mismo. Además incluye un resumen de como fue el proceso de implementación a lo largo del desarrollo de la pasantía, así como también de lo resultados obtenidos. Por último, en el capítulo seis, se presentan unas conclusiones y recomendaciones a considerar para nuevas versiones del proyecto. 2

CAPÍTULO II ENTORNO EMPRESARIAL Entrust Consultores es una empresa representante en Venezuela del grupo Oratech de Latinoamérica, especializada en soluciones basadas en la tecnología Oracle, cuyos esfuerzos se orientan a satisfacer las necesidades tecnológicas de las empresas de América Latina, apoyándolas mediante la automatización y actualización de sus procesos productivos, manejo de información y toma de decisiones estratégicas [1]. Dependiendo de las necesidades de sus clientes, Entrust Consultores cuenta con los siguientes servicios: Ventas de educación Oracle: Cuenta con instalaciones para la capacitación en cursos de varios tipos, regidos por los estandares de la Oracle University. Consultoría en Tecnología: Ofrece a sus clientes servicios de tecnología en bases de datos, seguridad de aplicaciones, almacenamiento, migración de versiones de aplicaciones Oracle, entre otros. Consultoría en Aplicaciones, tanto funcional y de arquitectura como de desarrollo. Soporte OnSite, OnCall, OnDemand: Este servicio garantiza a los clientes de Entrust Consultores soporte todos los días de la semana para mantenimientos, fallas de sistemas o consultorías técnicas. Ventas de Licencias Oracle: No solo disponen de los productos y licencias, también asesoran a sus clientes sobre los nuevos productos Oracle para ayudarlos a tomar la mejor decisión. La empresa está presidida por dos direcciones, una comercial y una de tecnología, las cuales dirigen en conjunto las actividades de los departamentos de administración, consultoría y soporte técnico. A continuación, en la figura 2.1, se muestra la estructura 3

organizacional de Entrust Consultores. Figura 2.1: Organigrama de la empresa La dirección comercial tiene como principal función contactar a los clientes y negociar con ellos los servicios que les pueden ofrecer, dependiendo de sus necesidades. Por su parte la dirección de tecnología se encarga de coordinar a los consultores en sus diferentes áreas para ofrecerle al cliente la tecnología que se requiere para llevar a cabo dichos proyectos. La consultoría se divide en tres áreas. La primera es la funcional, que se encarga, principalmente, de implementaciones de sistemas de planificación empresarial de Oracle y de dar soporte de mejoras en los procesos de negocio, dependiendo del cliente. La segunda área es la de plataforma, cuyas principales funciones tienen que ver con asistencia en instalaciones sobre múltiples sistemas operativos, migraciones de sistemas entre servidores y entre sistemas operativos, migración de versiones de 4

aplicaciones de Oracle y mantenimiento de infraestructuras tecnológicas, entre otras; La última área es la de desarrollo, encargada principalmente de llevar a cabo proyectos completos de desarrollo de sistemas de software y aplicaciones Web, y de crear reportes a la medida y formas para tareas específicas sobre las aplicaciones de Oracle. La pasante se desempeñó en el departamento de consultoría, específicamente en el área de desarrollo, bajo el cargo de consultor técnico y funcional, en un proyecto para la empresa nacional de red de supermercados, Central Madeirense. 5

CAPÍTULO III MARCO TECNOLÓGICO Y METODOLÓGICO 1. Marco de trabajo Oracle ADF Oracle Application Development Framework es un marco de trabajo Java para la creación de aplicaciones empresariales, basado en la plataforma J2EE [2]. Un marco de trabajo es una estructura de soporte definida en la cual un proyecto de software puede ser organizado y desarrollado, mediante la colaboración de soporte de programas, bibliotecas y un lenguaje interpretado [3]. Oracle ADF soporta la combinación de distintos tipos de tecnologías; este capítulo se limitará únicamente a mencionar y explicar aquellas que han sido utilizadas en el proyecto que presenta el pasante. Este marco de trabajo tiene una arquitectura basada en el patrón Modelo Vista Controlador (MVC). Un patrón de arquitectura se refiere a una solución estándar y reusable para un problema de arquitectura de sistemas de software, ofreciendo un esquema de organización bien estructurado para el mismo [4]. MVC es uno de los patrones más usados en sistemas Web; éste separa la aplicación en tres capas: La capa del modelo que maneja la interacción con las fuentes de datos y la lógica de negocio, la capa de la vista que maneja la interfaz con el usuario de la aplicación y, por último, la capa del controlador que gestiona el flujo de la aplicación y sirve de intermediario entre las capas de la vista y el modelo [5]. Apartando el modelo de la vista, este patrón reduce considerablemente la complejidad en el diseño de la arquitectura de un sistema Web, aumentando a la vez la flexibilidad y el reuso de código de programación. La arquitectura Web es cliente servidor, lo que consiste básicamente en que un programa -el cliente informático- realiza peticiones a otro programa -el servidor- que les da respuesta [6]. 6

2. Arquitectura MVC en Oracle ADF Oracle ADF implementa MVC separando la capa de modelo, de los servicios de negocio, de manera tal que las aplicaciones sean desarrolladas orientadas a los servicios. De esta manera la capa de modelo es la encargada de representar los valores de los datos, y se añade una cuarta capa, que maneja el acceso a los datos y encapsula en componentes la lógica de negocio. En la figura 3.1 se muestra cómo es la separación de la arquitectura en cuatro capas que implementa Oracle ADF, indicando dónde se hace la interacción con los datos y cuál es la tecnología que usa en cada capa. Figura 3.1: Arquitectura de Oracle ADF 7

Al hablar de los servicios de negocio se hace referencia a todas aquellas tareas y actividades que la aplicación debe permitir manejar sobre los datos que se tienen, siguiendo una lógica más o menos compleja, dependiendo del contexto sobre el cual se desenvuelve esta aplicación. A continuación se explicarán en detalle las características de cada una de las tres capas de MVC y de la capa de servicios de negocio que implementa Oracle ADF en su marco de trabajo. En el capítulo V se explicará como están representadas estas capas en el proyecto desarrollado. 2.1. Capa de Servicios de Negocio Esta capa maneja la interacción con los datos persistentes a través de diferentes servicios: manejo de transacciones, ejecución de lógica de negocio, traducción de bases de datos relacionales, entre otros. La capa de servicios de negocio es implementada por los Oracle ADF Business Components, o componentes de negocio, y por clases Java, ligadas a estos componentes. Los componentes de negocio son desarrollados para crear, ejecutar y mantener, de una manera fácil, servicios de negocio, de forma tal que estos últimos sean eficientes, escalables, reusables y portables. Existen varios componentes, pero los tres principales que en conjunto hacen posible la implementación de un servicio de negocio son: Objetos entidad, objetos vista y módulos de aplicación. Los objetos entidad, o Entity Objects, son aquellos que encapsulan el modelo de negocio de la aplicación, incluyendo los datos y reglas de comportamiento persistentes. Usualmente estos objetos traducen los registros de datos de una tabla de base de datos, y cada atributo de la entidad representa una columna de esa tabla. Asimismo, simplifican la modificación de estos datos manejando las operaciones en lenguaje de manipulación de datos. 8

Un objeto vista, o View Object, es un componente que colecciona datos de una fuente para ser manipulada a nivel del cliente, de manera tal que represente un modelo lógico para el negocio. En la mayoría de los casos esa fuente es la base de datos directamente y la recolección se hace mediante una consulta. En otros casos la fuente corresponde a uno o más Entity Objects, lo que permite hacer y validar cambios en la base de datos directamente desde el View Object, lo cual hace más eficiente el rendimiento de las operaciones. En ambos casos las columnas de una consulta, o los atributos de un Entity Object recolectados, son atributos del View Object que el usuario puede manipular a nivel del cliente. Un módulo de aplicación, o Application Module es el componente principal de marco de trabajo Oracle ADF, que une todos los View Objects con el fin de que sean utilizables a nivel del cliente. Este define un modelo de datos, el cual contiene instancias de cada objeto vista, así como también procedimientos y funciones relacionadas a determinadas actividades de la aplicación. [7] 2.2. Capa del Modelo Esta capa presenta una abstracción de la capa de servicios de negocio permitiendo que las capas de vista y de controlador se comuniquen consistentemente con las diferentes implementaciones de los servicios de negocio de la aplicación. La capa del modelo provee este acceso en tiempo de ejecución de la aplicación, a través de objetos complejos que pueden ser contenedores, iteradores, interfaces de control de datos, entre otros. [8] La implementación de esta capa se logra a través del núcleo central de esta arquitectura, el Oracle ADF Model, el cual esta compuesto por dos componentes básicos: el control de datos, o Data Control, y la asociación de datos, o Data Binding. El primero se encargan de abstraer la implementación de los servicios de negocio de las operaciones en el cliente, mediante la implementación de métodos. El segundo conecta estos métodos del 9

data control con los componentes de interfaz de usuario, logrando entonces la separación de la capa del modelo con la capa de la vista [1]. La figura 3.2 muestra la interacción de los componentes del ADF Model, mostrando en color naranja los componentes pertenecientes a las capas de modelo y de servicios de negocio, y en color verde los de las capas de vista y controlador. Figura 3.2: Componentes del Oracle ADF Model 2.3. Capa de la Vista En la capa de vista se diseña la interfaz Web con la cual interactuará el usuario final de la aplicación. En este caso, la capa de la vista se implementa a través del estándar Java Server Faces (JSF) y de la librería complementaria Oracle ADF Faces. JSF es un marco de trabajo interno que gestiona las interfaces de usuario del lado de servidor para aplicaciones Web basadas en tecnología Java, separando el comportamiento de estas interfaces de su presentación. A su vez, ADF Faces ofrece una amplia variedad de componentes de interfaz de usuario, asegurando una consistencia completa del diseño de las páginas Web, de forma tal que el programador se enfoque más en la interacción que en el aspecto la apariencia. [2] 2.4. Capa del Controlador Esta capa controla el flujo entre las páginas Web que forman parte de toda la aplicación y está implementada por el estándar JSF. Existe un elemento específico que se encarga de ejercer la función de controlador en JSF, llamado faces-config, el cual es un 10

archivo de configuración central donde se definen las paginas Web, las reglas de navegación entre estas, reglas de validación, y clases Java que gestionan ciertos componentes en las páginas. 3. Tecnología utilizada Como se mencionó anteriormente, el marco de trabajo Oracle ADF soporta una gran variedad de tecnologías ajustables a la necesidad del desarrollador y del usuario. Para el desarrollo del proyecto de pasantía se utilizó Java como principal lenguaje de programación, sobre todo en la capa de servicios de negocio, para programar la lógica de las operaciones sobre los Oracle ADF business components. Java es un lenguaje de programación, fuertemente tipado y orientado a objetos. Una de sus principales ventajas es que es multiplataforma, lo que lo hace muy portable y escalable e independiente del sistema operativo sobre el cual opere el sistema. [9] También en la capa de servicios de negocio se utilizaron, en algunos casos, procedimientos para el manejo de datos, implementados en PL/SQL. Por ejemplo, para hacer copias de cotizaciones, o para hacer interacciones con sistemas externos. SQL es un lenguaje declarativo de acceso a bases de datos relacionales, que permite hacer operaciones y consultas sobre las estas [10]. PL/SQL incluye características más avanzadas de programación como manejo de variables, excepciones, estructuras de control de flujo, entre otras. En la capa de la vista se crearon páginas como Java Server Pages, o JSP. Ésta es una tecnología Java que permite generar contenido dinámico en páginas para aplicaciones Web. [11]. En la capa del controlador se trabajó con Java Server Faces, JSF, una tecnología que simplifica la construcción de interfaces de usuarios en aplicaciones Web desarrolladas en Java. Ofrece componentes de interacción con el usuario adaptables a 11

páginas JSP, la conexión de estos con las fuentes de datos, y el manejadores de eventos entre el cliente y el servidor [12]. Como herramienta de desarrollo para la construcción de el proyecto, se utilizó JDeveloper, una herramienta desarrollada por Oracle para el programador, que ofrece un entorno integrado de desarrollo para sistemas de software, bajo los estándares de programación de Java, principalmente. Esta herramienta permite la construcción de aplicaciones orientadas a servicios, es decir, enfocadas en las capacidades y características del negocio. Además puede soportar todo el ciclo completo de desarrollo, mediante funcionalidades para modelaje, codificación, pruebas, depuración y despliegue de las aplicaciones. Esta herramienta ofrece un enfoque de desarrollo visual y declarativo, con el objetivo de simplificar la construcción de la aplicación y reducir las tareas de codificación. De forma visual el programador puede, por ejemplo, modificar el diseño y propiedades de los componentes de una página JSP, sin tener que tocar el código. De forma declarativa puede, por ejemplo, generar clases o componentes basados en tablas existentes en la base de datos [13]. Utilizando los beneficios que ofrece JDeveloper se crearon los componentes de negocio del proyecto, así como también se desarrollaron las clases Java, se diseñaron y crearon las páginas Web y se creó el archivo de configuración de JSF que maneja la capa del controlador. 4. Metodología de desarrollo El desarrollo de este proyecto se hizo siguiendo una metodología basada en las pautas que marca XP, o programación extrema -Extreme Programming-. Esta metodología se caracteriza por su proceso ágil de desarrollo, diferenciándose de otras metodologías más estructuradas por su enfoque en la adaptabilidad más que en la previsibilidad. Las principales prácticas de XP son hacer un desarrollo iterativo e incremental con pequeñas mejoras constantes, hacer pruebas unitarias continuamente, programar en grupos pequeños, tener bastante contacto con el usuario final del sistema y 12

hacer entregas frecuentes de funcionalidades o módulos de éste [14]. Las iteraciones consistieron en una serie de cuatro fases. La primera fase es la de levantamiento de requerimientos en donde se recogía toda la información necesaria sobre los procesos a implementar y las necesidades funcionales más específicas del usuario. En la segunda fase se construía un prototipo para presentárselo al usuario y obtener su aprobación. Luego de obtener la aprobación del prototipo se pasaba a la tercera fase en la que se hace la implementación por cada caso de uso. Finalmente se llegaba a la última fase en la cual se hacían pruebas unitarias, tanto de funcionalidad como de usabilidad de lo que fue implementado en la fase anterior. Figura 3.3: Fases de las iteraciones en el proceso de desarrollo Se decidió seguir esta metodología, y no otra más estructurada o formal, por varias razones. La principal es porque se adaptaba mejor a la necesidad del cliente, cuyas necesidades y requerimientos iban cambiando y aumentando a medida que se iba desarrollado, por lo que éste era bastante iterativo e incremental. Otra razón es que el grupo de desarrolladores era reducido -sólo dos personas- por lo que era muy importante discutir las decisiones y revisar el código entre el equipo continuamente, a medida que se iba desarrollando. 13

Además de esto, se requería que las interacciones con el usuario final fueran muy frecuentes; dado lo específico del tema, ellos eran quienes conocían mejor la naturaleza de los datos y los casos bordes, por esta razón se necesitó su participación de forma activa constantemente en el desarrollo, especialmente al momento de hacer las pruebas unitarias. 14

CAPÍTULO IV SIAP 1. Descripción general SIAP es un Sistema de Administración de Precios, desarrollado para el departamento de compras y promociones de la empresa de red de supermercados Central Madeirense. El mismo tiene como objetivo general lograr una integración de los procesos que involucran la administración los precios y costos de los artículos que vende dicha empresa, de forma automatizada. SIAP es un sistema Web, desarrollado bajo el marco de trabajo Oracle ADF. Para lograr esta integración de la manera más independiente posible, se dividieron las funcionalidades del SIAP en tres módulos principales: Un módulo para costos, un módulo para precios y un módulo para promociones. Los usuarios finales del sistema son los empleados de Central Madeirense encargados de negociar con los proveedores y administrar los precios de los artículos que vende dicha empresa. Actualmente existe un solo perfil de usuario: el de comprador. SIAP tiene interacción con otros dos sistemas automatizados. El primero es Oracle Financials, el cual le permite a la empresa centralizar todos los datos e información que viene de los sistemas de la misma, a fin de tener toda la información financiera consistentemente coleccionada, calculada, analizada y almacenada, asegurando la integridad de los datos. Oracle Financials es parte de Oracle E-Business Suite [15]. El segundo es un Point of Sale, o POS, en cual es un sistema en una terminal de punto de venta que gestiona el proceso de venta en un comercio en este caso un supermercado mediante una interfaz fácil de usar para los vendedores [16]. En ambos casos SIAP crea una conexión para enviar constantemente información referente a los precios y costos de los artículos, a estos sistemas. 15

2. Procesos de negocio Cuando se habla de integración de los procesos, se hace referencia a todos aquellas fases sucesivas que comprenden la creación de un precio de un artículo en particular, desde el momento que el producto es negociado con el proveedor hasta que el precio de venta de este es publicado en los sistemas de cajas en cada uno de los supermercados o sucursales a nivel nacional. A continuación se explican en detalle y por separado, cada uno de estos procesos de negocio. En el apéndice A se definen algunos conceptos importantes que se deben tener en cuenta para tener una mayor comprensión de cada proceso: 2.1. Crear una cotización: Consiste en recibir una cotización que trae un proveedor y asignarle los costos de compra que tiene los artículos que esta ofreciendo, a partir de la fecha que indica el proveedor por un período de tiempo ilimitado, así como también los descuentos, cargos e impuestos que aplican para cada costo. Al procesar una cotización es necesario especificar los supermercados para los cuales el proveedor distribuye los productos que está ofreciendo. 2.2. Aprobar una cotización: Consiste generar un acuerdo de compra abierto entre el proveedor y la empresa, es decir, aceptar las condiciones que el proveedor ofrece para algunos o todos de los productos que vende. Esto implica que se actualice el costo de cada artículo en sistemas de administración externo, Oracle Financials, y que se creen precios de venta iniciales, sin aprobación, para los productos de esa cotización. 2.3. Crear promoción interna: Consiste en modificar un precio sin aprobación, colocando un precio inferior al vigente por un período de tiempo limitado. 2.4. Aprobar precios: Se trata de actualizar los precios en el sistema POS externo, a fin de que sea reflejado en las sucursales que corresponda. Los precios aprobados serán los precios de venta al público vigentes, hasta que se apruebe un nuevo 16

precio o hasta que se cumpla la fecha final, en caso de que se trate de un precio promocional. Un artículo tiene un costo de compra al proveedor y un precio de venta al público. Los costos son determinados a través de la cotización que se le hace al proveedor que vende dicho artículo a la empresa de supermercados. Mientras que los precios normales y los precios promocionales de venta al público de los artículos son propuestos por la empresa. Cada uno de estos procesos de negocio, se integran unos con otros para lograr la administración de costos y precios, de la siguiente manera: La empresa negocia una cotización con el proveedor donde se establece el costo, con sus descuentos o cargos, de cada uno de los artículos, así como también a cual sucursal de la empresa va a ser vendido y por cuál distribuidor del proveedor va a ser despachado. Una vez hecha la negociación y establecidos todos los acuerdos de la cotización, se debe proceder a aprobar la misma. Al aprobar la cotización los costos de los artículos ya no se pueden modificar y se generan, automáticamente, los precios sin aprobación para la venta al público de aquellos artículos acordados en la cotización. El cálculo de este precio inicial está basado, principalmente, en el margen de ganancia anterior de ese producto y en el precio sugerido por el proveedor. Estos precios pueden ser modificados tanto por artículo como por sucursales en las que será vendido el artículo. Luego se procede a aprobar los precios y ya estos no pueden ser modificados. En algunos casos se hacen promociones para los artículos que se venderán al público. Las promociones pueden ser, en principio, de dos tipos: internas o de proveedor. En el caso de las internas, la empresa fija precios promocionales a artículos que están actualmente cotizados. En el segundo caso, debe crearse una promoción que ofrece el 17

proveedor al vender sus artículos a la empresa. Para el alcance de este proyecto, sólo se contempló las promociones de tipo internas. La figura 4.1, que se muestra a continuación, ilustra gráficamente como se relacionan los procesos. En recuadros color azul se muestran los procesos previamente explicados, en círculos color amarillo los estados intermedios entre un proceso y otro, y en flechas color naranja las interacciones de cada proceso con sistemas automatizados externos, mencionados anteriormente. Figura 4.1: Flujo de los procesos de negocio 3. Requerimientos de usuario Basado en los procesos de la lógica del negocio, y en los requerimientos de los usuarios finales para llevarlos a cabo, se desarrollaron los casos de uso, los cuales 18

describen, mediante acciones y reacciones, el comportamiento del sistema, determinando la interacción de los usuarios con SIAP. Éstos casos de uso son los siguientes, divididos por módulos: Cotización Precios Promoción o Consultar cotizaciones o Crear cotización o Aprobar cotización o Eliminar cotización o Modificar cotización o Consultar precios o Cambiar precios de un artículo o Aprobar precios o Consultar promociones o Crear promoción Además, se plantearon unos casos de uso comunes, que son utilizados en varios módulos del sistema. Estos son: o Seleccionar sucursales o Seleccionar artículos o Aplicar descuento/cargo o Eliminar descuento/cargo o Copiar descuento/cargo Estos casos de uso van relacionados fuertemente con las funcionalidades que ofrece SIAP en cada uno de sus módulos, para automatizar los diferentes procesos que involucra la administración de precios. La descripción detallada de cada uno de los casos de uso mencionados, se encuentra en el Apéndice B. 19

CAPÍTULO V DISEÑO E IMPLEMENTACIÓN DE LA SOLUCIÓN El diseño de la arquitectura de SIAP se corresponde con las cuatro capas de la arquitectura de Oracle ADF, tal y como se explicaron en las primeras secciones del capítulo III. A continuación se presentará una explicación del diseño específico e implementación del sistema, enfocada en la definición de cada una de estas capas. 1. Capa de servicios de negocio Se crearon, tres paquetes distintos, correspondientes a cada uno de los tres módulos del sistema: cotizaciones, precios y promociones, como se ilustra en la figura 5.1. Un paquete, por definición, puede contener un conjunto de paquetes, de clases y/o de objetos. Esta organización permite lograr independencia entre los módulos, tanto para la construcción como para el mantenimiento del sistema en el futuro. Leyenda: Figura 5.1: Organización de los paquetes en la capa de servicios de negocio El paquete del módulo de cotizaciones está compuesto por paquetes que encapsulan los Oracle ADF Bussines Components y por clases Java. Específicamente, está estructurado de la siguiente forma: un paquete que contiene los entity objects, un paquete que contiene los view objects, un paquete que contiene los view links, y por último dos 20

paquetes que contienen las clases Java que manejan la lógica de negocio de esta parte de la aplicación. En la figura 5.2 se muestra gráficamente esta estructuración. Figura 5.2: Estructura del paquete correspondiente al módulo de cotizaciones Debido a lo extenso que es el manejo de las cotizaciones en general, se decidió dividir en tres clases las operaciones que manejan los componentes de negocio. Como sus nombres lo indican, una clase se encarga de todo lo que involucra crear una cotización, otra de la edición de una cotización y otra se encarga del manejo -creación, consulta y eliminación- de los descuentos y cargos de un artículo en una cotización. Esta modularización en clases distintas hace más eficiente las funcionalidades de este módulo de SIAP, especialmente cuando hay usuarios concurrentes; además facilita la construcción y mantenimiento del sistema. La clase Utils.java se creo para operaciones de cálculos y aproximaciones de montos. 21

Por su parte, el paquete siap.model.cotizacion.entities, contiene los objetos entidad, o entity objects, que se muestran en el diagrama de la figura 5.3. Estos objetos fueron construídos basados en tablas de la base de datos relacional sobre la que trabaja el sistema. CotizaciónCabecera representa los datos generales de la cotización, así como también la identificación única de la misma. Una cabecera de cotización se relaciona con uno o más grupos, representado en CotizacionGrupos, los cuales guardan una relación de varias sucursales con varios artículos. CotizacionLineas se refiere a las lineas de la cotización, donde se registran los costos del artículo en una sucursal determinada; este costo a su vez puede o no tener uno o más descuentos y cargos, representados en el objeto CotizacionLineasDsctoCargo. Figura 5.3: Entity Objects del módulo de cotizaciones 22

El paquete siap.model.cotizacion.queries contiene los view objects, tanto los basados en consultas de la base de datos, como aquellos que no están basados en una consulta, sino que serán alimentados con información que suministre el usuario desde el cliente. El paquete siap.model.cotizacion.viewlinks contiene los view links, que son componentes de Oracle ADF que permiten hacer relaciones entre view objects; es análogo a establecer claves foráneas entre tablas de una base de datos. El paquete del módulo de precios tiene una estructura similar al del módulo de cotizaciones, y esta puede ser apreciada en la figura 5.4. Figura 5.4: Estructura del paquete correspondiente al módulo de precios En el módulo de precios, la funcionalidad principal es la de modificar precios de varias formas, por ello se creo una clase, EditarPrecios.java que maneja la lógica de los componentes para lograr esta funcionalidad. El paquete siap.model.precios.entities contiene los entity objects que se muestran en la figura 5.5. Para gestionar los precios, estos se organizan en listas representadas por el objeto Listaprecios, esta lista contiene grupos de precios que pueden provenir de una promoción o de una cotización, y se representan mediante el objeto PreciosCabecera. 23

Las líneas definen los precios de un artículo en una sucursal determinada y los relacionan con una cotización o promoción de esos artículos, de manera tal que facilite la consulta. Por último en el paquete de los entities objects, se creó para el manejo especial de los artículos regulados, el objeto PreciosArticulosRegulados que representa la información actual de esos artículos. Figura 5.5: Entity Objects del módulo de precios El módulo de promociones también está estructurado por paquetes, de la misma manera que los módulos anteriores, tal y como se muestra en la figura 5.6. El manejo de promociones internas esta fuertemente ligado al de los precios. La principal funcionalidad de este módulo es la de crear precios promocionales -crear promociones internas-, es por esto que se decidió crear una clase Java que se encargue de manejar las operaciones y lógica de los componentes de negocio que correspondan para creación de una promoción. 24

Figura 5.6: Estructura del paquete correspondiente al módulo de promociones Los objetos entidad, en el módulo de promociones, son los que se muestran en la figura 5.7. Los datos generales que identifican la promoción estan representados en el objeto Promoción. Dado que esta promoción define una lista de precios, se utilizan objetos con la misma estructura que se diseñó en el módulo anterior para almacenar la información pertinente a los artículos; esto es en los objetos PromocionPreciosCabecera y PromocionPreciosLineas. Del mismo modo que se hace en el módulo de cotizaciones, tiene un paquete con los view objects y con los view Links que relacionan estos objetos vista. 25

Figura 5.7: Entity Objects del módulo de promociones Para finalizar el diseño de la capa de servicios de negocio, se crearon tres application modules, uno para cada módulo del sistema. Cada application module tiene instancias de los view objects que le corresponden, dependiendo del módulo, tal y como se muestra en la figuras 5.8, 5.9 y 5.10. Estos objetos son utilizados para manipular datos desde las demás capas de la arquitectura del sistema, a través de una clase Java, que define la lógica de las operaciones -mediante métodos propios y de las clases creadas en cada paquete-. Estas operaciones pueden ser para crear, copiar o eliminar cotizaciones, en el caso del application module ModuloCotizacion, o para aprobar o modificar un precio, en el caso del application module ModuloPrecios. 26

Figura 5.8: Application Module del módulo de cotización 27

Figura 5.9: Application Module del módulo de precios Figura 5.10: Application Module del módulo de promociones 28

2. Capa del modelo La capa del modelo -que sirve de intermediaria entre los servicios de negocio y la vista y el controlador- en el caso de SIAP, consta en principio de tres data controls, correspondientes a cada uno de los application module que se incluyeron en la capa de servicios de negocio para los módulos de cotizaciones, precios y promociones. Como se explicó en el capítulo IV, estos data control permitirán que los Oracle ADF business components sean accesibles desde el cliente. Por otra parte se tiene un archivo llamado DataBinding.cpx que representa el componente data binding de la capa del modelo en este sistema. Este archivo se encarga relacionar cada una de las páginas que tiene la aplicación con los tres data controls que forman parte de la capa del modelo. 3. Capa de la vista La capa de la vista está conformada por las diferentes páginas JSP, con las que el usuario interactúa directamente. Su construcción se basó en el diseño de los componentes y gráfico de las mismas. Para el usuario, las funcionalidades del sistema también están separadas en páginas web divididas en tres secciones, una para cada módulo. La interfaz tiene un diseño consistente en todas las páginas de forma tal que el manejo de todas las operaciones sea lo más claro posible para el usuario. 4. Capa del controlador Esta capa del sistema la maneja JSF. La construcción de esta capa consistió en idear un flujo de páginas adecuado, tanto para garantizar la usabilidad del sistema, como para facilitar el manejo de lógica de negocio en cada una de ellas. A continuación, en las figura 5.11, y 5.12 se muestra como es el flujo de navegación que controla JSF de las páginas del sistema, para el módulo de cotizaciones. En la figura 5.11 se ilustra el mapa de navegación para crear una cotización nueva. El flujo inicia con una página para seleccionar el proveedor y los datos generales de la cotizaición, continúa con otra página para seleccionar las sucursales, sigue otra para seleccionar los articulos de ese proveedor que se van a cotizar, y luego se muestra la 29

página central de crear cotizaciones que es CotizacionCostos donde se ingresan los costos de cada articulo seleccionado, los decuentos, bonificaciones, o cargos. Existe un ciclo que devuelve a la página de selección de sucursales para hacer grupos para aquellos artículos que, en la misma cotización, tienen costos distintos algunas sucursales. Por último se muestra una página confirmación de la creación de la cotización. Figura 5.11: Mapa de navegación para crear una cotización 30

El caso de uso de crear cotización involucra varias páginas de interacción con el usuario ya que el contenido de cada una se ve condicionado por lo que escoja éste en la página anterior. En la figura 5.12 se muestra el flujo de páginas para consultar y editar cotizaciones. Existe una página inicial del módulo de cotizaciones, CotizacionList que muestra una lista de todas las cotizaciones para su consulta -con varios criterios para filtros de búsqueda- o para su edición, y además tiene un enlace la página de crear una cotización nueva. Figura 5.12: Mapa de navegación para consultar y editar cotizaciones 31

La edición de la cotización involucra una página principal, CotizacionEditarPrincipal donde se muestran los datos de la cotización en forma editables y tiene páginas enlazadaspara agregar artículos nuevos, consultar información sobre artículos genéricos, y editar los descuentos y cargos de los artículos. La página de consulta de una cotización, CotizacionDetalles, tiene un enlace para aprobar cotizaciones, CotizacionApobar que a su vez tiene un enlace para navegar al módulo de precios. A continuación, en la figura 5.13, se muestra el mismo flujo para los módulos de precios y promociones. La página principal del módulo de precios, PreciosLineas, muestra una lista de todos los articulos y sus precios en cada sucursal, y tiene un enlace para editar estos precios por sucursales o por artículos. Figura 5.13: Mapa de navegación de los módulos de precios y promociones 32

Para crear una promoción interna, se comienza el flujo desde la selección de los proveedores de los artículos en promoción, continuando con la selección de los artículos, luego con la selección de las sucursales a las que aplica la promoción, para así llegar a la página principal de promociones internas donde ingresan los precios promocionales a cada artículo que se escogió previamente. JSF actúa en la capa del controlador no sólo para controlar el flujo de las páginas, si no también para proveer de lógica a las propiedades de los componentes con los cuales interactúa el usuario direcatmente a nivel del cliente. Para esto, se decidió crear un paquete llamado siap.view.backing que contiene pequeñas clases Java, tal y como se muestra en el diagrama de clases de la figura 5.14. De esta manera se puede controlar modularmente el comportamiento de los componentes y de las páginas en general, por ejemplo, para hacer validaciones de campos en las páginas, para mostrar los valores correspondientes en componentes que dependen de otros, para mostrar mensajes dinámicos al usuario de información del sistema, entre otras cosas. Figura 5.14: Paquete de clases que rigen el comportamiento de las páginas web 33

5. Proceso de implementación El diseño específico y la implementación de SIAP se realizó por módulos. Se comenzó con los casos de uso del módulo de cotizaciones, siendo éstos los de mayor complejidad entre todos los casos de uso y trayendo como consecuencia que requerimientos nuevos fluyeran. La decisión de comenzar por los casos de uso más complejos hizo que el surgimiento de nuevos requerimientos disminuyera gradualmente a medida que se avanzaba con el desarrollo. A medida que se terminaba cada caso de uso, se sometía el sistema a pruebas funcionales unitarias en presencia de los usuarios finales, utilizando información detallada proporcionada por ellos mismos. Esto sirvió para evaluar todos los casos posibles y para obtener su opinión en cuanto al contenido y distribución de la información mostrada en las páginas Web. Se corrigieron los errores encontrados y se cumplieron los requerimientos nuevos antes de continuar con la construcción del siguiente módulo, el de precios. La transición del módulo de cotizaciones al de precios se hizo a través del caso de uso aprobar cotización, el cual involucra componentes y clases de los dos módulos mencionados. La metodología para la construcción de los siguientes módulos fue similar a la que se siguió para el primero: implementación por casos de uso, paralelo a la ejecución de pruebas unitarias. Gracias a las ventajas de Oracle ADF, un porcentaje alto de lo que fue implementado para cotizaciones pudo ser reutilizado para precios y promociones, así como también el conocimiento y experiencias adquiridas, lo que agilizó progresivamente la construcción en general del proyecto. El proceso de desarrollo concluyó con pruebas integradas, tanto entre los módulos internos, como con los sistemas externos, Oracle Financials y POS. En el apéndice C se presenta el formato que se utilizó para elaborar la documentación de las pruebas unitarias realizadas a lo largo del desarrollo del sistema, para los tres módulos del mismo. 34

6. Resultado Actualmente SIAP consta de tres secciones disponibles para un tipo de usuario, el comprador. En la figura 5.15 se muestra, a modo de ejemplo, la página Web principal del módulo de cotizaciones. Así como en esta página, en la parte superior derecha de todas y cada una de las páginas, se tiene disponible un menú general de la aplicación que permite al usuario navegar entre los tres módulos del sistema. Figura 5.15: Página principal del módulo de cotizaciones La sección de cotizaciones permite consultar, crear, modificar, eliminar, copiar y aprobar cotizaciones. La sección de precios ofrece la posibilidad de consultar precios de los artículos por códigos, marca, proveedor o número de cotización, así como también de modificarlos y aprobarlos. La sección de promociones permite crear y consultar una promoción interna. SIAP todavía no se encuentra en ambiente de producción de la empresa, mas cuenta con los tres módulos básicos que se necesita para estarlo. 35

CAPÍTULO VI CONCLUSIONES Y RECOMENDACIONES Se logró el desarrollo del sistema Web que permite la administración de precios, costos y promociones de artículos. SIAP, es una respuesta a la necesidad de Central Madeirense de lograr de forma automatizada la integración de los procesos que involucran dicha administración; con esto se considera cumplido el objetivo general del presente proyecto de pasantía. Se implementó una modularización del sistema que permite independencia y simplificación de los procesos, y unos casos de uso que permiten, a la vez, la integración de estos procesos. El enfoque de un desarrollo iterativo e incremental permitió la flexibilidad en el diseño e implementación del sistema, adaptándolos a los requerimientos funcionales que fueron surgiendo. Esta aplicación implementada a través de la tecnología Web aprovecha los recursos que ofrece Java y los componentes de negocio y arquitectura de Oracle ADF para lograr la portabilidad, accesibilidad, mantenibilidad que se requería. Además, le da un cambio a la empresa permitiéndole adapatarse a diferentes sistemas externos que pueden tener tecnologías variadas. Otra de las vetajas que le da esta aplicación Web a la empresa Central Madeirense es la posibilidad de una visión de futuro en la cual se pueda hacer la administración de costos y precios no sólo de manera centralizada, como es actualmente, si no también desde centrales regionales o incluso desde cada sucursal, todo desde SIAP. Se recomienda que antes que el sistema entre en producción se incluya un módulo de autenticación de usuarios, ya que se necesita restringir el acceso a funcionalidades tan importante spara el negocio como son las que se pueden hacer a través de SIAP. Además 36

se recomienda completar el módulo de promociones con el manejo de las promociones de tipo externas. Esto le dará un valor de negocio más completo al sistema dentro de la empresa. Para próximas versiones en el futuro se recomienda crear una sección de administración que permita hacer configuraciones generales para la aplicación; por ejemplo, de tipos de usuarios, de tipos de descuentos y cargos, de reportes, entre otros. Esto evitará a los usuarios depender de personal y entrenamiento para hacer las configuraciones básicas que influyen en los procesos de negocio y hará mas completa la aplicación. 37

REFERENCIAS BIBLIOGRÁFICAS [1] Sitio oficial de Oratech Latinoamérica. Disponible en: http://www.oratechla.com/web/index.php el 09/08/2007 [2] MUSINGER, Lynn. Oracle Application Development Famework Overview. Febrero 2006. Disponible en: www.oracle.com/technology/products/jdev/collateral/papers/1013/adf_10.1.3_overview. pdf el 02/09/2007 [3] Framework En Wikipedia, the free encyclopedia. Disponible en: http://en.wikipedia.org/wiki/framework el 11/09/2007 [4] Architectural pattern (computer science). En Wikipedia, the free encyclopedia. Disponible en: http://en.wikipedia.org/wiki/architectural_pattern_%28computer_science%29 el 09/09/2007 [5] Model-view-controller. En Wikipedia, the free encyclopedia. Disponible en: http://en.wikipedia.org/wiki/model-view-controller el 11/09/2007 [6] Client-server. En Wikipedia, the free encyclopedia. Disponible en: http://en.wikipedia.org/wiki/client-server el 11/09/2007 [7] Oracle Application Development Framework. Developer's Guide For Forms/4GL Developers. Capítulos 1,5. Junio 2006. Disponible en http://download-east.oracle.com/docs/cd/b32110_01/web.1013/b259 47/toc.htm el 08/09/2007 38