SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Chester Devs, 2015 Chris F Carroll
Software Architecture – Why and What?
In the beginning ... ...
there
were
algorithms;
computable
functions;
the lambda
calculus…
The Software Architectural
Qualities of a Proof on
Paper…
• Availability: 7–Nines Uptime
• Reliability/Robustness: no
moving parts, can survive drops,
collisions and earthquakes
• Parallel processing: Can be
copied and worked on by
multiple people in parallel (good
implementation of immutability)
• Can be geographically
distributed without loss of
performance
• But not, alas, extremely fast…
why architecture? because …
“… No-one replaces or re-writes a system
because of its functionally. It’s always because
of some quality failing – performance or
reliability, usability, or ease of modifiability”
The Claim of Software Architecture
To enable Reasoning about:
… the Quality Attributes of
Software-intensive Systems
… to meet Stakeholder’s Concerns
… using Architecture Descriptions
of the system’s fundamental
structure(s)
in terms of its elements, relationships, properties and principles
Why software architecture?
• What is a Quality Attribute?
• What does “Reasoning about” mean?
• What are Stakeholder Concerns?
• What is an Architecture Description
and how does it help?
4 Key Concepts The promise of Software Architecture
• What is a Quality Attribute?
• What does “Reasoning about” mean?
• What are Stakeholder Concerns?
• What is an Architecture Description
and how does it help?
4 Key Concepts The promise of Software Architecture
What is a Quality Attribute? Who defines quality?
“It’s not what you do, it’s the way that you do it”
affordability, availability, correctness,
deployability,efficiency, evolvability, extensibility,
fault-tolerance, main-tainability, modifiability,
reliability, resilience, responsiveness, robust-ness,
safety, scalability, securability, testability, usability,
…
What is a Quality Attribute? ISO 25010
“It’s not what you do, it’s the way that you do it”
accessibility, accountability, accuracy, adaptability, administrability, affordability, agility, auditability, autonomy,
availability, compatibility, composability, configurability, correctness, credibility, customizability, debugability,
degradability, determinability, demonstrability, dependability, deployability, discoverability, distributability,
durability, effectiveness, efficiency, evolvability, extensibility, failure transparency, fault-tolerance, fidelity, flexibility,
inspectability, installability, integrity, interchangeability, interoperability, learnability, maintainability, manageability,
mobility, modifiability, modularity, operability, orthogonality, portability, precision, predictability, process
capabilities, producibility, provability, recoverability, relevance, reliability, repeatability, reproducibility, resilience,
responsiveness, reusability, robustness, safety, scalability, seamlessness, self-sustainability, serviceability,
supportability, securability, simplicity, stability, standards compliance, survivability, sustainability, tailorability,
testability, timeliness, traceability, ubiquity, understandability, upgradability, usability
Many ways to get from A to B what about a horse?
Many ways to get from A to B how about a camel?
What is a Quality Attribute? but … what do all these words mean?
“It’s not what you do, it’s the way that you do it”
accessibility, accountability, accuracy, adaptability, administrability, affordability,
agility, auditability, autonomy, availability, compatibility, composability,
configurability, correctness, credibility, customizability, debugability, degradability,
determinability, demonstrability, dependability, deployability, discoverability,
distributability, durability, effectiveness, efficiency, evolvability, extensibility, failure
transparency, fault-tolerance, fidelity, flexibility, inspectability, installability, integrity,
interchangeability, interoperability, learnability, maintainability, manageability,
mobility, modifiability, modularity, operability, orthogonality, portability, precision,
predictability, process capabilities, producibility, provability, recoverability, relevance,
reliability, repeatability, reproducibility, resilience, responsiveness, reusability,
robustness, safety, scalability, seamlessness, self-sustainability, serviceability,
supportability, securability, simplicity, stability, standards compliance, survivability,
sustainability, tailorability, testability, timeliness, traceability, ubiquity,
understandability, upgradability, usability
Software Quality Attributes first, define your terms
Define what matters to you about a quality attribute
by either
Describing scenarios or
Defining measures (or proxy measures)
Then research the tactics/patterns/appliances you
can use to achieve the quality
Availability & Resilience
Availability / Resilience
o A common measure is up-time: “5-nines”
o A scenario for a failure event might be
“When an out-of-memory failure occurs, the app should
recycle, and the system should continue operating as
normal within 30 seconds.”
o Attack Scenarios:
“When attack X happens, Y should happen and the
system should continue operating as normal”
quality attributes : define it
Modifiability is ... quality attributes : measure it
Modifiability / Maintainability / Evolution
o Could be measured as (estimated) cost or speed
Are these reasonable measures of modifiability?
o “It should not require a change request and 14 day
wait to correct a spelling error on the website”
o “Sprint velocity after a year of development should be
at least as good as in months 3 to 12”
• What is a Quality Attribute?
• What does “Reasoning about…”
mean?
• What are Stakeholder Concerns?
• What is an Architecture Description and
how does it help?
4 Key Concepts The promise of Software Architecture
and even to predict
What is “Reasoning
about…”?
estimate
measure
risk-evaluate
account for
cost-benefit-analyse
calculate
quantify
validate
budget
everything
What is “Reasoning about…”? Show me the numbers
♣ Being able to describe, define,
measure, calculate, test and even
predict how a system will behave …
♣ … preferably in advance of paying
the full cost of delivery and preferably
before missing the timeframe in which
the system is still useful
Abstraction is the key to reasoning even if the seats are concrete
Abstraction: Number of seats I am not a number!
50
• What is a Quality Attribute?
• What does “Reasoning about…” mean?
• What are Stakeholder Concerns?
• What is an Architecture Description and
how does it help?
4 Key Concepts The promise of Software Architecture
4 Key Concepts Such many stakeholders
Not only the customer & the end-user but also…
Reconciling conflicting stakeholder needs …
Architecturally Significant
Requirements
what matters first?
Architecturally Significant Requirements
4 Key Concepts The promise of Software Architecture
• What is a Quality Attribute?
• What does “Reasoning about…”
mean?
• What are Stakeholder Concerns?
• What is an Architecture Description
and how does it help?
Abstraction: Number of seats Maths: Reason by abstraction
Abstraction: Number of seats I am not a number!
50
Abstraction: power to weight ratio Maths: Reason by abstraction
Abstractions: power & weight Maths: Reason by abstraction
74kW 12t
Views and Viewpoints
Different viewpoints there is no all-encompassing viewpoint
Modifiability, Extensibility, Evolvability
Modifiability & Extensibility
Load balancing as a tactic for scaling
Load balancing as a tactic for scaling
4+1, Updated
20 years on … “6 + 0 + 1”
Rozanski & Woods, Software Systems Architecture, 2nd ed
The Claim of Software Architecture
To enable Reasoning about:
… the Quality Attributes of
Software-intensive Systems
… to meet Stakeholder’s Concerns
… using Architecture Descriptions
of the system’s fundamental
structure(s)
in terms of its elements, relationships, properties and principles
Why software architecture?
What is “The Architecture” of a
system?
rough cut definitions
“… the fundamental structures or
organisation of your code”
“… all the rules & design decisions you have
get right up-front, because they are too
expensive to change later.”
Architecture is ... Bass, Clements, Kazman, 1997-2012
SEI, early 2000s
“The structure or structures of the system,
which comprise software elements, the
externally visible properties of those elements,
and the relationships among them.”
Architecture is ... what does fundamental mean?
ISO/IEC/IEEE 42010:2011
“The fundamental concepts or properties of a
system in its environment embodied in its
elements, relationships, and in the principles
of its design and evolution”
Architecture is ... Kruchten, updated 2009
Kruchten 2009: The significant decisions about
♣ the organization of a software system,
♣ the selection of the structural elements and their
interfaces by which the system is composed together with
their behavio[u]r as specified in the collaboration among
those elements,
♣ the composition of these elements into progressively
larger subsystems,
the architectural style that guides this organization, these
elements and their interfaces, their collaborations, and their
composition
How to produce an architecture A catalogue & a method
How can we design systems to meet quality
requirements?
1) A catalogue of off-the-shelf tactics,
components, appliances, patterns,
frameworks, reference architectures… with
known quality–impacts
2) A method for applying them when
designing your system
catalogues of patterns, tactics, …
A (very long) Reading List
http://bing.com/search?q=architecture+tactics
http://bing.com/search?q=reference+architectures
http://google.com/search?q=architecture+pattern
http://pubs.opengroup.org/architecture/togaf8-doc/arch/chap28.html
Rozanski & Woods, Software Systems Architecture
Bass et al, Software Architecture in Practise
Buschmann et al,
Pattern-Oriented Software Architecture Vols 1–5
Blue Peter Architecture
Patterns,Tactics, Appliances Off the shelf architecture
Including …
Pipe and Filter Architecture, Blackboard Architecture, Hexagonal Architecture,
Layered Architecture, Service Oriented Architecture, Message Oriented
Distributed Architecture, Client-Server, Client-Proxy Server, Master-Slave,
Microservices, Reactor, Replication, Transactions, ACID, Eventual Consistency,
Subsystem Interface, RDBMS, NoSQL DB, Graph Database, Datawarehouse,
GUI, Command Line Interface, Batch Processing, Thread Pool, Activator, Factory,
Dependency Injection, File System, Web Application, Sharding, Horizontal
Scaling, Load Balancer, Message Queues, Publish-Subscribe, Request Broker,
Web Services, Desktop Applications, Mobile Apps, Virtual Machine, Model View
Controller, Domain Model, Domain Driven Design, Immutability, Caching, Proxy,
Facade, Bridge, Adapter, Mediator, Decorator, Command, Interpreter, Web Farm,
Web Garden, P2P, ORM, Data Mapper, Active Record, Tokens, Locks, Monitors,
Heartbeat, Error detection, Backup and DR, the InterWebs, LAN, WAN, AES, PKI,
Flash Drives, Gigabit Ethernet, WPA2-PSK
a method for designing an
architecture
1. Draw a box for the system. Surround it
with the external actors which/who must
interact with it.
2. List the Architecturally Significant
Requirements in priority order
3. Start at the top of the list and work down
4. For each requirement, Identify or Create a
Partition of the system which will meet
that quality requirement
5. Identify tactics/patterns/appliances which
achieve the Quality Requirement
6. Goto 2
Simplified from Bass et. al.
Simple Case Study No relation to Uber
Our New Startup
• sÜper is an application which will find other
sÜper users near you, and help you to
arrange a lift share.
• Business plan: Grow users to critical mass in
year 1, charge a fee from year 2 onwards
Functional & Quality Requirements
Key Functionality
•Based on the sUper user’s geolocation, find their nearest peers
•Enable communication & appointment making between
Quality Requirements
• Must be mobile/geo-based
• Must be very very simple & fast to use & not make
embarrassing mistakes
• Must be virally attractive
• Must (appear to) be reliable
• Available 24/7
• Must be cheap to build & maintain for the 1st year
• Must cope with viral growth in user base
• Must keep user data especially payment data secure
Are not un-related to each other
ASRs
Prioritised Architecturally Significant Requirements
1. Deployability: Must run on mobiles
2. Usability: Must be very very simple
3. Usability/Performance: Must be fast to use
4. Usability/Accuracy: Not make embarrassing mistakes
5. Low Initial Cost & Time to Market
6. Functionality: Communication between users
7. Functionality: Find nearby users
8. Scalability
9. Availability 24/7
because the architect said so …
0. The Context Diagram
ASR 1. Deployable to Mobile Platforms
2. Usability – Very Very Simple
3. Usability – Performance
4. Usability-Accuracy
5. Low Initial Cost/Time to Market
6. Key Functionality 1: Communication
7. Key Functionality 2: Find Nearby Users
8. Scalability
9. Availability
Et voila. We have most of an architecture ….
Software Architecture thank you and good-bye
http:www.cafe-encounter.net/about/

