LA INVESTIGACIÓN EN LA UNIVERSIDAD POLITÉCNICA DE AGUASCALIENTES

LA INVESTIGACIÓN EN LA UNIVERSIDAD POLITÉCNICA DE AGUASCALIENTES

Arturo Córdova Rangel
Carlos Alejandro de Luna Ortega
Sandra Patricia Flores Esquivel
José Luis Gallegos Ramírez
Universidad Politécnica de Aguascalientes

Volver al índice

PROPUESTA DE METODOLOGÍA HÍBRIDA PARA EL DESARROLLO DE SITIOS DE COMERCIO ELECTRÓNICO: CASO “VENTA DE AUTOS USADOS”

Jiménez Sandra
Universidad Politécnica de Aguascalientes
Email: mc140003@alumnos.upa.edu.mx

Padilla Teresa
Universidad Politécnica de Aguascalientes
Email: mc140007@alumnos.upa.edu.mx

Mendoza Ricardo
Universidad Politécnica de Aguascalientes
Email: ricardo.mendoza@upa.edu.mx

Noriega Daniel
Universidad Politécnica de Aguascalientes
Email: mc140006@alumnos.upa.edu.mx

 

Resumen

El proceso de desarrollo de software es una tarea que requiere esfuerzo, dedicación, organización y disciplina. Hoy en día, los desarrolladores cuentan con numerosas opciones de metodologías, cuya elección depende de variables como recursos disponibles, tipo, magnitud de proyecto y principalmente el si se ajusta a los objetivos generales de desarrollo. Una de las áreas con mayor crecimiento en los últimos años ha sido la del desarrollo de Sitios de comercio electrónico, ya que los beneficios reales tanto para empresas como para los clientes se producen cuando las primeras son capaces de integrar por completo sus procesos de negocios a Internet como un nuevo canal a través del cual se pueda obtener y compartir información sobre el cliente. En el presente documento se propone una metodología híbrida para el desarrollo de Sitios de comercio electrónico que surge como resultado del análisis y fusión de las metodologías actuales y que se implementa para el desarrollo de un Sitio de venta de autos usados.

Palabras Clave: Metodología de desarrollo de software, Metodología híbrida, Comercio electrónico, Procesos de software, Bases de datos.

Abstract

The software development process is a task that requires effort, dedication, organization and discipline. Today, developers have many choices of methodologies, the choice depends on variables such as available resources, type, size of project and mainly if it fits the overall development objectives. One of the fastest growing areas in recent years has been the development of e-commerce sites, as actual benefits for both companies and customers occur when the former are able to fully integrate their business processes Internet as a new channel through which you can access and share customer information. In this paper a hybrid methodology for the development of e-commerce sites is the result of the analysis and merging existing methodologies and implemented for the development of a site selling used cars is proposed.

Keywords: Software development methodology, Hybrid methodology, E-commerce, Software processes, Databases.

 

 1 INTRODUCCIÓN

Una metodología es un marco que se utiliza para estructurar, planificar y controlar el proceso de desarrollo de un sistema de información que involucra herramientas, modelos y métodos para asistir al proceso de desarrollo de software (Pressman, 1997). La presente investigación propone una metodología híbrida que se ajuste a los requerimientos generales de desarrollo de Sitios de comercio electrónico, ya que a pesar de que existen propuestas tradicionales que se centran especialmente en el control del proceso (estableciendo rigurosamente las actividades involucradas, los artefactos que se deben producir y las notaciones que se usarán) y que se ajustan bien a un gran número de proyectos, también han presentado problemas en otros. Por otro lado están las metodologías ágiles que llegaron para revolucionar la manera de producir software ya que dan mayor valor al individuo, a la colaboración con el cliente y al desarrollo incremental del software con iteraciones muy cortas, ideal para proyectos con requisitos muy cambiantes en un corto periodo de tiempo y manteniendo una alta calidad   (Leterier & Penadés, 2006). Es así como el tema de modelos para el mejoramiento de los procesos de desarrollo ocupa un lugar importante en la búsqueda de la metodología adecuada para producir software de calidad en cualquier contexto de desarrollo. Sin embargo, lo anterior pretende algo utópico tomando en cuenta la amplia variedad de necesidades de los clientes.

