Want to make creations as awesome as this one?

Transcript

Desarrollo de Líneas de Productos: un Caso de Estudio enComercio Electrónico

Carlos Brayan Salvador Aguilar 22370794Luis Kevin Tamayo Gochez 22370806David Muñoz Rodríguez 22370764

Introducción

Combinaciòn de paquetes y clases parciales

índice

Caso de estudio: Comercio electrònico

Trabajos relacionados

Conclusiones y trabajo futuro

INTRODUCCIÓN

Desarrollo de Líneas de Productos Software (LPS) en Comercio Electrónico

¿Qué es una Línea de Productos Software?Un enfoque que permite desarrollar una familia de productos similares a partir de una base común de componentes.Utiliza modelos de características para gestionar las similitudes y variaciones entre los productos.Importancia del Enfoque LPSEficiencia y Reutilización: Permite reutilizar componentes de software, reduciendo tiempo y costos de desarrollo.Adaptabilidad: Facilita la creación de productos personalizados según las necesidades del mercado o de los clientes.Desafíos para Pequeñas OrganizacionesComplejidad Inicial: La adopción de LPS puede ser desafiante debido a la necesidad de gestionar múltiples variaciones.Accesibilidad: El uso de herramientas convencionales como UML y IDEs reduce las barreras de entrada para ingenieros de software.

Combinación de Paquetes y Clases Parciales

Combinación de Paquetes UML-Concepto de "Package Merge" (UML 2):
  • Permite combinar paquetes para gestionar la variabilidad en los modelos de diseño y arquitectura.
  • Útil para representar incrementos y variaciones de diseño sin alterar el metamodelo de UML.
-Aplicación en LPS:
  • Se crea un paquete base con las características comunes del producto.
  • Paquetes adicionales representan características opcionales y se conectan mediante la relación <<merge>>.

Clases Parciales-Definición:
  • Clases definidas en partes separadas que se combinan durante la compilación.
-Uso en LPS:
  • Cada paquete opcional puede contener una parte de la clase, reflejando las variaciones en el código.
  • Permite una correspondencia directa entre las características del modelo y la implementación.

Beneficios:
  • Trazabilidad Clara: Conecta las características del producto desde el diseño hasta la implementación.
  • Flexibilidad y Modularidad: Facilita la personalización de productos mediante la selección de paquetes y clases parciales.

Modelo de características parcial de la LP y una posible configuración de la misma

CAso de estudio: Comercio Electrònico

Modelo de Características
  • Definición: Un modelo de características es una representación gráfica que muestra todas las posibles características (funcionalidades) que un producto o sistema puede tener.
Estructura del Modelo:
  • Características Obligatorias: Son las funciones esenciales que todos los productos de la línea deben incluir. Por ejemplo, en un sistema de comercio electrónico, características como el carrito de compras o una estructura básica de catálogos y productos son obligatorias.
  • Características Opcionales: Estas son funciones adicionales que pueden añadirse para extender la funcionalidad del producto, como una búsqueda avanzada en catálogos.
  • Grupos Alternativos (OR): Permiten elegir una o más opciones de un conjunto. Por ejemplo, la opción de registro de usuario puede incluir el registro de un usuario invitado, el registro completo o el uso de diferentes métodos de pago (electrónico o físico).

Paquetes de la línea de productos de comercio electrónico

CAso de estudio: Comercio Electrònico

Estructura de Paquetes:
  • Paquete Base: Incluye las funcionalidades esenciales, como el carrito de compras y el proceso de pago, comunes a todos los productos.
  • Paquetes Opcionales:
  1. DirectDownload: Gestión de productos descargables.
  2. CategoriesMultilevel: Organización jerárquica de categorías.
  3. Search: Búsqueda avanzada en el catálogo.
  4. ElectronicProduct y PhysicalProduct: Manejo de productos electrónicos y físicos.
  • Paquetes de Registro y Pago:
  1. Registration: Gestión de usuarios (registrados e invitados).
  2. Credit Card Information y Billing Address: Extienden opciones de pago y facturación.
  • Relaciones entre Paquetes:
Los paquetes opcionales se integran con el paquete base mediante <<merge>>, permitiendo añadir o modificar funcionalidades según las necesidades sin alterar el núcleo de la aplicación.1/2

Contenido de algunos paquetes de la LP de comercio electrónico (vista de casos de uso)

CAso de estudio: Comercio Electrònico

