Break New Ground

Defining "Software Architecture"

Bob Rhubart
Community Manager, Oracle Groundbreakers Team
Photo by Kevin Mazur

What is software architecture?

In The Changing Field of Software Architecture authors Rick Kazman, Len Bass, Paul Clements offer this answer, a quote from their book Software Architecture in Practice:

The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.

They explain:

This definition stands in contrast to many other definitions that talk about the system's "early" or "major" design decisions. Many architectural decisions are made early, but not all are. Many decisions are made early that are not architectural. And it's hard to look at a decision and tell whether or not it's "major." So we prefer to focus attention on structures, relationship, and properties.

Discussion around that question is as resilient as Keith Richards — and that's a good thing: if people are talking about software architecture, they're thinking about software architecture.

So how do you define software architecture?

Join the discussion

Comments ( 1 )
  • John Jackman Monday, July 21, 2014

    Software Architecture is essentially the art and science of designing and building software applications that meet the needs of its intended users over a period of time and patterns of usage. Given that: ""Software architecture is the building blocks or components of software, their definition, and how those components are connected together, and their interactions"".

    Just a thought while using archiCAD of graphisoft.com.au.

Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.