If you are starting your journey as a software architect, getting to know the fundamentals of software architecture as per industry standard (IEEE 42010) is the first step. This slide deck is an effort to unpack the IEEE definition of Software Architecture & provide the guidance and recommendation to make your journey easier.
Key excerpts from the slide
ISO/IEC/IEEE 42010 – Systems and software engineering is an international standard for architecture descriptions of systems and software.
Definition of Software Architecture
Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.
Reference: ISO/IEC/IEEE 42010 Standard
Key part is understanding components, which will constitute the architecture of system under consideration and then build the relationship (their link to each other) to communicate the architecture.
Fundamental organization can be depicted in non-standard block format (like below for better visualization) or using standard UML notation.
Architecture itself is not good or bad – need to understand the context behind creating the software architecture (business, technical & environment context) before we determine the effectiveness of the architecture.
During initial phase of defining the architecture, think incrementally and start defining components and their relationships starting with Level 0. This can be detailed out further in Level 1, Level 2 and so on. For example, a system context diagram can be created like shown below during initial phase, which can be detailed out further incrementally.
To conclude, Software Architecture is an evolving field and continue learning the basics & fundamentals to make sure you are ready from conceptual perspective. Refer to the following books as well for details on software architecture (must read for every software architect):
- Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives: Book by Eoin Woods and Nick Rozanski
- Software Architecture in Practice: Book by Len Bass, Paul Clements, Rick Kazman
Read Articles on logical & physical architecture
In continuation with our series on empowering seasoned developers to be a successful & informed software architect, this blog’s focus is on creating effective physical architecture diagram. Read our earlier blog on creating effective logical architecture here. Physical architecture (also…
A logical architecture helps to visualize and communicate application’s logical & functional components and depicts future state solution exhibiting how it will meet business needs. A software architect often comes up with logical architecture during the stage of architecture definition phase and gets…