El comercio electrónico es un área en constante crecimiento que se divide en dos grandes líneas, el comercio empresa a consumidor final (E-a-C) denominado comercio minorista o Business-to-Consumer (B-to-C o B2C), y el comercio inter-empresas (E-A-E), denominado comercio empresa a empresa o Business-to-Business (B-to-B o B2B), aunque también se puede distinguir el B2E (comercio de empresa a empleados). La metodología propuesta se enfoca en la primera línea mencionada (B2C) y se inspira en los modelos de desarrollo en cascada, incremental, espiral, prototipos y programación extrema tomando en cuenta las etapas básicas en todo desarrollo y la discriminación de las etapas que no agregan valor a un proyecto de esa naturaleza. A fin de evaluar la viabilidad en la implementación, se desarrolló un proyecto para una agencia de venta de autos usados siguiendo la metodología propuesta y se documentaron las ventajas, desventajas y la evaluación de los resultados esperados contra los resultados reales.

2 PLANTEAMIENTO DEL PROBLEMA

Dentro de la literatura no se marca una metodología de desarrollo de software genérica y exclusiva para proyectos de comercio electrónico minorista, mismos que van a la alza debido a la necesidad actual de un seguimiento de 360° con el cliente. Por esa razón, los equipos de desarrollo de software tienen que evaluar constantemente qué metodología se ajusta a sus necesidades o utilizar la misma para todos los tipos de proyectos, lo cual desencadena problemas respecto a tiempo, organización y calidad de desarrollo.

2.1 Antecedentes

El objetivo de utilizar una metodología para desarrollo de software es que ésta pueda proveer un conjunto de prácticas y herramientas que faciliten el proceso de desarrollo, ofreciendo un producto de alta calidad, seguro y que satisfaga las expectativas del cliente. Actualmente existen muchas metodologías, las cuales se pueden dividir en dos tipos principales: Agiles y Tradicionales. Sin embargo las Metodologías Híbridas están marcando la nueva tendencia en el área de Ingeniería de Software, al considerar algunas de las mejores características de ambas metodologías. Esta propuesta es atribuida a Ivar Jacobson, uno de los tres creadores de UML (Unified Modeling Language), UP (Unified Process, Proceso Unificado), y ahora creador de EssUP (Essential Unified Process), metodología híbrida que combina RUP con Scrum (Jiménez & Orantes, 2012).

2.2 Justificación

En México, de acuerdo con el Instituto Nacional de Estadística y Geografía (INEGI), existen alrededor de 4.5 millones de unidades empresariales en todo el país, de las cuales el 99.8% son Pymes, las cuales generan el 52% del Producto Interno Bruto (PIB) del país y alrededor del 72% del empleo nacional (Gutiérrez, 2012). Por tanto, los clientes potenciales en materia de comercio electrónico son los suficientes para considerar como necesidad el diseño de una metodología híbrida para que las empresas de desarrollo de software en México la puedan utilizar a fin de incrementar su productividad. De acuerdo con el estudio en (Jiménez & Orantes, 2012), el 50% o más de las empresas desarrolladoras de software tiene una inclinación hacia el uso de metodologías híbridas, lo cual indica que en términos generales, las metodologías tradicionales por sí solas están mostrando deficiencias en su uso.

2.3 Objetivos

