Todas las entradas de Yanisleidis Jorge Oduardo

12Oct/15

Sistema integral de gestión comercial para el Fondo Cubano de Bienes Culturales

Sistema integral de gestión comercial para el Fondo Cubano de Bienes Culturales

Primer Autor (Cecilia Valdespino Tamayo)1, Segundo Autor (Yanisleidis Jorge Oduardo)2

 

1Universidad de Granma, Facultad de Ciencias Informáticas, 2Universidad de Granma,  Facultad de Ciencias Informáticas

1[email protected]:

2[email protected]:

 

RESUMEN
En el departamento de Comercio del Fondo Cubano de Bienes Culturales (FCBC) de la provincia  Granma, se hace muy difícil la gestión de la información que allí se genera, pues toda esta es gestionada  de forma manual, provocando retrasos en la entrega de información, la toma de decisiones  y la contratación a los clientes. Es por ello que el presente trabajo tiene como objetivo desarrollar  un Sistema Integral de Gestión comercial para el FCBC que agilice los procesos de compra-venta  de materiales, obras y accesorios que se llevan a cabo en el departamento. Con vista de lograr dicho objetivo se desarrolló un sistema informático utilizando como metodología de desarrollo de software SXP, como lenguaje de programación se  utilizó Python, el framework o marco de trabajo Django y el sistema gestor de bases de datos PostgreSQL. Además, se utilizaron las técnicas de interacción con el usuario para el correcto  levantamiento de requisitos. Para corregir errores que fuera presentando la aplicación se realizaron un conjunto de pruebas funcionales al software. De manera general, se obtuvo un sistema integral de gestión reusable  que cumple con los requerimientos establecidos y satisface las necesidades de los usuarios.

 

 

PALABRAS CLAVES: bienes culturales, sistema de gestión, comercio.

 

 

ABSTRACT

 

In the Department of Commerce of the Cuban Cultural Fund (FCBC) Granma province, it becomes very difficult to manage the information that there is generated, because all this is handled manually, causing delays in the delivery of information, decision making and contracting customers. That is why this paper aims to develop Comprehensive Business Management System for FCBC expedite the process of sale of materials, construction and accessories that are performed in the department. In view of achieving this objective using a computer system as software development methodology SXP, Python programming language was used, the Django framework or context of work and system manager PostgreSQL databases developed. Furthermore, interaction techniques were used with the user to the correct lifting requirements. To correct errors that were submitting the application a set of functional tests were performed. In general, reusable comprehensive management system complies with the requirements and meets the needs of users was obtained.

 

KEY WORDS: cultural property, management system, commerce.

 

 

1- INTRODUCCIÓN

 

Con la aparición de las Tecnologías de la Información y las Comunicaciones (TIC), en el mundo se  manifiesta un creciente auge de las soluciones informáticas en el área del comercio, para alcanzar  mayor eficiencia y simplicidad en los procesos que realizan en las empresas. Entre sus objetivos  fundamentales se encuentra fortalecer el desarrollo de sistemas dirigidos a la automatización de  procesos y la organización de grandes cantidades de información.

Cuba, a pesar de ser un país subdesarrollado y bloqueado económicamente, fomenta cada día el  desarrollo tecnológico. Un ejemplo de ello es la Universidad de Ciencias Informáticas (UCI), nacida  como un proyecto de la revolución cubana, al calor de la batalla de ideas. Encaminada principalmente a fortalecer y desarrollar la producción de software, además de contribuir a la informatización del país. En la Facultad de Ciencias Informáticas de la Universidad de Granma existe un grupo de desarrollo especializado en la creación de sistemas integrales  de gestión para las distintas empresas y entidades que soliciten su colaboración.

Una de las entidades interesadas en esta colaboración es el Fondo Cubano de Bienes Culturales  de la provincia Granma. Esta es una entidad fundada en 1991, que tiene entre sus funciones principales promover la producción y comercialización de las artes plásticas y aplicadas en Granma. La entidad cuenta con varios departamentos que gestionan los procesos que se llevan a cabo en la empresa. El departamento de Comercio, es el encargado de comercializar materiales, obras y accesorios, además de dirigir el proceso de contratación de artistas y artesanos que desean comercializar sus obras mediante la institución.

