We've got to maintain a certain level of 'street-cred'.

Software Architecture vs. Software Design

Architecture and design are sometimes used interchangeably. While they are connected, architecture and design are different concepts in buildings, cars, software, etc.

To see how architecture and design are connected, yet different, think of it as having a new car built.

First, you want the big picture - the skeleton:

  • Overall picture of the car
  • Size of the engine
  • Type of roll cage
  • Where doors will be located
  • Where windows will be located

Second, you want the design of the car:

  • What will be the colors
  • How the dash will be organized
  • Where is the gear shift and how it moves
  • Shape of the mirrors

In the same way, software includes architecture and design.

First, you want the big picture - the skeleton:

  • Language(s) that will be used
  • Framework for the software
  • Methodologies
  • How system components interact

Second, you want the design:

  • How code will be organized
  • How component API/ABI work
  • What algorithm will be used to solve a problem
  • How output will look

Software Architecture is the skeleton of the project. Just as you see a skeleton of a car in the architecture, you should be able to see a skeleton of the software, or the design of the entire system. This is considered higher level than design in that architecture does not include all the details of implementation.

Software design is about looking at the individual modules or components. How will the components interact? You will see the implementation of each part of the architecture in the design. Just as the design of the car will show you how it moves, or how the parts interact, software design will show you the movement and interactions.

So, while architecture and design sometimes get used interchangeably, they are separate but highly related concepts.

Contact us if you would like more information about software architecture and design.