Software Architecture

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.

Refer to post on Logical Architecture & Physical Architecture for further details on creating effective architectural artifacts.

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.

System Context Diagram

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):

Read Articles on logical & physical architecture

5 Tips for Creating Effective Logical Architecture

Grow as a Software Architect

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…

5 Tips On Creating Effective Physical/Deployment Architecture For Cloud

Physical 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…

Leave a Comment