Este documento describe el método WATCH para el desarrollo de líneas de productos de software. El método WATCH define tres niveles de abstracción (meta-modelado, modelado y promulgación) y se compone de un conjunto de variantes de métodos que proveen formas efectivas de trabajo para diferentes tipos de proyectos de software. El documento explica conceptos clave como los bienes núcleos, el desarrollo de productos, y la administración de una línea de productos.
Sistema Séptico Domiciliario para viviendas rurales
Líneas de producto de software
1. REPÚBLICA BOLIVARIANA DE VENEZUELA
INSTITUTO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARIÑO”
EXTENSIÓN MARACAIBO
Maracaibo, Agosto del 2016
Autor: Ysea Marienny
Profesor: Inciarte Wilfreddy
2.
3. Líneas De Producto De Software
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. 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.
4. 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.
5. Actividades del desarrollo de líneas de producto
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 en la figura
6. 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.
7. Arquitectura y líneas de producto
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.
8.
9. Método Watch
Hoy en día, hay cientos de métodos, metodologías y frameworks
metodológicos; la mayoría de ellos son sólo una forma diferente de organizar
y detallar el ciclo de vida de desarrollo estándar para conseguir las metas
asociadas a un proyecto de desarrollo de software; hay métodos que son
más específicos y detallados, la mayoría de ellos sólo se pueden aplicar a
algunos tipos de proyectos, algunos otros cubren sólo un conjunto parcial del
ciclo de desarrollo, por lo que difícilmente puede ser adaptado a otros
proyectos similares en las mismas condiciones.
El método WATCH ofrece un conjunto de variantes que
proporcionan formas efectivas de trabajo (es decir, de conocimiento) para
distintos tipos de proyectos de software y de productos. Las variantes método
pueden ser adaptadas, ampliadas o mejoradas de acuerdo con la experiencia
previa del equipo, las características específicas de los proyectos y los
dominios de conocimiento, por lo tanto, el principal objetivo de este método
es reducir el conjunto de opciones y el esfuerzo que exigen un proyecto para
facilitar el escenario particular del proyectos de software.
10. WATCH es un marco metodológico para proyectos de desarrollo de
software lo que se define como un conjunto de métodos de desarrollo de
software invariantes (de una manera general brinda los conceptos esenciales de
desarrollo de software necesarios para la construcción de software de alta
calidad) y, un conjunto de variantes de métodos que son el resultado de las
extensiones o especificaciones preparadas para el manejo de las
particularidades de un proyecto. La propuesta suite del método la podemos
definir como una colección de métodos variantes construidos sobre el mismo
grupo de conceptos de desarrollo de software, pero adaptados para responder a
determinadas categorías y dominios de ciertos tipos de proyectos. Hasta ahora,
se han definido un conjunto de seis variantes del método, cada una de ellos ha
asociada un color representativo: Gray_Watch, White_Watch, Yellow_Watch,
Blue_Watch, Cyan_Watch y Green_Watch.
Un producto de software puede definirse en términos de su exhaustividad, es
decir como parcial; que forma parte del producto intermedio o final. En
consecuencia, para la construcción de una parte del producto (especificado en
un meta-modelo o modelo de producto) es necesario que un actor (considerado
como parte de un equipo del meta-modelo o de modelo) realiza algunos
procesos y actividades (también definidas dentro de un de meta-modelo o
modelo) mediante la manipulación de algunos los recursos del proyecto y la
aplicación de ciertas técnicas explícitas de campo.
11. El marco WATCH es descrito por de tres representaciones de
niveles de abstracción interrelacionados: el nivel meta-modelado, el nivel
de modelado y el nivel de su promulgación (meta-modelling, modelling y
enactment). La figura muestra los niveles de abstracción y sus relaciones
por medio de la creación de instancias, la adaptación y la ejecución
procesos.
12. OBJETIVOS
1. Orientar a los equipos de desarrollo acerca dequé deben
hacer y cómo deben desarrollar una aplicación informática
de un SIE.
2. Garantizar la uniformidad, consistencia, facilidad de
integración y calidad de las distintas aplicaciones que
integrarán Un SIE.
3. 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.
4. 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.
13. CARACTERISTICAS
1) Está sólidamente fundamentado.- 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). En concreto, el método emplea una arquitectura de dominio de tres
capas que define los elementos principales de los SIG/SIE modernos.
Metodológicamente, el modelo ha sido elaborado tomando como referencia
modelos de procesos bien conocidos o bien fundamentados, tales como el
modelo RUP-Rational Unified Process (Krutchen, 2000) y el método
WATCH (Montilva y Barrios, 2004b).
2) 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: elproducto que se quiere elaborar,
los actores que lo elaboran y el proceso que siguen los actores para
elaborar el producto. Estos tres elementos definen los tres componentes
del método WATCH: modelo de productos, modelo de actores y modelo de
procesos. Cada uno de ellos posee, a su vez, una estructura modular
claramente visible y acorde al elemento que representa. Así, por ejemplo,
el modelo de procesos tiene una estructura jerárquica de cinco (5) niveles
compuesta de: grupo de procesos, procesos, sub-procesos, actividades y
tareas.
14. 3) 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 al manejo de datos e información geográfica. Esta orientación
concreta y específica resuelve los problemas que tienen la mayoría de los
métodos comerciales y académicos existentes, cuya generalidad va en
detrimento de su aplicabilidad en sistemas muy especializados, tales
como los SIG y SIE.
4) 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. Esta labor, sin embargo,
debe ser hecha por expertos en Ingeniería de Métodos, para asegurar la
correcta y efectiva adaptación a otros tipos de aplicaciones
15. 5) Emplea las mejores prácticas del desarrollo de software.- Al igual que
otros métodos bien establecidos, tales como RUP (Krutchen, 2000) y
OOSE (Jacobson, 1994), el método WATCH emplea prácticas
metodológicas internacionalmente aceptadas y utilizadas en la industria
del software, las cuales, al ser aplicadas apropiadamente, contribuyen a
resolver muchos de los problemas que, comúnmente, se le atribuyen a
los proyectos de software. Entre estas prácticas, se destacan las
siguientes:
a) Desarrollo de software iterativo e incremental.- WATCH considera el
proceso de desarrollo de aplicaciones como un proceso iterativo.
Cada iteración produce un componente o una nueva versión
operativa de la aplicación.
b) Manejo eficiente de los requisitos.- Una mala gestión de los
requisitos de una aplicación es una de las principales causas de
problemas en proyectos de desarrollo de software. Para evitar estos
problemas, WATCH emplea las mejores prácticas, técnicas y
procesos de la Ingeniería de Requisitos, las cuales facilitan las
actividades de identificación, análisis, especificación, validación y
gestión de requisitos.
16. c) Reutilización de activos de software.- El método promueve la
reutilización de activos de software. Ello reduce costos y aumenta
la calidad de los productos de 12 software elaborados usando el
método. Entre estos activos están los siguientes: arquitecturas de
dominio, patrones de diseño, componentes de software
reutilizables y plantillas de documentos (Ej., plantillas para planes
de proyecto, pruebas de software, manuales de uso, etc.).
d) Modelado visual de la aplicación.- Para desarrollar una aplicación
informática es indispensable modelar distintos aspectos de ella, en
cada una de las etapas o fases de su desarrollo. WATCH emplea
lenguajes de modelado gráfico o visual ampliamente conocidos,
tales como UML (Booch, Rumbaugh and Jacobson, 1999) y BPMN
(BPMI, 2005). Estos lenguajes facilitan la representación de la
aplicación desde diferentes perspectivas y reducen los problemas
de comunicación que normalmente surgen entre los expertos en
Informática y los usuarios.
e) Verificación continua de la calidad de los productos.- WATCH
asegura la calidad de la aplicación, a través del uso de un proceso
bien definido de Verificación y Validación (V&V). Este proceso es
aplicado a todos los productos intermedios y finales que se
elaboran a lo largo del desarrollo de cada aplicación
17. f) Apropiada gestión de cambios.- Los cambios en los requisitos es una
constante en el desarrollo de aplicaciones empresariales. Estos
cambios pueden surgir en cualquier fase del desarrollo de una
aplicación, por lo que es necesario controlarlos apropiadamente, a fin
de evitar que el proyecto se postergue continua o indefinidamente.
WATCH emplea un proceso bien definido de Gestión
de la Configuración de Software (SCM) que se encarga de controlar estos
cambios.
6) Emplea las mejores prácticas y procesos de gestión de proyectos.- El
método WATCH emplea procesos y prácticas establecidas en el cuerpo de
conocimientos de gestión de proyectos propuesto por el PMI (Project
Management Institute). Este cuerpo de conocimientos es, también,
empleado en la metodología desarrollada por LA EMPRESA para
gestionar sus proyectos de ingeniería. WATCH está alineado a esta
metodología.
18. 7) Integra los procesos de gestión con los procesos técnicos y de soporte.-
WATCH define tres grupos de procesos: técnicos, gerenciales y de
soporte. Los procesos técnicos se relacionan con las actividades de
análisis, diseño, implementación y pruebas de las aplicaciones. Los
procesos gerenciales se encargan de gestionar el desarrollo de cada
aplicación como un proyecto de ingeniería; involucran, por lo tanto,
actividades de planificación, organización, administración, dirección y
control del proyecto. Por su parte, los procesos de soporte complementan
los procesos técnicos y gerenciales con actividades, tales como: el
aseguramiento de la calidad, la gestión de la configuración, la capacitación
de los actores y la gestión de riesgos del proyecto.
19. El nivel meta-modelo representa el conjunto de conceptos básicos
necesarios para el diseño un método de desarrollo de software; es decir, el
conjunto de elementos necesarios del método comunes, pero esenciales para el
desarrollo de productos de software de alta calidad.
Variantes del método WATCH
Una variante del método es una manera alternativa de establecer,
organizar y ejecutar el trabajo de desarrollo, necesaria para alcanzar los
objetivos de un determinado tipo de proyecto de software. El conjunto de
métodos variantes define responden a los más demandas y exigencias del
contexto de la empresa de software. El proceso de definición de variantes del
método se lleva a cabo a través de un proceso de creación de instancias que se
apoya en la utilización de los conocimientos adquiridos en la práctica de dominio
y la experiencia acumulada de anteriores adaptaciones del método de desarrollo.
20. Se ha diseñado un conjunto de seis versiones del método
identificadas por un color representativo (Gray_Watch, White_Watch,
Yellow_Watch, Blue_Watch, Cyan_Watch y Green_Watch); cada una tiene
su propio meta-modelo resultante de las capas de los productos, procesos
y equipos incluyendo meta-modelos adicionales de ejemplificación,
ampliación o especialización.
La variante Gray_Watch se centra en el desarrollo de alta compleja
aplicaciones empresariales, donde el tamaño del equipo puede variar de 5
a 20 que son organizados en varios grupos de trabajo. La solicitud es un
sofisticado producto de software que le permite distribuir el acceso a los
datos empresariales almacenados en múltiples servidores con numerosos
usuarios, y muchos perfiles diferentes y la información requisitos. Se trata
de múltiples sistemas de negocio a través de varios dominios funcionales /
empresariales y múltiples niveles jerárquicos. Esta es la más completa,
detallada y disciplinada de las versiones de toda la suite Watch
21. La variante White_Watch describe el más pequeño conjunto de
actividades necesarias para desarrollar un proyecto de software de muy
baja dificultad y con un mínimo de técnica documentación. El equipo de
desarrollo prescrito incluye una o dos personas. La idea principal es
descargar al equipo del proyecto del tedioso y lento trabajo de
elaboración de software con un preciso presupuesto. En consecuencia,
los miembros del equipo pueden lidiar mejor con las actividades técnicas
de codificación y prueba de versiones funcionales del producto de
software. Esta es la versión más ligera de la suite método.
La variante Yellow_Watch se basa completamente en Arquitectura
Orientada a Servicios (SOA) como un medio para asegurar la
interoperabilidad entre los procesos de negocio aplicaciones. Se puede
clasificar como un método disciplinado que puede ser utilizado por
equipos de pequeños y medianos tamaños para el desarrollo de
aplicaciones de basados en servicios. Los modelos de proceso permiten
que el líder del proyecto para el desarrollo de aplicaciones de baja y
complejidad intermedia de manera incremental e iterativa.
22. Este es la más reciente versión de la suite, y está limitada a
organizaciones con al menos el segundo nivel de madurez CMMI con el
fin de asegurar un método de adaptación eficaz a las características de
proyectos específicos.
La variante Blue_Watch es el método explícitamente equilibrado de la
suite. Es orientada al desarrollo de aplicaciones para empresas
pequeñas y medianas producido por pequeños equipos integrados desde
dos (2) hasta diez (10) personas. Es un modelo impulsado-orientado por
modelos, es decir, los modelos UML producidos en una fase se
transforman en otra fase mediante el uso de las herramientas CASE
apropiadas, y se ha concebido para ser aplicado en proyectos de
software para pequeñas empresas.
23. EL MÉTODO BLUE WATCH
Es un método de desarrollo de software orientado a
aplicaciones web de mediana complejidad y/o tamaño dirigido a grupos
de desarrollo de pequeño tamaño (de dos a diez) y representa una
variante equilibrada del método Watch. El termino equilibrado se
introduce ya que este es un método que busca equilibrar los enfoques
de desarrollo agiles y disciplinados en uno solo, produciendo un mínimo
de documentación para que los recursos de desarrollos puedan
enfocarse en labores técnicas de codificación de aplicaciones y
haciendo énfasis en la reutilización de recursos. Por ser un método
variante de Watch está orientado por modelos (Model Driven Oriented)
donde la transformación de los mismos se realiza a través de las
herramientas CASE necesarias optimizando sus resultados mediante el
uso de las practicas agiles y disciplinadas más eficientes.
CARACTERÍSTICAS DE BLUE WATCH
Incremental Iterativo y controlado por versiones:
24. La aplicación se desarrolla en una o más versiones, donde
cada versión se desarrolla gradualmente en forma incremental; es
decir un mismo proceso de desarrollo se ejecuta repetidas veces hasta
lograr el resultado esperado lo que permite proporcionar un balance
entre agilidad y disciplina.
Balanceado
Emplea una combinación de prácticas y procesos ágiles, lo
que permite generas solo un mínimo de documentación; la necesaria
para facilitar el mantenimiento de la aplicación.
Completo
Cubre todo el ciclo de desarrollo de una aplicación empresarial e
integra los procesos técnicos del desarrollo de software con los
procesos de soporte y gestión del proyecto.
25. Fundamentado
Incorpora estándares como el CMMI, SWEBOK, PMBOK, algunos
componentes estándares desarrollados por IEEE.
Flexible
Permite a través de sus elementos conceptuales establecer un marco
metodológico adaptado a las necesidades particulares de cada organización,
haciendo énfasis en los distintos recursos involucrados.
ESTRUCTURA METODOLÓGICA, ELEMENTOS PRINCIPALES DEL META-
MODELO.
Productos
Un meta-modelo de producto representa el conjunto de productos que pueden
ser elaborados durante un proyecto de desarrollo de software. La liberación
versión completa y validada del software es el principal objetivo de un proyecto
de desarrollo.
26. Los diferentes productos intermedios (técnicos de apoyo o para
gestión de proyecto) con sus documentos asociados serán
indispensables para producir la versión final del software.
27. Procesos
El meta-modelo de proceso representa el conjunto de conceptos básicos para
especificar las diferentes formas de trabajar; es decir, para describir qué hacer
para producir una cierta parte del producto y con qué recursos y técnicas. El
meta-modelo de proceso está inspirado en la metáfora del reloj (Watch), cada
proceso incluido en el meta-modelo se puede descomponer en un grupo de
sub-proceso; cada sub-proceso se descompone de nuevo en un conjunto de
actividades interrelacionadas, cada actividad pueden, a su vez, pueden
descomponer en una serie de tareas, de acuerdo a los requerimientos del
proyecto. Esta forma de especificar el proceso de meta-modelo facilita la
selección, adaptación y composición de un método para satisfacer un
determinado escenario de desarrollo.
28.
29. Actores
El meta-modelo de actor identifica los principales conceptos que
deben ser manejados con el fin de organizar un equipo de proyecto; es decir,
el conjunto de actores (los desarrolladores, usuarios, expertos, consultores, y
etc.) y / o en otros grupos de interés (por ejemplo, clientes y promotores) que
están involucrados en un proyecto de desarrollo de software. Considera las
funciones, sus responsabilidades asociadas (actividades y tareas) y las
estructuras de la organización de los equipos de desarrollo de software.
30. Una vez una variante del procedimiento está completamente
diseñado a través de su producto, proceso y equipo modelos, que ya está
preparado para ser adaptado a fin de satisfacer las características de un
escenario particular del proyecto de software lo que fundamenta en
esencia las variantes del modelo.