Diseñar una metodología de desarrollo de software híbrida para Sitios de comercio electrónico que ayude a resolver los Problemas respecto a tiempo, organización y calidad de desarrollo.

    • Analizar las etapas en común de las metodologías de desarrollo tradicionales y metodologías de desarrollo ágiles.
    • Definir  ventajas  y  desventajas  de  las  etapas  no  comunes  de  las  metodologías  de  desarrollo analizadas.
    • Construir el modelo de desarrollo de acuerdo a etapas con impacto en los proyectos de comercio electrónico.

 2.4 Preguntas de investigación

    • ¿Cuáles son las etapas en común de las metodologías de desarrollo de software existentes?
    • ¿Cuáles son las etapas mínimas necesarias para construir una metodología de desarrollo de software híbrida para Sitios de comercio electrónico?

 2.5 Hipótesis

    • ¿La metodología de desarrollo de software híbrida propuesta facilita el proceso de desarrollo de un Sitio de comercio electrónico?
    • ¿El escenario utilizado como caso de estudios produce hallazgos para sustentar la metodología?

3 FUNDAMENTACIÓN TEÓRICA

3.1 Modelo en cascada.

Es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior. Sigue un orden secuencial, en el que el desarrollo se ve fluyendo hacia abajo (como una cascada) sobre las fases que componen el ciclo de vida. La primera descripción formal del modelo en cascada se cree que fue en un artículo publicado en 1970 por Winston W. Royce (INTECO, 2009).

3.2 Modelo de prototipos.

Surge cuando no se tienen detallados los requisitos, cómo se llevará a cabo el procesamiento, ni lo que se tendrá al finalizar del mismo. Inicia con la actividad de comunicación, continúa con la realización de un plan rápido y un modelado o diseño rápido, para luego construir el prototipo y desarrollarlo. Una vez listo se entrega al cliente para recibir retroalimentación que servirá para aclarar los requisitos o funcionalidades que debe poseer el sistema. Sirve para que los clientes vean el sistema real en poco tiempo y los desarrolladores construyan algo de inmediato. Puede ser efectivo si se definen las reglas desde un principio, para permitir al desarrollador y cliente ponerse de acuerdo en la construcción y se puedan definir los requisitos (Sommerville, 2005).

 

3.3 Modelo Incremental

Varios métodos son aceptables para la combinación lineal y metodologías de desarrollo de sistemas iterativos, con el objetivo principal de reducir el riesgo del proyecto inherente al romper un proyecto en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo. Los principios básicos son (E-Centro, 2014):

      • Se llevan a cabo una serie de mini-Cascadas, donde se han completado todas las etapas de la cascada para una pequeña parte de un sistema, antes de proceder al siguiente incremento.
      • Los requisitos generales se definen antes de proceder al desarrollo de mini-cascada evolutiva de incrementos individuales de un sistema.
      • El concepto inicial de software, análisis de requerimientos, y el diseño de la arquitectura y el núcleo del sistema se definen a través de la cascada, seguido de prototipos, que culmina en la instalación del prototipo final, un sistema de trabajo iterativo.

3.4 Espiral
 
El modelo en espiral combina elementos de diseño y creación de prototipos en etapas, en un esfuerzo por combinar las ventajas de los conceptos de arriba hacia abajo y de abajo arriba. Se trata de un meta-modelo, un modelo que puede ser utilizado por otros modelos.

Los principios básicos según (E-Centro, 2014) son:

      • El foco está en la evaluación de riesgos y en su minimización, rompiendo un proyecto en segmentos más pequeños para proporcionar más facilidad de cambio durante el proceso de desarrollo, así como la oportunidad de evaluar los riesgos y sopesar la consideración de la continuación del proyecto durante todo el ciclo de vida.
      • Cada ciclo implica una progresión a través de la misma secuencia de pasos, para cada parte del producto y para cada uno de sus niveles de elaboración, a partir de un concepto general del documento de operación hacia abajo para la codificación de cada programa individual.
      • Cada iteración atraviesa cuatro cuadrantes básicos: determinar los objetivos, alternativas y limitaciones de la iteración, evaluar alternativas, identificar y resolver riesgos, desarrollar y verificar las prestaciones de la iteración, y planificar la siguiente iteración.

3.5 Programación extrema

Es una de las metodologías de desarrollo de software utilizadas en la actualidad para proyectos de corto plazo, con un equipo de proyecto pequeño. Utiliza un enfoque orientado a objetivos, cuya particularidad es tener como parte del equipo al usuario final, pues es uno de los requisitos para llegar al éxito del proyecto. Se compone de 4 actividades del marco de trabajo: planeación, diseño, codificación y pruebas. Las características más relevantes extraídas de (Méndez, 2006) son:

