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
A logical architecture helps to visualize and communicate the application’s logical & functional components and depicts future state of the architecture meeting business requirements. A software architect often comes up with a logical architecture as an artifact during the architecture…
In continuation with our series on empowering seasoned developers to be successful & informed software architects, this blog’s focus is on creating an effective physical architecture diagram. Read the previous blog on creating an effective logical architecture by clicking here.…