Please enable JavaScript.
Coggle requires JavaScript to display documents.
INTRODUCCIÓN A LA ARQUITECTURA DE SOFTWARE - Coggle Diagram
INTRODUCCIÓN A LA ARQUITECTURA DE SOFTWARE
Definiciones
La definición de Arquitectura de Software (AS) varía ampliamente en el campo de la ingeniería de software, abordando aspectos de diseño, estructura y disciplina. La AS se enfoca en la organización de un sistema.
Los modelos estructurales
en Arquitectura de Software se centran en componentes, conexiones y el desarrollo de lenguajes de descripción arquitectónica.
Los modelos de framework
en Arquitectura de Software se enfocan en la estructura coherente del sistema completo, a menudo relacionada con dominios específicos o clases de problemas, como CORBA o PRISM.
Los modelos dinámicos
en Arquitectura de Software se centran en la cualidad conductual de los sistemas, considerando cambios en la configuración o la dinámica de la computación, como valores cambiantes de datos.
Los modelos de proceso
Se concentran en la construcción de la arquitectura, y en los pasos o
procesos involucrados en esa construcción.
Los modelos funcionales
es un conjunto de componentes funcionales, organizados en capas que proporcionan servicios.
Campos de la arquitectura de software.
La Arquitectura de Software (AS) es un campo diverso que ha evolucionado desde descripciones descriptivas puntuales hacia una disciplina que redefine aspectos de la ingeniería de software a un nivel más abstracto. Su enfoque incluye áreas de investigación teórica y práctica en constante evolución.
Diseño o selección de la arquitectura
: Cómo crear o seleccionar una arquitectura en base de
requerimientos funcionales, de rendimiento o de calidad
Representación de la arquitectura
: Cómo comunicar una arquitectura. Este problema se ha
manifestado como el problema de la representación de arquitecturas utilizando recursos lingüísticos
Evaluación y análisis de la arquitectura
: Cómo analizar una arquitectura para predecir cualidades del
sistema en que se manifiesta.
Desarrollo y evolución basados en arquitectura
: Cómo construir y mantener un sistema dada una
representación de la cual se cree que es la arquitectura que resolverá el problema correspondiente.
Recuperación de la arquitectura
: Cómo hacer que un sistema legacy evolucione cuando los cambios
afectan su estructura.
Modalidades y Tendencias
La división preliminar de escuelas de AS que se propone es la siguiente:
Arquitectura como etapa de ingeniería y diseño orientada a objetos.
La corriente de Rumbaugh, Jacobson y Booch en relación con UML y Rational se enfoca principalmente en las fases iniciales y de alto nivel de abstracción de la arquitectura, sin estar necesariamente vinculada a los requerimientos previos o al diseño posterior.
Arquitectura estructural, basada en un modelo estático de estilos, ADLs y vistas.
predominante en la academia y esforzada en el reconocimiento de la AS como disciplina, sigue siendo poco conocida en la industria en términos de sus categorías y herramientas.
Estructuralismo arquitectónico radical.
Se trata de un desprendimiento de la corriente
anterior, mayoritariamente europeo, que asume una actitud más confrontativa con el mundo UML.
Arquitectura basada en patrones.
Esta variante de la Arquitectura de Software reconoce como referencia principal la serie POSA de Buschmann y, en segundo lugar, el texto de la Banda de los Cuatro.
Arquitectura procesual.
Desde el inicio del siglo XXI, el SEI y arquitectos como Rick Kazman y otros han trabajado en desarrollar modelos y técnicas específicas para la arquitectura de software, abordando aspectos como ciclo de vida, requerimientos, diseño y calidad.
Arquitectura basada en escenarios.
Una corriente de origen europeo, especialmente en Holanda, revitaliza la relación entre la Arquitectura de Software y los requerimientos y funcionalidad del sistema, en contraposición a la arquitectura tradicional.
Diferencias entre arquitectura y diseño
La relación entre Arquitectura de Software (AS) y diseño de software varía según la perspectiva. Algunos la consideran igual, mientras que otros la ven como un nivel de abstracción superior, pero la perspectiva más cercana a la realidad es que la AS se centra en la estructura y las interconexiones del sistema, distinguiéndose del diseño tradicional.
Arquitectura
: Asocia las capacidades del sistema especificadas en el requerimiento con los componentes
del sistema que habrán de implementarla.
Diseño del código
: Comprende algoritmos y estructuras de datos.
Diseño ejecutable
: Remite al diseño de código a un nivel de detalle todavía más bajo y trata cuestiones
tales como la asignación de memoria, los formatos de datos, etcétera.