Architecture, Design

 |  Niceties

This is just the short memo for those hesitant about the subjects. See random examples.

Software architecture and software design are both software models of the real world phenomena to be automated. Here is the list of models engineers create on their way from a phenomenon to the working software modeling the phenomenon.

  1. Architecture: a top-level, low-granularity design, a model (mostly in diagrams) depicting interactions among the external actors and the system under automation as a whole.

  2. The system architecture: still the high-level but more granular design, a model that displays the automated system coarse internal components (infrastructural and pieces of software) and their interactions.

  3. The application architecture: the upper-middle-level, even more granular design, a model of the largest code blocks of the application and their interaction.

  4. The code design: the middle-level, again more granular design, the models of code pieces interactions mostly in UML - class, sequence, state, activity diagrams etc.

  5. The code: the lowest level executable model of the system to be automated. It directly implements all other models, making the system operable.