From Complexity to Clarity: Architecting Software

Bala Madhusoodhanan - Jun 5 '23 - - Dev Community

Intro:
From the early days of the Zachman Framework to the more comprehensive TOGAF, the 4+1 architectural view model, and the recent C4 model, these models have offered architects and developers new approaches to software design and catered to the evolving industry demands. Advanced frameworks like TOGAF and Zachman, while providing a structured approach to software architecture, can be difficult to implement effectively in practical scenarios. The complexity of these frameworks often hinders architects and developers from extracting tangible value, particularly in large-scale, intricate digital transformation projects.
The article aims is to sheds light on how newer models like C4 strive to strike a balance between complexity and practicality, aiming to make a meaningful impact in the realm of software architecture.

Need for software architecture:

  • Shared language for developers, architects, and business stakeholders to discuss and understand complex system landscapes

  • Architecture models help in managing complexity by breaking down the system landscape into smaller, manageable components

  • Reasoning about the current state and desired future state of software systems in complex enterprises.

  • Models facilitate planning and execution the software development process

The Power of Perspective
Enterprise architecture and Software architecture are interconnected disciplines that center around the planning, structure, and administration of systems.

SA - The focus is with respect to design and implementation of software systems. The topics covers the system functional and non functional design and conceptualize logical architecture, physical architecture, deployment architecture, and operational architecture. The goal is to ensure the system design addresses the usability and operability also to ensure quality and reliability of the system.

EA- The focus is with respect to strategic and tactical objective for the business growth. Understand the underlying business process, the data involved, the system landscape and the underpinning technology stack. The goal is to drive efficiency, scalability, and adaptability at the same time managing complexity, reducing risks, and facilitating decision-making across the organization.

An architecture model is like a map or a plan that helps us understand how something is organized or put together. The detailing could be at micro level / component level. An architecture framework, on the other hand, is like a set of rules or guidelines. The detailing is at macro level.

Image description

An architecture framework provides a standardized structure, methodology and set of tools for developing and managing architectures. It typically includes a set of principles, concepts, and practices that guide the creation of architectural artifacts, such as models, diagrams, and specifications.
A model can refer to a concrete set of views (or diagrams) describing a specific system landscape. A model could include a context view, data model view, a component view, an integration view and a deployment view. (also metamodel)

TOGAF is an enterprise architecture framework and C4 is a software architecture model. Having said that the application domain of TOGAF has lot of overlapping with C4Model.

Let's imagine we are tasked to build TIE Interceptor lego.
The building instruction are bundled into smaller groups and each smaller block of building provides a view of how the smaller component fits with the whole Tie Interceptor. This smaller instruction for building an component is architecture Model.

Image description

Once we have built all the individual components, the instruction of how we combine all the components to build the complete TIE interceptor is framework. An architecture framework, on the other hand, is like a set of rules or guidelines that help us create and organize our LEGO creations

Image description

Focusing on individual meta-model should help software team to understand and develop software for the problem in scope. Choice wisely whether its Application domain of TOGAF or C4Model

From Architecture Framework on left to C4 Model on the right

Image description

Further Read

  1. https://www.opengroup.org/togaf
  2. https://c4model.com/
  3. https://www.zachman.com/about-the-zachman-framework
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .