1. Realizado por:
Dubrin Godoy
Republica Bolivariana de Venezuela
Ministerio del poder popular para la educación
Cátedra: Sistemas II
Institución: Politécnico Santiago Mariño
2. 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 líneas de productos de software buscan justamente lograr promover la
reutilización sistemática de artefactos de los cuales la arquitectura es uno de los más
importantes. Este enfoque busca tener distintos beneficios asociados a la reutilización
como pueden ser la reducción 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 ocasión hablaremos al respecto de éste
tema.
3. En el desarrollo de software, la reutilización se refiere a tomar uno o más artefactos
realizados como parte de un desarrollo y utilizarlos nuevamente en el desarrollo de otro
sistema. La reutilización no es un concepto nuevo y a lo largo de la historia del desarrollo de
sistemas, han aparecido distintas técnicas que han facilitado de alguna manera la
reutilización de artefactos de desarrollo de granularidad cada vez mayor como se muestra:
4. Aún con las técnicas antes mencionadas, de manera general, la reutilización
frecuentemente se realiza de manera oportunista, esto es que si durante el
desarrollo los miembros del equipo de desarrollo ven la posibilidad de reutilizar
algún artefacto entonces lo hacen, pero eso no ocurre de manera sistemática.
Dada su naturaleza, la reutilización 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 organización, lo
deseable es lograr un enfoque de reutilización sistemática con el fin de lograr
diversos beneficios asociados con retomar artefactos previamente construidos en
cada desarrollo nuevo que se realiza.
5. El concepto de líneas de productos busca justamente lograr un enfoque de
reutilización sistemático dentro de una organización 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 común que un fabricante
produzca distintas variantes de un vehículo (o productos) a partir de una base
común que se reutiliza en todas estas variantes.
De acuerdo al SEI (Software Engineer Institute), una línea de productos de
software se refiere a un conjunto de sistemas de software que comparten
características y que son desarrollados a partir de un conjunto común de bienes
núcleo (core assets). De la anterior definición es importante subrayar que los
productos dentro de la línea de productos son los distintos sistemas y que los
bienes núcleo son las partes reutilizables que permitirán desarrollar los
productos. Los bienes núcleo son la base de la línea de productos e incluyen
entre otros la arquitectura, componentes reutilizables, modelos de dominio,
requerimientos, documentación, planes de prueba, etc. Un aspecto importante
a considerar dentro de la línea de productos es que se debe establecer un
alcance en donde se describe qué productos son parte de la línea.
6. También de acuerdo al SEI, el desarrollo de líneas de productos involucra tres
actividades principales: el desarrollo de los bienes núcleo, el desarrollo de los
productos y la administración, y estas actividades están íntimamente ligadas
entre ellas, como se muestra
7. A continuación se describen estas actividades en mayor detalle:
• El desarrollo de bienes núcleo se refiere al establecimiento de las partes que
serán reutilizadas. Cada uno de estos bienes debe ir acompañado de un proceso
que explique la manera en que cada parte se usa al momento de incorporarla en
un producto específico. Por otra parte, se establecen planes de producción que
describen la manera en que los productos específicos son generados a partir de
los bienes núcleo.
• El desarrollo de productos cubre el objetivo último de la línea de producto:
producir sistemas específicos dentro del alcance definido a partir de los bienes
núcleo. Los insumos para esta actividad son los bienes núcleo, los procesos
asociados a los bienes, los planes de producción y los requerimientos específicos
a cada producto.
• La administración juega un papel fundamental en la implantación de una línea
de productos. La administración ocurre a un nivel técnico y organizacional. A
nivel técnico, cubre tanto la supervisión del desarrollo de bienes núcleo como de
productos específicos. A nivel organizacional orquesta el esfuerzo general de la
línea de productos.
8. La arquitectura es un elemento clave dentro de la colección de bienes núcleo pues
será compartida por los distintos productos de una línea particular. La
arquitectura de una línea de productos es distinta a una arquitectura ‘típica’ pues
para permitir la construcción de distintos productos por encima de ella, debe
definirse una serie de puntos de variación que son necesarios para poder crear los
distintos productos. En este tipo de arquitecturas, uno de los atributos de calidad
más influyentes es entonces el que sea modificable.
9. WATCH es un método de desarrollo de software elaborado para ser empleado
durante el desarrollo de sistemas de información empresarial (SIE).
Es un marco metodológico que describe los procesos técnicos, gerenciales y de
soporte que deben emplear los equipos y grupos que tendrán a su cargo el
desarrollo de las aplicaciones informáticas de un SIE. Un marco metodológico
es un patrón que debe ser instanciado, es decir adaptado cada vez que se use.
Cada equipo de desarrollo de aplicaciones de un SIE deberá usar el método
como un patrón o plantilla metodológica, a partir del cual ellos deben elaborar
el proceso especifico de desarrollo de la aplicación de dicho equipo deba producir.
10. Solida fundamentación: Posee una base conceptual y metodológica muy bien
sustentada. El método descansa en conceptos bien establecidos que se derivan de
la ingeniería de software, los sistemas de información geográfica (SIG) y los
sistemas de información empresarial (SIE)
Es estructurado y modular: Posee una clara estructura que facilita su
comprensión y utilización. Esta estructura separa los tres elementos
primordiales de un método: el producto que se quiere elaborar, los actores que
lo elaboran y el proceso que siguen los actores para elaborar el producto.
Es de propósito específico: El método está dirigido al desarrollo de aplicaciones
geográficas en entornos empresariales; es decir, al desarrollo de sistemas de
información de carácter corporativo que estén orientados.
Es flexible y adaptable: Si bien el método está dirigido al desarrollo de
aplicaciones especializadas (aplicaciones geográficas en entornos
empresariales), sus tres componentes pueden ser adaptados, con relativa
facilidad, a otros tipos de productos de software.
11. CMMI-
Integración de
modelos de
madurez de
capacidades
Actividades
Practicas
Técnicas
Procedimientos
Liberación del
componente
Especificación
del
componente
Aprovisionami
ento
Pruebas del
componente
Centrifugación
del
componente
SIE
Se Fundamenta
RUP-
Proceso
Racional
Unificado
PMBOK- Project
Management
Body of
Knowledge
12. Orientar a los equipos de desarrollo acerca de que deben
hacer y como deben desarrollar una aplicación informática
de un SIE
Gestionar el desarrollo de las aplicaciones de un SIE como
proyectos de ingeniería, siguiendo los estándares de gestión
de proyectos establecidos en la empresa
Asegurar que en el desarrollo de cada aplicación de un SIE
se empleen las mejores prácticas, técnicas, herramientas,
estándares y lenguajes aceptados internacionalmente para
desarrollar software de alta calidad
El método WATCH se utiliza para estructurar, planificar y
controlar el proceso de desarrollo de un sistema de
información.
13. Método de
desarrollo
Asegurar que en el desarrollo de cada
aplicación de un sistema empresarial se
empleen las mejores practicas
Gestionar el desarrollo de las
aplicaciones de un sistema de
información empresarial como
proyectos de ingeniería.
Garantizar la uniformidad,
consistencia, facilidad de
integración y calidad de las
distintas aplicaciones
Orientar a los equipos de
desarrollo acerca de que
deben hacer y como deben
desarrollar una aplicación
informática
14. La metodología watch esta comprendida por tres
modelos, que la componen estos son el modelo
del producto, el modelo de proceso y el de actores,
cada uno de ellos aporta información en distintos
documentos que permiten el desarrollo de
aplicaciones empresariales para SIE.
Modelado del producto: Define el modelo de
producto como “el primer componente del
método Watch, este modelo describe las
características generales que tienen las
aplicaciones de un SIE e identifica los
productos intermedios y finales que se deben
producir durante el desarrollo de una
aplicación SIE.” Para desarrollar una aplicación
empresarial es indispensable conocer tanto los
requisitos necesarios para llevar a cabo el
proceso, como los resultados que se obtendrán
de dicho proceso, y por este motivo es que el
modelo de productos debe ser la primera
actividad de la metodología Watch.
Modelado de actores: Define el modelo de
actores como “ el segundo de los tres
componentes que integran el Método WATCH
para el desarrollo de una aplicación
empresarial. Su función es discutir todos
aquellos aspectos organizativos relacionados
con los actores, equipos de trabajo y demás
interesados vinculados al desarrollo de las
aplicaciones de una aplicación empresarial.”
Modelado de procesos: Es un conjunto de
actividades que tienen un mismo fin, el
modelo de procesos es el último componente
del método WATCH y corresponde a los
procesos que definen la trayectoria del
proyecto y como se admiran los recursos del
equipo, sean estos materiales o humanos.