Professional Documents
Culture Documents
Marco conceptual
para un diseo arquitectnico
basado en aspectos de calidad*
Francisca Losavio de Ordz
Universidad Central de Venezuela
Christian Guilln-Drija
UPEL
Instituto Pedaggico de Miranda Jos Manuel Siso Martnez
Resumen
Los mtodos actuales de diseo arquitectnico coinciden en la importan-
cia de tomar en cuenta los aspectos de calidad para dirigir la seleccin de
la solucin arquitectnica, sin embargo an no hay acuerdo sobre mto-
dos precisos que puedan ser usados en la prctica comn. Distintas pro-
puestas de mtodos de diseo arquitectnico se han presentado hasta el
momento (Grnbacher, Egyed y Medvidovic, 2003) (Lamsweerde, 2003)
(Losavio, Chirinos, Lvy, Ramdane-Cherif, 2003), (Chung, Cooper y Yi,
2003), (Losavio, Chirinos y Prez, 2001), (Bosch, 2000) fundamentados en
conceptos que o bien son equivalentes, complementarios o alternativos.
El presente trabajo, inspirado en los mtodos mencionados, tiene como
objetivo la definicin de un marco conceptual, de referencia o framework
que contemple un proceso general de diseo arquitectnico centrado
en las propiedades de calidad exigidas por requisitos funcionales y no
funcionales. Este framework constituye una estructura unificadora
que permite especificar los diferentes elementos del proceso del diseo
arquitectnico, siendo este el principal aporte del trabajo.
Palabras clave: Arquitectura del software, Mtodos de diseo arquitec-
tnico, Calidad de software.
ABSTRACT
Conceptual Framework for Architectural Design
Based on Quality Aspects.
Current methods of architectural design agree on the importance of
quality to direct the selection of architectural solutions. However, there is
not agreement yet on precise methods that could be used in the common
practice. At present there are different proposals of methods of architec-
tural design (Grnbacher, Egyed and Medvidovic, 2003) (Lamsweerde,
2003) (Losavio, Chirinos, Lvy, Ramdane-Cherif, 2003), (Chung, Cooper
and Yi, 2003), (Losavio, Chirinos and Prez, 2001), (Bosch, 2000) based
on concepts either equivalent, complementary or alternative. Inspired by
those methods, this paper aims to define a conceptual frame of reference
or framework which contemplates a general process of architectural de-
sign focused on the quality properties demanded by functional and non
functional requirements. This framework constitutes a unified structure
that will allow to specify the different elements of the process of the ar-
chitectural design, which is the main contribution of this paperwork.
Key words: Software, Architectural Design Methods, Software Quality.
Introduccin
Es indiscutible la importancia que tiene la industria del software, por lo
que es relevante caracterizar el proceso de desarrollo que se lleva a cabo en
la mayora de las organizaciones. En general, tales procesos de desarrollo se
caracterizan por poner nfasis en la entrega, tomndose decisiones siempre
en funcin de una fecha lmite en detrimento de la calidad del producto
final. Como una consecuencia de lo anterior, los sistemas de software son
desarrollados sin considerar su posible evolucin en el tiempo, su mante-
nimiento y extensibilidad; caractersticas que condicionaran el tiempo de
vida de tales sistemas.
Aunque tales procesos de desarrollo se centran en fechas lmites de
entrega, son escasos los proyectos que logran cumplir con tal requerimiento.
Por otra parte, muchos productos generados por las organizaciones en las
que se aplican procesos de desarrollo con las caractersticas antes descritas,
carecen de calidad, aspecto que se evidencia en los altos costos generados en
la solucin de problemas en sistemas ya entregados y en funcionamiento.
Los costos aumentan aun ms cuando los sistemas necesitan manteni-
miento para poder extender sus funciones y as poder responder a nuevas
situaciones o procesos.
Como respuesta a la problemtica descrita, surge la disciplina denomi-
nada Ingeniera de Software, la cual trata todos los aspectos relacionados
con la produccin de software, entre los que se encuentra la generacin y
estructuracin de procesos de desarrollo as como la creacin lenguajes
que permitan expresar de manera clara los artefactos de diseo producidos
durante tales procesos de desarrollo. Todo lo anterior con el fin de lograr
que los requerimientos exigidos por clientes, usuarios y toda persona con
algn inters en el futuro sistema, sean atendidos adecuadamente.
les modelos. Inicialmente, los casos de uso son utilizados para definir los
componentes principales a un alto nivel de abstraccin, lo que constituye la
arquitectura inicial, o tambin denominada arquitectura base; sin embargo,
no se detalla la relacin entre los casos de uso, los cuales representan las fun-
cionalidades principales del sistema y los requerimientos no funcionales.
Por otra parte, Bosch (2000), presenta un enfoque basado en la trans-
formacin de una arquitectura inicial, por ejemplo generada a partir de los
casos de uso. Cada transformacin consiste en la generacin de soluciones
dirigidas a optimizar un atributo de calidad, lo que generalmente puede
afectar negativamente a otras caractersticas de calidad. Tal hecho, genera
sucesivas transformaciones hasta lograr que el sistema adquiera una arqui-
tectura que permita un balance aceptable entre las distintas caractersticas
de calidad consideradas.
Como puede observarse, los enfoques anteriores colocan especial
nfasis en la relacin existente entre los requisitos iniciales de un sistema
y la arquitectura generada a partir de estos. No obstante, la generacin
de una arquitectura que satisfaga los requisitos iniciales, es an una tarea
ardua, principalmente se basada en la intuicin y experticia del arquitecto
de software (Grnbacher, Egyed y Medvidovic, 2003). Tal dificultad es an
ms notoria en el caso de los requisitos no funcionales, por lo que es un
tema de investigacin abierto, an no resuelto (Jani, Vanderveken y Perry,
2004). A este respecto, se han realizado esfuerzos dirigidos a la concepcin
de frameworks que propongan mecanismos para la generacin de arquitec-
turas tomando en cuenta tanto los requerimientos funcionales como los no
funcionales. Entre tales propuestas, se encuentran las de Chung, Cooper y
Yi (2003), Grnbacher, Egyed y Medvidovic (2003) y Lamsweerde (2003).
El framework propuesto por Chung y otros (2003), se caracteriza por el
nfasis en el tratamiento de los requerimientos como punto de partida de
un proceso de anlisis orientado a la identificacin de mecanismos arqui-
tectnicos que ofrezcan respuesta a los requerimientos no funcionales del
sistema como antesala al diseo arquitectnico. Es importante acotar que en
muchos casos, dichos mecanismos u operacionalizaciones, entendidas estas
como posibles soluciones a los requerimientos no funcionales planteados,
pueden derivar en la aplicacin de un patrn de diseo arquitectnico. Sin
embargo, su objetivo no es la generacin de una arquitectura, sino ms bien
la identificacin de piezas arquitecturales que subsecuentemente pudiesen
formar parte de una arquitectura. Como se puede observar, este framework
busca responder a la problemtica planteada alrededor de la transformacin
consistente de los requerimientos en una arquitectura idnea.
Grnbacher y otros (2003) proponen el enfoque CBSP (Component-
Bus-System-Property), como un mtodo sistemtico dirigido a facilitar el
En este sentido, los trabajos realizados por Losavio y otros (2001) y Ali
Babar, Zhu, y Jeffery (2004), presentan marcos de referencia para la com-
paracin y evaluacin de mtodos de diseo arquitectnico, ofreciendo un
punto de partida para la definicin de un cuerpo de caractersticas conce-
bidas como deseables en un mtodo de diseo arquitectnico. Se considera
entonces que un mtodo de diseo arquitectnico debe:
1. Poseer una infraestructura arquitectnico-conceptual clara: el cuer-
po de conceptos sobre los que se fundamenta el mtodo debe contemplar
todas las definiciones que como consecuencia de la investigacin en el rea
de la arquitectura de software, son universalmente aceptadas. En otras pa-
labras, debe utilizar los conceptos de componentes, conectores, interfaces
(roles en el caso de conectores y puertos en el caso de los componentes),
estilos arquitectnicos, restricciones arquitectnicas, comportamientos,
componentes estructurados, entre otros.
2. Tratar explcitamente los requerimientos no funcionales: ya que
la arquitectura de software surge como una respuesta a la creciente im-
portancia que los investigadores han otorgado al tratamiento temprano de
los atributos de calidad, esta caracterstica es vital para que un mtodo de
diseo arquitectnico pueda ser considerado como tal. Ciertamente, son los
requerimientos funcionales el punto de partida para la generacin de una
arquitectura inicial, pero son los requerimientos no funcionales los que van a
dar forma final a dicha arquitectura a travs de la adopcin de mecanismos
arquitectnicos que aseguren que el sistema ofrezca sus funcionalidades
dentro de un entorno de calidad, en un dominio especfico.
3. Proporcionar mecanismos de derivacin arquitectnica: cualquier
mtodo de diseo arquitectnico se iniciar a partir de un conjunto de re-
querimientos funcionales y no funcionales, generado como producto final
de la actividad desplegada por un ingeniero de requerimientos. Una vez
definido tal conjunto, el arquitecto de software debe convertir tales requeri-
mientos en elementos de valor arquitectnico para la estructuracin de una
arquitectura preliminar o inicial. Este proceso se le conoce como derivacin
arquitectnica (Lamsweerde, 2003).
4. Aplicar mecanismos de descripcin arquitectnica: para que se pue-
dan obtener beneficios ciertos de una visin arquitectnica de los sistemas
de software, se debe contar con formas de especificacin que, adems de
describir expresamente aspectos arquitectnicos, posibiliten la aplicacin de
tcnicas de anlisis sobre tales descripciones (Guilln, 2002). Tales formas de
descripcin, deben proveer medios de abstraccin adecuados que permitan
expresar aspectos arquitectnicos de un sistema de software, evitando hacer
referencia a los detalles de especificacin. Como respuesta a lo anterior,
En este caso el trmino crear se utiliza como traduccin del trmino tcnico ingls ins-
tantiation, que se aplica al diseo orientado a objetos para denotar la accin de generar
objetos de una clase.
De esta forma, UML 2.0 propone una notacin que logra expresar la
significacin del trmino componente, vital en el diseo arquitectnico del
software.
Conclusiones
El mtodo descrito intenta integrar distintas propuestas que se han
realizado alrededor del diseo arquitectnico, al mismo tiempo que busca
cumplir con las condiciones que se cree, son deseables en un mtodo de
este tipo. No obstante, se sigue trabajando en su refinamiento con el fin de
describir de manera mucho ms detallada las actividades, pasos, artefactos
o entregables de cada etapa, as como en la identificacin de los especialistas
que deben intervenir en la ejecucin de este mtodo. Estamos concientes
de que la presente propuesta necesita ser revisada con el fin de identificar
posibles vacos y contradicciones conceptuales, pero confiamos que en pos-
teriores refinamientos se logre afianzar el marco conceptual aqu presentado.
No obstante, sostenemos que este trabajo dirige en la direccin correcta
para lograr responder a aspectos vitales como lo son los relacionados con la
coherencia entre los distintos entregables generados en cada etapa, el trata-
miento de los atributos de calidad, y la apropiada seleccin de mecanismos
de descripcin que aseguren la correcta comunicacin entre los distintos
especialistas que intervienen en el proceso de diseo arquitectnico.
Por otra parte, se considera de vital importancia la adecuada descrip-
cin del mtodo as como la validacin del mtodo. Lo primero se espera
lograr a travs de la aplicacin de SPEM (Software Process Engineering Me-
tamodel Specification) (OMT, 2005b); mientras que lo segundo se obtendr
como resultado de estudios de casos en los que se aplique este mtodo y as
evaluar la pertinencia de las actividades incluidas en el mismo.
Referencias
Ali Babar, M., Zhu, L., Jeffery, R. (2004). A Framework for Classifying and Comparing
Software Architecture Evaluation Methods. Australia.
Booch, J. (1994). Object-Oriented Anlisis and Design with Applications. Benjamin/Cum-
mings Publishing Co.
Bosh, J. (2000). Design & Use of Software Architectures: Adopting and evolving a product-
line approach. Great Britain: Pearson Education Limited.
Chung L., Cooper K., Yi A. (2003). Developing adaptable software architecture us-
ing design pattern: an NFR approach. Computer Standards & Interfaces, v.25
n.3, p.253-260.
Clements P., Bachmann F., Bass L., Garlan D., Ivers J., Little R., Nord R., y Stafford
J. (2002).Documenting Software Architectures: Views and Beyond. Addison
Wesley.
Garlan D., Monroe R., Wile D. (1997). Acme: An Architectural Description Interchange
language. Proceedings of CASCON97.
Gross, D. y Eric, Yu. (2001). From Non-Funtional Requeriments to Design through Pat-
terns. Faculty of Information Studies. University of Toronto. Canada.
Grnbacher P., Egyed A., Medvidovic, N. (2003). Reconciling Software Requirements
and Architecture: The CBSP Approach, 2nd. International Workshop on Trace-
ability In Emerging Forms of Software Engineering (TEFSE) with ASE 2003,
Montreal, Canada.
Guilln, C., (2002).Especificacin de Patrones Arquitectnicos para Sistemas Distribuidos.
Trabajo de grado de maestra no publicado, Universidad Central de Venezuela,
Caracas.
Iver, J., Clements, P., Garlan, D., Nord, R., Schmerl B., y Oviedo, J. (2004).Document-
ing Component and Connector Views with UML 2.0. (Reporte No. CMU/SEI-
2004-TR-008). Pittsburg, Carnegie Mellon University, Software Architecture
Technology Initiative.
Jacobson, I., Christerson, M., Jonsson, P., y vergaard, G.(1992). Object-Oriented
Software Engineering. A use case approach. Addison-Wesley.
Jani, D., Vanderveken, D., Perry, D. (2004). Deriving Architecture Specifications from
KAOS Specifications: a Reseach Case Study. Empirical Software Engineering Lab.
University of Texas. Austin.
Kazman, R., Klein, M., Barbacci, T., Longstaff, H., Lipson, H., y Carriere J. (1998).
The Architecture Tradeoff Analyisis Method. IEEE, ICECCS.
Krutchen P. (2000). The Rational Unified Process. An Introduction. Second Edition.
Addison-Wesley. Readings. Massachusetts.