SATURN 2015: Software Architecture as Code (Session Notes)

Simon Brown, Coding the Architecture

by Jacob Tate, Mount St. Mary’s University

Simon Brown taught us a lot in his session titled “Software Architecture as Code.” From teaching us where Jersey is to how to extract architecture from code, Brown gave a riveting talk on bridging the gap between architecture and code. Diagrams for software architecture are often messy; one developer cannot distinguish another’s way of thinking by looking at sloppy boxes and mismatched lines. Would we write our code this way? Our code does not map to the architectural views we created, and this is a problem.

Brown put forth that we need to work toward a common set of abstractions rather than a common notation. One way to accomplish this is with the C4 model, which looks at the following: system context overall, containers within the context, components in the containers, and classes within the components. This model allows for an architecture that translates well to code, and it also follows Shneiderman’s mantra, which says to overview first, then zoom and filter, and get details on demand.

To successfully bridge the gap between architecture and code, it is important for architects to realize that the developers themselves are the most crucial stakeholders because they need the most firm understanding of the architecture. By using “architecturally evident coding styles,” we will achieve the ultimate goal, which is to have our architecture in the code to the point that it can then be extracted from the code. We should be able to recreate the architecture, to an extent, by looking at the code. Brown then gave a flawlessly executed demonstration in which he showed how to extract the architecture itself from a code base.

Do you agree with Simon’s point about how to bridge the gap? Does the gap need to be bridged? Do you use architecturally evident coding? Tweet @simonbrown with any questions or comments and make sure to follow @SATURN_news on Twitter! #SATURN 2015


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s