230-1931-1-PB.pdf

11
Grupo Editorial Ediciones Futuro Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI) Vol.: 3, No. 10, Año 2010 http://publicaciones.uci.cu/index.php/SC  A rt í c ul o o rig in al Propuesta de vistas de la arquitectura de software Proposal of views of architecture of softw are Osvaldo Díaz Verdecia 1 * , Virgen Damaris Quevedo Campins 1 , René Lazo Ochoa y César Lage Codorníu 2  1  Ceige. Departamento de Desarrollo de Productos. Universidad de las Ciencias Informáticas 2 Ceige. Departamento de Tecnología  *Autor para la correspondencia:  [email protected] Resumen En la actualidad existen diversos conceptos y definiciones sobre el significado que abarca la arquitectura de software. La presente investigación toma la definida por el Institute of Electrical and Electronics Engineers (por sus siglas en inglés, IEEE) y que adopta Microsoft, que conceptualiza a la arquitectura del software como “la organi zación fundamental de un sistema formada por sus componentes, las relaciones entre ellos y el contexto en el que se implantarán, y los principios que orientan su diseño y evolución”. La arquitectura del software es el diseño de más alto nivel de la estructura de un sistema, programa o aplicación y a pesar de que las literaturas especializadas en el tema no se pongan de acuerdo sobre una definición, si todas reconocen la importancia de contar con unas vistas de arquitectura de software bien definidas. Se da a conocer una propuesta de vistas de la arquitectura de software totalmente novedosa y que rompe con algunas de sus concepciones actuales. Se resalta la importancia de las vistas a la hora de desarrollar una arquitectura de software, definiéndolas y propugnando cada una como una parte indispensable a la hora de desarrollar un proyecto. Palabras clave: Arquitectura de software, estructura, sistema, vistas de la arquitectura de software. Abstract  At the present time varied concepts and definitions exist of what means and embraces the Architecture of Software, howeve r in this article it will take a common definition, the one that the Institute of Electrical and Electronics Engineers (IEEE) defines that conceptualizes the Architecture of the Software like "the fundamental organization of a system formed by their components, the relationships between them and the

Transcript of 230-1931-1-PB.pdf

Page 1: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 1/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

Artícul o o rig in al

Propuesta de vistas de la arquitectura de software

Proposal of v iews of archi tecture of sof twareOsvaldo Díaz Verdecia1

* , Virgen Damaris Quevedo Campins1, René Lazo Ochoa y César Lage

Codorníu2 1 Ceige. Departamento de Desarrollo de Productos. Universidad de las Ciencias Informáticas

2Ceige. Departamento de Tecnología

 

*Autor para la correspondencia: [email protected]

Resumen

En la actualidad existen diversos conceptos y definiciones sobre el significado que abarca la arquitectura

de software. La presente investigación toma la definida por el Institute of Electrical and Electronics

Engineers (por sus siglas en inglés, IEEE) y que adopta Microsoft, que conceptualiza a la arquitectura de

software como “la organización fundamental de un sistema formada por sus componentes, las relaciones

entre ellos y el contexto en el que se implantarán, y los principios que orientan su diseño y evolución”. La

arquitectura del software es el diseño de más alto nivel de la estructura de un sistema, programa o

aplicación y a pesar de que las literaturas especializadas en el tema no se pongan de acuerdo sobre una

definición, si todas reconocen la importancia de contar con unas vistas de arquitectura de software bien

definidas. Se da a conocer una propuesta de vistas de la arquitectura de software totalmente novedosa y

que rompe con algunas de sus concepciones actuales. Se resalta la importancia de las vistas a la hora de

desarrollar una arquitectura de software, definiéndolas y propugnando cada una como una parte

indispensable a la hora de desarrollar un proyecto.

Palabras clave: Arquitectura de software, estructura, sistema, vistas de la arquitectura de software.

Abstract

 At the present time varied concepts and definitions exist of what means and embraces the Architecture o

Software, however in this article it will take a common definition, the one that the Institute of Electrical and

Electronics Engineers (IEEE) defines that conceptualizes the Architecture of the Software like "the

fundamental organization of a system formed by their components, the relationships between them and the

Page 2: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 2/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

context in which will be implanted, and the principles that guide its design and evolution". The Architecture

of the Software is the design of the higher level of the structure of a system, it programs or application and

although the literatures specialized in the topic don't come to an agreement on a definition, they al

recognize the importance of having some very defined Views of Architecture of Software. In this article it is

given to know a completely new proposal of Views of the Architecture of Software and that it breaks up

