Sei sulla pagina 1di 4

Arquitectura de software

Arquitectura de software
En los inicios de la informtica, la programacin se consideraba un arte y se desarrollaba como tal, debido a la dificultad que entraaba para la mayora de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guas generales, con base a las cuales se puedan resolver los problemas. A estas, se les ha denominado Arquitectura de Software, porque, a semejanza de los planos de un edificio o construccin, estas indican la estructura, funcionamiento e interaccin entre las partes del software. En el libro "An introduction to Software Architecture", David Garlan y Mary Shaw definen que la Arquitectura es un nivel de diseo que hace foco en aspectos "ms all de los algoritmos y estructuras de datos de la computacin; el diseo y especificacin de la estructura global del sistema es un nuevo tipo de problema".

Arquitectura
La Arquitectura del Software es el diseo de ms alto nivel de la estructura de un sistema. Una Arquitectura de Software, tambin denominada Arquitectura lgica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco de referencia necesario para guiar la construccin del software para un sistema de informacin. La Arquitectura de Software establece los fundamentos para que analistas, diseadores, programadores, etc. trabajen en una lnea comn que permita alcanzar los objetivos del sistema de informacin, cubriendo todas las necesidades. Una arquitectura de software se selecciona y disea con base en objetivos y restricciones. Los objetivos son aquellos prefijados para el sistema de informacin, pero no solamente los de tipo funcional, tambin otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interaccin con otros sistemas de informacin. Las restricciones son aquellas limitaciones derivadas de las tecnologas disponibles para implementar sistemas de informacin. Unas arquitecturas son ms recomendables de implementar con ciertas tecnologas mientras que otras tecnologas no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real. La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computacin, sus interfaces y la comunicacin entre ellos. Toda arquitectura debe ser implementable en una arquitectura fsica, que consiste simplemente en determinar qu computadora tendr asignada cada tarea. La arquitectura de software, tiene que ver con el diseo y la implementacin de estructuras de software de alto nivel. Es el resultado de ensamblar un cierto nmero de elementos arquitectnicos de forma adecuada para satisfacer la mayor funcionalidad y requerimientos de desempeo de un sistema, as como requerimientos no funcionales, como la confiabilidad, escalabilidad, portabilidad, y disponibilidad. Kruchten, Philippe

Arquitectura de software

Breve resea histrica


En los aos 1960 ya se acariciaba el concepto de arquitectura de software en los crculos de investigacin (por ejemplo, por Edsger Dijkstra). No obstante, toma popularidad en los aos 1990 tras reconocerse la denominada crisis del software y como tema de inters de la incipiente disciplina de la ingeniera del software.

Modelos o vistas
Toda arquitectura de software debe describir diversos aspectos del software. Generalmente, cada uno de estos aspectos se describe de una manera ms comprensible si se utilizan distintos modelos o vistas. Es importante destacar que cada uno de ellos constituye una descripcin parcial de una misma arquitectura y es deseable que exista cierto solapamiento entre ellos. Esto es as porque todas las vistas deben ser coherentes entre s, evidente dado que describen la misma cosa. Cada paradigma de desarrollo exige diferente nmero y tipo de vistas o modelos para describir una arquitectura. No obstante, existen al menos tres vistas absolutamente fundamentales en cualquier arquitectura: La visin esttica: describe qu componentes tiene la arquitectura. La visin funcional: describe qu hace cada componente. La visin dinmica: describe cmo se comportan los componentes a lo largo del tiempo y como interactan entre s. Las vistas o modelos de una arquitectura de software pueden expresarse mediante uno o varios lenguajes. El ms obvio es el lenguaje natural, pero existen otros lenguajes tales como los diagramas de estado, los diagramas de flujo de datos, etc. Estos lenguajes son apropiados nicamente para un modelo o vista. Afortunadamente existe cierto consenso en adoptar UML (Unified Modeling Language, lenguaje unificado de modelado) como lenguaje nico para todos los modelos o vistas. Sin embargo, un lenguaje generalista corre el peligro de no ser capaz de describir determinadas restricciones de un sistema de informacin (o expresarlas de manera incomprensible).

Arquitecturas ms comunes
Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de informacin. Lo habitual es adoptar una arquitectura conocida en funcin de sus ventajas e inconvenientes para cada caso en concreto. As, las arquitecturas ms universales son: Monoltica. Donde el software se estructura en grupos funcionales muy acoplados. Cliente-servidor. Donde el software reparte su carga de cmputo en dos partes independientes pero sin reparto claro de funciones. Arquitectura de tres niveles. Especializacin de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentacin (interfaz de usuario), otra para el clculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relacin con la siguiente. Otras arquitecturas afines menos conocidas son: En pipeline. Entre pares. En pizarra. Orientada a servicios. Dirigida por eventos. Mquinas virtuales

Arquitectura de software

Bibliografa
Booch, Grady. Object-Oriented Analysis and Design. Second Edition. Benjamin/Cummings, Redwood: 1994. Jacobson, Ivar, Grady Booch, and James Rumbaugh. El Proceso Unificado de Desarrollo de Software. Mxico: Addison-Wesley, 1999. Kruchten, Philippe. "Architectural Blueprints--The 4+1 View Model of Software Architecture". IEEE Software, Institute of Electrical and Electronics Engineers. November 1995, pp. 42-50. Larman, Craig. UML y Patrones, Introduccin al anlisis y diseo orientado a objetos. Mxico: Prentice Hall, 1999. Martin, Robert C. "Design Principles and Design Patterns". Objectmentor [1] Muller, Pierre-Alain. Modlisation Object avec UML. Paris: Eyrolles, 1997. Wilson, Scott F. Analyzing Requirements and Defining Solution Architectures. Redmond: Microsoft Press, 1999. Fernndez Aramayo, David Ricardo. Arquitectura de Software. Universidad Tecmilenio, ITESM Zapata Sanchez, Andres felipe. Arquitectura de Software www.fi.uba.ar Meylin Siguas Villavicencio www.unpmsn.org

Enlaces externos
http://www.sceu.frba.utn.edu.ar/e-learning/cursos-a-distancia/Inform%C3%A1tica/ Arquitecturas-de-Software/temario Curso en castellano de Arquitecturas de Software (a distancia)

Vase tambin
Ingeniera del software. Cmo ser un arquitecto de software (Castellano) [2] El rol de los Arquitectos de Software [3] El arquitecto de software como un ser visionario [4] artculos para Arquitectos de Software y Arquitectura Orientada a Servicios [5]

Referencias
[1] [2] [3] [4] [5] http:/ / www. objectmentor. com http:/ / www. epidataconsulting. com/ tikiwiki/ tiki-index. php?page=Arquitectura%20de%20Software http:/ / www. epidataconsulting. com/ tikiwiki/ tiki-read_article. php?articleId=7 http:/ / www. epidataconsulting. com/ tikiwiki/ tiki-read_article. php?articleId=40 http:/ / www. soaAgenda. com

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Arquitectura de software Fuente: http://es.wikipedia.org/w/index.php?oldid=44215169 Contribuyentes: Afpineda, AlexandroRR, Charlitos, Diegusjaimes, Echani, Ernesto Bueno, Josell2, Julian Mendez, KillerQ, Lin linao, Maldoror, Mao tandil, Mecamtico, Millars, Moleculax, Orgullomoore, Pablotortorella, Platonides, PoLuX124, Santiagobas, Tirithel, Usrwp, Will vm, Yrithinnd, 95 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

Potrebbero piacerti anche