autores: juan carlos Álvarez izquierdo cristina garcía gil tutor: miguel Ángel laguna serrano...

38
Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio electrónico Ingeniería Técnica Informática de Gestión 26 de Mayo del 2008

Upload: fermin-santiesteban

Post on 07-Feb-2015

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Autores: Juan Carlos Álvarez Izquierdo

Cristina García Gil

Tutor: Miguel Ángel Laguna Serrano

Desarrollo de una Línea de Producto Software de comercio

electrónico

Ingeniería Técnica Informática de Gestión

26 de Mayo del 2008

Page 2: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO

1. Visión general y objetivos2. Conceptos importantes en líneas de

producto 3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema5. Implementación de la línea de producto6. Presentación de la aplicación7. Conclusiones

Page 3: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO

1. Visión general y objetivos2. Conceptos importantes en líneas de

producto 3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema5. Implementación de la línea de producto6. Presentación de la aplicación7. Conclusiones

Page 4: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Líneas de producto software (LPS)

Page 5: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Desarrollo de una LPS de comercio electrónicoEncontrar soluciones para manejar su variabilidad.Proporcionar mecanismos para la configuración de la aplicación final.Desarrollo del núcleo de la línea que dará lugar a una aplicación funcional por sí misma.Conseguir un número aceptable de productos finales.

Objetivos

Page 6: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO

1. Visión general y objetivos

2. Conceptos importantes en líneas de producto

3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema5. Implementación de la línea de producto6. Presentación de la aplicación7. Conclusiones

Page 7: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Trabajos anteriores

Basado en el Modelo de Características propuesto en la tesis de maestría de Lau, Waterloo 2006

Mecanismo para manejar la variabilidad

Se detallan características obligatorias y opcionales

En nuestra propuesta, se han tomado

Partes obligatorias de catálogo de productos y proceso de compra

Partes opcionales respecto al catálogo

Page 8: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Variabilidad en modelos UML: <<merge>>

Necesitamos mecanismo para mostrar variabilidad en tiempo de configuración, no sólo en ejecución

Mecanismo UML 2, “combinación de paquetes”

Añade detalles de forma incremental a los modelos

“Relación entre dos modelos que indica que los contenidos de ambos se combinan”

Page 9: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO

1. Visión general y objetivos2. Conceptos importantes en líneas de

producto

3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema5. Implementación de la línea de producto6. Presentación de la aplicación7. Conclusiones

Page 10: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Requisitos No Funcionales

Sistema final compuesto por paquetes

Sistema flexible ante nuevas funciones

Integración de paquetes de forma automática

Paquetes independientes

Page 11: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Requisitos Funcionales

Paquete Base

Acceso al catálogo de productos

Ver detalle de productos

Realizar una compra y su pago

Gestión interna del catálogo de productos

Page 12: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Requisitos Funcionales

Paquete CategoryMultilevel Dar soporte a categorías de varios niveles

(subcategorías)

Paquete Search Realizar búsquedas de productos disponibles a

la venta

Paquete DirectDownload Permitir la descarga automática de un

producto electrónico, tras comprobar su pago

Paquete PlugginShoppingCart Visualizar el detalle de los productos agregados

al carrito desde cualquier página

Page 13: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Casos de uso

Base

CategoriesMultilevel

<<merge>>

Search

<<merge>>

usuario

Comprar Pagar<<include>>

usuario

buscar productos

Ver producto

usuario

Consultar catálogo

Consultar catálogo

<<include>>

<<extend>>

DirectDow nload

usuario

Descargar productos electronicos

<<merge>>

Administrador

Añadir Catálogo

Añadir Producto

Añadir Categoria

Eliminar Catalogo

Eliminar Categoria

Eliminar Producto

Añadir subcategoria

administrador

Ver producto

<<extend>>

Page 14: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO

1. Visión general y objetivos2. Conceptos importantes en líneas de