with some of their current conceptions. The importance of the Views is stood out when a Software

 Architecture is developed, defining them and telling each one like an indispensable part when developing a

 project.

Keywords: System, software architecture, structure, views of software architecture.

In t roducciónLas vistas de la arquitectura de software es una temática desde la que se enfoca un proyecto, ya sea

desde el punto de vista de los datos, integración, etc. Para separar las vistas se debe tener en cuenta todo

el trabajo que se lleva a cabo a la hora de estructurar una arquitectura, tratando de no dejar ningún

contenido fuera de alguna de ellas. Esto no es una labor nada sencilla, y mientras más se crece en los

conocimientos arquitectónicos más complejo y engorroso se vuelve, generando muchas dudas sobre

dónde va un contenido, si es suficiente con integrarlo a alguna vista ya propuesta o si es indispensable

crear una nueva vista solo para él. El trabajo hace una propuesta de las diferentes vistas que deberían

integrar la arquitectura de software y de ellas sus conceptos básicos, de manera que a la hora de

desarrollar un proyecto de desarrollo de software tengamos en cuenta la propuesta explicada a

continuación.

Clasificaciones de vistas

Varios autores, reconocidos arquitectos e instituciones a nivel mundial han dado su criterio de las Vistas

que deberían integrar la arquitectura de software, aquí se describen cada una de estas propuestas, se

hace una valoración y se hace la propuesta final de los autores de este artículo. 

David Parnas (Reynoso, 2004) las estructuras en tres grupos:

Estructura de módulos: es parte de o comparte el mismo secreto que la asignación de trabajo.

Estructura de uso: depende de la corrección de programas.

Page 3: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 3/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

Estructura de procesos: brinda trabajo computacional a procesos.

Siemens Corp orate Research   (´95) (Departamento de Computación - Facultad de Ciencias Exactas y

Naturales - Universidad de Buenos Aires, 2007). 

Vista conceptual: principales elementos de diseño y su interrelación.

Vista de módulos: estructura funcional y de capas.

Vista de ejecución: estructura dinámica.

Vista de código: organización de código fuente, binarios y bibliotecas en el ambiente de desarrollo.

Libro: “Software Systems Arch itecture ” por Nick Rozanski y Eóin Woods (Woods, 2005). 

Funcional:  describe los elementos funcionales del sistema, sus responsabilidades, interfaces e

interacciones primarias.

Información:  describe la manera en la que la arquitectura almacena, manipula, administra y distribuye

información.

Concurrencia: describe la concurrencia de un sistema e identifica los elementos que se pueden ejecuta

concurrentemente y la manera en que son coordinados y ejecutados.

Desarrollo: describe la arquitectura que soporta el proceso de desarrollo de software.

Despliegue: describe el ambiente dentro del cual el sistema será instalado.

Operacional:  describe la manera en la que el sistema será operado, administrado y soportado cuandoesté en el ambiente de producción.

SEI 1(´02): Racionalización de vistas 8Departamento de Computación - Facultad de Ciencias Exactas y

Naturales - Universidad de Buenos Aires, 2007). 

Categorizan las vistas en “ViewTypes”. 

Viewtypes:  definen los tipos de elementos y los tipos de relaciones usados para una descripción desde

una perspectiva particular.

ViewType Modular: Cómo está el sistema estructurado como conjunto de unidades de implementación.

1 El SEI es el Software Engineering Institute un instituto federal estadounidense de investigación y desarrollo, fundado por el Congreso de los

Estados Unidos, en Pittsburgh, en 1984. 

Page 4: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 4/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

ViewType Componente y Conector:  Como un conjunto de elementos que tienen comportamiento e

interacción en tiempo de ejecución.

ViewType Asignación: Cómo se relaciona el software con elementos que no son software.

Propuestas de vistas Microsoft (Platt, 20029). 

Vista conceptual: es usada para definir los requerimientos funcionales y la visión que los usuarios de

negocio tienen de la aplicación y describir el modelo de negocio que la arquitectura debe cubrir

Vista lógica: muestra los componentes principales de diseño y sus relaciones de forma independiente de

los detalles técnicos y de cómo la funcionalidad será implementada en la plataforma de ejecución.

Vista física: ilustra la distribución del procesamiento entre los distintos equipos que conforman la

solución, incluyendo los servicios y procesos de base. Vista implementación: describe cómo se implementan los componentes físicos mostrados en vista de

distribución agrupándolos en subsistemas organizados en capas y jerarquías, ilustra, además las

dependencias entre éstos.

Propuestas de vistas de la arquitectura según RUP (Kruchten, 2000). 

