SW Basado en Comp CAC2003
SW Basado en Comp CAC2003
SW Basado en Comp CAC2003
principales de interacción en los sistemas basados mecanismos necesarios para que ellos se integren
en componentes [24]: a fin de crear nuevas aplicaciones. Las preguntas
1. Componente-Componente (C-C): permite la que se intentan responder en esta sección son:
interacción entre componentes. De este tipo ¿cómo se desarrolla un componente? y ¿cómo se
de interacción se obtiene la funcionalidad de crea una aplicación que reutilice componentes
la aplicación, de forma tal que los contratos existentes?
que especifican este tipo de interacción Sommerville [1] clasifica los procesos de
pueden ser clasificados como Contratos a desarrollo de software basados en la reutilización
Nivel de Aplicación. de componentes en dos categorías:
2. Componente-Framework (C-F): posibilita las • Desarrollo de componentes: Este proceso
interacciones entre el framework y sus implica la adaptación o desarrollo de
componentes. Dicha interacción permite que componentes con el propósito expreso de ser
el framework administre los recursos de los reutilizados en futuras aplicaciones. Su
componentes. Los contratos que especifican objetivo es producir repositorios de activos
estas interacciones pueden ser clasificados que puedan ser reutilizados en el desarrollo
como Contratos a Nivel de Sistema. de software. Para ser reutilizables, estos
3. Framework-Framework (F-F): posibilita las componentes deben satisfacer las
interacciones entre framewoks y permiten la características descritas en la Sección 2.
composición de componentes desplegados en • Desarrollo de software con reutilización de
framewoks heterogéneos. Estos contratos componentes: Es un proceso en el cual el
puede ser clasificados como Contratos de desarrollo de una nueva aplicación involucra
Interoperabilidad. la reutilización de un conjunto de
La forma de materializar la composición entre componentes existentes. Este enfoque
componentes depende de los mecanismos maximiza la reutilización de componentes de
especificados por su modelo de programación. software existentes y reduce el número de
Típicamente, los modelos de componentes se componentes que requieren ser desarrollados
basan en tecnologías orientadas a objetos, por lo en su totalidad (desde cero). Para ser exitoso,
tanto los mecanismos de composición emplean este proceso demanda dos condiciones
algunas características tales como relaciones entre mínimas: i) la existencia de repositorios o
clases (especialización, agregación, asociación y bases de componentes reutilizables y ii) que
uso) [10], polimorfismo y enlace dinámico [9]. los componentes sean confiables y actúen de
Adicionalmente, dichos mecanismo de acuerdo a sus especificaciones.
composición típicamente se describen mediante el El modelo de procesos descrito por
uso de patrones de diseño [32], [33]. Sametinger [2] provee, sin embargo, una visión
Las tecnologías de componentes no mucho más completa y amplia del desarrollo de
distribuidos, típicamente asociadas con software basado en componentes. Este modelo,
aplicaciones de escritorio (e.g. Controles ActiveX denominado ciclo de vida gemelo (twin life cycle),
[14] y JavaBeans [15]), hacen uso extensivo de divide el proceso de desarrollo de software en dos
características orientadas a objetos dentro de sus grandes bloques paralelos, tal como se ilustra en
mecanismos de composición. Por el contrario, en la Figura 2. El primer bloque, conocido como
la composición de componentes distribuidos (e.g. Ingeniería de Dominios, contempla los procesos
Enterprise JavaBeans [11], CORBA Component necesarios para desarrollar activos de software
Model [12] y .NET [13]) principalmente se reutilizables en un dominio particular. El segundo
emplean relaciones de uso, asociación y bloque es denominado Ingeniería de
agregación. Aplicaciones. Su propósito es el desarrollo de
aplicaciones basado en la reutilización de activos
VI. EL PROCESO DE DESARROLLO de software producidos a través de la Ingeniería
de Dominios.
En las secciones anteriores, se caracterizaron
los componentes de software y se describieron los
7
Ingeniería de Dominios
Ingeniería de Aplicaciones
Figura 2. El modelo de procesos gemelos para el desarrollo de software basado en componentes
Procesos de
Post-desarrollo
Análisis del
Dominio de
Apliación
Descubrimiento
Entrega del
de
Sistema
Requerimientos
Análisis y
Pruebas del Procesos
Especificación de
Sistema gerenciales
Requerimientos
Diseño de
Componentes
Las tres primeras fases del modelo son La fase de Análisis del Contexto permite que el
similares a los modelos de procesos tradicionales. grupo de desarrollo adquiera un conocimiento
8
[13] T. L. Thai and H. Lam. .NET framework [27] R. Duke, G. Rose y G. Smith. Object-Z:
essentials. O'Reilly & Associates, 3ra A specification language advocated for
edición, 2003. the description of standards. Computer
[14] D. Chappell. Understanding ActiveX and Standards and Interfaces, 17:511-533,
OLE. Microsoft Press, 1ra edición, Enero Septiembre 1995.
1996. [28] K. Lano, J. Bicarregui, J. Luiz Fiadeiro y
[15] Sun Microsystems, Inc. Javabeans. T. Maibaum. Composition of reactive
http://java.sun.com/product system components. En 1st Workshop on
s/javabeans/docs/spec.html, Component-Based Systems, Zurich,
Agosto 1997. Switzerland, 1997.
[16] J. Morris, G. Lee, K. Parker, G.A. [29] X. Franch. Systematic formulation of
Bundell, y C.P. Lam. Software non-functional characteristics of
component certification. IEEE software.
Computer, 34(9), Septiembre, 2001. In 3rd International Conference on
[17] Object Management Group, Inc. Requirements Engineering (ICRE),
Common object request broker pages 174-181, Colorado Springs (USA).
architecture: Core specification. [30] K. C. Wallnau and D. Plakosh.
http://www.omg.org/docs/for Waterbeans: A custom component model
mal/02-12-06.pdf, Diciembre and framework.
2002. http://www.sei.cmu.edu/cbs/
[18] Sun Microsystems, Inc. Java remote cbse2000/papers/23/23.html,
method invocation specification. 2000.
ftp://ftp.java.sun.com/docs [31] C. Arévalo, J. Colmenares, N. Queipo,
/j2se1.4/rmi-spec-1.4.pdf. N. Arapé y J. Villalobos. A CORBA and
[19] A. Goldberg and D. Robson. Smalltalk Web technology based framework for
80 : The language. Addison-Wesley Pub the analysis and optimal design of
Co, Enero 1989. complex systems in the oil industry. En
[20] B. Stroustrup. The C++ programming 3rd Internacional Conference on
language. Addison-Wesley Pub Co, 3ra Enterprise Information Systems (ICEIS
edición, Febrero 2000. 2001), Julio 2001.
[21] B. Joy, G. Steele, J. Gosling y G. [32] E. Gamma, R. Helm, R. Johnson y J.
Bracha. The Java(TM) languaje Vlissides. Design patterns. Addison-
specification. Addison-Wesley Pub Co, Wesley Pub Co, Enero 1995.
2da edición, Junio 2000.
[22] D. W. Nance. Pascal: Understanding [33] F. Marinescu. EJB design patterns:
programming and problem solving. West Advanced patterns, processes and
Information Pub Group, 4ta edición, idioms. John Wiley & Sons, Febrero
Enero 1995. 2002.
[23] D. Rev. Smorlarski, Research [34] J. Montilva, K. Hazam y M. Gharawi.
& Education Association y The Watch Model for development
Dennis Chester Smolarski. The business software in small and midsize
essentials of FORTRAN (essentials). organization. In IV World
Research & Education Assn, Mayo Multiconference on Systemics,
1994. Cybernetics and Informatics (SCI'2000),
[24] T. Digre. Business object component Orlando, Florida (USA), Julio 2000.
architecture. IEEE Software, 15(5), [35] J. Montilva and J. Barrios. A
1998. Component-Based Method for
[25] A. Beugnard, J-M Jézéquel y N. Developing Web Applications. 5th
Plouzeau. Making components contract International Conference on Enterprise
aware. IEEE Computer, 32(7):38-45, Information Systems (ICEIS’2003),
Julio 1999. Angers, France, 2003.
[26] B. Meyer. Eiffel: The language. Prentice
Hall PTR, Octubre, 1991.