Weitere ähnliche Inhalte

Was ist angesagt?

Enterprise reference architecture v1.1.ppt
Enterprise reference architecture   v1.1.pptEnterprise reference architecture   v1.1.ppt
Enterprise reference architecture v1.1.pptAhmed Fattah
 
What Is An Architectural Framework
What Is An Architectural FrameworkWhat Is An Architectural Framework
What Is An Architectural FrameworkJerald Burget
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture FrameworkFirmansyahIrma1
 
Enterprise Architecture Overview
Enterprise Architecture OverviewEnterprise Architecture Overview
Enterprise Architecture OverviewTim Murphy
 
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Nathaniel Palmer
 
Togaf 9.1 architecture
Togaf 9.1 architectureTogaf 9.1 architecture
Togaf 9.1 architectureNarayan Sau
 
EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)
EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)
EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)Eric Stephens
 
Enterprise reference architecture v1.2
Enterprise reference architecture   v1.2Enterprise reference architecture   v1.2
Enterprise reference architecture v1.2Ahmed Fattah
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environmentRaffaele Garofalo
 
A comparison of the top four enterprise
A comparison of the top four enterpriseA comparison of the top four enterprise
A comparison of the top four enterpriseMohammed Omar
 
ITSM and TOGAF 9 v0 5
ITSM and TOGAF 9 v0 5ITSM and TOGAF 9 v0 5
ITSM and TOGAF 9 v0 5Salim Sheikh
 
