Introduction to Software Architecture Concepts

  1. Viewpoints
  2. Perspectives

What is Computer System

Software + Hardware

What is Architecture

ISO definition:

  • fundamental properties
  • principles of design and evolution

Elements and Relationships

Elements are fundamental pieces of a system (e.g. modules, partitions, subsystems, etc). They define the structure of the system. Two types of structures interest software architectures:

  1. Dynamic structure

Fundamental Properties of a System

That is, 1) what system does 2) how system does it. Or to put it differently:

  1. Quality properties

Design and Evolution Principles

Defining and following clear-cut architectural principles that guide to achieve consistency and evolution of the system is very important. They are going to be powerful heuristics, leading to quick and effective solutions to the arising problems.

System Properties & Internal Organization

Architects can deal with different circumstances in different ways. For example, they can choose between two-tier and three-tier architectures, that is, between candidate architectures in a specific scenario.

Architectural Elements

An architectural element (component, module) should clearly define three key concepts:

  1. Boundary
  2. Set of interfaces

Stakeholders

A software system is not only limited to users. It needs to be built, tested, maintained, repaired, paid for, etc. These people, who have different degrees of interests, concerns, and expectations, collectively constitute the notion of stakeholders. A stakeholder could be an individual, team, or organization.

Architectural Descriptions

Architectural description (AD) is simply a documentation of an architecture that demonstrates to stakeholders how their concerns are met. It summarizes the overall architecture of the whole system in a simple and clear manner.

Connecting Core Concepts

For the UML diagram, please refer to the figure 2–5 in the aforementioned book.

  1. An architecture consists of architectural elements and the relationships between them.
  2. It is a good practice to document an architecture clearly and completely by an AD.
  3. An AD should demonstrate to the stakeholders that their concerns have been successfully met.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ismayil Shahaliyev

Ismayil Shahaliyev

International Chess Master | MS in CS & Data Analytics (ADA & GW Universities). See the full list of my articles at: http://www.shahaliyev.net/writings.html