• Re-fabricación: se basa en la utilización repetitiva de código, para lo cual se establecen patrones, permitiendo mayor flexibilidad al cambio.

• Programación en pares: consiste en que dos desarrolladores trabajen para un proyecto en la misma estación de trabajo.

• Pruebas: la fase de prueba se compone de dos tipos, las pruebas de unidad y las pruebas de aceptación.

Las pruebas de unidad se basan en las pruebas realizadas a los principales procesos y las pruebas de aceptación son realizadas por los clientes y se enfoca en las características generales del sistema de su parte visible y su funcionalidad como tal.

4 MATERIALES Y MÉTODOS

Para desarrollar el sitio que sirvió para probar la metodología propuesta, se utilizó lo siguiente:
• Herramienta para diagramación y colaboración en tiempo real: Cacoo.
• Framework para programación responsiva: Boopstrap. Que trabaja con:
o Lenguaje de etiquetas para la estructuración de las páginas del sitio web: HTML5.
o Lenguaje de hojas de estilos para dar formato a las páginas del sitio web: CSS3.
o Lenguaje de programación para creación de scripts con funciones y variables globales: JS.
• Lenguaje de programación para realizar consultas a la base de datos: PHP.
• Sistema de gestión de base de datos relacional: MySQL.
• Herramienta de administración de bases de datos en MySQL en entornos web: Phpmyadmin.
• Herramienta de administración de proyectos: Ganttproject.
• Herramienta de edición de imágenes: Photoshop.

Y el método que se siguió para diseñar la nueva metodología fue el siguiente:

5 RESULTADOS

El modelo se divide en cuatro fases: Requerimientos, Diseño, Desarrollo, Mantenimiento. Que a su vez se componen de etapas flexibles al tipo de cliente y el tiempo límite para el desarrollo. Esto, mediante la opción de ejecutar ciertas etapas dentro de un ciclo iterativo.

6 FASE DE REQUERIMIENTOS

6.1 Análisis de requerimientos

Los requerimientos son imprescindibles para que un proyecto tenga éxito ya que especifican qué es lo que el sistema  debe  hacer  (sus  funciones)  y  sus  propiedades  esenciales  y  deseables.  Mediante  esta  etapa,  se suministran al técnico y al cliente, los medios para valorar el cumplimiento de resultados, procedimientos y datos una vez que se  haya construido, proporcionando las pautas a  seguir a  los diseñadores del sistema (Gómez, 2011). Las técnicas para obtención de los mismos incluyen entrevistas con el cliente, cuestionarios, estudio de documentación, lluvia de ideas, entre otros. Para el desarrollo de prueba se utilizó la técnica de lluvia de ideas para generar la propuesta al cliente y se documentó en el formato de la figura 5.

6.2 Análisis de riesgo

El análisis del riesgo es un método sistemático de recopilación, evaluación, registro y difusión de información necesaria para formular recomendaciones orientadas a la adopción de una posición o medidas en respuesta a un peligro determinado. Para el desarrollo de prueba se siguieron las etapas marcadas en la figura 6.

6.3 Acuerdos

En base al análisis de requerimientos, el equipo de desarrollo y el cliente determinan las limitantes del proyecto, los costos y las fechas de entrega del mismo. Para lo anterior, por medio de una junta con todas las partes involucradas se pactaron y firmaron los acuerdos correspondientes a cambios o nuevas propuestas.

6.4 Planeación

El objetivo de la planificación del proyecto es proporcionar un marco de trabajo que permita al gestor de planificación hacer estimaciones razonables de recursos, costos y planificación temporal. Dichas estimaciones se hacen dentro de un marco de tiempo limitado al comienzo de un proyecto de software, y deberían actualizarse regularmente a medida que progresa el mismo. Deberían definir el escenario del mejor caso, y peor caso de modo que los resultados del proyecto pueden limitarse. La herramienta más útil es el cronograma de actividades, imprescindible para la asignación de actividades y organización de equipos de trabajo a fin de terminar en tiempo.