producto 3. Requisitos y Casos de Uso

4. Análisis y Diseño del sistema5. Implementación de la línea de producto6. Presentación de la aplicación7. Conclusiones

Page 15: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Análisis y Diseño

Base

PhysicalProduct ServiceProduct ElectronicProduct

<<merge>> <<merge>> <<merge>>

CategoriesMultilevel

<<merge>>

Search

<<merge>>

PlugginShoppingCart

<<merge>>

DirectDownload

<<merge>>

Page 16: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Paquete Base:Category

+dataProducts: DataSet

+list_products()+add_product(p: Product)+save_in_BD()+delete()+update(nombre: string...)+Category(id: string)

Catalog

+dataCategories: DataSet+dataProducts: DataSet

+list_categories()+list_products()+add_category()+add_product()+save_in_BD()+delete()+update(nombre: string....)+all_categories()+all_products()+Catalog(nombre: string...)+Catalog(id: string)

Product

+thumbnail: string+longDescription: string+standardDescription: string+suggestedRetailPrice: Money+price: Money

+set_category()+update(nombre: string....)+delete()+list_categories()+set_category(id_categor: string)+delete_category(id_categor: string)+Product(id: string)

Money

+currency: string+amount: decimal

EShopArtifact

+icon: string+id: int+name: string+description: string+active: bool

1*

*1..*

*

1

Order

+date: string+paymentInfo: PaymentInfo+status: OrderStatus+orderId: int+emailAdress: string

-add_product(i: OrderItem)+add_email(email: string)+save_in_BD()+total()+Order(s: ShoppingCart, date: string...)

ShoppingCart

+delete_product(i: ShoppingCartItem)+detele_product(id: string)+add_product(i: ShoppingCartItem)-f ind_item(id: string)+total()+ShoppingCart()

1*

PaymentInfo

+status: OrderStatus

+pay()+cancel_payment()+PaymentInfo()

OrderItem

+status: OrderStatus

+sended(itemId: string)+OrderItem(p: Product)

1

1

1*

ShoppingCartItem

+ShoppingCartItem(p: Product)

11

Paypal

+email: string

+save_in_BD()

1..*1

OrderStatus<<enumeration>>

+Pending+Cancelled+Completed

ElectronicProduct

+size: int

Product

ElectronicProduct

Page 17: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Category

+list_subcategories()+save_in_BD_subcategories()+set_category(c: Category)

0..1*

Catalog

+all_subcategories()

1 *

Paquete CategoryMultilevel

Search

+nameProduct: string+w ithCatalog: bool+id_catalogo: string+result: DataSet+quantity: int

-searching(nombre: string)-searching_w ithCatalog(nombre: string, catalogo: string)+Search(nameProduct: string, catalog: string)

Catalog Product

*

1

1

*

Paquete Search

Paquete DirectDownload

ElectronicProduct

+link: string

+getLink()+makeLink()

Page 18: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Modelo relacionalCatalog (id_catalogo, name,description,icon,active) Category (id_category,id_catalogo, name, descripcion,icon, active) Product (id_producto,id_catalogo,name,description,icon,active,longDescription,standardDescription,suggestedRetailPrice,price, size,link) Prod_agrupa_Cat (id_categoria,id_producto) OrderItem (itemId,orderId,id_producto,name, price,status) Orders (orderId, date,email,status,total) PaymentInfo (id_payment,orderId,status,price,tipo) Paypal (id_payment,email)

Page 19: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO1. Visión general y objetivos2. Conceptos importantes en líneas de producto 3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema

5. Implementación de la línea de producto1. Tecnología utilizada

Soluciones generales para una aplicación de comercio electrónico

Soluciones de la Línea de Producto en un entorno web

6. Presentación de la aplicación7. Conclusiones

Page 20: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Tecnología utilizada

Lenguaje C# , permite clases parcialesPackage merge clases parciales C#

ASP.NET, utiliza C# de forma nativa

