Arquitectura - Lineas de Productos

Embed Size (px)

Citation preview

  • IEEE IEEE ComputerComputer SocietySociety RegiRegin 9n 9CapCaptulo Argentinatulo Argentina

    Programa DVPPrograma DVP

    Desarrollo de Software Basado enLneas de Productos de Software

    Jons A. Montilva C., Ph.D.IEEE Member

    Universidad de Los AndesFacultad de Ingeniera

    Departamento de ComputacinMrida Venezuela

  • Desarrollo de Software basado en Lneas de Productos 2

    Contenidos

  • Desarrollo de Software basado en Lneas de Productos 3

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 4

    Qu es una Lnea de Productos de Software (LPS)

    z La idea bsica:z Ensamblaje de partes de software previamente elaboradas

    z Inspirada en los procesos de produccin de sistemas fsicos

    z Produccin de aviones, vehculos, computadores, aparatos electrnicos, etc.

    z Fundamentada en la Reutilizacin de Software

    z Asume la existencia de una industria de partes

  • Desarrollo de Software basado en Lneas de Productos 5

    Antecedentes

    z Reutilizacin de softwarez La reutilizacin de software es el proceso de implementar o

    actualizar sistemas de software usando activos de software existentes

    (Sodhi & Sodhi, 1999)

    z "Reutilizacin de software es el proceso de crear sistemas de software a partir de software existente, en lugar de desarrollarlo desde el comienzo"

    (Sametinger, 1997)

  • Desarrollo de Software basado en Lneas de Productos 6

    Antecedentes

    z Existen varias modalidades de reutilizacin utilizadas en empresas de software:z Individual

    z Oportunista

    z Gestionada: Institucionalizada, sistemtica, planificada, mejorada

    z Tradicionalmente, la reutilizacin ha estado basada en oportunidadz Los componentes se almacenan en un repositorio a la

    espera de una oportunidad de reutilizacin

  • Desarrollo de Software basado en Lneas de Productos 7

    Antecedentes

    z Desarrollo de Software Basado en Componentesz Las aplicaciones se crean mediante la integracin de

    componentes nuevos, legados o de terceros (COTS)

    Sistema de Ventas

    Cliente

    Producto

    Cuenta

  • Desarrollo de Software basado en Lneas de Productos 8

    Definiciones de Lneas de Productos de Software

    z "...se refieren a tcnicas de ingeniera para crear un portafolio de sistemas de software similares, a partir de un conjunto compartido de activos de software, usando un medio comn de produccin" (Krueger, 2006)

    z "... es un conjunto de sistemas de software que comparten un conjunto comn y gestionado de aspectos que satisfacen las necesidades especficas de un segmento de mercado o misin y que son desarrollados a partir de un conjunto comn de activos fundamentales [de software] de una manera preescrita" (Clements and Northrop, 2002)

    z "...consiste de una familia de sistemas de software que tienen una funcionalidad comn y alguna funcionalidad variable" (Gomma, 2004)z La funcionalidad comn descansa en el uso recurrente de un

    conjunto comn de activos reutilizables (requisitos, diseos, componentes, servicios web, etc.)

    z Los activos son reutilizados por todos los miembros de la familia

  • Desarrollo de Software basado en Lneas de Productos 9

    Lneas de Productos de Software (LPS)

    z Modelo Bsico de una Lnea de Productos de Software (LPS)www.softwareproductlines.com

    Produccin

    Activos de Software Productos de Software

    Decisiones deProducto

  • Desarrollo de Software basado en Lneas de Productos 10

    Modelo Bsico de una Lnea de Productos de Software

    z La entrada: Activos de Softwarez Una coleccin de partes de

    software (requisitos, diseos, componentes, casos de prueba, etc.) que se configuran y componen de una manera prescrita para producir los productos de la lnea

    z El control: Modelos de Decisin y Decisiones de Productos z Los Modelos de Decisiones

    describen los aspectos variables y opcionales de los productos de la lnea

    z Cada producto de la lnea es definido por un conjunto de decisiones (decisiones del producto)

    Produccin

    Entrada: Activos de Software

    Productos de Software

    Control: Modelos de Decisiones yDecisiones deProducto

  • Desarrollo de Software basado en Lneas de Productos 11

    Modelo Bsico de una Lnea de Productos de Software

    z El proceso de produccinz Establece los mecanismos o

    pasos para componer y configurar productos a partir de los activos de entrada

    z Las decisiones del producto se usan para determinar que activos de entrada utilizar y como configurar los puntos de variacin de esos activos

    z La salida: Productos de softwarez Conjunto de todos los

    productos que pueden o son producidos por la lnea de productos

    El proceso:Produccin

    Entrada: Activos de Software

    Salida:Productos de

    Software

    Control: Modelos de Decisiones yDecisiones deProducto

  • Desarrollo de Software basado en Lneas de Productos 12

    Beneficios

    z La entrega de productos de software de una maneraz ms rpida,

    z econmica y

    z con una mejor calidad

    z Las LPS producen mejoras en: z Tiempo de entrega del producto (time to market)

    z Costos de ingeniera

    z Tamao del portafolio de productos

    z Reduccin de las tasas de defectos

    z Calidad de los productos

  • Desarrollo de Software basado en Lneas de Productos 13

    Beneficios

    z Beneficios tcticos y estratgicos (Krueger, 2006): z Beneficios tcticos de ingeniera: z Reduccin en el tiempo promedio de creacin y entrega de

    nuevos productos

    z Reduccin en el nmero promedio de defectos por producto

    z Reduccin en el esfuerzo promedio requerido para desarrollar y mantener los productos

    z Reduccin en el costo promedio de produccin de los productos

    z Incremento en el nmero total de productos que pueden ser efectivamente desplegados y mantenidos

  • Desarrollo de Software basado en Lneas de Productos 14

    Beneficios

    z Beneficios tcticos y estratgicos (cont.): z Beneficios estratgicos de negocios

    z Reduccin en el tiempo de entrega (time-to-market) y el tiempo de retorno (time-to-revenue) de nuevos productos

    z Mejoras en el valor competitivo del producto

    z Mrgenes mayores de ganancias

    z Mejor calidad de los productos

    z Mejoras en la reputacin de la empresa

    z Mayor escalabilidad del modelo de negocios en trminos de productos y mercados

    z Mayor agilidad para expandir el negocio a nuevos mercados

    z Reduccin de riesgos en la entrega de productos

    z Algunas empresas han reportado mejoras que van en el rango de factores de 3 a 50 en los beneficios discutidos anteriormente

  • Desarrollo de Software basado en Lneas de Productos 15

    Aspectos fundamentales

    z El paradigma de desarrollo de software LPS requiere que las empresas que lo adopten consideren:z Aspectos conceptuales

    z Conceptos en los que las LPS se fundamentan

    z Aspectos tecnolgicosz Qu tecnologas son fundamentales para desarrollar y mantener activos

    y productos de software

    z Aspectos metodolgicosz Cmo desarrollar y mantener los activos y productos de software

    z Aspectos organizativosz Cmo debe la empresa organizarse internamente

    z Aspectos gerencialesz Cmo gestionar los proyectos de desarrollo de activos y productos

  • Desarrollo de Software basado en Lneas de Productos 16

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 17

    Evolucin de la Reutilizacin de Software

    Reutilizacin de Software

    Desarrollo de Softwarepara reutilizacin

    Desarrollo de Softwarecon reutilizacin

    Ingeniera deDominio

    Ingeniera deAplicaciones

    Desarrollo de SoftwareBasado en Componentes

    Desarrollo de SoftwareBasado en

    Lneas de Productos

  • Desarrollo de Software basado en Lneas de Productos 18

    Reutilizacin de software

    z La reutilizacin de activos de software en LPS tiene varias caractersticas:z Es estratgica

    z Consolida lo comn entre la lnea de productos

    z Maneja estratgicamente la variacin entre los productos de la lnea

    z Elimina la duplicacin de esfuerzos de ingeniera

    z Es predictivaz La reutilizacin de activos se da en uno o ms productos sobre

    una lnea bien definida

    z Se reutilizan arquitecturas de software, en lugar de reutilizar componentes de manera oportunista

    z Es gestionadaz Es sistemtica, planificada, institucionalizada y mejorada

  • Desarrollo de Software basado en Lneas de Productos 19

    Activos de software reutilizable

    z Un activo de software reutilizable es un producto de software diseado expresamente para ser utilizadomltiples veces en el desarrollo de diferentes sistemas o aplicaciones

    z Un activo de software puede ser:9 Una arquitectura de dominio9 Un esquema de base de datos9 Una especificacin de prueba9 La documentacin de un

    sistema9 Un plan

    9 Un componente de software 9 Una especificacin de

    requisitos9 Un modelo de negocios9 Una especificacin de diseo9 Un algoritmo9 Un patrn de diseo

  • Desarrollo de Software basado en Lneas de Productos 20

    Componentes de software reutilizable

    z Un componente de software reutilizable esz Una pieza [de software] funcional que es liberada

    independientemente [de otras] y que proporciona acceso a sus servicios a travs de sus interfaces [Brown, 2000]

    z Puede ser liberado (desplegado e instanciado) independientemente de otros:

    z Ofrece servicios a travs de sus interfaces

    z Para utilizar su funcionalidad se emplean sus interfaces

  • Desarrollo de Software basado en Lneas de Productos 21

    Componentes de software reutilizable (CSR)

    z Definicin del CBDi Forum [1999]:Un componente es una pieza de software que describe y/o libera un conjunto de servicios que son usados slo a travs de interfaces bien definidas

    z Caractersticas esenciales de un CSR:z Identificable

    z Autocontenido

    z Rastreable a travs de su ciclo de desarrollo

    z Reemplazable por otro componente

    z Accesible solamente a travs de su interfaz

    z Inmutabilidad de sus servicios

    z Documentacin de sus servicios

    z Mantenido sistemticamente

  • Desarrollo de Software basado en Lneas de Productos 22

    Componentes de software reutilizable (CSR)

    z Segn su modificabilidadz Caja negra

    z Caja blancaz Segn su granularidad

    z Componentes de uso especfico

    z Componentes de negocio

    z Marcos (frameworks)

    z Componentes de aplicacinz Segn su fabricante

    z Componentes hechos en casa

    z COTS Component Off TheShelf

    z Segn la tecnologa usadaz Componentes imperativos

    z Mdulos, funciones

    z Componentes OOz Clases

    z Componentes distribuidosz Componentes CORBA

    z Componentes .NET

    z Componentes J2EE

    z Servicios web

    Tipos de CSR

  • Desarrollo de Software basado en Lneas de Productos 23

    Dominios y familias

    z Un dominiodominio es un rea de aplicacin de productosde software que:z estn centradas en torno a un cuerpo de conocimientos

    z tienen una economa de alcance asociada

    z Ocurre cuando construir un activo y usarlo en mltiplesproductos ocasiona ms beneficios que crear el activopara cada producto

    z Pueden dividirse en subdominios

    Redeselctricas

    Acueductos Oloductos

    Redes de Servicios

    Otrasredes

  • Desarrollo de Software basado en Lneas de Productos 24

    Dominios y familias

    z Una familiafamilia de de productosproductos de software es un conjunto de productos de software asociados a un dominio determinado

    z Los miembros de la familia comparten aspectoscomunes tales como:z un diseo arquitectnico comn

    z un conjunto componentes reutilizables

    z capacidades y servicios comunes

    z tecnologas comunes

  • Desarrollo de Software basado en Lneas de Productos 25

    Lneas de productos de software (LPS)

    z Una LPS es una familia de productos de software que: z tiene un conjunto de aspectos gestionados que son

    comunes a todos los miembros de la familia

    z los productos de la lnea son desarrollados a partir de un conjunto de activos de software reutilizables

    z Una familia de productos de software tiene: z Aspectos comunes que son compartidos por todos

    sus productos

    z Aspectos variables que establecen diferencias entre los productos

  • Desarrollo de Software basado en Lneas de Productos 26

    Lneas de productos de software (LPS)

    z El objetivo principal de una LPS es:z Reducir el tiempo, esfuerzo, costo y complejidad de

    crear y mantener los productos de la lnea mediante:z La capitalizacin de los aspectos comunesaspectos comunes de la lnea de

    productos A travs de la consolidacin y reutilizacin de los activos de entrada a

    la lnea

    z El manejo de los aspectos variablesaspectos variables de los productos de la lnea A travs de los puntos de variacin de los activos y los modelos de

    decisin

    (Krueger, 2006)

  • Desarrollo de Software basado en Lneas de Productos 27

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 28

    Arquitecturas de LPS

    z "Una arquitectura de software es la estructura o estructuras de un sistema que comprende los componentes del software, las propiedades visibles externamente de estos componentes, y las relaciones entre ellos"

    (Bass, 1998)

    z Las propiedades externas de los componentes son:z sus interfaces (APIs) y

    z sus caractersticasz rendimiento, manipulacin

    de errores, uso compartido de recursos, etc.

    id Component Model

    Componente 1

    Componente 2

    Componente 3

    Componente 4

    Componente 5

  • Desarrollo de Software basado en Lneas de Productos 29

    Arquitecturas de LPS

    z La arquitectura de una LPS es una arquitectura de software genrica z Describe la estructura de toda la familia de productos y no

    solamente la de un producto particular

    z Captura los aspectos comunes y variables de una familia de productos de softwarez Los aspectos comunes de la arquitectura son capturados por los

    componentes de software que son comunes a toda la familia

    z Los aspectos variables de la arquitectura son capturados por loscomponentes de software que varan entre los miembros de la familia

    z Tambin denominada arquitectura de dominio

    z La arquitectura LPS debe ser instanciada cada vez que se desarrolla un producto de la lnea

  • Desarrollo de Software basado en Lneas de Productos 30

    Arquitecturas de LPS

    z Una arquitectura LPS es instanciada a travs de mecanismos de variabilidad:z Herencia

    z Ej. Suplantacin de un mtodo heredado de una clase en un componente

    z Puntos de extensinz Ej. Se agrega nueva funcionalidad o comportamiento a un componente

    z Parametrizacinz El comportamiento de un componente puede ser parametrizado a tiempo de

    diseo y definido a tiempo de implementacin

    z Ej. macros o templates

    z Configuracinz Seleccin y "deseleccin" de los componentes de la arquitectura

    z Seleccin a tiempo de compilacin z La implementacin de una funcionalidad es seleccionada, entre varias

    posibles, al momento de la compilacin del componente o de la aplicacin

  • Desarrollo de Software basado en Lneas de Productos 31

    Repositorios LPS

    z Las lneas de productos de software requieren almacenar sus activos de software en repositorios

    z Un repositorio LPS es una base de datosespecializada que:z almacena activos de software y

    z facilita la recuperacin y el mantenimiento de los activosde software

    z Su objetivo es asegurar la disponibilidad de activos paraapoyar el desarrollo de productos de la LPS

    Activos deSoftware

  • Desarrollo de Software basado en Lneas de Productos 32

    Repositorios LPS

    z El repositorio mantiene informacin relevante de cada activo usado en la LPS:z Especificacin tcnica del activo

    z Historia o registro de uso

    z Clasificacin del activo

    z Documentacin del activo

    Activos deSoftware

  • Desarrollo de Software basado en Lneas de Productos 33

    Repositorios LPS

    z Segn su alcancez Locales

    z Son desarrollados y reusadosinternamente por unaorganizacin o empresa

    z Globales o de uso comercialz Disponibles a terceros bajo

    adquisicin o subscripcin

    z Ejemplos: COTS, ServiciosWeb

    z Segn su aplicabilidadz De dominio especfico

    z De dominio general

    z Segn su propsitoz De reuso

    z Permiten el almacenamientoy recuperacin de activos de software

    z De referenciaz Facilitan la localizacin de

    activos en otros repositorios

    z Ejemplo: UDDIs

    Tipos de Repositorios LPS

  • Desarrollo de Software basado en Lneas de Productos 34

    reas de prcticas y patrones para LPS

    z La introduccin del paradigma LPS en una empresa de software es un proceso complejo, gradual y lleno de dificultades

    z Para obtener los beneficios que este paradigma ofrece, una empresa debe tomar en consideracin diferentes factores:z tecnolgicos,

    z metodolgicos,

    z organizacionales y

    z gerenciales

    z Clements y Northrop (2002) definen un conjunto de reas de reas de prprcticascticas y patronespatronesz Son esenciales considerar para asegurar el xito de la implantacin del

    paradigma LPS en una empresa

  • Desarrollo de Software basado en Lneas de Productos 35

    reas de Prctica LPS

    z Un rea de prrea de prcticactica es una coleccin de actividades que una empresa debe ejecutar y dominar para implantar exitosamente una LPS

    z Estas reas de prctica describen actividades que son normalmente recomendadas por el SEI para el desarrollo exitoso de software

    z Guardan una correspondencia estrecha con las reas de procesos definidas por el CMMI-SW

  • Desarrollo de Software basado en Lneas de Productos 36

    reas de Prctica LPS

    z Tres tipos de reas de prcticas LPS recomendadas por Clements y Northrop (2002):

    z reas de prctica de Ingeniera de Softwarez Ejemplos: Definicin y evaluacin de una arquitectura LPS

    z reas de prctica de Gestin Tcnica z Ejemplo: Planificacin de los proyectos de desarrollo de

    componentes de productos (aplicaciones)

    z reas de prctica de Gestin Organizacionalz Ejemplo: Estructuracin de la empresa

  • Desarrollo de Software basado en Lneas de Productos 37

    Patrones LPS

    z Un patrpatrnn es una regla de tres partes, las cuales expresan una relacin entre un contexto, un problema y una solucin (Alexander, 1979)

    z Los patrones LPS plantean soluciones a problemas recurrentes relacionados con las situaciones organizacionales de las LPS

    z Las soluciones son planteadas en trminos de las reas de prcticas y sus relaciones

    z Un ejemplo: El patrn "Que Construir"

  • Desarrollo de Software basado en Lneas de Productos 38

    Un ejemplo: El patrn "Que Construir"

    z El Contexto: z Una empresa ha decidido crear una lnea de productos de

    software y conoce bien el dominio de aplicacin de los productos

    z El Problema:z Determinar que productos debern ser incluidos en la lnea de

    productos

    z La Solucin:z Para determinar que productos producir, se requiere informacin

    relacionada con: z El dominio de aplicacin, la tecnologa y el mercado

    z La justificacin del negocio

    z El proceso para describir el conjunto de productos que sern incluidos en la lnea de productos

  • Desarrollo de Software basado en Lneas de Productos 39

    Un ejemplo: El patrn "Que Construir"

    z Las reas de prctica requeridas por la solucin:z Anlisis del Mercado

    z Ayuda a entender el mercado que tendr los productos de la lnea: quproductos tienen mayor demanda, cul es la competencia, cul es el tamao del mercado y cuales las oportunidades

    z Entendimiento de dominios relevantesz Proporciona un modelo del dominio, los requisitos del dominio y los

    aspectos comunes y variables a todos los sistemas (aplicaciones) que forman el dominio

    z Proyeccin tecnolgicaz Permite predecir que productos que productos pueden llegar a ser

    factibles en el futuro cercano

    z Construccin de un caso de negociosz Proporciona una justificacin de la seleccin de productos y del enfoque

    se usar para construirlos

    z Definicin del alcance (scoping)z Describe cuales productos sern incluidos en la lnea de productos y

    cuales no

  • Desarrollo de Software basado en Lneas de Productos 40

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 41

    reas de Prctica de Ingeniera de Software

    z Definicin de la arquitectura LPS

    z Evaluacin de la arquitectura LPS

    z Desarrollo de componentesz Utilizacin de COTSz Minera de activos

    existentes

    z Ingeniera de Requisitosz Integracin de sistemas de

    softwarez Pruebasz Entendimiento de dominios

    relevantes

    z Los aspectos metodolgicos de las LPS involucran la aplicacin de un conjunto de prcticas de ingeniera:

  • Desarrollo de Software basado en Lneas de Productos 42

    Los procesos bsicos de una LPS

    z Procesos de negocio de una LPS

    od Procesos LPS

    Ingeniera deDominio

    Ingeniera deAplicaciones

    Gestin Tecnolgica

    Gestin Organizacional

    Activos de software

    Productos de software

    Procesos de desarrollo

    Organizacin de la empresa

  • Desarrollo de Software basado en Lneas de Productos 43

    Ingeniera de Dominio

    z La Ingeniera de Dominio (ID) captura informacin y representa el conocimiento sobre un dominio determinado, con el fin de:

    z crear activos de software reutilizables en el desarrollo de cualquier nuevoproducto de una LPS

    z Productos de la ID:z Definiciones de dominios (descripciones del contexto)

    z Modelos del dominio

    z Modelos de requisitos del dominio

    z Modelos arquitectnicos (arquitecturas de dominio)

    z Ontologas del dominio

    z Lenguajes del dominio

    z Estndares del dominio

  • Desarrollo de Software basado en Lneas de Productos 44

    Ingeniera de Dominio

    z Actividades principales de la Ingeniera de Dominioz Anlisis de Aspectos:

    z Analiza la familia para determinar los requisitos que son comunes, opcionales y diferentes a todos sus miembros

    z Diseo de la Arquitectura LPS:

    z Produce una arquitectura de dominio la cual tiene: Componentes comunes a todos los miembros de la familia Componentes opcionales que son requeridos por algunos miembros Componentes variantes de los cuales algunos miembros de la familia emplean

    distintas versiones Tienen puntos de variacin que permiten configurarlos

    z Implementacin del Dominioz Consiste en la creacin y almacenamiento de los activos de software que se

    emplearn para producir los productos de software

  • Desarrollo de Software basado en Lneas de Productos 45

    Ingeniera de Aplicaciones

    z La Ingeniera de Aplicaciones (IA) se encarga del desarrollo de los productos de la LPS a travs de:z la reutilizacin de activos de software

    z planes de produccin

    z La arquitectura de dominio es empleada como un modelo de referencia para disear los productos de la LPS

    z El repositorio LPS provee los activos requeridos durante el desarrollo de cada nuevo producto de la LPS

  • Desarrollo de Software basado en Lneas de Productos 46

    Modelos de procesos para LPS

    z El Modelo TWINz El mtodo WATCHz Modelo WATCH Component

    z Modelo WATCH App

    z El modelo del Software Engineering Institute (SEI)z El modelo ESPLEPz Evolutionary Software Product Lines Engineering Process

  • Desarrollo de Software basado en Lneas de Productos 47

    El Modelo TWIN extendidoz Modelo empleado en el Desarrollo de Software basado en

    Componentes

    Anlisisde

    aplicacionesdel dominio

    Adquisicinde

    conocimientodel

    dominio

    Modeladodel

    dominio

    Definicinde requisitos.del dominio

    Anlisis del Dominio

    Diseo de laarquitecturade dominio

    Evaluacinde la

    arquitectura

    Diseo del Dominio Ingeniera deComponentes

    Desarrollode

    componentes

    Gestindel

    repositoriode comp.

    Ingeniera de Dominio

    Anlisis yespecificacin

    derequisitos

    Diseo de laarquitectura dela aplicacin

    Bsqueda decomponentes

    Desarrollo denuevos

    componentes

    Adaptacin decomponentes

    Integracinde

    componentes

    Pruebasde la

    aplicacin

    Ingeniera de Aplicaciones

    Sistema de Gestinde ASR

  • Desarrollo de Software basado en Lneas de Productos 48

    El Mtodo WATCHz Modelo propuesto en la Universidad de Los Andes

    (Venezuela) para el desarrollo de aplicaciones empresarialesz Consta de dos componentes metodolgicos:

    Especificacindel

    Componente

    Certificacindel

    Componente

    Liberacindel

    Componente

    Aprovisionamiento

    Pruebasdel

    Componente

    Modeladode

    Negocios

    Ingenierade Requisitos

    DiseoArquitectnico

    Especificacinde

    Componentes

    Aprovisionamientode

    Componentes

    Ensamblajede Componentes

    Pruebas dela Aplicacin

    Entrega dela Aplicacin

    Ingeniera de Dominio:Desarrollo de Componentes

    Ingeniera de Aplicaciones:Desarrollo de Aplicaciones Empresariales

    WATCHComponent

    WATCHApplication

  • Desarrollo de Software basado en Lneas de Productos 49

    El Mtodo WATCH-Component

    z Modelo de procesos para el desarrollo de componentes de software reutilizables

  • Desarrollo de Software basado en Lneas de Productos 50

    El mtodo WATCH-Application

    z Modelo de procesos para el desarrollo de aplicaciones empresariales (Montilva y Barrios, 2004)

    Modeladodel Negocio

    Ingenierade Requisitos

    DiseoArquitectnico

    Diseode

    Componentes

    Aprovisionamientode Componentes

    Ensamblajede

    Componentes

    Pruebas de la Aplicacin

    Entrega de la Aplicacin

    ProcesosGerenciales

    Operaciny

    Mantenimiento

  • Desarrollo de Software basado en Lneas de Productos 51

    El modelo del SEI

    z Modelo de procesos de LPS desarrollado en el Software Engineering Institute (SEI)

    z Disponible en http://www.sei.cmu.edu/productlines/framework.html

  • Desarrollo de Software basado en Lneas de Productos 52

    El modelo del SEI

    z Desarrollo de Activos Fundamentales (Ingeniera de Dominio)z Objetivo:

    z Establecer la capacidad de produccin para los productos mediante el desarrollo de activos de software reutilizables

    z Salidas:

    z Alcance de la lnea

    z Activos

    z Plan de Produccin

  • Desarrollo de Software basado en Lneas de Productos 53

    El modelo del SEI

    z Desarrollo de Productos (Ingeniera de Aplicaciones)z Objetivo:

    z Elaborar los productos de la lnea a partir del ensamblaje de activos fundamentales siguiendo el plan de produccin

    z Salida:

    z Productos acabados de la lnea

  • Desarrollo de Software basado en Lneas de Productos 54

    El modelo del SEI

    z Gestin de la Lnea de Productos (Management)z Objetivo:

    z Proporcionar los recursos, coordinar y supervisar el desarrollo de activos y productos

    z Dividida en:

    z Gestin tcnica Orientada a los grupos que

    desarrollan activos y productos

    z Gestin organizacional Orientada a los aspectos

    organizacionales (estructura, relaciones, recursos, financiamiento, etc.)

    Organizational Management

  • Desarrollo de Software basado en Lneas de Productos 55

    El modelo SPLEP

    z SPLEP = Evolutionary Software Product Line EngineeringProcess (Gooma, 2004)

  • Desarrollo de Software basado en Lneas de Productos 56

    El modelo SPLEP

    z Fases de la Ingeniera de Lnea de Productos del mtodo SPLEP (Gooma, 2004)

  • Desarrollo de Software basado en Lneas de Productos 57

    El modelo SPLEP

    z Fases de la Ingeniera de Aplicaciones del mtodo SPLEP (Gooma, 2004)

  • Desarrollo de Software basado en Lneas de Productos 58

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 59

    Aspectos Organizacionales

    z Estn relacionados con:z la organizacin de la empresa y

    z las actividades que ella debe implantar para asegurar el aprovechamiento eficaz y eficiente del paradigma LPS

  • Desarrollo de Software basado en Lneas de Productos 60

    reas de prctica de Gestin Organizacional

    z Construccin de casos de negocio

    z Gestin de relaciones con los clientes

    z Desarrollo de una estrategia de adquisicin

    z Anlisis de mercadosz Operaciones

    z Planificacin organizacionalz Gestin de riesgos

    organizacionalesz Estructuracin de la

    empresaz Proyeccin de tecnologasz Capacitacin de personal

    z Los aspectos organizacionales de las LPS involucran la aplicacin de un conjunto de prcticas de gestin:

  • Desarrollo de Software basado en Lneas de Productos 61

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 62

    Aspectos Gerenciales

    z Estn relacionados con la aplicacin de los procesos gerenciales en las actividades de Ingeniera de Dominio e Ingeniera de Aplicacin de una LPS z Planificacin de Proyectos

    z Organizacin de Grupos de Trabajoz Grupos de Soporte Administracin de Repositorios de Activos de Software Grupos de Mantenimiento de Aplicaciones

    z Grupos de Desarrollo Grupos de desarrollo de componentes Grupos de desarrollo de aplicaciones

    z Direccin

    z Administracin de recursos

    z Control

  • Desarrollo de Software basado en Lneas de Productos 63

    reas de prctica de Gestin Tcnica

    z Gestin de la Configuracinz Recoleccin de datos,

    mtricas y seguimientoz Anlisis de

    hacer/comprar/descubrir/encomendar (aprovisionamiento de activos)

    z Definicin de procesosz Alcancez Planificacin tcnicaz Gestin de riesgos tcnicosz Soporte de herramientas

    z Los aspectos gerenciales de las LPS involucran la aplicacin de un conjunto de prcticas de gestin tcnica:

  • Desarrollo de Software basado en Lneas de Productos 64

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 65

    Conclusiones

    z Las Lneas de Productos de Software representan el estado del arte en Reutilizacin del Software

    z La implantacin del paradigma LPS en una empresa es un proceso complejo

    z Para manejar esta complejidad se requiere considerar diferentes aspectos:z Conceptuales

    z Tecnolgicos

    z Metodolgicos

    z Organizacionales

    z Gerenciales

  • Desarrollo de Software basado en Lneas de Productos 66

    Desarrollo de Software Basado en Lnea de Productos

  • Desarrollo de Software basado en Lneas de Productos 67

    Desarrollo de Software Basado en Lnea de Productos

    Jons Montilva, 2006

    [email protected]://www.webdelprofesor.ula.ve/ingeniera/jonas