Contenido de los Paquetes:
  • Paquete Registration: Permite a los usuarios registrarse, identificarse, modificar sus datos y darse de baja. Extiende funcionalidades con datos de tarjeta de crédito, direcciones de envío y facturación.
  • Paquete Credit Card Information: Añade la opción de insertar datos de tarjeta de crédito durante el registro o la compra.
  • Paquete Shipping Address: Permite introducir direcciones de envío al registrarse o finalizar la compra.
  • Paquete Billing Address: Gestiona la inserción de direcciones de facturación, extendiendo los procesos de registro y pago.
Relaciones y Extensiones:Los paquetes están conectados mediante relaciones <<extend>> y <<include>>, activando funcionalidades adicionales de forma modular y flexible según la configuración del producto final.

Paquete base de la LP de comercio electrónico, junto con tres paquetes opcionales

CAso de estudio: Comercio Electrònico

Vista de diseño de la plantilla con dos contenedores dinámicos

CAso de estudio: Comercio Electrònico

Elementos Clave de la Plantilla:Contenedores Dinámicos:
  • Parte Izquierda: Contiene menús y opciones de navegación que pueden cambiar dinámicamente según los módulos activos (por ejemplo, búsqueda, categorías).
  • Parte Central: Área principal donde se muestra el contenido específico de cada página, como detalles de productos, carritos de compra, o formularios de registro.
Funcionalidad y Uso:
  • Personalización del Producto: Los contenedores dinámicos permiten que cada producto de la línea de productos tenga una presentación personalizada sin necesidad de crear plantillas completamente nuevas para cada configuración.
  • Flexibilidad de Diseño: El uso de master.page de ASP.NET y estilos CSS permite mantener un diseño coherente, mientras que los contenedores dinámicos se rellenan con contenido específico para cada configuración de producto.

Proceso de configuración de la LP de comercio electrónico y detalle de los paquetes

CAso de estudio: Comercio Electrònico

Esta figura destaca cómo se organiza el esquema de combinación de paquetes a lo largo del desarrollo de la línea de productos, incluyendo diferentes opciones de configuración y variabilidad. Los paquetes representan módulos o componentes que pueden añadirse o configurarse según las necesidades del producto final, lo que permite personalizar características como métodos de pago, categorías de productos o interfaces de usuario.

Vistas en el navegador de dos productos distintos de la LP de comercio electrónico

CAso de estudio: Comercio Electrònico

Trabajos relacionados

Aunque hay muchos trabajos que describen mecanismos de gestión de la variabilidad desde el punto de vista de los requisitos y el diseño, pocos llegan hasta los detalles de implementación. Distintos autores han propuesto representar explícitamente los puntos de variación añadiendo anotaciones o cambiando la esencia de los diagramas de UML.Por ejemplo:
  1. Von der Maßen y Lichter (2003): Proponen una notación gráfica con nuevas relaciones ("option" y "alternative"), lo que implica modificar el meta-modelo de UML para representar puntos de variación.
  2. John y Muthig (2002): Sugieren el uso de plantillas de casos de uso y estereotipos, aunque no diferencian claramente entre variantes opcionales, alternativas u obligatorias.
  3. Halmans y Pohl (2003): Defienden la modificación de los modelos de casos de uso para representar gráficamente la variabilidad.
  4. Gomaa (2000): Utiliza estereotipos UML como <<kernel>>, <<optional>>, y <<variant>> para expresar variabilidad estructural y funcional, desde el análisis hasta la implementación.
  5. Czarnecki y Antkiewicz (2005): Proponen el uso de diagramas de UML anotados con condiciones de presencia y códigos de colores, lo que permite ver las opciones de un vistazo, pero esta solución no escala bien.

Conclusiones y trabajo futuro

Conclusiones:
  • El uso de combinación de paquetes y clases parciales facilita la gestión de la variabilidad en líneas de productos de software.
  • Se evita el uso de herramientas especializadas, utilizando modelos y lenguajes estándar como UML.
  • Se logró implementar una línea de productos de comercio electrónico completa, con trazabilidad desde las características hasta el código.
  • El enfoque simplifica la adopción del paradigma para ingenieros de software usando IDEs convencionales.
Trabajo Futuro:
  • Desarrollo de nuevas líneas de productos en dominios como asociaciones sin ánimo de lucro y aplicaciones móviles.
  • Ampliación del estudio de comercio electrónico para evaluar la escalabilidad del enfoque.
  • Integración de una herramienta de configuración de características en Visual Studio para facilitar la creación rápida de productos​.

Gracias