An introduction to architecture and architects
An introduction to architecture and architectsAn introduction to architecture and architects
An introduction to architecture and architectswweinmeyer79
 
Enterprise Architecture Workshop London - July 17th 2017
Enterprise Architecture Workshop London - July 17th 2017Enterprise Architecture Workshop London - July 17th 2017
Enterprise Architecture Workshop London - July 17th 2017Daljit Banger
 
Experiences with enterprise architecture using togaf and ibm rational system ...
Experiences with enterprise architecture using togaf and ibm rational system ...Experiences with enterprise architecture using togaf and ibm rational system ...
Experiences with enterprise architecture using togaf and ibm rational system ...james_dzidek
 
Online Togaf 9.1 Training in USA
Online Togaf 9.1 Training in USAOnline Togaf 9.1 Training in USA
Online Togaf 9.1 Training in USAXoom Trainings
 
Adventures in enterprise architecture
Adventures in enterprise architectureAdventures in enterprise architecture
Adventures in enterprise architectureJeff Bramwell
 
A TOGAF Case Study
A TOGAF Case StudyA TOGAF Case Study
A TOGAF Case StudySimplilearn
 
Introduction to Enterprise Architecture and TOGAF 9.1
Introduction to Enterprise Architecture and TOGAF 9.1Introduction to Enterprise Architecture and TOGAF 9.1
Introduction to Enterprise Architecture and TOGAF 9.1iasaglobal
 

Was ist angesagt? (20)

Enterprise reference architecture v1.1.ppt
Enterprise reference architecture   v1.1.pptEnterprise reference architecture   v1.1.ppt
Enterprise reference architecture v1.1.ppt
 
