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
En general
Existe en general acuerdo de que ella se refiere a la estructura a grandes rasgos del sistema (…)
David Garlan
Constituye un puente entre el requerimiento y el código
Una definición reconocida es la de Clements
(…). La vista arquitectónica es una vista abstracta, aportando el más alto nivel de comprensión y la supresión (…) la mayor parte de las abstracciones.
“Componente”
No es la de la correspondiente tecnología de desarrollo, sino la de elemento propio de un estilo
La definición “oficial” de AS IEEE Std 1471-2000
Es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos.
(3) la caracterización de la disciplina que se ocupa de uno de esos dos asuntos, o de ambos
Definición con la de ingeniería de software según estándar IEEE 610.12.1990:
Estrategia sistemática, disciplinada y cuantificable al desarrollo ; esto es, la aplicación de la ingeniería al software.
(2) la configuración de sistemas de software desde un elevado nivel de abstracción
Diferencias
Arquitectura es la organización, la ingeniería tiene fundamentalmente que ver con una sistematicidad
1) el trabajo dinámico de estipulación de la arquitectura dentro del proceso de ingeniería o el diseño
Las diferencias entre definiciones en función de distintas clases de modelos
3) Modelos dinámicos:
Enfatizan la cualidad conductual de los sistemas. “Dinámico” puede referirse a los cambios en la configuración del sistema
4) Modelos de proceso:
Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en esa construcción.
2) Modelos de framework:
Su énfasis primario radica en la estructura coherente del sistema completo. refieren a dominios o clases de problemas específico
5) Modelos funcionales:
Arquitectura como un conjunto de componentes funcionales, organizados en capas que proporcionan servicios hacia arriba
1) Modelos estructurales:
Está compuesta por componentes, conexiones entre ellos, otros aspectos tales como configuración, (…), requerimientos,(…).
Campos de la Arquitectura de Software
Paul Clements temas fundamentales
Evaluación y análisis: Cómo analizar una arquitectura para predecir cualidades del sistema en que se manifiesta.
Desarrollo y evolución: Cómo construir y mantener un sistema dada una representación
Representación: Cómo comunicar una arquitectura
Recuperación : Cómo hacer que un sistema legacy evolucione cuando los cambios afectan su estructura
Diseño: Cómo crear o seleccionar una arquitectura en base de requerimientos funcionales, de rendimiento o de calidad.
Mary Shaw (2001)
El campo tiene que ver con sistemático de los estilos, la formulación de metodologías y en trabajo con patrones de diseño.
David Garlan y Dewayne Perry (1995)
Métodos de desarrollo basados en arquitectura
Recuperación y reutilización de arquitectura
Técnicas de análisis arquitectónicas
Codificación y guía arquitectónica
Fundamentos formales de la AS
Herramientas y ambientes de diseño arquitectónico
Lenguajes de descripción de arquitecturas
Estudios de casos
Modalidades y Tendencias
La división preliminar de escuelas de AS que se propone es la siguiente:
3) Estructuralismo arquitectónico radical
Desprendimiento de la corriente anterior, que asume una actitud más confortativa con el mundo UML
4) Arquitectura basada en patrones.
Prevalece cierta tolerancia hacia modelos de proceso tácticos, no tan macroscópicos
El diseño consiste en identificar y articular patrones preexistente.
Modelo emanado históricamente del diseño orientado a objetos
2) Arquitectura estructural, modelo estático de estilos, ADLs y vistas
Representantes de esta corriente son todos académicos, mayormente de la Universidad Carnegie (…).
En principio se pueden reconocer tres modalidades en cuanto a la formalización;
Los de talante intermedio se sirven de ADLs
Los más exigentes usan lenguajes formales de especificación como CHAM y Z
Los más informales utilizan descripciones verbales o diagramas de cajas
Constituye la corriente fundacional y clásica de la disciplina
5) Arquitectura
Intenta establecer modelos de ciclo de vida y técnicas de elicitación de requerimientos, diseño, análisis(…)
1) Arquitectura como etapa de ingeniería y diseño orientada a objetos
Se confunde también con el modelado y el diseño, los cuales constituyen los conceptos dominantes
En esta corriente se manifiesta predilección por un modelado denso y una profusión de diagramas
Se restringe a las fases iniciales y preliminares del proceso y concierne a los niveles más elevados de abstracción
La definición de arquitectura que se promueve en esta corriente tiene que ver con aspectos formales a la hora del desarrollo
Es el modelo de James Rumbaugh, Ivar Jacobson, Grady Booch, Craig Larman y otros
6) Arquitectura basada en escenarios
Se inscriben dentro del canon delineado por la arquitectura procesuales
En esta corriente suele utilizarse diagramas de casos de uso UML como herramienta informal u ocasiona
Recupera el nexo de la AS con los requerimientos y la funcionalidad del sistema
El Manifiesto por la Programación Agil, en efecto, valoriza:
El software que funciona por encima de la documentación exhaustiva
La colaboración con el cliente por encima de la negociación contractual
Los individuos y las interacciones por encima de los procesos y las herramientas
La respuesta al cambio por encima del seguimiento de un plan
Es la corriente más nueva
Habrá oportunidad de desarrollar el tratamiento de estas metodologías en otros documentos de la serie
Diferencias entre Arquitectura y Diseño
Es una metáfora de diseño de software y en abarca también las metodologías de diseño, así como metodologías de análisis
Albin describe ejecuta una combinación de roles como los de analista de sistemas, diseñador de sistemas e ingeniero de software
Taylor y Medvidovic estiman que la segunda interpretación es la que se encuentra más cerca de la verdad.
Para Shaw y Garlan la AS es el primer paso en la producción de un diseño de software
(2) Diseño del código. Comprende algoritmos y estructuras de datos; los componentes son aquí primitivas del lenguaje de programación
(3) Diseño ejecutable. Remite al diseño de código a un nivel de detalle todavía más bajo
(1) Arquitectura. Asocia las capacidades del sistema especificadas en el requerimiento con los componentes del sistema que habrán de implementarla.
(3) Es algo nuevo y en alguna medida diferente del diseño
Dewayne Perry (1997) diferencia entre arquitectura y diseño.
La arquitectura, una vez más concierne a un nivel de abstracción más elevado; y no de las interfaces
(2) Se encuentra en un nivel de abstracción por encima del diseño
ABD describe el sistema en función de los principales elementos y las relaciones entre ellos
El proceso se basa en tres fundamentos:
(2) la realización de los requerimientos de calidad y negocios a través de los estilos arquitectónicos
(3) las plantillas de software, un concepto nuevo que incluye patrones que describen la forma en que todos los elementos
(1) la descomposición de la función (usando técnicas bien establecidas de acoplamiento y cohesión)
El modelo de diseño específico de ABD se describe en los documentos correspondientes a metodologías arquitectónicas
(1) Una postura afirma que arquitectura y diseño son lo mismo