Software Architecture

Table of Contents

Introduction

What is software architecture?

Why?

Characteristics of Software Architecture

Architecturally significant requirements (ASRs):

Business goals:

Architecture representations & styles

Structure: coherent set of architectural elements View: representation of structure (picture)

Structures:

Architectural style: description of component and connector types, pattern of their runtime control/data transfer

Design patterns: recurring structures of communicating components that solve general design problem in a context (e.g. Model-View-Controller)

Architecture assessment

Assesses whether architecture meets quality goals.

Software Architecture Analysis Method (SAAM)

Architecture influence cycle

Architecture influence cycle

architecture affects:

Building a system affects architect’s experience

Role of software architect

Ineffective: police agent, documentalist, isolationist (no communication with stakeholders) Effective: key tech consultant, decision maker, coach of dev team, design coordination, implementing key parts

A good architect (1) has experience, (2) has domain knowledge, (3) communicates.