What Is An Architectural Framework
What Is An Architectural FrameworkWhat Is An Architectural Framework
What Is An Architectural Framework
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture Framework
 
Enterprise Architecture Overview
Enterprise Architecture OverviewEnterprise Architecture Overview
Enterprise Architecture Overview
 
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)
 
Togaf 9.1 architecture
Togaf 9.1 architectureTogaf 9.1 architecture
Togaf 9.1 architecture
 
EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)
EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)
EA Governance as IT Sustainability (NY IT Leadership Academy Apr 2013)
 
Enterprise reference architecture v1.2
Enterprise reference architecture   v1.2Enterprise reference architecture   v1.2
Enterprise reference architecture v1.2
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environment
 
A comparison of the top four enterprise
A comparison of the top four enterpriseA comparison of the top four enterprise
A comparison of the top four enterprise
 
ITSM and TOGAF 9 v0 5
ITSM and TOGAF 9 v0 5ITSM and TOGAF 9 v0 5
ITSM and TOGAF 9 v0 5
 
An introduction to architecture and architects
An introduction to architecture and architectsAn introduction to architecture and architects
An introduction to architecture and architects
 
Enterprise Architecture Workshop London - July 17th 2017
Enterprise Architecture Workshop London - July 17th 2017Enterprise Architecture Workshop London - July 17th 2017
Enterprise Architecture Workshop London - July 17th 2017
 
EA Workshop 1
EA Workshop 1EA Workshop 1
EA Workshop 1
 
Experiences with enterprise architecture using togaf and ibm rational system ...
Experiences with enterprise architecture using togaf and ibm rational system ...Experiences with enterprise architecture using togaf and ibm rational system ...
Experiences with enterprise architecture using togaf and ibm rational system ...
 
Online Togaf 9.1 Training in USA
Online Togaf 9.1 Training in USAOnline Togaf 9.1 Training in USA
Online Togaf 9.1 Training in USA
 
An Introduction to Enterprise Architecture Visual Modeling with The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling with The ArchiMate...An Introduction to Enterprise Architecture Visual Modeling with The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling with The ArchiMate...
 
Adventures in enterprise architecture
Adventures in enterprise architectureAdventures in enterprise architecture
Adventures in enterprise architecture
 
A TOGAF Case Study
A TOGAF Case StudyA TOGAF Case Study
A TOGAF Case Study
 
Introduction to Enterprise Architecture and TOGAF 9.1
Introduction to Enterprise Architecture and TOGAF 9.1Introduction to Enterprise Architecture and TOGAF 9.1
Introduction to Enterprise Architecture and TOGAF 9.1
 

Andere mochten auch

Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems DissolveEoin Woods
 
Software Architecture Views and Viewpoints
Software Architecture Views and ViewpointsSoftware Architecture Views and Viewpoints
Software Architecture Views and ViewpointsHenry Muccini
 
Modeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageModeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageIver Band
 
TOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenariosTOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenariosCuneyt Kaya
 
Modeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMateModeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMateIver Band
 
TOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-componentsTOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-componentsCuneyt Kaya
 
TOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admTOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admCuneyt Kaya
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Building a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMateBuilding a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMateBas van Gils
 
Iasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK
 
Archi mate views_and_viewpoints
Archi mate views_and_viewpointsArchi mate views_and_viewpoints
Archi mate views_and_viewpointsIgor Igoroshka
 
Archimate 2.1 an introduction
Archimate 2.1   an introductionArchimate 2.1   an introduction
Archimate 2.1 an introductionDaan Bakboord
 
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...Iver Band
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewWinton Winton
 

Andere mochten auch (16)

Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
 
Software Architecture Views and Viewpoints
Software Architecture Views and ViewpointsSoftware Architecture Views and Viewpoints
Software Architecture Views and Viewpoints
 
Modeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageModeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 Language
 
TOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenariosTOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenarios
 
Modeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMateModeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMate
 
TOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-componentsTOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-components
 
TOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admTOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-adm
 
Archimate Introduction
Archimate IntroductionArchimate Introduction
Archimate Introduction
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Building a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMateBuilding a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMate
 
TOGAF 9 Architectural Artifacts
TOGAF 9  Architectural ArtifactsTOGAF 9  Architectural Artifacts
TOGAF 9 Architectural Artifacts
 
Iasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK Archimate Overview
Iasa UK Archimate Overview
 
Archi mate views_and_viewpoints
Archi mate views_and_viewpointsArchi mate views_and_viewpoints
Archi mate views_and_viewpoints
 
Archimate 2.1 an introduction
Archimate 2.1   an introductionArchimate 2.1   an introduction
Archimate 2.1 an introduction
 
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 

Ähnlich wie Software Architecture: Why and What?

Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software ArchitectureChris F Carroll
 
Architecture and Iasa Introduction
Architecture and Iasa IntroductionArchitecture and Iasa Introduction
Architecture and Iasa IntroductionTom Creighton
 
Non Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdfNon Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdfJeevaPadmini
 
Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architectureHimanshu
 