En este departamento se realizan un conjunto de informes, entre los más importantes se encuentran: el contrato al creador, el contrato a empresa, el contrato de consignación y la ficha de costo. En la gestión de estos procesos se trabaja con grandes volúmenes de datos como: los plazos de los contratos, las materias primas utilizadas en cada obra y el precio de las mismas, los artículos que serán producidos, los compradores (clientes interesados en adquirir algún artículo) que pueden ser empresas o particulares, los creadores o artistas (clientes de la empresa) entre otros. Por lo que llevar el control resulta muy engorroso pues estas se realizan manualmente, provocando retrasos en la entrega de información, en la toma de decisiones y en la contratación de los creadores.

Considerando lo anteriormente expuesto se propone como problema a resolver ¿cómo agilizar el  proceso de comercialización en el departamento de Comercio del FCBC de la provincia Granma?

Se plantea como objetivo general desarrollar un sistema integral de gestión que permita agilizar  los procesos de compra-venta de materiales, obras y accesorios en el departamento de Comercio del FCBC de la provincia Granma. Y se define como idea a defender que el desarrollo de un sistema integral de gestión contribuirá a agilizar el proceso de comercialización que se lleva a cabo en el departamento de Comercio del FCBC de  la provincia Granma.

Luego de realizar una revisión a diversas fuentes referentes a los sistemas de gestión comercial de  bienes culturales o de artes plásticas y su control por parte de organizaciones, se determina, que  existe poca información sobre el tema, debido a que la comercialización de las artes plásticas, a  nivel mundial, se encuentra influenciada por las tendencias actuales de las ventas electrónicas por  medio de los mercados en línea. En este escenario se manifiestan muchas organizaciones que promueven y comercializan las artes plásticas a través de Internet, tal es el caso de:

arteenventa.com: dirigida a coleccionistas, marchantes, críticos de arte, galerías y al público en general.

artya.net: galería online que brinda y promueve una amplia selección de artistas y obras del ámbito latinoamericano.

módulo Encyclia-G: producto informático ha sido concebido para usuarios que, siendo expertos en el manejo de galería de arte o almacén de antigüedades, no sean especialistas en informática.

El movimiento creciente sobre los organismos encargados de la comercialización de bienes culturales, artes plásticas y el arte en general en Cuba, se encuentra en pleno desarrollo, influenciados  por las tendencias de organizaciones homólogas a nivel internacional, ejemplo de ello es la empresa cubana Artex S.A, pioneros en el comercio electrónico en Cuba, empresa que cuenta con Soy cubano, como agencia que promociona y comercializa productos y servicios de la cultura a través de Internet por medio de su centro comercial online Mallcubano.com. Este sitio se ha destinado a la comercialización de todas las líneas de productos y servicios culturales auténticamente cubanos y compuesto por varios departamentos que refuerzan la aplicación de las nuevas tendencias del mercado por Internet.[4]

Entre los servicios que ofrece este sitio se encuentran:

  • Promoción de artistas, creadores, agrupaciones y proyectos culturales por Internet.
  • Negociaciones y ventas mayoristas de productos cubanos.
  • Distribución internacional puerta a puerta que incluye embalaje y trámites correspondientes.
  • Distribución en Cuba, entrega en 48 horas para Ciudad Habana.
  • Descarga digital de música cubana.

Luego de un análisis a los sitios y sistemas anteriormente mencionados y atendiendo a la función que estos realizan, se determina que no son las soluciones indicadas para aplicarlas en el proceso de gestión de información en el departamento de Comercio del FCBC.  La entidad requiere  de una aplicación realizada sobre herramientas libres y que sea capaz de controlar información  referente a los creadores y compradores, productos, materias primas, contratos, fichas de costo de  producción de artículos y de la entidad misma.

Para el desarrollo de la investigación se utilizan los siguientes métodos científicos de investigación: análisis histórico-lógico, analítico-sintético y modelación.

 

2- MATERIALES Y MÉTODOS

 

En este apartado se brindan detalles de la selección de la metodología de desarrollo de software, herramientas, lenguajes y tecnologías que se utilizaron para el desarrollo del sistema de gestión comercial para el FCBC.

 