6.5 Diseño de la base de datos

El diseño de una base de datos consiste en definir la estructura de los datos que debe tener la base de datos del sistema que se implementará. Una base de datos correctamente diseñada permite obtener acceso a información exacta y actualizada. El diseño de una base de datos no es un proceso sencillo. Habitualmente, la complejidad de la información y la cantidad de requisitos de los sistemas de información hace que sea complicado. Es por eso que conviene descomponer el proceso en varias etapas; donde en cada una se obtiene un resultado intermedio que sirve de punto de partida de la etapa siguiente, y en la última etapa se obtiene el resultado deseado (Costal, 2012). Dichas etapas son:

1. Etapa del diseño conceptual: En esta etapa se obtiene una estructura de la información de la futura base de datos independiente de la tecnología que hay que emplear. Permite concentrarnos únicamente en la estructuración de la información, y no en resolver cuestiones tecnológicas.

2. Etapa del diseño lógico: En esta etapa se parte del resultado del diseño conceptual, que se transforma de forma que se adapte a la tecnología que se debe emplear.

3. Etapa del diseño físico: En esta etapa se transforma la estructura obtenida en la etapa de diseño lógico, con el objetivo de conseguir una mayor eficiencia; además, se completa con aspectos de implementación física que dependerán del sistema gestor de base de datos (Office Online, 2014).

7 FASE DE DISEÑO

7.1 Prototipo

El prototipo se basa en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final (por ejemplo, la configuración de la interfaz con el usuario y el formato de los despliegues de salida). Dicha representación es evaluada por el cliente para una retroalimentación; gracias a la cual se refinan los requisitos del software que se desarrollará. El prototipo se ajusta para satisfacer las necesidades del cliente, lo cual permite que el desarrollador entienda lo que se debe hacer y el cliente vea resultados a corto plazo (Navarro, 2006).

7.2 Análisis

El análisis global de los requisitos de una aplicación es un proceso de conceptualización y formulación de los conceptos que involucra de forma concreta. Es una parte fundamental del proceso de desarrollo, la mayor parte de los defectos encontrados en el software entregado se originan en la fase de análisis de requisitos, y además son los más caros de reparar, por tal motivo es recomendable la continua retroalimentación del cliente (Drake, 2008).

7.3 Diseño

El diseño se aplica a cuatro características distintas del software: la estructura de los datos, la arquitectura de las aplicaciones, la estructura interna de los programas y las interfaces. Es el proceso que traduce los requisitos en una representación del software de forma que pueda conocerse la arquitectura, funcionalidad e incluso la calidad del mismo antes de comenzar la codificación. En este punto, los requisitos del software se traducen a una serie de diagramas que representan la estructura del sistema software, de sus datos, de sus programas y de sus interfaces.

8 FASE DE DESARROLLO

8.1 Codificación

La codificación consiste en la traducción del diseño a un formato que sea legible para la máquina. Si el diseño es lo suficientemente detallado, la codificación es relativamente sencilla, y puede hacerse - al menos en parte - de forma automática, usando generadores de código. En la codificación se traducen los diagramas de la etapa de diseño a un lenguaje fuente, que luego se traduce - se compila - para obtener un programa ejecutable.

8.2Implementación de la base de datos

La implementación de la base de datos se realiza mediante las sentencias del lenguaje de definición de datos del sistema gestor de base de datos escogido. Estas sentencias se encargan de crear el esquema de la base de datos, los ficheros en donde se almacenarán los datos y las vistas de los usuarios.

8.3 Reuniones

Cuando se finaliza un prototipo, se programa una reunión con el cliente o usuario del sistema, para que analice dicho prototipo y retroalimenten al equipo de desarrollo a fin de que se puedan hacer las modificaciones pertinentes.

8.4 Pruebas Unitarias