XP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroXP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroChris F Carroll
 
140910-doverick-agile103.pdf
140910-doverick-agile103.pdf140910-doverick-agile103.pdf
140910-doverick-agile103.pdfmiaoli35
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471vconovalov
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
requirement engineering
requirement engineeringrequirement engineering
requirement engineeringanam singla
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTmalathijanapati1
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesObeo
 
2016_GarrettThurstonModelBasedEnterpriseCOE_Presentation
2016_GarrettThurstonModelBasedEnterpriseCOE_Presentation2016_GarrettThurstonModelBasedEnterpriseCOE_Presentation
2016_GarrettThurstonModelBasedEnterpriseCOE_PresentationFoliage
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2bmercer
 
Cse3 March2009cwd35with Crane
Cse3 March2009cwd35with CraneCse3 March2009cwd35with Crane
Cse3 March2009cwd35with CraneEmmanuel Fuchs
 
Design Principlesfrom Don Norman’s Design of Everyday Thing.docx
Design Principlesfrom Don Norman’s Design of Everyday Thing.docxDesign Principlesfrom Don Norman’s Design of Everyday Thing.docx
Design Principlesfrom Don Norman’s Design of Everyday Thing.docxtheodorelove43763
 

Ähnlich wie Software Architecture: Why and What? (20)

Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
 
020170482 x
020170482 x020170482 x
020170482 x
 
Class notes
Class notesClass notes
Class notes
 
Architecture and Iasa Introduction
Architecture and Iasa IntroductionArchitecture and Iasa Introduction
Architecture and Iasa Introduction
 
Non Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdfNon Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdf
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
Agile ppt final
Agile ppt finalAgile ppt final
Agile ppt final
 
Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architecture
 
XP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroXP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers Intro
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
140910-doverick-agile103.pdf
140910-doverick-agile103.pdf140910-doverick-agile103.pdf
140910-doverick-agile103.pdf
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
requirement engineering
requirement engineeringrequirement engineering
requirement engineering
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
2016_GarrettThurstonModelBasedEnterpriseCOE_Presentation
2016_GarrettThurstonModelBasedEnterpriseCOE_Presentation2016_GarrettThurstonModelBasedEnterpriseCOE_Presentation
2016_GarrettThurstonModelBasedEnterpriseCOE_Presentation
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
Cse3 March2009cwd35with Crane
Cse3 March2009cwd35with CraneCse3 March2009cwd35with Crane
Cse3 March2009cwd35with Crane
 
Design Principlesfrom Don Norman’s Design of Everyday Thing.docx
Design Principlesfrom Don Norman’s Design of Everyday Thing.docxDesign Principlesfrom Don Norman’s Design of Everyday Thing.docx
Design Principlesfrom Don Norman’s Design of Everyday Thing.docx
 

Kürzlich hochgeladen

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 