Metodología de desarrollo de software

 

Las metodologías de desarrollo de software son aquellas que se encargan del control de los detalles organizativos, ya sea, el cuándo se realizará una tarea, quién realizará esta tarea y qué documentación se utilizará. Estas permiten que el grupo de desarrolladores realice un proyecto en el tiempo requerido y con la calidad necesaria. Las metodologías se clasifican en dos grupos, las metodologías tradicionales, que se caracterizan por ser resistente a los cambios, los proyectos se desarrollan en grandes grupos y generalmente distribuidos, la corrección de cualquier error ocurrido pueden ser muy costoso para el equipo de desarrollo y emplean muchos artefactos y roles. Por otra parte, se encuentran las metodologías ágiles las cuales son especialmente preparadas para cambios en el proyecto, se encargan de fortalecer  la comunicación y la colaboración, ya que el cliente es parte del equipo de desarrollo y permiten la  utilización de pocos artefactos y roles; adaptándose más al equipo de desarrollo.

Dentro de las metodologías ágiles se destacan SXP, Crystal, Feature Driven Development (FDD), Adaptive software Developmet, Lean Development. El equipo decide utilizar SXP como metodología de desarrollo del software la misma es un híbrido cubano de metodologías ágiles que tiene como base las metodologías SCRUM y XP(del inglés Extreme Programming), permite actualizar los procesos de desarrollo de software para el mejoramiento de su producción.[5]

Está enfocada en una sola dirección, de manera tal, que fortalece el desarrollo en equipo. Está orientada a una entrega rápida de resultados y una alta flexibilidad, lo cual favorece a los desarrolladores del software, pues ante cualquier cambio durante el ciclo de vida del software no afectaría su correcta evolución. SXP consta de cuatro fases: Planificación-Definición, se establece la visión, se fijan las expectativas y se realiza el  aseguramiento del financiamiento del proyecto; Desarrollo, es donde se realiza la implementación  del sistema hasta que esté listo para ser entregado; Entrega, puesta en marcha; y por último Mantenimiento, donde se realiza el soporte para el cliente. Cada una de estas fases desglosa flujos de trabajo y actividades que generan un grupo de artefactos que luego formarán parte del expediente del proyecto.

 

Lenguajes y tecnologías

 

En el análisis referente a la selección de los lenguajes y tecnologías para la implementación del  sistema, el equipo de desarrollo se centra en las políticas concebidas en el departamento de Desarrollo de la Facultad de Ciencias Informáticas, el cual se rige por el empleo de software libre. Atendiendo a esta premisa se analizan solo los  lenguajes y tecnologías distribuidas bajo licencias de software libre o código abierto. Para el desarrollo de la aplicación se debe tener en cuenta el marco de trabajo (en inglés framework ). Este es “una estructura de software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación.” [6]

En la actualidad, existe un gran número de framework entre ellos se encuentra Symfony, Mojavi, CakePHP, Web2py, Django, etc. Se selecciona Django para el desarrollo del  software, pues se adapta a las necesidades del equipo y pertenece a la línea base de desarrollo del departamento de Sistemas Integrales de Gestión de la Facultad Regional Granma. Es más  ligero en tiempo de ejecución que los framework basados en Java, y la escritura del código es más  limpia que los basados en PHP. Además, permite convertir los datos enviados por los usuarios en estructuras de datos, las cuales son fácilmente manejadas en la implementación. Django es un framework de desarrollo web escrito en Python. Entre sus principales funcioneEn el análisis referente a la selección de los lenguajes y tecnologías para la implementación del  sistema, el equipo de desarrollo se centra en las políticas concebidas en el departamento de Desarrollo de la Facultad de Ciencias Informáticas, el cual se rige por el empleo de software libre. Atendiendo a esta premisa se analizan solo los  lenguajes y tecnologías distribuidas bajo licencias de software libre o código abierto. Para el desarrollo de la aplicación se debe tener en cuenta el marco de trabajo (en inglés framework). Este es “una estructura de software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación.” [6]

