Вы находитесь на странице: 1из 9

Conceptos Generales de Arquitecturas de Software

El Arquitecto
El arquitecto ideal debe ser una persona de letras, matemtico, familiarizado con la historia, diligente estudioso de la filosofa, conocedor de la msica, no ignorante de la medicina, entendido en las leyes, versado en la astronoma y los clculos astronmicos. Vitruvio, 25 AC

Aunque Vitruvio no se refera aqu a los arquitectos de software, si nos da una posible pauta de lo que se espera de ellos. Un arquitecto debe ser una persona balanceada, madura, experimentada, educada, de rpido aprendizaje, lder, con facilidad de comunicacin, y con capacidad de tomar decisiones difciles cuando es necesario. El arquitecto debe tener un buen conocimiento del dominio del problema. Este conocimiento se puede adquirir a travs de la educacin y/o la experiencia. Adicionalmente, los arquitectos deben tener un conocimiento amplio de las tecnologas disponibles para poder tomar decisiones informadas.

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Arquitectura de Software
Una arquitectura de software es una descripcin de los subsistemas y componentes de un sistema de software y sus relaciones mtuas.

La arquitectura se refiere a la representacin abstracta de los componentes y comportamientos de un sistema. Idealmente, la arquitectura no contiene detalles sobre la implementacin (esa es tarea de los diseadores). El arquitecto recaba informacin sobre el problema y disea una solucin que satisfaga los requerimientos funcionales y no-funcionales del cliente y que a su vez sea lo suficientemente flexible para evolucionar cuando los requerimientos cambien. Los subsistemas y componentes se especifican tpicamente utilizando distintas vistas para mostrar las propiedades funcionales y no-funcionales de un sistema de software. La arquitectura es un proceso creativo. El arquitecto tiene el reto de lograr un balance entre la creatividad y el pragmatismo usando la tecnologa disponible en la forma de modelos, frameworks y patrones. La arquitectura se puede referir a un producto, por ejemplo la arquitectura de un edificio particular, o puede referirse a un mtodo o estilo, tales como los conocimientos y estilos utilizados para disear edificios.

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Componente
Un componente es una parte encapsulada de un sistema de software. Consiste de una interfaz, y sirve como un bloque de construccin para la estructura de un sistema.

A nivel de lenguaje de programacin, los componentes pueden ser representados como mdulos, clases, objetos, o como un conjunto de funciones relacionadas. El trmino componente es en principio independiente de su eventual manifestacin en cdigo fuente. Los componentes tiene las siguientes propiedades: Es una entidad distribuible. Generalmente no es una aplicacin completa. Se puede utilizar en combinaciones no previstas. Tiene una interfaz bien definida.

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Relaciones
Una relacin representa una conexin entre componentes. Una relacin puede ser esttica o dinmica.

Las relaciones estticas estn patentes directamente en el cdigo fuente. stas tienen que ver con la colocacin de los componentes dentro de una arquitectura. Agregacin y herencia son ejemplos de relaciones estticas. Las relaciones dinmicas tienen que ver con conexiones temporales y la interaccin dinmica entre componentes. Puede que no sean fcilmente visibles a partir de la estructura esttica del cdigo fuente. Ejemplos de relaciones dinmicas: creacin de objetos, comunicacin entre objetos, transferencia de datos, etc.

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Vista
Una vista representa un aspecto parcial de una arquitectura de software que muestra propiedades especficas de un sistema de software.

[BASS] propone tres vistas segn los elementos mostrados en la arquitectura: Vista Modular: Los elementos que se consideran en esta vista son mdulos, los cuales representan unidades de implementacin a los que se les asignan areas de responsabilidad funcional. Vista de Componente-Conector: Los elementos considerados en esta vista son componentes a tiempo de ejecucin (los cuales son las principales unidades de cmputo) y conectores (que son el medio de comunicacin entre componentes). Vista de Alojamiento: Muestra la relacin entre elementos de software y los elementos del ambiente externo en donde el software se crea y ejecuta. Estas tres vistas corresponden a tres tipos de decisiones que involucran el diseo arquitectnico: Cmo se estructura un sistema como un conjunto de unidades de cdigo (mdulos)? Cmo se estructura un sistema como un conjunto de elementos que tienen, a tiempo de ejecucin, comportamiento (componentes) e interacciones (conectores)? Cmo se relaciona el software a elementos del ambiente que no son de software (CPUs, sistemas de archivos, redes, equipos de desarrollo)?

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Propiedades Funcionales
Una propiedad funcional se encarga de un determinado aspecto de la funcionalidad de un sistema.

Las propiedades funcionales generalmente estn relacionadas a un requerimiento funcional especfico (tambin llamados requerimientos de negocio). Adems de los requerimientos funcionales de un sistema, una arquitectura debe considerar los requerimientos no-funcionales (conocidos tambin como requerimientos de nivel de servicio o de calidad de servicio). Una propiedad funcional puede ser visible directamente a un usuario de una aplicacin a travs de una funcin especfica, o puede representar aspectos de su implementacin, tal como el algoritmo utilizado.

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Requerimientos No-Funcionales
Desempeo Escalabilidad Confiabilidad Disponibilidad Extensibilidad Facilidad de Mantenimiento Manejabilidad Seguridad

A continuacin se enumeran algunos requerimientos no-funcionales que deben considerarse al momento de realizar una arquitectura de software: El desempeo mide el tiempo de respuesta que tarda una transaccin solicitada por un usuario. La escalabilidad es la capacidad de soportar un incremento en la carga del sistema sin impactar el resto de los requerimientos no-funcionales. La confiabilidad asegura la integridad y consistencia de la aplicacin y todas sus transacciones. La disponibilidad garantiza que un servicio y/o recurso est siempre accesible. La extensibilidad es la habilidad de aadir funcionalidad adicional o modificar la funcionalidad existente sin impactar la funcionalidad actual. La facilidad de mantenimiento es la capacidad para corregir errores en la funcionalidad existente sin impactar otros componentes del sistema. La manejabilidad es la habilidad de administrar el sistema para garantizar su funcionamiento adecuado. La seguridad es la capacidad para asegurar que un sistema no quede expuesto a situaciones de riesgo.

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Patrones
Un patrn de software describe un problema recurrente que se presenta en determinados contextos, y presenta un esquema genrico que ha demostrado ser adecuado como solucin.

El esquema de solucin de un patrn se especifica describiendo los componentes que lo constituyen, sus responsabilidades y relaciones, y la manera en que colaboran. Los patrones de software se pueden clasificar en tres categoras: Patrones arquitectnicos Patrones de diseo Idiomas

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Conceptos Generales de Arquitecturas de Software

Framework
Un framework es un sistema (o subsistema) de software parcialmente completo cuya intencin es ser instanciado.

Un framework define la arquitectura de una familia de sistemas (o subsistemas) y provee de los bloques bsicos de construccin para construirlos. As mismo, define los sitios donde se deben hacer adaptaciones para obtener una funcionalidad especfica. En un ambiente orientado a objetos, un framework consiste de clases concretas y abstractas. La instanciacin de un framework involucra usar herencia y composicin sobre las clases ya existentes.

2006 por Ariel Ortiz Ramrez, ITESM CEM.

Вам также может понравиться