Kürzlich hochgeladen (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 

Software Architecture: Why and What?

  • 1. Chester Devs, 2015 Chris F Carroll Software Architecture – Why and What?
  • 2. In the beginning ... ... there were algorithms; computable functions; the lambda calculus…
  • 3. The Software Architectural Qualities of a Proof on Paper… • Availability: 7–Nines Uptime • Reliability/Robustness: no moving parts, can survive drops, collisions and earthquakes • Parallel processing: Can be copied and worked on by multiple people in parallel (good implementation of immutability) • Can be geographically distributed without loss of performance • But not, alas, extremely fast…
  • 4.
  • 5.
  • 6.
  • 7. why architecture? because … “… No-one replaces or re-writes a system because of its functionally. It’s always because of some quality failing – performance or reliability, usability, or ease of modifiability”
  • 8. The Claim of Software Architecture To enable Reasoning about: … the Quality Attributes of Software-intensive Systems … to meet Stakeholder’s Concerns … using Architecture Descriptions of the system’s fundamental structure(s) in terms of its elements, relationships, properties and principles Why software architecture?
  • 9. • What is a Quality Attribute? • What does “Reasoning about” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  • 10. • What is a Quality Attribute? • What does “Reasoning about” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  • 11. What is a Quality Attribute? Who defines quality? “It’s not what you do, it’s the way that you do it” affordability, availability, correctness, deployability,efficiency, evolvability, extensibility, fault-tolerance, main-tainability, modifiability, reliability, resilience, responsiveness, robust-ness, safety, scalability, securability, testability, usability, …
  • 12. What is a Quality Attribute? ISO 25010 “It’s not what you do, it’s the way that you do it” accessibility, accountability, accuracy, adaptability, administrability, affordability, agility, auditability, autonomy, availability, compatibility, composability, configurability, correctness, credibility, customizability, debugability, degradability, determinability, demonstrability, dependability, deployability, discoverability, distributability, durability, effectiveness, efficiency, evolvability, extensibility, failure transparency, fault-tolerance, fidelity, flexibility, inspectability, installability, integrity, interchangeability, interoperability, learnability, maintainability, manageability, mobility, modifiability, modularity, operability, orthogonality, portability, precision, predictability, process capabilities, producibility, provability, recoverability, relevance, reliability, repeatability, reproducibility, resilience, responsiveness, reusability, robustness, safety, scalability, seamlessness, self-sustainability, serviceability, supportability, securability, simplicity, stability, standards compliance, survivability, sustainability, tailorability, testability, timeliness, traceability, ubiquity, understandability, upgradability, usability
  • 13. Many ways to get from A to B what about a horse?
  • 14. Many ways to get from A to B how about a camel?
  • 15. What is a Quality Attribute? but … what do all these words mean? “It’s not what you do, it’s the way that you do it” accessibility, accountability, accuracy, adaptability, administrability, affordability, agility, auditability, autonomy, availability, compatibility, composability, configurability, correctness, credibility, customizability, debugability, degradability, determinability, demonstrability, dependability, deployability, discoverability, distributability, durability, effectiveness, efficiency, evolvability, extensibility, failure transparency, fault-tolerance, fidelity, flexibility, inspectability, installability, integrity, interchangeability, interoperability, learnability, maintainability, manageability, mobility, modifiability, modularity, operability, orthogonality, portability, precision, predictability, process capabilities, producibility, provability, recoverability, relevance, reliability, repeatability, reproducibility, resilience, responsiveness, reusability, robustness, safety, scalability, seamlessness, self-sustainability, serviceability, supportability, securability, simplicity, stability, standards compliance, survivability, sustainability, tailorability, testability, timeliness, traceability, ubiquity, understandability, upgradability, usability
  • 16. Software Quality Attributes first, define your terms Define what matters to you about a quality attribute by either Describing scenarios or Defining measures (or proxy measures) Then research the tactics/patterns/appliances you can use to achieve the quality
  • 17. Availability & Resilience Availability / Resilience o A common measure is up-time: “5-nines” o A scenario for a failure event might be “When an out-of-memory failure occurs, the app should recycle, and the system should continue operating as normal within 30 seconds.” o Attack Scenarios: “When attack X happens, Y should happen and the system should continue operating as normal” quality attributes : define it
  • 18. Modifiability is ... quality attributes : measure it Modifiability / Maintainability / Evolution o Could be measured as (estimated) cost or speed Are these reasonable measures of modifiability? o “It should not require a change request and 14 day wait to correct a spelling error on the website” o “Sprint velocity after a year of development should be at least as good as in months 3 to 12”
  • 19. • What is a Quality Attribute? • What does “Reasoning about…” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  • 20. and even to predict What is “Reasoning about…”? estimate measure risk-evaluate account for cost-benefit-analyse calculate quantify validate budget everything
  • 21. What is “Reasoning about…”? Show me the numbers ♣ Being able to describe, define, measure, calculate, test and even predict how a system will behave … ♣ … preferably in advance of paying the full cost of delivery and preferably before missing the timeframe in which the system is still useful
  • 22. Abstraction is the key to reasoning even if the seats are concrete
  • 23. Abstraction: Number of seats I am not a number! 50
  • 24. • What is a Quality Attribute? • What does “Reasoning about…” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  • 25. 4 Key Concepts Such many stakeholders Not only the customer & the end-user but also…
  • 27. Architecturally Significant Requirements what matters first? Architecturally Significant Requirements
  • 28. 4 Key Concepts The promise of Software Architecture • What is a Quality Attribute? • What does “Reasoning about…” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help?
  • 29. Abstraction: Number of seats Maths: Reason by abstraction
  • 30. Abstraction: Number of seats I am not a number! 50
  • 31. Abstraction: power to weight ratio Maths: Reason by abstraction
  • 32. Abstractions: power & weight Maths: Reason by abstraction 74kW 12t
  • 34. Different viewpoints there is no all-encompassing viewpoint
  • 37. Load balancing as a tactic for scaling
  • 38. Load balancing as a tactic for scaling
  • 39.
  • 41. 20 years on … “6 + 0 + 1” Rozanski & Woods, Software Systems Architecture, 2nd ed
  • 42. The Claim of Software Architecture To enable Reasoning about: … the Quality Attributes of Software-intensive Systems … to meet Stakeholder’s Concerns … using Architecture Descriptions of the system’s fundamental structure(s) in terms of its elements, relationships, properties and principles Why software architecture?
  • 43. What is “The Architecture” of a system? rough cut definitions “… the fundamental structures or organisation of your code” “… all the rules & design decisions you have get right up-front, because they are too expensive to change later.”
  • 44. Architecture is ... Bass, Clements, Kazman, 1997-2012 SEI, early 2000s “The structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.”
  • 45. Architecture is ... what does fundamental mean? ISO/IEC/IEEE 42010:2011 “The fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution”
  • 46. Architecture is ... Kruchten, updated 2009 Kruchten 2009: The significant decisions about ♣ the organization of a software system, ♣ the selection of the structural elements and their interfaces by which the system is composed together with their behavio[u]r as specified in the collaboration among those elements, ♣ the composition of these elements into progressively larger subsystems, the architectural style that guides this organization, these elements and their interfaces, their collaborations, and their composition
  • 47. How to produce an architecture A catalogue & a method How can we design systems to meet quality requirements? 1) A catalogue of off-the-shelf tactics, components, appliances, patterns, frameworks, reference architectures… with known quality–impacts 2) A method for applying them when designing your system
  • 48. catalogues of patterns, tactics, … A (very long) Reading List http://bing.com/search?q=architecture+tactics http://bing.com/search?q=reference+architectures http://google.com/search?q=architecture+pattern http://pubs.opengroup.org/architecture/togaf8-doc/arch/chap28.html Rozanski & Woods, Software Systems Architecture Bass et al, Software Architecture in Practise Buschmann et al, Pattern-Oriented Software Architecture Vols 1–5 Blue Peter Architecture
  • 49. Patterns,Tactics, Appliances Off the shelf architecture Including … Pipe and Filter Architecture, Blackboard Architecture, Hexagonal Architecture, Layered Architecture, Service Oriented Architecture, Message Oriented Distributed Architecture, Client-Server, Client-Proxy Server, Master-Slave, Microservices, Reactor, Replication, Transactions, ACID, Eventual Consistency, Subsystem Interface, RDBMS, NoSQL DB, Graph Database, Datawarehouse, GUI, Command Line Interface, Batch Processing, Thread Pool, Activator, Factory, Dependency Injection, File System, Web Application, Sharding, Horizontal Scaling, Load Balancer, Message Queues, Publish-Subscribe, Request Broker, Web Services, Desktop Applications, Mobile Apps, Virtual Machine, Model View Controller, Domain Model, Domain Driven Design, Immutability, Caching, Proxy, Facade, Bridge, Adapter, Mediator, Decorator, Command, Interpreter, Web Farm, Web Garden, P2P, ORM, Data Mapper, Active Record, Tokens, Locks, Monitors, Heartbeat, Error detection, Backup and DR, the InterWebs, LAN, WAN, AES, PKI, Flash Drives, Gigabit Ethernet, WPA2-PSK
  • 50. a method for designing an architecture 1. Draw a box for the system. Surround it with the external actors which/who must interact with it. 2. List the Architecturally Significant Requirements in priority order 3. Start at the top of the list and work down 4. For each requirement, Identify or Create a Partition of the system which will meet that quality requirement 5. Identify tactics/patterns/appliances which achieve the Quality Requirement 6. Goto 2 Simplified from Bass et. al.
  • 51. Simple Case Study No relation to Uber Our New Startup • sÜper is an application which will find other sÜper users near you, and help you to arrange a lift share. • Business plan: Grow users to critical mass in year 1, charge a fee from year 2 onwards
  • 52. Functional & Quality Requirements Key Functionality •Based on the sUper user’s geolocation, find their nearest peers •Enable communication & appointment making between Quality Requirements • Must be mobile/geo-based • Must be very very simple & fast to use & not make embarrassing mistakes • Must be virally attractive • Must (appear to) be reliable • Available 24/7 • Must be cheap to build & maintain for the 1st year • Must cope with viral growth in user base • Must keep user data especially payment data secure Are not un-related to each other
  • 53. ASRs Prioritised Architecturally Significant Requirements 1. Deployability: Must run on mobiles 2. Usability: Must be very very simple 3. Usability/Performance: Must be fast to use 4. Usability/Accuracy: Not make embarrassing mistakes 5. Low Initial Cost & Time to Market 6. Functionality: Communication between users 7. Functionality: Find nearby users 8. Scalability 9. Availability 24/7 because the architect said so …
  • 54. 0. The Context Diagram
  • 55. ASR 1. Deployable to Mobile Platforms
  • 56. 2. Usability – Very Very Simple
  • 57. 3. Usability – Performance
  • 59. 5. Low Initial Cost/Time to Market
  • 60. 6. Key Functionality 1: Communication
  • 61. 7. Key Functionality 2: Find Nearby Users
  • 64. Et voila. We have most of an architecture ….
  • 65. Software Architecture thank you and good-bye http:www.cafe-encounter.net/about/