En la actualidad, existe un gran número de framework entre ellos se encuentra Symfony, Mojavi, CakePHP, Web2py, Django, etc. Se selecciona Django para el desarrollo del  software, pues se adapta a las necesidades del equipo y pertenece a la línea base de desarrollo del departamento de Sistemas Integrales de Gestión de la Facultad Regional Granma. Es más  ligero en tiempo de ejecución que los framework basados en Java, y la escritura del código es más  limpia que los basados en PHP. Además, permite convertir los datos enviados por los usuarios en estructuras de datos, las cuales son fácilmente manejadas en la implementación. Django es un framework de desarrollo web escrito en Python. Entre sus principales funciones se encuentran, facilitar la creación de sitios web complejos, gran énfasis en la reutilización, la conectividad y extensibilidad de componentes, por lo que ahorra tiempo al equipo de desarrollo. Permite la creación automática de formularios a partir de tablas existentes en la base de datos y la internacionalización de idiomas para el desarrollo de la aplicación. Para agregar efectos y funcionalidades complejas en las plantillas HTML Lenguaje de Marcas de Hipertexto (sus siglas del inglés HyperText Markup Language) utilizadas en la aplicación se hace uso de Jquery, esta biblioteca ofrece una serie de funciones que permiten lograr grandes resultados en menos tiempo y espacio, facilita la creación de aplicaciones complejas del lado del cliente, incluye soporte y manipulación CCS en cascada (del inglés Cascadign Style Sheets), efectos y animaciones personalizadas. Es ligero en comparación con otros marcos de JavaScript, y compatible con varios navegadores. Su uso permite agregar formularios dinámicos en el sistema de forma tal que el usuario pueda realizar las diferentes operaciones como: agregar creador, producto y materias primas dentro de una misma interfaz.

 

Sistema Gestor de Base de Datos

 

Generalmente los usuarios definen de qué forma desean guardar la  información y para ello crean una o más tablas, que responden a sus intereses, las cuales forman  una base de datos. Para la consulta y uso de estos datos almacenados es necesario la utilización de un Sistema Gestor de Bases de Datos. Estos permiten crear y manipular una base de datos, mantener la integridad de los datos, así como el control de la seguridad y confidencialidad de los mismos. Entre las características que estos presentan se encuentran: el control de la redundancia de los datos y restricciones de los accesos no autorizados. Se analizaron dos gestores de bases de datos:

SQLite que es considerado un ligero motor de base de datos, que se ejecuta en diferentes sistemas operativos, característica que lo convierte en un sistema multiplataforma.

PostgreSQL que es un “potente motor de bases de datos, que tiene prestaciones y funcionalidades  equivalentes a muchos gestores de bases de datos comerciales”. [7]

Se escoge PostgreSQL  por su capacidad de almacenamiento, que solo es limitada por el espacio físico disponible dentro del disco duro de la computadora donde esté instalado, primordial para el sistema que se desea desarrollar, facilita la administración de un gran número de datos. Presenta una documentación bien organizada, pública y resuelve los inconvenientes de SQLite que arriesgan la integridad y seguridad de los datos almacenados en el sistema.

 

Lenguajes de programación

 

Los lenguajes de programación son “utilizados para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de símbolos y reglas sintácticas y  semánticas que definen su estructura y el significado de sus elementos y expresiones”. [8]

Muchos son los lenguajes orientados a objetos, entre ellos, Java, C#, C++ y Python. Este último seleccionado para el desarrollo del sistema base de Django y multiplataforma. Este permite la reutilización de código, ejemplo de ello es  la utilización de la librería para el trabajo con archivos de texto en formato PDF, reportlab, para la creación de los contratos y del módulo re para las validaciones de los datos. El lenguaje permite agrupar código relacionados, en el sistema se evidencia mediante la creación de módulos que agrupen parte del código donde se implementa la funcionalidad de generar los archivos PDF. Estas propiedades favorecen el rápido desarrollo del sistema, facilitando un ahorro considerable de tiempo. Se utiliza HTML en el desarrollo del sistema por la comodidad que brinda a la hora de usar las  plantillas en HTML que emplea Django. Su uso permite describir la estructura de los formularios  que se utilizan para la recopilación de información de las actividades que se llevan a cabo en el departamento de Comercio del FCBC de la provincia Granma. Además es fácil de aprender y de usar.

