Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 1: Introduction to Software Architecture - Coggle Diagram
Chapter 1:
Introduction to
Software Architecture
1.1 Overview
design overview, purpose, scope
decomposition description (module, data, process)
dependency and connection description (between modules, data,
and processes)
attributes
user interface description
detailed design (module and data)
1.2 Software Architecture: Bridging Requirements and
Implementation
Perform static partition and decomposition of a system into subsystems and communications among subsystems.
Establish dynamic control relationships among different subsystems in terms of data flow, control flow orchestration, or message dispatching.
Consider and evaluate alternative architecture styles that suit the
problem domain at hand.
Perform tradeoff analysis on quality attributes and other nonfunctional requirements during the selection of architecture styles.
1.3 Architecture Styles
elements that perform functions required by a system
connectors that enable communication, coordination, and cooperation among elements
constraints that define how elements can be integrated to form
the system
attributes that describe the advantages and disadvantages of the
chosen structure
1.4 Quality Attributes
Implementation attributes (not observable at runtime)
Runtime attributes (observable at runtime)
Business attributes
Quality attribute tradeoff pairs
Tradeoff between space and time
Tradeoff between reliability and performance
Tradeoff between scalability and performance
1.5 Software Architecture Design Guidelines
Think of what to do before thinking of how to do it.
Think of abstract design before thinking of concrete design
Think of nonfunctional requirements early in the design process
Think of software reusability and extensibility as much as possible
Try to promote high cohesion within each element and loose coupling
between elements
Tolerate refinement of design. Never expect to have software design
completely perfect in one step
Avoid ambiguous design and over-detailed design.