• Skip to main content
  • Skip to after header navigation
  • Skip to site footer

Shaping Software

Enduring Ideas in the Realm of Software

  • About
  • Topics
  • Best Software Books
  • Archives
  • JD Meier.com

What Is Application Architecture?

Oct 26, 2008 by JD
WhatIsApplicationArchitecture
kevindooley

Software architecture is often defined as the structure or structures of a system.  There’s been a lot of attempts to define architecture from a software perspective and lots of debates over the years.  Rather than start from scratch, I thought it would be more helpful to highlight some of the more useful definitions that I’ve come across.

Kruchten, Booch, Bittner, and Reitman on Architecture
Philippe Kruchten, Grady Booch, Kurt Bittner, and Rich Reitman derived and refined a definition of architecture based on work by Mary Shaw and David Garlan (Shaw and Garlan 1996).  Their definition is:

“Software architecture encompasses the set of significant decisions about the organization of a software system including:

  • Selection of the structural elements and their interfaces by which the system is composed.
  • Behavior as specified in collaboration among those elements.
  • Composition of these structural and behavioral elements into larger subsystems.
  • Architectural style that guides this organization.

Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic, and technology constraints, tradeoffs and aesthetic concerns.”

Fowler on Architecture
In Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series) , Martin Fowler outlines some common recurring themes when explaining architecture:

  • The highest-level breakdown of a system into its parts.
  • The decisions that are hard to change.
  • There are multiple architectures in a system.
  • What is architecturally significant can change over a system’s lifetime.
  • In the end, architecture breaks down to whatever the important stuff is.

Bass, Clements, Kazman on Architecture
In Software Architecture in Practice (2nd Edition) (SEI Series in Software Engineering) , Bass, Clements, and Kazman define architecture like this:

The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements – details having to do solely with internal implementation – are not architectural.

My Related Posts

  • What is Systems Architecture
  • Conceptual Architecture View, Module View, Execution View, and Code View
  • 4 + 1 View Model of Software Architecture
Category: ArchitectureTag: Architecture, Design

About JD

Previous Post:Visualization Checklist
Next Post:How To Bring Experienced Engineers on Board

Sidebar

Recent Posts

  • What is ChatGPT?
  • Agile Performance Engineering
  • What is Cybersecurity?
  • Software Security Threats: A Comprehensive Guide
  • What is Software Security?

Popular Posts

Best Software Books of All Time
Best Practices for Project Management
Best Practices for Software Development
Customer-Connected Engineering
How To Frame Problems Better
How To Pitch Business Ideas Better
How To Structure Vision Scope Presentations
Intro to Lean Software Development
Lean Principles for Software Development
The Enterprise of the Future