Vous êtes sur la page 1sur 4

LINEAS DE PRODUCCION

La arquitectura de software es el resultado de un esfuerzo importante y su


desarrollo puede representar una parte considerable del trabajo que se realiza
en un proyecto de desarrollo. De lo anterior surge la pregunta, habr manera
de aprovechar el esfuerzo que se hace respecto al desarrollo de la arquitectura
de un sistema en el desarrollo de otros sistemas similares? Las lneas de
productos de software buscan justamente lograr promover la reutilizacin
sistemtica de artefactos de los cuales la arquitectura es uno de los ms
importantes. Este enfoque busca tener distintos beneficios asociados a la
reutilizacin como pueden ser la reduccin del tiempo de desarrollo (pues ya
no se tienen que desarrollar ciertas partes del sistema), y la mejora de la
calidad (pues se incorporan partes que ya han sido verificadas previamente).
En esta ocasin hablaremos al respecto de ste tema.

Reutilizacin
En el desarrollo de software, la reutilizacin se refiere a tomar uno o ms
artefactos realizados como parte de un desarrollo y utilizarlos nuevamente en
el desarrollo de otro sistema. La reutilizacin no es un concepto nuevo y a lo
largo de la historia del desarrollo de sistemas, han aparecido distintas tcnicas
que han facilitado de alguna manera la reutilizacin de artefactos de desarrollo
de granularidad cada vez mayor, como lo muestra la figura 1:

An con las tcnicas antes mencionadas, de manera general, la reutilizacin


frecuentemente se realiza de manera oportunista, esto es que si durante el
desarrollo los miembros del equipo de desarrollo ven la posibilidad de reutilizar
algn artefacto entonces lo hacen, pero eso no ocurre de manera sistemtica.
Dada su naturaleza, la reutilizacin oportunista presenta beneficios muy
variables, pues todo depende de que en un momento dado se identifiquen
posibles artefactos que puedan ser reutilizados. A nivel de una organizacin, lo
deseable es lograr un enfoque de reutilizacin sistemtica con el fin de lograr
diversos beneficios asociados con retomar artefactos previamente construidos
en cada desarrollo nuevo que se realiza.

Lneas de productos
El concepto de lneas de productos busca justamente lograr un enfoque de
reutilizacin sistemtico dentro de una organizacin de desarrollo. ste es un
concepto que se origin, y que se usa frecuentemente, en industrias distintas
al software. En la industria automotriz, por ejemplo, es comn que un
fabricante produzca distintas variantes de un vehculo (o productos) a partir de
una base comn que se reutiliza en todas estas variantes.

De acuerdo al SEI (Software Engineer Institute), una lnea de productos de


software se refiere a un conjunto de sistemas de software que comparten
caractersticas y que son desarrollados a partir de un conjunto comn de
bienes ncleo (core assets). De la anterior definicin es importante subrayar
que los productos dentro de la lnea de productos son los distintos sistemas y
que los bienes ncleo son las partes reutilizables que permitirn desarrollar los
productos. Los bienes ncleo son la base de la lnea de productos e incluyen
entre otros la arquitectura, componentes reutilizables, modelos de dominio,
requerimientos, documentacin, planes de prueba, etc. Un aspecto importante
a considerar dentro de la lnea de productos es que se debe establecer un
alcance en donde se describe qu productos son parte de la lnea.

Actividades del desarrollo de lneas de producto


Tambin de acuerdo al SEI, el desarrollo de lneas de productos involucra tres
actividades principales: el desarrollo de los bienes ncleo, el desarrollo de los
productos y la administracin, y estas actividades estn ntimamente ligadas
entre ellas, como se muestra en la figura 2:

A continuacin se describen estas actividades en mayor detalle:

El desarrollo de bienes ncleo se refiere al establecimiento de las partes que


sern reutilizadas. Cada uno de estos bienes debe ir acompaado de un

proceso que explique la manera en que cada parte se usa al momento de


incorporarla en un producto especfico. Por otra parte, se establecen planes de
produccin que describen la manera en que los productos especficos son
generados a partir de los bienes ncleo.

