Documente Academic
Documente Profesional
Documente Cultură
Architecture
Len Bass
Paul Clements
Rick Kazman
Introductions
Instructors
Len Bass
Paul Clements
Rick Kazman
Students?
Course Week 1 Why is each topic
important?
Monday
What is Architecture - Len Bass
The architecture business cycle - Paul Clements
Tuesday
Understanding quality attributes - Len Bass
Principles of architecture design - Len Bass
Wednesday
Achieving quality attributes through tactics and patterns - Rick
Kazman
Thursday
Architectural decisions and making them - Rick Kazman
Recovering architecture - Rick Kazman
Friday
Modeling and evaluating architectures - Rick Kazman
Economic analysis related to software architectures - Rick
Kazman
Course Week 2 Why is each topic
important?
Monday
Gathering architecturally significant requirements -
Paul Clements
The Attribute Driven Design Method - Len Bass
Tuesday
Documenting Software Architecture - Paul
Clements
Wednesday
Product Lines - Paul Clements
Management and Governance - Len Bass
Thursday
Architectural Competence - Paul Clements
Friday
Examination
Module 1
What is Software Architecture?
Outline of Module
What software architecture is and what it isn't
Why is software architecture important
Important concepts
Architecture structures and views
relating structures to each other
which structures to choose
Architectural styles and patterns
Different kinds (genres) of architecture.
Role of architect
What does this picture tell us and what is
left out?
Control
Process
Execution units
View Model
Command Command
Command Command
Processor Processor
Input device Processor Processor
Output
device Controller
Command
Command
Processor
Processor
Suns characterization of the components of the
MVC
Model - Encapsulated application state
- Responds to state queries
- Exposes application functionality
- Notifies views of changes
View - Renders the models
- Requests updates from models
- Sends user gestures to controller
- Allows controller to select view
Controller - Defined application behavior
- Maps user actions to model updates
- Select view for response
- One for each functionality
The responsibilities within MVC
A responsibility does something, remembers
something, or makes a decision (Wirfs-Brock, et. al.,
1990)
Model - Encapsulated application state
Responds to state queries
Exposes application functionality
Notifies views of changes
View - Renders the models
Requests updates from models
Sends user gestures to controller
Allows controller to select view
Controller - Defined application behavior
Maps user actions to model updates
Select view for response
One for each functionality
What can we tell or not tell from this
description of the MVC pattern?
EXERCISE
Use of Patterns
Patterns represent codified solutions to
common problems
Patterns are used during the design process
Patterns provide the basis for tools
Patterns are used during the evaluation
process
Other forms of architecture and types of
systems
System Architecture
Enterprise Architecture
System of Systems/Ultra Large Scale
Systems
System Architecture
System architecture is concerned with a total
system including hardware, software and
humans
Software is mapped onto hardware,
frequently embedded into hardware.
Quality attributes such as power, weight,
footprint are important when reasoning about
systems.
Enterprise Architecture
Enterprise Architecture is the description
current and/or future structure and behavior of
an organization's processes,
information systems,
personnel and organizational sub-units,
aligned with the organization's core goals
and strategic direction.
Enterprise architecture sets constraints for
software applications.
System of Systems/Ultra Large Scale
Systems
Some systems have no central organization
with control over whole system
Internet
Telephone system
Electric System
Techniques for designing and analyzing such
systems are much more organization
centered than designing and analyzing
systems with overall oversight.
Architects and architecting
Architects exist in an organizational context
They need multiple different skills
Technical
Communication
Leadership
Summary - 1
Software architecture is primarily concerned
with structure of system
Architecture is used for
Communication
Basis for analysis
Transferable abstraction
Multiple views of a system are important
Module
Component and connector
Allocation
Summary 2
Architectural patterns are codified solutions to
common problems.
Questions?