Las hojas de estilo en cascada o CSS, (del inglés Cascading Style Sheets)  son usadas para dar estilo a documentos HTML o XML separando el contenido de la presentación. Estas ofrecen a los desarrolladores el control total sobre el estilo y formato de sus documentos, con el objetivo de obtener una mejor representación de la información en HTML, en los navegadores. Su uso, permite mejorar la accesibilidad, ejemplo de esto, es el caso de un usuario con deficiencia visual, ya que se puede aplicar una hoja de estilo para aumentar el tamaño de las letras o remarcar los enlaces.

 

Herramientas

 

Los programadores del sistema en cuestión se apoyan en el uso de herramientas para lograr un mejor desempeño en su labor dentro del equipo de desarrollo. Una de estas herramientas son los Entornos de Desarrollo Integrado IDE (del inglés Integrated Development Environment), compuestas principalmente por un editor de código, un compilador y un depurador. Geany es un editor de texto ligero, basado en Scintilla (componente libre de edición de código fuente), con características básicas de IDE. Está disponible para distintos sistemas operativos, como GNU/Linux, Microsoft Windows, etc. Es distribuido como software libre bajo Licencia Pública General (General Public Licence GPL) de GNU. Tiene soporte para varios lenguajes de programación, como: C, C++, Java, JavaScript, HTML, CSS, Perl, Ruby y Python. NetBeans es una plataforma para el desarrollo de aplicaciones de escritorio, usando principalmente el lenguaje Java. Permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Facilita la codificación de programas en C, C++, PHP, Pyhton, JavaScript, Groovy y otros. [9]

Para el desarrollo de la aplicación se escoge como IDE el Geany. Este es mucho más rápido que el Netbeans en cuanto a su ejecución, pues este último tiene dependencia con otros paquetes. El Geany, soporta varios lenguajes, lo que permite el trabajo con Django en la implementación del código del sistema y el trabajo con las plantillas. Este IDE permite compilar y ejecutar directamente el código, por lo que es más rápido en cuanto a la compilación, además representa las clases y estructuras del código favoreciendo la navegación dentro de la propia herramienta. Para el equipo de desarrollo es necesaria la utilización de herramientas que permitan modelar una propuesta inicial de cómo debe ser el diseño de la interfaz que mostrará la aplicación. En tal sentido se encontraron un conjunto de herramientas o aplicaciones como: Balsamiq Mockups, RapidRabb, Axure, Pencil, entre otras. Este último, es una herramienta gratuita y de código abierto para la construcción de prototipos o diagramas ya sea de web, software de escritorio o cualquier otra interfaz que necesite ser diseñada. Entre las características fundamentales de esta herramienta se destacan la exportación de los archivos a PNG, HTML, PDF, etc. Es una herramienta multiplataforma por lo que puede ser instalada tanto en Windows, como Linux, y permite ser agregada como complemento para el Firefox. Su uso permite la construcción de los prototipos de interfaz de usuario correspondientes a cada requerimiento funcional, lo que facilita el trabajo del equipo de desarrolladores mostrando una guía para el diseño de la aplicación.

“Las herramientas CASE (del inglés Computer Aided Software Engineering) Ingeniería de Software Asistida por Computadoras son un conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del ciclo de vida de desarrollo de un software.” [10]

Se decide utilizar Visual Paradigm como herramienta CASE, para el modelado de la aplicación, pues se aumenta el entendimiento del negocio facilitando un mejor desarrollo del sistema que requiere el departamento de Comercio del FCBC de la provincia Granma. Esta herramienta se emplea en la creación de los diagramas de clase, componentes y despliegue, entre otros. Con el objetivo de lograr un mejor entendimiento de los procesos que se llevan a cabo en la entidad, para la implementación del sistema por parte del equipo de desarrollo.

 

3- Resultados

 

En este apartado se reflejan las características del sistema concebido basado en los requerimientos funcionales y no funcionales del mismo.

 

Requerimientos funcionales

 