El desarrollo de productos cubre el objetivo ltimo de la lnea de producto:


producir sistemas especficos dentro del alcance definido a partir de los bienes
ncleo. Los insumos para esta actividad son los bienes ncleo, los procesos
asociados a los bienes, los planes de produccin y los requerimientos
especficos a cada producto.
La administracin juega un papel fundamental en la implantacin de una lnea
de productos. La administracin ocurre a un nivel tcnico y organizacional. A
nivel tcnico, cubre tanto la supervisin del desarrollo de bienes ncleo como
de productos especficos. A nivel organizacional orquesta el esfuerzo general
de la lnea de productos.
Arquitectura y lneas de producto
La arquitectura es un elemento clave dentro de la coleccin de bienes ncleo
pues ser compartida por los distintos productos de una lnea particular. La
arquitectura de una lnea de productos es distinta a una arquitectura tpica
pues para permitir la construccin de distintos productos por encima de ella,
debe definirse una serie de puntos de variacin que son necesarios para poder
crear los distintos productos. En este tipo de arquitecturas, uno de los atributos
de calidad ms influyentes es entonces el que sea modificable.

Un ejemplo
Un ejemplo prctico de lnea de productos puede observarse en la plataforma
Eclipse que sirve de base al popular entorno de desarrollo (IDE) del mismo
nombre (http://www.eclipse.org/pla- tform/). La plataforma Eclipse est basada
en una arquitectura extensible a base de plug-ins y la plataforma establece una
serie de puntos de extensin en los cuales se conectan dichos plug-ins. Los
puntos de extensin que provee la plataforma representan los puntos de
variacin de la arquitectura. Los bienes ncleo son los distintos elementos que
conforman a la plataforma Eclipse y son retomados para construir una gran
variedad de productos especficos. Los productos especficos se construyen a
partir de plug-ins que son conectados a la plataforma. Un aspecto interesante
de Eclipse es que los plug-ins pueden, a su vez, definir puntos de extensin por
lo cual un producto especfico, conformado por la plataforma Eclipse y una
serie de plug-ins, puede volverse a su vez un conjunto de bienes ncleo para
una lnea de productos ms especializada. Un ejemplo de esto se puede
observar en un producto como EclipseUML, una herramienta UML construida
por encima de la plataforma Eclipse (http://www.ejb3.org/). De la lnea de
producto particular de EclipseUML se derivan dos productos especficos: el

Viewer y el Editor. La parte administrativa de la lnea de producto que


establece la plataforma Eclipse se puede apreciar en la administracin
individual tanto del proyecto, que corresponde al desarrollo de la plataforma
Eclipse, como la administracin de los productos especficos que se producen
por encima de la plataforma. La enorme variedad de aplicaciones sofisticadas
construidas sobre la plataforma Eclipse que existen hoy en da sirven de
testimonio del xito de este enfoque.

En conclusin
En Ingeniera de Software frecuentemente se habla de reutilizacin y los
avances tecnolgicos de las ltimas dcadas indudablemente han logrado que
hoy en da se reutilicen partes con un nivel de granularidad cada vez mayor.
Lograr realizar una reutilizacin sistemtica dentro de una organizacin
requiere un enfoque especfico y es ah donde las lneas de productos pueden
ser de mucha ayuda. La implantacin de un esquema de lnea de productos
dentro de una organizacin requiere de un esfuerzo importante, sin embargo
los beneficios que puede aportar pueden hacer que realmente valga la pena.

Un aspecto central de las lneas de productos es la arquitectura que soporta los


distintos productos y sta debe ser realizada tomando en cuenta las posibles
variaciones que permitirn generar los productos especficos. Por ltimo, es
importante recalcar que al desarrollar una arquitectura para una lnea de
producto, es muy conveniente aplicar todas las actividades de desarrollo de
arquitectura que hemos tratado en ediciones previas de sta columna.

Referencias

P. Clements y L. Northrop, Software Product Lines: Practices and Patterns, SEI


Series in Software Engineering, 2002.

Vous aimerez peut-être aussi