Una vez que se tiene el programa ejecutable, comienza la fase de pruebas. El objetivo es comprobar que no se hayan producido errores en alguna de las fases de traducción anteriores, especialmente en la codificación. Para ello deben probarse todas las sentencias, no sólo los casos normales y todos los módulos que forman parte del sistema.

9 IMPLEMENTACIÓN

Esta etapa consiste en integrar todos los módulos del sistema en un mismo software.

Pruebas de integración

Consiste en realizar pruebas para verificar que un gran conjunto de partes de software funcionan juntos. Es donde los módulos individuales de software son combinados y probados como un grupo.

10 CONCLUSIÓN

La metodología propuesta cuenta con la ventaja de que ser desarrollada partiendo de las características principales de las metodologías más usadas en el desarrollo de software. Además de estar enfocada en un área de aplicación en específico cuya demanda en el mercado mexicano es elevada.

11 TRABAJO FUTURO

Si bien se logró implementar la metodología en un proyecto real y los resultados fueron satisfactorios, el desempeño necesita ser comparado con las metodologías híbridas que las empresas utilizan para el desarrollo de sus proyectos, incluidos los de comercio electrónico.

REFERENCIAS

Costal, D. (2012). Universitat Oberta de           Catalunya. Obtenido de http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-dedatos/P06_M2109_02150.pdf

Drake,  J. (2008). University of Cantabria. Obtenido de http://www.ctr.unican.es/asignaturas/Ingenieria_Software_4_F/Doc/M3_08_Especificacion-2011.pdf

E-Centro. (2014). E-Centro. Obtenido de http://centrodeartigo.com/articulos-noticias-consejos/article_135674.html

Gómez, M. (2011). Universidad Autónoma Metropolitana. Distrito Federal: Universiad Autónoma Metropolitana. Obtenido de http://web.cua.uam.mx/publicaciones/Notas_Analisis_Requerimiento.pdf

Gutiérrez,         T.         (29       de        Noviembre       de        2012).  Alto      Nivel Obtenido de http://www.altonivel.com.mx/25119-cual-es-el-panorama-de-las-pymes-para-este-2013.html

Inteco, L. N. (Marzo de 2009). Ingeniería del software: Metodologías y ciclos de vida. León, España.

Javier, N., Ramos, I. y Toro, M. (2008). Hacia un modelo híbrido de simulación de la producción de software en un entorno multiproyecto . Sistedes, 48-54.

Jiménez, E. y Orantes, S. (01 de Enero de 2012). Metodologías híbridas para desarrollo de software: una opción factible para México. Revista Digital Universitaria UNAM, 1-17.

Laguna,                       M.        (2012). Universidad      de        Valladolid.        Obtenido de http://www.infor.uva.es/~mlaguna/is1/apuntes/1-intro.pdf

Leterier, P. y Penadés, C. (2006). Metodologías ágiles para el desarrollo de software: eXtreme Programming (XP). Ciencia y Técnica Administrativa.

Méndez, E. (Julio de 2006).      Universidad      Católica           de        Andrés Bello. Obtenido de http://biblioteca2.ucab.edu.ve/anexos/biblioteca/marc/texto/AAQ7365.pdf

Navarro, J. (2006). Universidad            Interamericana de Puerto Rico. Obtenido de http://agu.inter.edu/jnavarro/comp3400Lec05ModelosDesarrSoft.pdf

Office Online. (2014). Office Online. Obtenido de https://support.office.com/es-mx/article/Conceptos-b%C3%A1sicos-del-dise%C3%B1o-de-una-base-de-dat os-1eade2bf-e3a0-41b5-aee6-d2331f158280?ui=es-ES&rs=es-MX&ad=MX

Pressman, R. (1997). Ingeniería del software: Un enfoque práctico. McGrawHill. Sommerville, I. (2005). Ingeniería del software. Pearson.

Zaragoza, J., & Nogueras, J. (Febrero de 2008). Universidad de Zaragoza. Obtenido    de http://webdiis.unizar.es/~zarazaga/workPage/docencia/ingSoft1/trasparencias/is1_01.pdf