Visual Studio 2005, entorno de desarrollo de .NET

SQL Server Express, como gestor de base de datos

Page 21: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO1. Visión general y objetivos2. Conceptos importantes en líneas de producto 3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema

5. Implementación de la línea de producto1. Tecnología utilizada

Soluciones generales para una aplicación de comercio electrónico

Soluciones de la Línea de Producto en un entorno web

6. Presentación de la aplicación7. Conclusiones

Page 22: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Diseño de la interfazMaster.page

Plantilla que especifica el formato de todas las páginas de la parte visible de la tienda

Albergará partes comunes de todas las páginas

Facilita el trabajo de diseño de la interfaz

Hojas de estilo CSS

Definen reglas para determinar la apariencia (tamaño y tipo de letra, colores, etc)

Facilitan cualquier cambio en la forma de mostrar los distintos elementos

Ventajosas para trabajos desarrollados en grupo y para futuras ampliaciones

Page 23: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Gestión internaNecesaria para la gestión del catálogo de productos

La realiza el administrador, debe identificarse como tal.

Se ha utilizado la seguridad propia de .NETAutenticación de formularios Web.configAlgoritmo SHA1 para cifrar la contraseña

Page 24: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Paypal como forma de pago

Necesitamos forma de pago real y segura (cifrado de datos)

Facilidad de uso y de reconocimiento internacional

Fácil integración a un sistema de ventas particular

Servicio gratuito, en contraposición de las pasarelas de los bancos

Page 25: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO1. Visión general y objetivos2. Conceptos importantes en líneas de producto 3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema

5. Implementación de la línea de producto1. Tecnología utilizada

Soluciones generales para una aplicación de comercio electrónico

Soluciones de la Línea de Producto en un entorno web

6. Presentación de la aplicación7. Conclusiones

Page 26: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Variabilidad en capa de lógica:Clases parciales

Clases parciales de C# para tratar la variabilidad

Definición de las clases en uno o más archivos de código fuente

Archivos de código fuente en paquetes diferentes, añadiendo funcionalidad a la clase

Base CategoryMultilevel

Category

+products

Category

+categories

+list_subcategories()<<merge>>

Category

+products+categories

+list_subcategories()

Page 27: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Variabilidad en Interfaz:Controles de usuario

Recurso de ASP.NET, crea elementos reutilizables similares a los formularios web, tienen extensión .ascx

Porciones de código HTML

Se incrustan a páginas web de ASP.NET

Solución a la variabilidad en la interfaz de usuario cuando se agregan dinámicamente

Page 28: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Controles de usuario dinámicos

Aportan la interfaz necesaria para obtener las funciones extra que ofrecen los paquetes opcionales

Se añaden o no de forma dinámica a las páginas de ASP.NET cuando el sistema reconoce los paquetes instalados

Incrustados en los denominados PlaceHolder (huecos contenedores)

Page 29: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Controles de usuario dinámicos

Cada PlaceHolder puede alojar tantos controles de usuario como se desee

Los PlaceHolder se ubican en el lugar preciso de la página según el diseño de interfaz deseado

Para facilitar trabajos futuros, se ha incluido al menos un PlaceHolder en todas las páginas del proyecto

Page 30: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Agregar controles de forma automática

<?xml version="1.0" encoding="utf-8" ?>

<paquetes>

<paquete>

<nombre>../Search</nombre>

<activado>true</activado>

<archivos>

<archivo>MasterSearchBox.ascx</archivo>

</archivos>

</paquete>

<paquete>

<nombre>../CategoryMultilevel</nombre>

<activado>true</activado>

<archivos>

<archivo>CatalogCategoriesTree.ascx</archivo>

<archivo>ProductoCategoriesTree.ascx</archivo>

<archivo>AdmCategoryAddSubcategory.ascx</archivo>

</archivos>

</paquete>

<paquete>

<nombre>../PlugginShoppingCart</nombre>

