Conceptos Fundamentales de Arquitectura de Software
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,41 KB
Importancia de la Arquitectura de Software
La necesidad del manejo de la arquitectura de un sistema de software nace con los sistemas de mediana o gran envergadura, que se proponen como solución para un problema determinado. En la medida que los sistemas de software crecen en complejidad, bien sea por número de requerimientos o por el impacto de los mismos, se hace necesario establecer medios para el manejo de esta complejidad (Hofmeister et al., 1996). En general, la técnica es descomponer el sistema en piezas que agrupan aspectos específicos del mismo, producto de un proceso de abstracción (Bass et al., 1998) y que al organizarse de cierta manera constituyen la base de la solución de un problema en particular.
Introducción a la Arquitectura de Software
Definiciones
- (Clements 1996): La Arquitectura de Software es, a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema.
- (IEEE Std 1471): La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución.
Una arquitectura de software de un programa o de un sistema de cómputo es la estructura o estructuras de un sistema. Dicha(s) estructura(s) comprenden:
- Elementos de software
- Las propiedades visibles de dichos elementos
- Las relaciones entre los mismos.
Esta estructuración representa un diseño de alto nivel del sistema que tiene dos propósitos primarios:
- Satisfacer los atributos de calidad (desempeño, seguridad, modificabilidad), y
- Servir como guía en el desarrollo.
Arquitectura y Atributos de Calidad
Un sistema puede evaluarse de dos formas para comprobar que cumple sus atributos de calidad:
Atributos observables mediante la ejecución:
- ¿Cómo se comporta el sistema durante la ejecución?
- ¿Entrega los resultados esperados?
- ¿Los entrega en un tiempo razonable?
- ¿Tienen los resultados una precisión tolerable?
- ¿Se comporta apropiadamente al interactuar con otros sistemas?
Atributos no observables en la ejecución:
- ¿Cuán fácil es integrar el sistema, probarlo o modificarlo?
- ¿Cuán caro ha sido su desarrollo?
- ¿Cuánto se tardó en tenerlo disponible en el mercado?
Atributos observables durante la Ejecución
- Performance
- Seguridad
- Disponibilidad
- Funcionalidad
- Usabilidad
Atributos de Calidad no Visibles durante la Ejecución
- Modificabilidad
- Portabilidad
- Reusabilidad
- Integrabilidad
- Testabilidad
Modelado
Los ingenieros de software necesitan:
- Comprender el ambiente de funcionamiento del sistema: construyen modelos del dominio del problema (sistemas de bolsa, control de tráfico aéreo,...)
- Comprender los distintos sistemas que podrían construir para evaluar alternativas: construyen modelos del dominio de la solución
- Técnicas y herramientas para construir los modelos (por ejemplo, diagramas de UML)