Los requerimientos funcionales  son los que definen las funciones que el sistema será capaz de realizar, es decir las capacidades o condiciones que debe cumplir. El sistema cuenta con los siguientes requisitos funcionales: Gestionar creador: Esta funcionalidad permite eliminar, ver detalles, editar y agregar uno nuevo creador en caso de que no se encuentre en la base de datos. En este caso el especialista en ventas y el de producción son las personas encargadas de gestionar los datos de los creadores. Al agregar un nuevo creador se deben registrar datos como: nombre, apellidos, número del carné de identidad, dirección actual, teléfono y otros. Gestionar contrato al creador: Esta funcionalidad permite acceder a la información de los contratos realizados a los creadores, además permite ver detalles, editar y eliminar contratos. En este caso el especialista en ventas es la persona responsable de gestionar los datos de los creadores. Al adicionar un nuevo contrato se inserten datos como: término, fecha, creador, %artista, plazos de entrega, entre otros. Gestionar producto: Esta funcionalidad es la que permite al especialista de producción (persona encargada de gestionar los datos de los productos) adicionar, eliminar, editar y ver los detalles de os productos que se comercializan mediante la entidad. En este caso se insertan datos como: nombre del producto, creador, código de la manifestación, código del producto, descripción del producto, U/M (Unidad de Medida), entre otros.

 

Requerimientos no funcionales

 

Con el objetivo de lograr un producto atractivo y de alta calidad es necesario establecer un conjunto de Requerimientos no funcionales (RNF) que permitan obtener un sistema óptimo y gestionable. Estos son los encargados de establecer las propiedades y cualidades que el producto final debe poseer en vista de satisfacer las necesidades crecientes de los usuarios. A continuación se muestran algunos RNF con los que cumple el Sistema integral de gestión comercial para el FCBC:

Apariencia o interfaz externa: El sistema debe tener un diseño de la interfaz simple y ligero en los accesos a las diferentes funcionalidades, de forma tal que pueda ser usado por los trabajadores del departamento de Comercio. Debe mantenerse la compatibilidad con diferentes navegadores y las resoluciones de pantalla. La interfaz debe tener un esquema de colores sencillos y el color predominante debe ser el marrón conjugando equilibrio y contraste.

Rendimiento: El sistema debe contar con un rápido procesamiento de los datos y el tiempo de respuesta debe ser no más de 10 segundos. Además es necesario que sea lo más estable y confiable posible.

Usabilidad: El sistema debe mostrar una organización de información que permita navegar por el software de manera intuitiva, por lo que se debe tener en cuenta el orden visual y reflejarse la jerarquía de la información. Los elementos de navegación deben permitir ir a la página de inicio desde cualquier vista. El número máximo de clic que debe dar el usuario para acceder a cualquier funcionalidad debe ser tres.

Seguridad: El sistema solo podrá mostrar a cada usuario las funcionalidades sobre las cuales tiene permiso. Se deben realizar copias de seguridad de todo el sistema en caso de pérdida o daño de la información, en un período establecido en el plan de seguridad por el que se rige el informático de la entidad. El servidor donde se encuentre instalado debe estar ubicado en un local protegido contra el hurto y los desastres naturales.

 

 

 

 

Arquitectura de Software

 

La arquitectura está relacionada con el diseño e implementación de estructuras de software que permiten realizar un producto que responda a los requisitos deseados de funcionamiento, usabilidad y rentabilidad, cualidades que se deben tener en cuenta en el desarrollo de productos informáticos. Su concepción permite establecer una línea común de trabajo entre desarrolladores, cubriendo todas las necesidades del mismo a través de la definición de un conjunto de patrones.

Django sigue el patrón Modelo Vista Controlador (MVC) pero con algunas modificaciones, ya que al controlador se le llama vista y a la vista se le denomina plantilla, por lo que es conocido como un framework MTV. “M” significa Model (Modelo) y es la capa de acceso a la base de datos. Esta capa contiene toda la información sobre los datos: cómo acceder a estos, cómo validarlos, cuál es el comportamiento que tiene, y las relaciones que existen entre ellos. “T” significa Template (Plantilla), y es la capa de presentación. Esta capa contiene las decisiones relacionadas a la presentación. “V” significa View (Vista), y es la capa de la lógica de negocios. Esta capa contiene la lógica que accede al modelo y la delega a la plantilla apropiada. La implementación del patrón arquitectónico MTV Django ofrece gran ventaja a diseñadores y programadores, ya que separa la programación del diseño, facilita y garantiza el mínimo de complejidad en el diseño, brinda simplicidad en el desarrollo y mantenimiento de los sistemas.

 

