2. 2
Software
Architecture as
Systems Dissolve
Ages of Software Systems
Ages of Software Architecture
Software Architecture Assessed
The Future?
QUALITY. PRODUCTIVITY. INNOVATION.
3. 3
3
Software Architecture
Ever evolving but always important
• Many definitions by many people
• Stakeholders
• Structures
• Principles and Decisions
• System Qualities
• Manages risk - evolves as challenges change
QUALITY. PRODUCTIVITY. INNOVATION.
5. 5
5
The 5 Ages of Software Systems
QUALITY. PRODUCTIVITY. INNOVATION.
Monolithic
(1980s)
Distributed
Monoliths
(1990s)
Internet
Connected
(2000s)
Internet is
the System
(2010s)
Intelligent
Connected
(2020s)
6. 6
6
Concerns Across the Ages
QUALITY. PRODUCTIVITY. INNOVATION.
Monolithic
(80s)
Distributed
(90s)
Internet
Connected
(2000s)
Internet is
the System
(2010s)
Intelligent
Connected
(2020s)
7. 7
7
The 5 Ages of Software Architecture
QUALITY. PRODUCTIVITY. INNOVATION.
Program
Structure
(1980s)
- Modules
- Info hiding
Emergence
(1990s)
- Definitions
- Concepts
- WICSA
conference
Development
(2000s)
- Views
- NFRs
- Stakeholders
- Styles
- Assessment
- Methods
- Books
Maturity
(2010s)
- Decisions
- Agility
- Sustainability
- Evolution
The future …
(2020s)
8. 8
8
Necessity Leads to Invention
QUALITY. PRODUCTIVITY. INNOVATION.
Monolitic
Foundations
Models of Structure
Distributed
Views, Stakeholders,
Styles, Assessment
Internet
Connected
Non-Functional Qualities,
Agility, Evolution
Internet as a
System
Decisions, Principles,
Sustainability, …
Intelligent
Connected
9. 9
9
Software Architecture’s Successes
What has software architecture been good at?
• Structure, connections, responsibilities
• Stakeholders
• Multiple-views of systems
• Styles and patterns
• Non-functional requirements
• Cost to build transparency (capex)
• Principles and decisions
• Agility (?)
QUALITY. PRODUCTIVITY. INNOVATION.
10. 10
10
Software Architecture’s Misses
What have software architecture‘s blind spots been?
• Dynamic structures
• Data and algorithms as architectural elements
• Operating the systems
• Cost-to-operate transparency (opex)
QUALITY. PRODUCTIVITY. INNOVATION.
11. 11
11
How Architecture has Helped
QUALITY. PRODUCTIVITY. INNOVATION.
Monolithic
Client/Server
Internet
Connected
Internet as a
System
Intelligent
Connected
Program Structure
Structure + Connections +
Responsibilities + Stakeholders
+ Styles + Assessment
+ NFRs + Agility + Evolution
…. operations?
+ Sustainability + Principles + Decisions
… emergent properties?
… dynamic structures?
… operations? (again)
… costs moving to opex?
What’s next?
… algorithmic architecture?
… data determining qualities?
… operations? (yet again)
…. cost prediction?
12. 12
12
Software Architecture’s Future
Less More
Defined Structure Emergent Runtime Structure
Certainty Probability
Structural Design Data and Algorithm Design
Operations Process Operations Policy & Automation
Capex Opex
Decisions Principles, Policies, Algorithms
QUALITY. PRODUCTIVITY. INNOVATION.
Software architecture has been good at structure, certainty
and relationships … the rest is work-in-progress!
13. 13
13
Software Architecture’s Future
What remains important
• Stakeholders
• Principles and policies
• Multiple views of an architecture
• Non-functional qualities
• Assessment
The future …
• Dynamic composition & structure
• Emergent properties at runtime
• Integrating “intelligence” into systems
• Data, algorithms as architectural elements
• Designing the running costs … and energy efficiency!
QUALITY. PRODUCTIVITY. INNOVATION.