Categories
Software Architecture

Infographic for Software Architecture History

Have you ever wondered what is the history of the software architecture? When was the first use of the architecture acronym in the software? How do microservices benefit from DDD, REST, Containers, etc.? How have architecture documentation and descriptions been evolving over time?

To answer all of these questions and more, I have built the below timeline infographic that shows how the architecture evolved over the time and became in its current shape(s):

In this story, you will learn how the Software Architecture evolved over the time?

Have you ever wondered what is the history of the software architecture? When was the first use of the architecture acronym in the software? How do microservices benefit from DDD, REST, Containers, etc.? How have architecture documentation and descriptions been evolving over time?

To answer all of these questions and more, I have built the below timeline infographic that shows how the architecture evolved over the time and became in its current shape(s):

In the following, we will take you on a journey to the history of the software architecture and we will end it with a set of worth noting observations:

The 1950s

Events in the 1950s had an impact on the Software Architecture
  • 1951: Assembly
  • 1954: FORTRAN
  • 1959: COBOL, LISP

The 1960s

Events in the 1960s had an impact on the Software Architecture
  • 1960: OO Concepts
  • 1962: Simula 62 (First OO Language)
  • 1964: BASIC
  • 1968: Software Architecture Concept, Pascal, Modularity & Layering Concepts, Components (as Libraries), C programming language
  • 1969: Microkernel Architecture Style

The 1970s

Events in the 1970s had an impact on the Software Architecture
  • 1970: Event-Driven Programming
  • 1971: TCP/IP
  • 1972: Smalltalk
  • 1974: Pipes & Filters Style (Pipeline), Internet, SQL, Architecture Views
  • 1976: Entity-Relation Diagram (ERD), Modula Programming Language
  • 1978: 2-Tier Client/Server Architecture
  • 1979: Model-View-Controller (MVC), Containers

The 1980s

Events in the 1980s had an impact on the Software Architecture
  • 1981: Remote Procedure Call (RPC), Dependency Structure Matrix
  • 1982: OOP gained popularity
  • 1983: C++
  • 1984: Components gained popularity
  • 1986: Use Cases
  • 1987: Zachman Framework, Liskov Substitution (SOLID), Hierarchal MVC
  • 1988: Command Query Separation
  • 1989: Responsibility Driven Design, Design by Contract, WWW

The 1990s

Events in the 1990s had an impact on the Software Architecture
  • 1990: Client/Server became popular
  • 1991: First Web Browser, CORBA first stable release, Message Bus, Python, Object-model Technique (OMT)
  • 1992: Architecture Style Concept, Entity-Boundary Interactor (EBC), Booch Modeling Method
  • 1993: HTML, 3-Tier Architecture
  • 1995: Design Patterns, RUP 4+1, Java, Javascript, TOGAF
  • 1996: HTTP, Architecture Patterns Concept, Model-View-Presenter, OCP&ISP&DIP (SOLID)
  • 1997: Component-based Architecture, UML (Unified Booch & OMT methods), Aspect-Oriented Programming, EJB
  • 1998: SOAP, User Story
  • 1999: Internet of Things (IoT)

The 2000s

Events in the 2000s had an impact on the Software Architecture
  • 2000: REST, WSDL, IEEE 1471/ISO 42010
  • 2001: JSON, XSD, Model Driven Architecture
  • 2002IEEE 7301/ISO 25010, Dot NET Framework, Single Responsibility Principle (SOLID)
  • 2003: Domain-Driven Design, SOA
  • 2004: WS-I BP 1.0
  • 2005: Model-View-ViewModel, Ports and Adapters (Hexagonal)
  • 2006: C4 Modeling, CQRS (derived from CQS), Event Sourcing, Continuous Integration
  • 2008: Android, Onion Architecture, REST gained popularity, Continous Delivery, DevOps
  • 2009: Archimate, Microservices

The 2010s

Events in the 2010s had an impact on the Software Architecture
  • 2010: Architect Analysis and Design Language (AADL)
  • 2012: Clean Architecture, GraphQL
  • 2013: Containers gained popularity
  • 2016: gRPC

Observations

According to the above its worth noting that:

  • Software Architecture as a concept has been founded in the 60s, but the Architecture Style and Architecture Pattern as concepts didn’t exist until the 90s
  • Architecture Documentation has started by defining views concept in the 70s, but it didn’t get importance until the 90s with RUP4+1 and TOGAF
  • Architecture Documentation had a standard in the 2000s by IEEE1471/ISO42010
  • TCP/IP and internet were founded in the 70s which was the base for RPC, Client/Server Architecture, and eventually, all the distributed architecture styles we have today (e.g., Multi-Tiers, Component-based Architecture, SOA, Microservices, etc.)
  • SQL and ERD were founded in the 70s
  • OO Concepts and OO Programming already existed even before the procedural and functional programming paradigms, but OO didn’t gain popularity until the 80s
  • Object modeling started in the 90s and UML came as a unification effort for the different modeling techniques founded in that era especially OMT and Booch modeling
  • It is worth noting that SOLID principles have evolved over time starting from the 80s and the acronym itself hasn’t been coined until the 2000s. The first principle founded was LSP in the 80s, followed by OCP, ISP, and DIP in the 90s and the last principle founded was the Single Responsibility Principle (SRP) in the 2000s
  • The 3-Tier Architecture was founded as a need emerged from the presence of WWW and HTML to build web applications
  • SOA is an evolution of the Component-based Architecture that benefited from SOAP (1998), WSDL (2002), and XSD (2001) for more interoperability.
  • Microservice is an evolution of Domain-Driven Design (2003) that benefited from REST (2000), Event-driven programming(1970), containers (1979), and many other techniques for more autonomy, maintainability, and flexibility.
  • The Containers concept already existed since the 70s but it gained popularity in the Microservices era
  • REST APIs (founded in 2000) already existed before SOAP-based webservices (the first standard released was WS-I BP in 2004), but REST API didn’t get popular until 2008. For more information about the APIs history, please check the API Definition and History

Author: HAITHAM RAIK

Leave a Reply Cancel reply