Modelo de Datos

 

En el momento de construir una aplicación es necesario analizar el diseño de la base de datos. Este se representa mediante un conjunto de tablas que contienen los datos y sus relaciones. En el modelo de datos correspondiente a la aplicación se definen varias tablas, entre ellas la tabla Entidad, encargada de recopilar el nombre de la entidad, dirección (domicilio), el código de la empresa (cod_emp_fbc_g) y el nombre de su director (representante). La tabla Creador almacena el nombre y los apellidos del creador, el número de identidad (ncarnet), la dirección particular, provincia y municipio al cual pertenece, entre otros datos relevantes de un creador o artista. En la tabla Cliente (empresas), similar a la tabla Creador, se almacenan el nombre de la empresa, los números de las cuentas bancarias, sus títulos o nombres bancarios, el nombre del representante, datos de contacto telefónico y correo electrónico. A continuación se muestra el modelo de datos correspondiente a la aplicación.

 

Modelo de diseño

 

Los patrones de diseño proveen un esquema para refinar los subsistemas o componentes de un sistema de software, o las relaciones entre ellos. Facilitan el aprendizaje a nuevos diseñadores a través de conocimientos ya existentes y evitan la reiteración de la búsqueda de soluciones a problemas anteriormente identificados y solucionados.[11]

En el diseño de la aplicación que se propone en este trabajo se utilizan algunos de los patrones GRASP como:

El Experto es el patrón que se usa para asignar responsabilidades, es un principio básico que suele utilizarse en el diseño orientado a objetos. En este caso la clase Ficha_Costo_Producción es la clase que contiene toda la información necesaria para calcular el precio total de un producto. Bajo acoplamiento es un patrón que proporciona el bajo acoplamiento entre clases. En la aplicación las clases solo acceden a las clases necesarias para obtener la información que requieren de tal forma que en caso de producirse una modificación en alguna de ellas, se tenga la mínima repercusión posible en el resto de clases, potenciando la reutilización, y disminuyendo la dependencia entre las clases.

Alta cohesión es el patrón que indica una medida de cuán relacionadas y enfocadas están las responsabilidades de una clase. El Sistema integral de gestión comercial para el FCBC de Granma se implementará bajo las características de este patrón, garantizando la disponibilidad de la información.

 

4- DISCUSIÓN

 

En este apartado se explica la estrategia de prueba de software seleccionada para validar el sistema, así como los resultados y el aporte práctico del mismo.

 

Estrategia de prueba

 

Una estrategia de prueba es aquella que proporciona una guía, que describe cuales son los pasos  que se darán en el desarrollo de la misma, indica cuándo se planean y cuándo se dan estos pasos,  además de cuánto esfuerzo, tiempo y recurso consumirán.

Para la validación del sistema se decide  hacer uso del método de Caja negra, el mismo detecta funciones incorrectas, errores de interfaz, rendimiento, inicialización y terminación. Su utilización permite conocer si todas las funcionalidades del sistema cumplen correctamente sus objetivos y determinar la eficiencia de la aplicación. Dentro de este método se utilizó la técnica de Partición equivalente que permite obtener los resultados esperados dados una serie de valores de entrada, brinda la posibilidad de realizar comparaciones entre varias versiones con los mismos datos de entrada, para poder  verificar que las salidas sean las correctas.

Durante el proceso de pruebas al que fue sometido el software, fueron analizados todos los aspectos funcionales en vista de comprobar la calidad del mismo. Además se realizaron los casos de prueba de Aceptación.

Durante el proceso de pruebas al que fue sometido el software, fueron analizados todos los aspectos funcionales en vista de comprobar la calidad del mismo. En este proceso se tuvo en cuenta la técnica de partición equivalente con el objetivo de obtener los errores que el sistema pudiera tener a la hora de la entrada de datos. Además se realizaron los casos de prueba de aceptación para validar el correcto funcionamiento del software. Teniendo en cuenta estos aspectos se puede afirmar que el Sistema integral de gestión comercial para el FCBC de Granma está listo para su uso, pues este cumple con todas las funcionalidades requeridas por el usuario.

 

 