<activado>true</activado>

<archivos>

<archivo>LeftMasterCartSummary.ascx</archivo>

</archivos>

</paquete>

El sistema reconoce los paquetes instalados mediante un archivo XML (paquetes.xml)

Incluye información sobre los paquetes incluidos y los controles de usuario que interactúan con el paquete base, así como su ubicación

Páginas del sistema leen este archivo y reconocen si debe agregar algún control en ellas

Nombrados de forma especial para saber en qué paginas se agregan: “Nombre_páginaNombreControl.ascx”

Page 31: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Compilar solamente los elementos necesarios de los paquetes elegidos

Archivo .csproj de Visual Studio, controla los elementos a compilar

-> NombredelProyecto.csproj

Modificamos este archivo a nuestro gusto para compilar los elementos de cada paquete (clases, páginas web, controles de usuario)

Configuración de la aplicación final

<ItemGroup>

<Compile Include=“Search/Search.cs" />

<Compile Include="Search\Searching.aspx. cs"> <DependentUpon>Searching.aspx</DependentUpon> <SubType>ASPXCodeBehind</SubType> </Compile>

<Compile Include="Search\Searching.aspx.designer.cs"> <DependentUpon>Searching.aspx</DependentUpon> </Compile>

</ItemGroup>

<Content Include="Search\Searching.aspx" />

Page 32: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Pasos a seguir

1. Abrir la solucion en Visual Studio2. Ejecutar proyecto de Configuracion

Elegir los paquetes de la aplicación web final

Modificar el .csproj y XML Configurar los parámetros de la tienda

Nombre de la tienda Productos por página Email receptor del pago Moneda utilizada Datos del administrador

Modificar Web.config Seleccionar Base de Datos a utilizar

Servidor Nombre de la base de datos Posibilidad de crear una nueva

Configuración de la aplicación final

Page 33: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Configuración de la aplicación final

Page 34: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO

1. Visión general y objetivos2. Conceptos importantes en líneas de

producto 3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema5. Implementación de la línea de producto

6. Presentación de la aplicación7. Conclusiones

Page 35: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

CONTENIDO

1. Visión general y objetivos2. Conceptos importantes en líneas de

producto 3. Requisitos y Casos de Uso4. Análisis y Diseño del sistema5. Implementación de la línea de producto6. Presentación de la aplicación

7. Conclusiones

Page 36: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Objetivos cumplidosDesarrollar una línea de producto de comercio electrónico, que tras ser

configurada y compilada, da como resultado una familia de aplicaciones funcionales por sí mismas.

Núcleo de la línea y cuatro paquetes opcionales distintos compatibles entre sí, que nos proporcionan una variabilidad de dieciséis productos diferentes.

Soluciones tales como clases parciales, compilar sólo los paquetes elegidos o agregar controles de usuario dinámicamente para manejar la variabilidad de la línea en un entorno web

Configurar los distintos productos finales de la línea de forma inmediata

Añadir funciones adicionales, Aplicación de configuración de cada tienda para incluir

personalizaciones Autoinstalación para cada tienda

Page 37: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Trabajos futuros

Desarrollo de nuevos paquetes opcionales que complementen la línea de comercio electrónico

Registro de clientes

Historial de compras

Gestión de ventas

Nuevos métodos de pago

[…]

Proporcionar soluciones a la variabilidad en la base de datosConfiguración de la aplicación final a través de

su modelo de características de forma automática

Page 38: Autores: Juan Carlos Álvarez Izquierdo Cristina García Gil Tutor: Miguel Ángel Laguna Serrano Desarrollo de una Línea de Producto Software de comercio

Autores: Juan Carlos Álvarez Izquierdo

Cristina García Gil

Tutor: Miguel Ángel Laguna Serrano

Desarrollo de una Línea de Producto Software de comercio

electrónico

Ingeniería Técnica Informática de Gestión

26 de Mayo del 2008