lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

commit b55ddfee1be53adbe8517dc3759417b5c12bf2de
parent 1aae26558071e1c0da3475abab61efdb7f465d7a
Author: Alex Balgavy <alex@balgavy.eu>
Date:   Wed, 28 Oct 2020 16:53:31 +0100

Software Architecture: first lecture

Diffstat:
Acontent/software-architecture/Introduction/b785f7ab5a684a5cb9e6654d71fd00de.png | 0
Acontent/software-architecture/Introduction/index.md | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcontent/software-architecture/_index.md | 1+
3 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/content/software-architecture/Introduction/b785f7ab5a684a5cb9e6654d71fd00de.png b/content/software-architecture/Introduction/b785f7ab5a684a5cb9e6654d71fd00de.png Binary files differ. diff --git a/content/software-architecture/Introduction/index.md b/content/software-architecture/Introduction/index.md @@ -0,0 +1,75 @@ ++++ +title = 'Introduction' ++++ + +# Introduction +What is software architecture? +- fundamental concepts/properties of system in its environment +- embodied in its elements, relationships, and principles of its design/evolution +- so: design + design decisions + +Why? +- vehicle for stakeholder communication +- way for manager to reason about cost and schedule +- manifests earliest set of design decisions +- transferable abstraction of system + +Characteristics of Software Architecture +- Iteration on functional/quality requirements +- Many stakeholders involved +- Balancing of functional/quality requirements + +Architecturally significant requirements (ASRs): +- architectures are driven by quality attribute requirements (e.g. system must be modular, shall meet users' performance expectations) +- features/functionality shape architecture to lesser extent + +Business goals: +- e.g. "we want to differentiate our product from competition and capture market share) +- may directly affect architecture +- often lead to quality attribute requirements + +## Architecture representations & styles +Structure: coherent set of architectural elements +View: representation of structure (picture) + +Structures: +- modules: module is unit of implementation with assigned areas of functionality +- component-connector: elements with runtime behavior (components) and interactions (connectors) +- allocation: relationship between software elements and environment + +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) + +* develop scenarios for + - activities system must support + - changes anticipated +* describe architectures +* classify scenarios + - direct: use requires no change + - indirect: use requires change +* evaluate indirect scenarios wrt changes and cost +* reveal scenario interaction +* overall evaluation + +## Architecture influence cycle + +![Architecture influence cycle](b785f7ab5a684a5cb9e6654d71fd00de.png) + +architecture affects: +- structure of developing organisation +- goals of developing organisation +- requirements for next systems + +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_. diff --git a/content/software-architecture/_index.md b/content/software-architecture/_index.md @@ -3,3 +3,4 @@ title = 'Software Architecture' +++ # Software Architecture - [Case Study Overview](case-study/) +- [Introduction](introduction/)