Hinweis der Redaktion

  1. “The Beginning” for computer science was the 1930s: the attempts to formalise mathematics resulted in Church’s Lambda Calculus and Turing’s Machine. All of which was done on paper…
  2. Computer was a real person’s job title until the 1940s. The Manhattan project on the atomic bomb had teams of people, and large mechanical calculators What it doesn’t have is speed….
  3. Bletchley Park needed speed for breaking first the Navel Enigma, and then the Lorentz cipher. They built first ‘bombes’ – racks of automated enigma machines running in parallel – and then: The world’s first electronic programmable digital computer
  4. Machines are like Regular Expressions. As in, “Some people, faced with a problem, think, ‘ah, I’ll use a regular expression’. Now they have two problems”. If you have a problem and you build a machine to solve it, you now have two problems. Or more. How do I setup or program the machine? How much does it breakdown? Who can repair it? How often does it need maintenance? What does that cost? Is it fast enough? Will it overheat? Or explode? What does this flashing light and smell of burning moth mean? The first bug was hardware. A moth that was caught in a mechanical relay of the US Navy Mark II, 1945
  5. But with software systems, you have 3 problems: Things that used to go wrong in machine… now go wrong in software as well
  6. Functionality is what you do: calculate the square root of an integer; Do this month’s payroll and pay everyone and pay the taxman. Quality is how you do it.
  7. Functionality is what you do: calculate the square root of an integer; Do this month’s payroll and pay everyone and pay the taxman. Quality is how you do it.
  8. There is an unlimited number of ways to meet a given functional requirement
  9. If your requirement is to get from A to B as fast as possible … with 50 friends … then the bus is a better solution. The one seater car is less fun if you have to wait 10 hours in the rain for your turn to drive.
  10. But. You want your system to be scalable? What does that mean? Every one of these words is so vague and ill-defined as to be completely useless.
  11. Examples of a measure and a scenario
  12. In software architecture, as in politics, the mark of the expert is firstly having all the numbers at your fingertips and secondly being able to communicate them in a compelling and easy-to-grasp way.
  13. Show me the numbers. This is good reflex reaction to have in many areas of life, especially politics.
  14. Abstraction is the key to reasoning and quantifying. The trick is to ignore almost everything, except just the one thing you care about. If we want to get 50 people from A to B we can (almost) completely ignore the tyres, the engine size, the brakes, the electrical systems, the 0-60 time and focus on just one thing: N=number of seats. This is the power of mathematical abstraction; by ignoring 99% of what’s in front of you and focussing on one thing you can “prove” that the bus is the better solution.
  15. Ignore everything about wheels, tyres, axles, chassis, engine, power to weight ratio, fuel, and focus on just one thing about each vehicle: how many seats?
  16. Architects talk about stakeholders. This expands on having just a customer, who is the main stakeholder mentioned in the agile manifesto; and includes end-users, other areas of business with legitimate concerns such as the information security officer, the people on help desk, the application support developer 2 years later, yourselves as the development team, the CFO and so on. Architecture claims in general to be able to address or help to address many of their concerns by considering stuff considered architecturally significant.
  17. I was once a café manager for 6 months. I was possibly appointed to this rôle because of my enthusiasm for coffee. It would all have been so much easier if it weren’t for the customers.
  18. Can you build a car, and then put go faster things on it to make it go faster? Or do you have to address gofasterness right from the start? If you have a set of user stories on a Monday morning as you consider the sprint plan, are they all equally risky or do some stand out with a little flashing light in your head that says ooh that’s a problem? So, a kind of triage: identifying stuff you have to deal with sooner otherwise you won’t be able to deal with it at all. Continuous delivery is an example that agile has highlighted: If you don’t get your CI pipeline going early on, it gets harder and harder and costs you more and more.
  19. I go back again to the bus vs “racing” car example, of abstracting the number of seats
  20. Ignore everything about wheels, tyres, axles, chassis, engine, power to weight ratio, fuel, and focus on just one thing about each vehicle: how many seats?
  21. Or then again, if you only want to get 1 of you from A to B as fast as possible
  22. You might want just two numbers: power and weight
  23. An Architecture Description must use as many abstractions / aspects / structures as the significant quality attributes require. We call these ‘aspects’ or ways of looking at the system, viewpoints
  24. There is no single, all-encompassing viewpoint
  25. If you want some assurance that supporting a new bitmap graphic format will not require rewriting half the system, then this picture would give you considerable comfort. It suggests that you would only have to add one teeny weeny box and a single dashed line, and you’re done; with no alternations to any other part of the system.
  26. “If we modularise the code well and apply encapsulation then in a year’s time we hope to be able to add or modify functionality as quickly/easily/reliably as we could when it was a greenfield project.”
  27. But if you’re concerned about taking a website from 100 users per day to a 1,000 per day and more, then this diagram is much more important to you
  28. “If we design the app to run on a webfarm behind a load balancer, we can scale up to millions of users”
  29. Different views of the system give you assurance about different quality attributes
  30. One of the most popular sets of Viewpoints is 4+1 (google it)
  31. And finally … What is An Architecture? And how do I design one?
  32. The bit that isn’t on mobile will probably have to communicate with all the mobiles, so will probably end up as a server of some kind
  33. Options Choose a high quality cross-platform mobile UI framework => Trial Xamarin & PhoneGap - Choose ‘best of breed’ for each phone platform (Which is what?) Domain Model will impact usability
  34. There are no magic tricks for making phones go faster, but may have to prefer native apps not html/javascript? Minimize what has to run on the phone?
  35. What technology are we most familiar with? If Javascript, then use PhoneGap+Node ? If .Net, then use Xamarin+ asp.Net ? - Source geolocation & map libraries - Trial Google maps and/or bing maps
  36. Must be something off-the-shelf that helps with this. We probably want bi-directional comms. WebSockets? Some kind of Message Queue?
  37. 4+7 look like a domain model?
  38. Load balance the server. We shouldn’t need to/can’t scale anything client side BUT we must ensure that comms does not grow exponentially with number of users!
  39. Yay, our step 8, already solved part of this