Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informatica1 PDF
Informatica1 PDF
Resumen:
Una introduccin al concepto de anlisis de dominio y reutilizacin del software. Una iniciacin a dos de los
modelos inspirados en estos conceptos como son: Software Product Line Paradigm y Generative Domain
Model.
Palabras clave:
Reutilizacin, anlisis de dominio, Software Product Line Paradigm, Generative Domain Model.
1.- Introduccin
Por tanto, la reutilizacin en esta fase est ligada al estudio de los elementos de un
dominio, sus dependencias y restricciones. Conceptualmente a todo este proceso se le
denomina anlisis de dominio (Domain Analysis). Para entenderlo mejor vamos a aportar
varias definiciones de algunos de los autores ms importantes en esta rea.
Asesoramiento experto
Taxonomas
Literatura Tcnica
Anlisis de
Estndares
Imp. Req. Existentes Dominio
Implementador de la Infraestructura
Analista de infraestructura
Analista de Dominio
Como podemos observar en la Figura 1, este modelo describe Domain Analysis como
una actividad que toma mltiples fuentes de entrada y produce muchos tipos de salidas
diferentes, y es altamente parametrizable. Las fuentes de entrada son tomadas del dominio del
conocimiento: literatura tcnica, implementaciones existentes, lneas expertas, actuales y
futuros requerimientos, cuestiones de clientes etc.. Los participantes en el proceso pueden ser,
entre otros, expertos en el dominio y en el anlisis. En cuanto a las salidas nos encontramos con
conceptos semiformales como: procesos de dominio, estndares, taxonomias, lenguajes de
dominio etc...
Por tanto, el desarrollo de un sistema en particular puede ser utilizado como fuente de
conocimiento en prximos desarrollos (Prieto-Daz, 1989). Un ejemplo de este tipo de
reutilizacin podemos encontrarla en las tradicionales aplicaciones de gestin de sistemas de
informacin de negocio. Supongamos la gestin de un almacn. Los elementos o entidades ms
importantes son siempre los mismos: productos, caractersticas y propiedades de los productos,
proveedores, clientes, ventas, catlogo de productos etc. Adems estas entidades se desarrollan
normalmente sobre escenarios fijos. Las funcionalidades a desarrollar son: alta, baja,
modificacin o eliminacin de cada una de ellas. Adems podemos desarrollar herramientas de
soporte a la toma de decisiones como: nivel mnimo de existencias, seleccin de mejores
ofertas etc... Todos estos elementos, junto con sus restricciones y dependencias, conformaran
el anlisis de dominio de un almacn. Ya en el espacio de la solucin se puede optar por
realizar un diseo distribuido, un diseo para aplicacin Web etc... . Igualmente en lo referente
a la implementacin del lenguajes de programacin.
En el caso concreto de que en un futuro prximo alguna compaa estuviere interesada
en la realizacin de un software de gestin de almacn, slo tendramos que revisar los
productos concretos de esa empresa y posiblemente aadir alguna funcionalidad nueva en
algn escenario, pero, en esencia, la mayor parte del desarrollo se encuentra en nuestro anlisis
de dominio. La reutilizacin de los distintos escenarios, tambin se puede ver favorecida en la
seleccin de componentes ya realizados en niveles de abstraccin inferior, como un diseo
concreto y el cdigo para implementar dicho diseo.
Por tanto, y citando a uno de los pioneros en la materia (Neighbors, 1984) , La llave de
la reusabilidad software es capturada en el anlisis de dominio y est centrada en la
reusabilidad del anlisis y del diseo, no en el cdigo.
La idea del anlisis de dominio ha sido desarrollada en los ltimos 30 aos por distintos
autores, como podemos observar en la figura 2. El desarrollo histrico de estos modelos ha
desembocado en varios paradigmas. En este apartado slo se van a introducir los conceptos
bsicos de dos de los modelos ms actuales.
FORM
Por Kang et al.
Fsceted
Classification DARE
Por Prieto-Diaz Por Frake et al. Generative
Domain Model
Por Czarnecki et al.
ODM
Draco Por Simos et al.
FODA
Por Neighbors
Por Kang et al.
DARE
Por Frake et al.
FAST
Por Weiss et al.
...
Este paradigma, basado en los principios anteriormente expuestos, trata de analizar una
lnea de productos concretos (Clements, 2001), y a partir del estudio de estos, realizar su
anlisis de dominio correspondiente. En este modelo debemos asegurar las capacidades
necesarias para los productos actuales. Adems se debe realizar un estudio de mercado
profundo de los requerimientos y variaciones de estos mismos productos en el futuro.
Una definicin de este paradigma la podemos encontrar en el documento tcnico
CMU/SEI-2001-TR-001(Chastek, 2001, p 34) y es la siguiente:
A software product line is a set of software-intensive systems sharing a common, manager set
of features that satisfy the specific needs of a particular market segment or mission and that
are developed from a common set of core assets in a prescribed way.
Producto 2
Producto 3
DOMINIO COMN
Producto 1
Este paradigma, una vez establecido en la lnea de productos de una compaa, permite
reducir los costes para cada nuevo producto. Los beneficios de la adopcin se puede observar
en las siguientes reas de desarrollo de un producto software (Weiss, 1999):
Recursos Humanos: Debido al uso del mismo, las capacidades del personal
involucrado en estos proyectos mejora, y adems su experiencia puede ser utilizada en
el resto de productos que desarrollemos.
Tambin considerado como un nuevo paradigma en el desarrollo del software. Este est
basado en dos aspectos. Por un lado la realizacin de familias de sistemas software y, por otro,
el intento de una mayor automatizacin en el desarrollo de los mismos (Czarnecki, 2004).
Este modelo conocido como modelo generativo del dominio consiste en la obtencin
de los siguientes elementos:
Este modelo consiste de tres espacios de desarrollo, como podemos ver en la Figura 4.
Espacio de la
Solucin
Espacio del
Problema Conocimiento de la Configuracin
Componentes
Combinaciones de caractersticas Elementales
Dominio
Especifico prohibidas
Valores por defecto. Mximo nmero
Dependencias de combinaciones
Trminos y
caractersticas Construcciones Manuales
Optimizaciones Mnimas
redundancias
Hay varios sistemas generadores, uno de ellos es ANGIE, un sistema generador que
abarca un lenguaje especifico de dominio, un compilador y un sistema runtime asociado. Es un
sistema modular extensible para los generadores del software.
Tambin podemos crear nuestro propio generador usando DSLs; (Domain Specific
Language). En esta rea hay muchas tendencias nuevas basadas en estndares abiertos que son
creados por la OMG (Object Management Group).
Siguiendo con el ejemplo del automvil se puede decir que este mtodo es algo similar
a la peticin de un coche por parte de un cliente. En primer lugar rellenaramos un formulario
con los componentes deseados, en este caso los componentes del dominio, lgicamente con las
dependencias y restricciones entre ellos. Posteriormente un experto se encarga del montaje del
coche. Idealmente, el procedimiento de montaje debe ser ejecutado tan automatizado como sea
posible. En nuestro caso el encargado de montar el software es el generador.
4. Conclusiones
Estos nuevos paradigmas del software nos ofrecen las bases del desarrollo software en el
futuro. Es evidente que, como en el resto de las ingenieras tendemos a una estandarizacin de
nuestros procesos, lo que permitir reducir los tiempos y costes, a la vez que aumentar la calidad
de los mismos.
Por ejemplo, la empresa Nokia utiliza este modelo de desarrollo en todos sus telfonos
mviles, lo que le permite generar ms de 90 modelos distintos al ao a un coste prcticamente
irrisorio. Una vez establecido el modelo de dominio, el nmero de funcionalidades y
caractersticas que incorpora de un modelo a otro es muy pequeo y por tanto slo es necesario
desarrollar este pequeo conjunto, el cual una vez desarrollado pasa a ser parte del modelo del
dominio, y por tanto puede ser implementado en cualquier otro telfono mvil (producto) que se
desarrolle con posterioridad.
5. Bibliografa
Arango, G. Prieto-Diaz, R., "Domain Analysis Concepts and Research Directions in Domain
Analysis and Software Systems Modeling, IEEE Computer Society, 1991, pp. 9-33.
Berard, E., Essays in Object-Oriented Software Engineering, Nueva York, Prentice Hall,
1992.
Chastek, G. et al., Product Line Analysis: A Practical Introduction, tech. report CMU/SEI-
2001-TR-001, Pittsburgh, Software Eng. Inst., Carnegie Mellon Univ., 2001.
Clements, P. Northrop, L., Software Product Lines: Practices and Patterns, Reading, Mass.,
Addison Wesley Longman, 2001.
Freeman, P., IEEE tutorial: Software reusability, Washington, IEEE Computer Society Press,
1987.
Kang, K. et al., Using a Marketing and Product Plan as a Key Design Driver for Product Line
Asset Development G. Chastek, ed., Proc. 2nd Software Product Line Conf., Springer Lecture
Notes in Computer Science, vol. 2379, 2002.
Moore J. W., Software Engineering: A User's Road Map, Los Alamitos, CA, IEEE Computer
Society Press, 1997.
Neighbors, J.M., The draco approach to constructing software from reusable components,
IEEE Transactions of Software Engineering, SE-10(5), 1984.