-
Estructuración del software
Edsger Dijkstra propuso que se establezca una estructuración correcta de los sistemas de software antes de lanzarse a programar, escribiendo código de cualquier manera. Inventó o ayudó a precisar además docenas de conceptos: el algoritmo de camino más corto, los stacks, los vectores, los semáforos, los abrazos mortales. -
Conferencia NATO Software Engineering Conference
Fué el evento en el que se estableció la Ingeniería de Software como toda una disciplina. -
Primeras declaraciones
Sharp formuló estas sorprendentes apreciaciones comentando las ideas de Dijkstra: "Pienso que tenemos algo, aparte de la ingeniería de software: algo de lo que hemos hablado muy poco pero que deberíamos poner sobre el tapete y concentrar la atención en ello. Es la cuestión de la arquitectura de software." -
Estructura conceptual
Frederick Phillips Brooks Jr y Ken Ivenson llamaban arquitectura a la estructura conceptual de un sistema en la perspectiva del programador. utilizaba el concepto de arquitectura del sistema para designar “la especificación completa y detallada de la interfaz de usuario” y consideraba que el arquitecto es un agente del usuario. -
Diseño estructurado y de modelos
Fue el advenimiento del diseño estructurado y de los primeros modelos explícitos de desarrollo de software. Estos modelos comenzaron a basarse en una estrategia más orgánica, evolutiva, cíclica, dejando atrás las metáforas del desarrollo en cascada que se inspiraban más bien en la línea de montaje de la ingeniería del hardware y la manufactura. Poco a poco el diseño se fue independizando de la implementación, y se forjaron herramientas, técnicas y lenguajes de modelado específicos. -
Lenguajes de interconexión de módulos (MIL)
Lenguaje descriptivo de modelado arquitectónico de software que se focaliza en la estructura de alto nivel de la aplicación antes que en los detalles de implementación de sus módulos concretos. -
Parnas y sus principios de diseño
David Parnas, en 1972, introdujo los conceptos de ocultamiento de información, estructuras de software y familias de programas , enfatizando siempre la búsqueda de calidad del software, demostró que los criterios seleccionados en la descomposición de un sistema impactan en la estructura de los programas y propuso diversos principios de diseño que debían seguirse a fin de obtener una estructura adecuada. -
El paradigma POO (Programación orientada a objetos)
Los métodos de desarrollo estructurado demostraron no escalar suficientemente y fueron dejando
el lugar a un nuevo paradigma, el de la programación orientada a objetos. -
Patrones GoF
El texto de GoF (Gang of Four), estudiados por Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides. Se
contemplan 3 tipos de patrones; de creación, estructurales y de comportamiento -
Modelo "4+1" Vistas
Philippe Kruchten diseña el modelo "4+1" Vistas que se utiliza para describir la arquitectura de un sistema software intensivo basado en el uso de múltiples puntos de vista. -
Pattern-Oriented Software Architecture
Presentados en el clásico libro Patrones POSA, en este libro se
presenta patrones de arquitectura divididos en cuatro categorías; de mar a estructura, sistemas distribuidos,
sistemas interactivos y sistemas adaptables. -
Programación por componentes y más avances
Surge la programación basada en componentes, a afirmar que la AS promovía un modelo que debía ser más de integración de componentes pre-programados que de programación. -
modelo REST
Roy Fielding presentó el modelo REST, el cual establece definitivamente el tema de las tecnologías de Internet y los modelos orientados a servicios y recursos en el centro de las preocupaciones de la disciplina. -
Se publica la versión definitiva de la recomendación IEEE Std 1471
En ésta se procura homogeneizar y ordenar la nomenclatura de descripción arquitectónica y homóloga los estilos como un modelo fundamental de representación conceptual. -
Arquitectura de software
En el siglo XXI, la AS aparece dominada por estrategias orientadas a líneas de productos y por establecer modalidades de análisis, diseño, verificación, refinamiento, recuperación, diseño basado en escenarios, estudios de casos y hasta justificación económica, redefiniendo todas las metodologías ligadas al
ciclo de vida en términos arquitectónicos. -
Arquitectura de software en la actualidad
En el transcurso de los años, la complejidad y tamaño de los sistemas software se fue incrementado de manera espectacular. La capacidad para responder rápidamente ante los cambios y optimizar los procesos de negocio es un factor clave para la competitividad y el crecimiento de las organizaciones.