Vista lógica: requerimientos de comportamiento, mecanismos comunes de diseño (basada en diagramas

de objetos y clases).

Vista de procesos:  distribución, integridad, tolerancia a fallas (basada en describir una red lógica deprogramas que se comunican).

Vista de desarrollo o implementación:  rehúso, portabilidad, asignación de requerimientos y trabajo de

equipos. Organización del software en el ambiente de desarrollo.

Vista física o de despliegue: disponibilidad, confiabilidad, performance, escalabilidad. Mapea elementos

de las otras vistas a nodos de procesamiento.

Vista de casos de uso o escenarios: definición de procesos, agrupamiento en paquetes.

Hasta aquí se han mostrado las propuestas de diferentes autores para clasificar las vistas que debenconformar la disciplina de la arquitectura de software. A continuación se darán las propias definiciones de

los autores del trabajo, resultantes de una larga investigación y basadas en la experiencia de vario

proyectos.

Page 5: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 5/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

Las clasificaciones que se proponen en este trabajo están dadas por la necesidad de agrupar los

elementos que se quedan fuera de las vistas propuestas en una única y global clasificación.

RUP  en sus 4+1 vistas, descuida los temas referidos a las vistas de datos, seguridad, presentación y

sistema.

David Parnas, trata elementos a los que Siemens Research  hace adiciones, pero a ambos les falta los

temas que aborda el SEI referidos a componentes y conectores.

 Al SEI sin embargo le faltan los aspectos relacionados con las vistas de presentación, datos y seguridad.

Tabla 1. Analogía entre arquitecturas.

Arquitectura tradicional Arquitectura de software

Elementos de carga, base del edificio.

Parte más importante en la construcción.

Vista tecnológica: es la base del software,

propicia los elementos de software necesarios para

crear el producto.

Las divisiones que tendrá el edificio, las

habitaciones, los espacios, en fin las

partes en las que estará dividido.

Vista de sistema:  identifica y diseña los

elementos de software y sus configuraciones

Los elementos de integración del

edificio, como ladrillos, cabillas, todo lo

que permita que sus partes queden

unidas.

Vista de integración: identifica todos los aspectos

de integración del software.

La seguridad de las puertas, ventanas,

el acceso al edificio, seguridad de la

estructura, etc.

Vista de seguridad: chequea e implementa todos

los aspectos relacionados con el acceso a la

aplicación, la modificación, lectura o eliminación de

la información, etc.

 A la hora de construir un edificio hay que

tener en cuenta el acabado, la pintura, la

arquitectura, la presentación, en fin la

imagen del edificio.

Vista de presentación: como luce el software,

cuáles son los colores que lleva la aplicación, como

son los botones, los links… 

Todo el personal que vive en el edificio,

los productos que hay en el (mesas,

camas, sillas), todo se debe tener

contabilizado.

Vista de datos: es donde se modela todo lo

persistente y relacionado a la BD.

Page 6: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 6/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

En el libro “Software Systems Architecture : Working With Stakeholders Using Viewpoints and

Perspectives ” de Nick Rozanski y Eóin Woods, abordan 5 vistas que abarcan un amplio contenido

pero no tratan las vistas de seguridad e integración. De ahí que se propongan estas vistas que verán a

continuación, y en las que el contenido que se encierra se trató fuera el más abarcador posible y estuviera

bien desglosado y explicado en las vistas respectivas.

Para que se entiendan mejor las vistas de la arquitectura de software y el enfoque que se le dará a cada

una en este trabajo, se hará una analogía con la arquitectura tradicional y sus diferentes “vistas”. 

Vista tecnológica

La vista tecnológica tiene como objetivo especificar y describir las tareas y competencias de los roles as

como las actividades y artefactos del área de tecnología, y por tanto, definir las habilidades y los

conocimientos que deben desarrollar las personas que trabajan en esta área de la arquitectura de

software para lograr un buen desempeño. La vista de tecnología es la responsable de garantizar un

soporte tecnológico para el desarrollo de las configuraciones que propone el resultado de una Arquitectura

de sistema, así como las bases tecnológicas para los frameworks  especializados de la arquitectura de

sistema o de otras áreas como la de integración. Esta es la vista responsable de identificar las tecnologías

y herramientas a usar en la realización de la aplicación, además de definir la factibilidad técnica de

producto. En esta vista se define la mejor arquitectura posible utilizando una tecnología en particular

igualmente es aquí donde se dan las soluciones técnicas para la optimización de la aplicación, es decipara garantizar la portabilidad, flexibilidad y rendimiento de la aplicación. Los integrantes de la vista de

tecnología son los responsables de generar una tecnología tipo para la aplicación que se desea