4- CONCLUSIONES

 

  • El desarrollo del sistema aporta al FCBC de Granma permite la gestión de la información que se genera en el departamento de Comercio, con el cual se mejora sustancialmente el proceso de gestión de la información, simplifica el trabajo del personal implicado y garantiza la  integridad y confidencialidad de la información que se genera.
  • El beneficio fundamental que aporta este sistema es el desarrollo de una aplicación dinámica y de interfaz sencilla que permite agilizar la entrega de información, la toma de decisiones y la contratación a los clientes.
  • Dicho sistema fue desarrollado sobre herramientas, lenguajes y tecnologías libres, justificando así los costos de producción en caso de existir. Además con su uso y explotación se contribuye a la informatización del país.

 

 

5- REFERENCIAS BIBLIOGRÁFICAS

 

[1] ALIAGA Benavides, Adriel A y ALFONSO Sánchez, Eduardo. Análisis, Diseño e Implementación  de los SubMódulos Denuncia y Control de Investigación pertenecientes al Módulo de Investigación Penal del Sistema de Investigación e Información Policial (SIIPOL). Trabajo (Ingeniero  en Ciencias Informáticas). Ciudad de la Habana, Cuba, UCI, 2009.

 

[2] ARTEENVENTA. En: Arteenventa.com, [en línea], [Fecha de consulta: 20 marzo 2012].  Disponible en: http://whttp://www.arteenventa.com/.

 

[3] El Programa Encyclia-G. El concepto. En: Encyclia-G [en línea], [fecha de consulta: 22 marzo  2012]. Disponible en:http://www.encyclia.com/es/encyclia-g/concepto.php.

 

[4] MALLCUBANO.com [en línea], [fecha de consulta: 22 marzo 2012]. Disponible en: http://www.mallcubano.com.

 

[5] MENESES Abad, Abel, PEÑALVER Romero, Gladys Marsi, RODRÍGUEZ Villar, Malay, FERNÁNDEZ Céspedes, Raycel y PINO García, Susel. SXP, Metodología ágil para proyectos de  software libre. 2009. [en línea], [fecha de consulta: 25 marzo 2012]. Disponible en: http://usbvirtual.usbcali.edu.co/ijpm/images/stories/documentos/v1n2/009.pdf.

 

[6] GUTIÉRREZ, Javier. ¿Qué es un framework web? [en línea]. [fecha de consulta: 20 de  febrero del 2012]. Disponible en: http://www.lsi.us.es/~javierj/investigacionficheros/Framework.pdf

 

[7] POSTGRESQL. En: PostgreSQL, [en línea], [fecha de consulta: 22 marzo 2012]. Disponible  en: http://www.guia-ubuntu.org/index.php?title=PostgreSQL.

 

[8] DEFINICIÓN Lenguajes de Programación. En: Definición Lenguajes de Programación, [en  línea], [fecha de consulta: 23 marzo 2012]. Disponible en: http://www.mitecnologico.com/Main/DefinicionLenguajesDePogramacion

 

[9] NETBEANS IDE. En: Netbeans, [en línea], [fecha de consulta: 20 marzo 2012]. Disponible en: http://netbeans.org/features/index.html.

 

[10] CAPITULO I HERRAMIENTAS CASE. En: Ingeniería De software I, [en línea], [fecha de consulta: 5 marzo 2012]. Disponible en: http://es.scribd.com/doc/3062020/ Capitulo-I-HERRAMIENTAS-CASE.

 

[11] PATRONES de diseño. En: Ingenierosoftware. [en línea], [fecha de consulta: 22 marzo 2012]. Disponible en: http://www.ingenierosoftware.com/analisisydiseno/patrones-diseno.php.

 

[12] PRESSMAN, Roger. INGENIERÍA DEL software: Un enfoque práctico. 6a. ed. , 2005. Capítulo

 

[13]  Estrategias de pruebas del software. ISBN 9701054733.