Actualizado el 21 de Marzo del 2018 (Publicado el 15 de Octubre del 2017)
1.040 visualizaciones desde el 15 de Octubre del 2017
609,6 KB
67 paginas
Creado hace 18a (10/10/2006)
IEEE Computer
IEEE
Computer Society
Society RegiRegióón 9n 9
CapCapíítulo Argentina
tulo Argentina
Programa DVP
Programa DVP
Desarrollo de Software Basado en
Líneas de Productos de Software
Jonás A. Montilva C., Ph.D.
IEEE Member
Universidad de Los Andes
Facultad de Ingeniería
Departamento de Computación
Mérida – Venezuela
Contenidos
Desarrollo de Software basado en Líneas de Productos
2
Desarrollo de Software Basado en Línea de Productos
Desarrollo de Software basado en Líneas de Productos
3
Qué es una Línea de Productos de Software (LPS)
(cid:122) La idea básica:
(cid:122) Ensamblaje de partes de software previamente elaboradas
(cid:122) Inspirada en los procesos de producción de sistemas
físicos
(cid:122) Producción de aviones, vehículos, computadores, aparatos
electrónicos, etc.
(cid:122) Fundamentada en la Reutilización de Software
(cid:122) Asume la existencia de una industria de partes
Desarrollo de Software basado en Líneas de Productos
4
Antecedentes
(cid:122) Reutilización de software
(cid:122) “La reutilización de software es el proceso de implementar o
actualizar sistemas de software usando activos de software
existentes”
(Sodhi & Sodhi, 1999)
(cid:122) "Reutilización 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 Líneas de Productos
5
Antecedentes
(cid:122) Existen varias modalidades de reutilización
utilizadas en empresas de software:
(cid:122) Individual
(cid:122) Oportunista
(cid:122) Gestionada:
(cid:131)
Institucionalizada, sistemática, planificada, mejorada
(cid:122) Tradicionalmente, la reutilización ha estado basada
en oportunidad
(cid:122) Los componentes se almacenan en un repositorio a la
espera de una oportunidad de reutilización
Desarrollo de Software basado en Líneas de Productos
6
Antecedentes
(cid:122) Desarrollo de Software Basado en Componentes
(cid:122) Las aplicaciones se crean mediante la integración de
componentes nuevos, legados o de terceros (COTS)
<<interfaz>>
<<componente de negocio>>
Cliente
<<componente de proceso>>
Sistema de Ventas
<<interfaz>>
<<componente de negocio>>
Producto
<<interfaz>>
<<componente de negocio>>
Cuenta
Desarrollo de Software basado en Líneas de Productos
7
Definiciones de Líneas de Productos de Software
(cid:122) "...se refieren a técnicas de ingeniería para crear un portafolio de
sistemas de software similares, a partir de un conjunto
compartido de activos de software, usando un medio común de
producción" (Krueger, 2006)
(cid:122) "... es un conjunto de sistemas de software que comparten un
conjunto común y gestionado de aspectos que satisfacen las
necesidades específicas de un segmento de mercado o misión y
que son desarrollados a partir de un conjunto común de activos
fundamentales [de software] de una manera preescrita"
(Clements and Northrop, 2002)
(cid:122) "...consiste de una familia de sistemas de software que tienen
una funcionalidad común y alguna funcionalidad variable"
(Gomma, 2004)
(cid:122) La funcionalidad común descansa en el uso recurrente de un
conjunto común de activos reutilizables (requisitos, diseños,
componentes, servicios web, etc.)
(cid:122) Los activos son reutilizados por todos los miembros de la familia
Desarrollo de Software basado en Líneas de Productos
8
Líneas de Productos de Software (LPS)
(cid:122) Modelo Básico de una Línea de Productos de Software (LPS)
www.softwareproductlines.com
Decisiones de
Producto
Producción
Activos de
Software
Productos de
Software
Desarrollo de Software basado en Líneas de Productos
9
Modelo Básico de una Línea de Productos de Software
(cid:122) La entrada: Activos de
Software
(cid:122) Una colección de partes de
software (requisitos, diseños,
componentes, casos de
prueba, etc.) que se configuran
y componen de una manera
prescrita para producir los
productos de la línea
(cid:122) El control: Modelos de
Decisión y Decisiones de
Productos
(cid:122) Los Modelos de Decisiones
describen los aspectos
variables y opcionales de los
productos de la línea
(cid:122) Cada producto de la línea es
definido por un conjunto de
decisiones (decisiones del
producto)
Control:
Modelos de
Decisiones y
Decisiones de
Producto
Producción
Entrada:
Activos de
Software
Productos de
Software
Desarrollo de Software basado en Líneas de Productos
10
Modelo Básico de una Línea de Productos de Software
(cid:122) El proceso de producción
(cid:122) Establece los mecanismos o
pasos para componer y
configurar productos a partir
de los activos de entrada
(cid:122) Las decisiones del producto se
usan para determinar que
activos de entrada utilizar y
como configurar los puntos de
variación de esos activos
Control:
Modelos de
Decisiones y
Decisiones de
Producto
El proceso:
Producción
Entrada:
Activos de
Software
Salida:
Productos de
Software
(cid:122) La salida: Productos de
software
(cid:122) Conjunto de todos los
productos que pueden o son
producidos por la línea de
productos
Desarrollo de Software basado en Líneas de Productos
11
Beneficios
(cid:122) La entrega de productos de software de una manera
(cid:122) más rápida,
(cid:122) económica y
(cid:122) con una mejor calidad
(cid:122) Las LPS producen mejoras en:
(cid:122) Tiempo de entrega del producto (time to market)
(cid:122) Costos de ingeniería
(cid:122) Tamaño del portafolio de productos
(cid:122) Reducción de las tasas de defectos
(cid:122) Calidad de los productos
Desarrollo de Software basado en Líneas de Productos
12
Beneficios
(cid:122) Beneficios tácticos y estratégicos (Krueger, 2006):
(cid:122) Beneficios tácticos de ingeniería:
(cid:122) Reducción en el tiempo promedio de creación y entrega de
nuevos productos
(cid:122) Reducción en el número promedio de defectos por producto
(cid:122) Reducción en el esfuerzo promedio requerido para desarrollar
y mantener los productos
(cid:122) Reducción en el costo promedio de producción de los
productos
(cid:122) Incremento en el número total de productos que pueden ser
efectivamente desplegados y mantenidos
Desarrollo de Software basado en Líneas de Productos
13
Beneficios
(cid:122) Beneficios tácticos y estratégicos (cont.):
(cid:122) Beneficios estratégicos de negocios
(cid:122) Reducción en el tiempo de entrega (time-to-market) y el tiempo de
retorno (time-to-revenue) de nuevos productos
(cid:122) Mejoras en el valor competitivo del producto
(cid:122) Márgenes mayores de ganancias
(cid:122) Mejor calidad de los productos
(cid:122) Mejoras en la reputación de la empresa
(cid:122) Mayor escalabilidad del modelo de negocios en términos de
productos y mercados
(cid:122) Mayor agilidad para expandir el negocio a nuevos mercados
(cid:122) Reducción de riesgos en la entrega de productos
(cid:122) 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 Líneas de Productos
14
Aspectos fundamentales
(cid:122) El paradigma de desarrollo de software LPS requiere que las
empresas que lo adopten consideren:
(cid:122) Aspectos conceptuales
(cid:122) Conceptos en los que las LPS se fundamentan
(cid:122) Aspectos tecnológicos
(cid:122) Qué tecnologías son fundamentales para desarrollar y mantener activos
y productos de software
(cid:122) Aspectos metodológicos
(cid:122) Cómo desarrollar y mantener los activos y productos de software
(cid:122) Aspectos organizativos
(cid:122) Cómo debe la empresa organizarse internamente
(cid:122) Aspectos gerenciales
(cid:122) Cómo gestionar los proyectos de desarrollo de activos y productos
Desarrollo de Software basado en Líneas de Productos
15
Desarrollo de Software Basado en Línea de Productos
Desarrollo de Software basado en Líneas de Productos
16
Evolución de la Reutilización de Software
Reutilización de Software
Desarrollo de Software
Basado en
Líneas de Productos
Desarrollo de Software
Basado en Componentes
Ingeniería de
Dominio
Ingeniería de
Aplicaciones
Desarrollo de Software
para reutilización
Desarrollo de Software
con reutilización
Desarrollo de Software basado en Líneas de Productos
17
Reutilización de software
(cid:122) La reutilización de activos de software en LPS tiene varias
características:
(cid:122) Es estratégica
(cid:122) Consolida lo común entre la línea de productos
(cid:122) Maneja estratégicamente la variación entre los productos de la
línea
(cid:122) Elimina la duplicación de esfuerzos de ingeniería
(cid:122) Es predictiva
(cid:122) La reutilización de activos se da en uno o más productos sobre
una línea bien definida
(cid:122) Se reutilizan arquitecturas de software, en lugar de reutilizar
componentes de manera oportunista
(cid:122) Es gestionada
(cid:122) Es sistemática, planificada, institucionalizada y mejorada
Desarrollo de Software basado en Líneas de Productos
18
Activos de software reutilizable
(cid:122) Un activo de software reutilizable es un producto de
s
Comentarios de: Desarrollo de Software Basado en Líneas de Productos de Software (0)
No hay comentarios