desarrollar, de transmitir el conocimiento al resto del proyecto y por último de implantar y controlar el uso

correcto de la tecnología, ganando autoridad y prestigio dentro del proyecto. Las responsabilidades que

encierra la vista de tecnología son las actividades que realiza el arquitecto tecnológico y los artefactos que

genera.

Vista de sistemaLa arquitectura de sistema es una de las disciplinas más complejas dentro de la arquitectura de software

responsable de definir correctamente cohesionados, acoplados e interrelacionados los elementos

computacionales del producto, las principales interacciones, los conectores y las configuraciones a asumi

Page 7: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 7/11

Page 8: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 8/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

Vista de integración

Integrar es hacer que alguien o algo pase a formar parte de un todo. La vista de integración recoge todos

los elementos o aspectos de algo y lo incorpora al ente o a un conjunto de organismos. La integración en

la arquitectura de software busca una completa relación del espacio interior con el espacio exterior. Una

dualidad que se complementa mutuamente con las características propias de cada ambiente o de cada

plataforma operacional en el desarrollo de software. La arquitectura de Integración persigue la obtención

de una forma más eficiente y flexible de combinar recursos, con el objetivo de optimizar operaciones a

través y más allá del medio ambiente organizacional. Provee una vista única consolidada a partir de

conectores que definen y especifican el comportamiento e interacción entre elementos del negocio

(sistemas, subsistemas y componentes). El objetivo que persigue es plasmar detalladamente qué es lo

que se hace en ella y cómo se hace, se analizan los procesos de integración del negocio; se identifican los

principales flujos de colaboración o unificación en la arquitectura; se establecen los conceptos más críticos

en la integración de sus procesos, de acuerdo al nivel de incidencia en los mismos, partiendo del análisis

de su arquitectura, lo que permitirá conocer las áreas más críticas de integración y por último se analizan

entradas y salidas de cada componente identificado por la arquitectura de sistema. Esta actividad permite

estar al tanto de los lazos de colaboración entre componentes y clasificarlos según la estrategia de

integración identificada por el grupo de arquitectura, construyéndose de esta manera la matriz de

integración del negocio.

Vista de seguridad

 Actualmente en muchos de los proyectos de desarrollo de software no existe un área especializada en

garantizar la seguridad del entorno de desarrollo, de despliegue y de las aplicaciones propiamente. Po

esta causa implementar la seguridad resulta trabajoso ya que cada proyecto o institución la controla de

forma diferente, invirtiendo tiempo y cuantiosos recursos humanos y materiales.

En este sentido se estable un área de seguridad denominada Arquitectura de Seguridad, que es la

encargada de establecer toda la política de seguridad a seguir en las diferentes fases o entornos de un

sistema. Para esto deben identificar claramente todas las debilidades que puedan ser aprovechadas paraun ataque. Estas debilidades deben ser agrupadas para crear soluciones que impidan violaciones de

seguridad. Para ello se proponen soluciones como:

Page 9: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 9/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

- Desarrollar un sistema de seguridad centralizado que brinde estos servicios a todos los proyectos o

instituciones que desarrollen software. De esta forma se ahorra tiempo y esfuerzo y además se

garantiza la estandarización de los procesos de gestión de seguridad en todos los sistemas que se

desarrollen.

- Crear listas de chequeo por cada fase del software donde se controle el cumplimiento de todas la

normas de seguridad establecidas.

- Definir la Vista de arquitectura de seguridad que sirva de guía para el desarrollo y norme todos los

aspectos a tener en cuenta en cada fase. 

Vista de presentación

La vista de presentación en la arquitectura de software, tiene la responsabilidad como disciplina de defini

y desarrollar las tecnologías para la representación de la información y usabilidad de esta. Entre las

responsabilidades que cubre se encuentran los aspectos tecnológicos asociados a garantizar atributos de

calidad en el producto como son los aspectos de rendimiento, usabilidad, reutilización y portabilidad de la

capa de presentación en la arquitectura. Entre sus aspectos más importantes se encuentran el uso de

CSS, uso y gestión de imágenes y web hosting 2entre otros. 

Vista de datos

La arquitectura de datos, identifica y precisa las mejores clases de datos que apoyan las funciones denegocio definidas en el modelo de negocios. Es la primera de las arquitecturas a ser concretadas porque

la calidad de los datos es el producto básico de la función de la ingeniería de software. La arquitectura de

datos tiene como objetivo puntualizar los principales tipos y fuentes de datos necesarios para dar soporte

a las actividades de la empresa, de manera que sean:

- entendibles por los participantes.

- completas y consistentes.

- estables.

Esta Vista especifica arquitectónicamente los elementos constantes en el Modelo de Datos (MD). Describe

una apreciación global del MD y su organización por lo que se refiere a las tablas, vistas y

2 El alojamiento web (en inglés web hosting ) es el servicio que provee a los usuarios de Internet un sistema para poder almacenar información,

imágenes, vídeo, o cualquier contenido accesible vía Web.

Page 10: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 10/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

almacenamiento de los procedimientos que proporcionan la persistencia al sistema. También describe la

cartografía de clases constantes de la vista lógica a la estructura de los datos de la base de datos. Esta

vista es opcional, ya que sólo se realiza si la persistencia es un aspecto significante del sistema y e

traslado del modelo de diseño al modelo de datos no se hace automáticamente por el mecanismo de

persistencia.

La vista de datos abarca 12 temas fundamentales, estos son: políticas de trabajo, seguridad de datos

normas de comentariado, estándares de nomenclatura, herramientas, tipos de datos, concurrencia

normalización de árboles, políticas de indexado, rendimiento, mantenimiento de la base de datos y

distribución a nivel de datos.

Validación de la propuesta y resultados alcanzados

La propuesta de vistas detallada anteriormente ha tenido una amplia validación llevándose a cabo en e

proyecto ERP-Cuba, uno de los proyectos de software más grandes realizados en la UCI y el primero con

un tipo de arquitectura como esta, teniendo muy buenos resultados, que se pueden apreciar al se

premiado en eventos como la Jornada Científico Estudiantil, el haber obtenido el equipo de arquitectura e

premio del Rector, por el trabajo que se realizó al diseñar e implementar esta arquitectura y ha sido

presentado en diversos eventos más así como está siendo usada actualmente en varios proyectos

productivos de la UCI.

Esta arquitectura ha sido instalada junto con el producto Cedrux en más de 5 empresas como son eHospital Naval, ICID, Centro de Gestión, Empresa Rafael Trejo, UCI entre otras, teniendo buenos

resultados y siendo una potencia tecnológica ya que fue desarrollado completamente con software libre y

guiado por el proceso de vistas referido en este articulo. 

Conclusiones

Para construir una arquitectura de software debe precisarse una serie de vistas que agrupen las

definiciones necesarias para adquirir el conocimiento y las actividades requeridas para llevarla a cabo. A

hacer una investigación del tema se pudo apreciar que las vistas estudiadas estaban incompletas o no

agrupaban los diferentes temas en los que se desenvuelve un proyecto de software y que son los más

tratados actualmente por lo que surgió este artículo con la intención de lograr implementar una

arquitectura de software que no deje fuera ningún tema deben implementarse las vistas aquí delimitadas

identificándose 6 vistas principales, sistema, seguridad, presentación, integración, datos y tecnológica, con

Page 11: 230-1931-1-PB.pdf

8/15/2019 230-1931-1-PB.pdf

http://slidepdf.com/reader/full/230-1931-1-pbpdf 11/11

Grupo Editorial Ediciones Futuro

Serie Científica de la Universidad de las Ciencias Informáticas (SC-UCI)

Vol.: 3, No. 10, Año 2010

http://publicaciones.uci.cu/index.php/SC 

las responsabilidades asociadas a estas. Al implementar una arquitectura como la presentada en este

trabajo, estamos tratando todas las áreas en las que se desenvuelve una arquitectura con un mayor nive

de especialización, tratando cada tema como una vista aparte, logrando con esto un mayor enfoque y una

mayor definición de tareas por área.

Referencias

-  Departamento de Computación - Facultad de Ciencias Exactas y Naturales - Universidad de

Buenos Aires. 2007. Departamento de Computación. Departamento de Computación. Disponible

en: [http://www.dc.uba.ar/ ].

-  KRUCHTEN. The Rational Unified Process: An Introduction. The Rational Unified Process:  A

Introduction. s.l.: Addison Wesley, 2000.

-  PLATT, MICHAEL. MSDN Architecture Center. MSDN Architecture Center. [en línea] julio de 2002

Disponible en: [http://msdn.microsoft.com/en-us/library/ms978007.aspx ].

-  REYNOSO, CARLOS BILLY. willydev.ne. [en línea] marzo de 2004. Disponible en

[http://www.willydev.net/descargas/prev/IntroArq.pdf ].

-  WOODS, NICK ROZANSKI AND EOIN. 2005. Software Systems Architecture: Working with

Stakeholders Using Viewpoints and Perspectives. Addison-Wesley Professional: s.n., 2005.