“The first matrix I designed was quite naturally perfect…. a triumph equaled only by its monumental failure. I have since come to understand that the answer eluded me because it required a lesser mind, or perhaps a mind less bound by the parameters of perfection.”
-The Architect. The Matrix Reloaded (Wachowski & Wachowski, 2003)
A lot has been changed in the world of architectural frameworks since the 1995 IEEE software (Volume:12, Issue: 6 ) paper by Philippe Kruchten on Architectural Blueprints — The “4+1” View Model of Software Architecture was published. Various other viewpoint and perspectives have been emerged including but not limited to RM-ODP, Siemens, SEI's Views and Beyond, Garland and Anthony (UML), Integrated architecture framework (IAF), Zachman, E2AF, Geram and TOGAF.
Architecture frameworks are the design methodologies used in architecture modeling. These frameworks provide a structure, organization and system to help design complex systems in an effective manner. The relevance of software architecture in agile world is a highly contested topic and it is hard to cover in a blog post. Simon Brown’s Coding the architecture is a great place to start understanding the place of architecture in an agile world. An excellent paper on Agility and Architecture—Can they coexist? Software, IEEE (Volume:27 , Issue: 2 ) also provide a good comparative analysis of pros’ and cons related to architecture in an agile space.
Abstract: Software architecture is taking a bad rap with many agile proponents; big up-front design, massive documentation, smell of waterfall, it is pictured as a non-agile practice, something we do not want to even consider; though everybody want to be called an architect. However, certain classes of system, ignoring architectural issues too long “hit a wall” and collapse by lack of an architectural focus. Agile architecture: a paradox, an oxymoron, two totally incompatible approaches? In this paper we review the real issues at stake, past the rhetoric and posturing, and we suggest that the two cultures can coexist and support each other, where appropriate.
Since 4+1 View Model was published, it has been a widely accepted idea in the architectural community that there is no single view of software architecture. Regardless of where you find yourself on the software-architecture-spectrum-battler, there are always various concurrent views, each of which addresses a specific set of concerns. The purpose of an Architects (albeit a coding one) is to capture the design decisions in multiple views and use the stories to illustrate and validate them. Considering the 4+1 model,
...the logical view describes the design's object model when an object-oriented design method is used. To design an application that is very data driven, you can use an alternative approach to develop some other form of logical view, such as an entity-relationship diagram. The process view describes the design's concurrency and synchronization aspects. The physical view describes the mapping of the software onto the hardware and reflects its distributed aspect. The development view describes the software's static organization in its development environment.
Happy coding!
References
Architectural Blueprints—The “4+1” View Model of Software Architecture
A comparative analysis of architecture frameworks
Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
Alignment in Enterprise Architecture: A Comparative Analysis of Four Architectural Approaches