SEI Software Architecture
SEI Software Architecture
This material is based upon work funded and supported by the Department of Defense under Contract No. FA8702-15-D-
0002 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research
and development center.
The view, opinions, and/or findings contained in this material are those of the author(s) and should not be construed as an
official Government position, policy, or decision, unless designated by other documentation.
NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS
FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF
FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE
MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO
FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. Please see
Copyright notice for non-US Government use and distribution.
This material is distributed by the Software Engineering Institute (SEI) only to course attendees for their own individual
study.
Except for any U.S. government purposes described herein, this material SHALL NOT be reproduced or used in any other
manner without requesting formal permission from the Software Engineering Institute at [email protected].
Although the rights granted by contract do not require course attendance to use this material for U.S. Government
purposes, the SEI recommends attendance to ensure proper understanding.
Architecture Tradeoff Analysis Method® and ATAM® are registered in the U.S. Patent and Trademark Office by Carnegie
Mellon University.
DM21-0242
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 2
Rules of Engagement
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 3
Agenda
Day 1:
• Definition and importance of architecture
• Architectural drivers, quality attribute scenarios
Day 2:
• Architecture Documentation: Views – Structure and Behavior,
Principles of Sound Documentation, Architecture Decision
Records
• Architecture-centric Engineering
Day 3:
• Architecture analysis
- Evaluation approaches, lightweight evaluation
• Architecture design
- Design process, Attribute-Driven Design
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 4
Logistics
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 5
What is software architecture?
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 7
Some Implications of Our Definition
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 8
More Implications of Our Definition
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 9
Role of Software Architecture
If the only criterion for software was to get the right answer, we
would not need architectures―unstructured, monolithic systems
would suffice.
But other things also matter, such as
• modifiability
• time of development
• performance
• coordination of work teams
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 11
Vehicle for Communication
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 12
Most Important Design Decisions – 1
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 14
Most Important Design Decisions – 3
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 15
Most Important Design Decisions – 4
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 16
Most Important Design Decisions – 5
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 17
Most Important Design Decisions – 6
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 18
Most Important Design Decisions – 7
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 19
Transferable, Reusable Abstraction – 1
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 20
Transferable, Reusable Abstraction – 2
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 21
Architecturally Significant
Requirements
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 23
Factors Influencing Architectures
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 24
Concerns of System Stakeholders
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 25
Architecture Influence Cycle (AIC)
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 26
Architectural Drivers
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 27
Design Purpose
Before you can begin you need to be clear about why you are
designing.
Your objectives will change what and how you design; some
examples include
• part of a project proposal (e.g., pre-sales)
• part of creating an exploratory prototype
• during development: greenfield, refactoring, refresh, …
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 28
Quality Attributes or Non-Functional
Requirements (NFRs)
Quality attributes are properties of work products or goods by
which stakeholders judge their quality.
• performance • availability
• security • adaptability
• modifiability • throughput
• reliability • configurability
• usability • subsetability
• calibratability • reusability
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 29
Quality Attribute Requirements
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 30
Quality Attribute Requirements
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 31
Functional Requirements
The way the system is structured normally does not inhibit the
satisfaction of functional requirements.
• Functionality and quality are orthogonal concerns.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 32
Primary Functional Requirements
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 33
Functionality and Architecture
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 34
Architectural Concerns - 1
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 35
Architectural Concerns - 2
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 36
Constraints
Constraints limit the range of possibilities when making design
decisions.
• In some cases they are decisions about which you have zero
choice.
Before commencing design, identify and justify constraints.
• Technical constraints
- Use of a legacy database
- Compliance with a vendor's interface
- Corporate or industry technical standards
• Other constraints
- Development team only familiar with Java
- Obey Sarbanes-Oxley
- Ready in time for April 15th
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 37
Capturing System Requirements
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 38
Capturing Architecturally Significant
Requirements
Not all requirements are created equal for architectural purposes.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 39
Architecture and Design Decisions
For more information, see Bass, L., Bergey, J., Clements, P., Merson, P., Ozkaya, I., Sangw an, R. A Comparison of Requirements Specification Methods from a Software
Architecture Perspective (CMU/SEI-2006- TR-013). Softw are Engineering Institute, Carnegie Mellon University, 2006.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 41
Stakeholders and Quality Attributes
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 42
Quality Attribute Data from SEI Architecture
Evaluations:
Top 20 QA Concerns1
1. Modifiability: Reduce coupling 11.Deployability: Minimize build, test, release duration
2. Performance: Latency 12.Modifiability: Reusability
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 43
Quality Attribute Data from SEI Architecture
Evaluations:
QA Concerns Grouped by QA1
Modifiability Performance Interoperability Availability
• Designing for • Latency • Upgrade and • Detect faults
portability integrate with other
• Resource • Recover from faults
system components
• Designing for management
• Prevent faults
extensibility • Ease of interfacing
• Throughput
with other systems or • Transaction auditing
• Reusability • Performance components and logging
monitoring
• Configurability/compo • Resource and data • Graceful degradation
sability • Initialization sharing
• Increase cohesion • Accuracy • Data integrity
1 Bellomo, S.; Gorton, I.; & Kazman, R. “Insights from 15 Years of ATAM Data: Tow ards Agile Architecture”, IEEE Software, September/October, 2015, 32:5, 38-45.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 44
Describing Quality Attributes
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 45
Parts of a Quality Attribute Scenario
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 46
Quality Attribute Example Scenario
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 47
Prioritizing QA Scenarios
You can identify, prioritize, and refine the most important quality
attribute goals by building a utility tree.
• A utility tree is a top-down vehicle for characterizing the “driving”
attribute-specific requirements.
• The highest level nodes are typically quality attributes such as
performance, modifiability, security, availability, and so forth.
• Scenarios are the leaves of the utility tree.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 49
Example of Quality Attribute Utility Tree
Replace middleware in
< 20 person-months
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 50
How Scenarios Are Used
Growth scenario
• During maintenance, add an additional data server within 1
person-week.
Exploratory scenario
• Half of the servers go down during normal operation without
affecting the overall system availability.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 52
Stimulus, Environment, Response
Growth scenario
• During maintenance, add an additional new data server within
1 person-week.
Exploratory scenario
• Half of the servers go down during normal operation without
affecting the overall system availability.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 53
Quality Attribute Requirements –
Elicitation Approaches
Goal: Broad coverage through stakeholder engagement and
representation
Approaches:
• Quality Attribute Workshop – Original method, synchronous in-
person collaborative working meeting
• Virtual QAW – Synchronous working telemeeting
• Interviews – Variation to avoid holding a single event, can by in-
person and/or telemeeting
• Seeded Crowdsourcing – Create initial set of scenarios based
on experience or interviews, open to broader asynchronous
contributions
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 54
Quality Attribute Workshop (QAW)
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 55
Exercise –
Quality Attribute Scenarios for DIP System
Stimulus, Environment, Response
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 56
Start of Day 2
Day 1:
• Definition and importance of architecture
• Architectural drivers, quality attribute scenarios
Day 2:
• Architecture Documentation: Views – Structure and Behavior,
Principles of Sound Documentation, Architecture Decision
Records
• Architecture-centric Engineering
Day 3:
• Architecture analysis
- Evaluation approaches, lightweight evaluation
• Architecture design
- Design process, Attribute-Driven Design
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 58
Structures, Views, Documentation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 60
Stakeholders for Documentation
Benefit of documentation =
1. Project activities will be less costly with high-
quality, up-to-date documentation than they would
otherwise.
(
over all
Cost of performing A without
architecture documentation –
Cost of performing A with
architecture documentation )
activities A
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 62
Architectural Structures
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 63
Architectural Structure Types
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 64
Documenting Software Architecture Using
Views
• Software architecture needs to be communicated to the team and
key stakeholders. It must be documented!
• A single diagram that showed the entire architecture would
contain too much information to present all at once.
• To break an architecture into digestible chunks, we create
diagrams that we refer to as views.
• These views illustrate Search
ItemEntry
Online
Services[1..5]
Admin
Services[1]
SearchEngine
CatalogMgr
Catalog
Data
Cache
Dava
Validation
Notation:
DataAccess
Authorized
User
<<artifact>>
Notation: <<artifact>>
UML 2.0 DukesBankApp.ear
<<manifest>>
tx-ejb.jar
<<artifact>>
customer-ejb.jar
<<manifest>>
<<artifact>>
tx-ejb.jar
<<manifest>>
<<artifact>>
<<session bean>> <<entity bean>> <<session bean>> <<entity bean>>
<<artifact>>
app-client.jar
Shorthand for
all JSP files
web-client.war <<entity bean>>
<<session bean>>
Account AccountEJB Customer CustomerEJB <<manifest>> TxEJB
<<manifest>> <<manifest>> TxControllerEJB <<manifest>>
<<manifest>>
<<manifest>>
<<manifest>>
ControllerEJB ControllerEJB
<<artifact>> <<artifact>> <<artifact>>
<<manifest>>
<<artifact>>
<<artifact>>
<<artifact>>
<<J2EE app.client>> AdminMessages <<servlet>> <<JSP>> *.tld, *.gif, WebMessages.
struts.jar
BankAdmin .properties Dispatcher *.jsp *.html properties
<<artifact>>
account-ejb.jar customer-ejb.jar <<artifact>>
app-client.jar tx-ejb.jar
Shorthand for
all JSP files
<<artifact>>
web-client.war
<<manifest>>
<<manifest>> <<manifest>>
<<manifest>> <<manifest>> <<manifest>> <<manifest>>
<<session bean>> <<entity bean>> <<session bean>> <<entity bean>> <<entity bean>>
<<session bean>>
Account AccountEJB Customer CustomerEJB TxEJB
TxControllerEJB
ControllerEJB ControllerEJB
<<artifact>>
<<artifact>> Shorthand for
app-client.jar web-client.war Notation: <<artifact>>
all JSP files UML 2.0 DukesBankApp.ear
<<manifest>>
<<manifest>> <<manifest>> <<artifact>> <<artifact>> <<artifact>>
<<manifest>>
<<artifact>> <<artifact>> <<artifact>> <<session bean>> <<entity bean>> <<session bean>> <<entity bean>>
<<session bean>>
<<entity bean>>
<<J2EE app.client>> AdminMessages <<servlet>> <<JSP>> *.tld, *.gif, WebMessages. ControllerEJB ControllerEJB
struts.jar
BankAdmin .properties Dispatcher *.jsp *.html properties
<<artifact>>
<<artifact>> Shorthand for
app-client.jar web-client.war
all JSP files
<<manifest>>
<<manifest>> <<manifest>>
<<manifest>> <<manifest>> <<manifest>> <<manifest>>
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 65
View-Based Documentation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 66
Recognizing Types of Views - 1
C10
C9 C1
Client
Server C8 C2
S1
C7 C3
Common
C6 C4
C5
Key: Module
Key: Component
uses
Request-reply
Uses …
Decomposition Class/Generalization
Layered
Component-and-Connector Allocation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 70
Module View Example
Uses Style: UML
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 71
Module View Example – Extract from Fuser
Uses Style: Outline
fuser-parent + com.mosaicatm.matmdata.airline asdex-parent
+ com.codahale.metrics + com.mosaicatm.matmdata.common + com.mosaicatm.aptcode
+ com.google.gson + com.mosaicatm.matmdata.envelope + com.mosaicatm.gufi.plugin
+ com.matm.actypelib + com.mosaicatm.matmdata.flight + com.mosaicatm.guficlient
+ com.mosaicatm.adaptation + com.mosaicatm.matmdata.fusersurveillance
+ com.mosaicatm.gufiservice
+ com.mosaicatm.adsb.data + com.mosaicatm.matmdata.heartbeat
+ com.mosaicatm.adsbplugin + com.mosaicatm.matmdata.position
+ com.mosaicatm.lib.bulk2
+ com.mosaicatm.aircraftmanagement + com.mosaicatm.matmdata.positionenvelope + com.mosaicatm.lib.camel.jms
+ com.mosaicatm.aodbplugin.matm + com.mosaicatm.matmdata.sector + com.mosaicatm.lib.fitnesse
+ com.mosaicatm.aptcode + com.mosaicatm.matmdata.util + com.mosaicatm.lib.playback
+ com.mosaicatm.container.io + com.mosaicatm.matmplugin.matm + com.mosaicatm.lib.text
+ com.mosaicatm.data.flightstate + com.mosaicatm.performancemonitor.common + com.mosaicatm.lib.wrap
+ com.mosaicatm.faa.util + com.mosaicatm.rmasplugin.matm + com.mosaicatm.lib.xml
+ com.mosaicatm.flighthubplugin.matm + com.mosaicatm.rollingfile + com.mosaicatm.rollingfile
+ com.mosaicatm.flightmanagement + com.mosaicatm.sector.geometry
+ com.mosaicatm.fmccommon + com.mosaicatm.sfdps.data.transfer;
+ com.mosaicatm.fmcplugin + com.mosaicatm.sfdps.data.transfer
+ com.mosaicatm.guficlient + com.mosaicatm.sfdpsplugin.matm
+ com.mosaicatm.lib.camel + com.mosaicatm.smes.transfer
+ com.mosaicatm.lib.coord + com.mosaicatm.smesplugin.matm
+ com.mosaicatm.lib.database + com.mosaicatm.surveillanceplugin.matm
+ com.mosaicatm.lib.jaxb + com.mosaicatm.tfm.thick.flight.mtfms.data
+ com.mosaicatm.lib.messaging + com.mosaicatm.tfmplugin.matm
+ com.mosaicatm.lib.playback + com.mosaicatm.tfmplugin
+ com.mosaicatm.lib.spring + com.mosaicatm.tfmtfdmplugin
+ com.mosaicatm.lib.text + com.mosaicatm.tma.common
+ com.mosaicatm.lib.time + com.mosaicatm.tmaplugin
+ com.mosaicatm.lib.util + com.mosaicatm.ttp.util
+ com.mosaicatm.matmdata.aircraft + com.mosaicatm.ttpplugin
+ com.mosaicatm.matmdata.aircraftcomposite + com.mosiacatm.ifile
+ org.apache.commons.logging
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 72
Component-and-Connector View:
Pipe-and-Filter Style
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 73
Deployment
View
1. Internet Gateway: Allows
communication between Virtual Private
Cloud (VPC) and the internet.
2. Application Load Balancer
(ALB): ALB manages traffic within the
implementation and from external
connections.
3. Front-end Server (EC2): Is placed in
an auto-scaling group where the front-
end web server is deployed on EC2
instances and serves as an application
user interface (UI).
4. Back-end Server: Back-end web
services are placed in a private subnet,
deployed on EC2 instances.
5. Amazon RDS (Database): Application
database is kept in a restricted subnet
that interacts with back-end services.
6. AWS CloudTrail: Provides
compliance, governance, operational
and risk auditing of the AWS accounts.
•••
https://notsosecure.com/security-architecture-review-of-a-cloud-native-environment/
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 74
Seven Principles of Sound Documentation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 75
Avoid Ambiguity - 1
Even “simple” concepts can confuse. Here, what does the arrow mean?
• C1 calls C2
• Data flows from C1 to C2
• C1 instantiates C2
• C1 sends a message to C2
• C1 is a subtype of C2
• C2 is a data repository and C1 is writing data to C2
• C1 is a repository and C2 is reading data from C1
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 76
Avoid Ambiguity - 2
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 77
Avoid Ambiguity - 3
SOAP request
(web services URL) Examples of keys
Thick Axis + ATIA WebLogic 6.1
services Oracle admin. server Oracle 9i
client Web (servlet) Web Windows 2000
DB Server
Web
browser
Web
browser
Database
WebLogic
TDDT IBM x345
SOAP
browser
browser
.NET 6.1
CMP or ATIA-M
response Façade Enterprise
WebLogic
SLSB BMP entity
HTTP(S) 6.1 Database
Key: User
Communi- Server software Data repository
Server cation
machine running on a residing on a
machine protocol machine machine
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 78
Avoid Ambiguity - 4
Box-and-line diagrams
are a common form of
architectural notation.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 79
Use a Standard Organization
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 80
What Is the “Right” Set of Views?
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 81
Standard View Types for Documenting
Architecture
With a clear understanding of requirements, architects then select
structures that promote those qualities. There are many to choose
from!
Module
Uses …
Decomposition Class/Generalization
Layered
Component-and-Connector Allocation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 82
Behavior: Beyond Structure
Structural diagrams
show all the potential
interactions among
software elements.
Behavioral diagrams
describe specific patterns
of interaction—the system’s
response to stimuli.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 83
Two Classes of Languages
Trace-oriented Comprehensive
languages languages
• describe how the system • show the complete behavior of
reacts when a specific stimulus a system
arrives and the system is in a • are usually state based (e.g.,
specific state statecharts)
• are easy to use because of • can be used to express all
their narrow focus traces
• do not completely capture • support the documentation of
behavior unless you collect all alternatives
possible traces
Both can show the behavior of the whole system, parts of the
system, or individual elements.
Traces can correspond to use cases, so behavioral documentation
can show satisfaction of requirements.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 84
Which Is Which?
Trace-Oriented Comprehensive
• use cases* • State machine diagrams*
• communication diagrams* • SDL diagrams
• sequence diagrams* • Z specifications
• message sequence charts • some ADLs
• activity diagrams* • CSP (communicating
• timing diagrams* sequential processes)
• Business Process Execution •…
Language (BPEL) and
Business Process Modeling
Notation (BPMN)
•…
* available in UML
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 85
Documenting Rationale:
Architectural Decisions
Developing a complex software architecture involves making
hundreds or thousands of big and small decisions.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 86
Architecture Decision Record (ADR)
Template - 1
1. Issue. State the architectural design issue being addressed.
2. Decision. State the solution chosen among the alternatives that the
architect evaluated.
3. Status. State the status of the decision, such as pending, decided, or
approved. (This is not the status of implementing the decision.)
4. Group. Name a containing group. Grouping allows for filtering based
on the technical stakeholder interests. Examples: “integration,”
“presentation,” “data,” etc.
5. Assumptions. Describe the key assumptions under which a decision
was made:
- About the environment. Examples: accepted technology standards, an
enterprise architecture, commonly employed patterns, team size and
skill set available, cost and schedule, etc.
- About need. Example: “The system will only be used in the USA”
(justifies why the design has no support for internationalization)
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 87
Architecture Decision Record (ADR)
Template - 2
6. Alternatives. List alternatives (that is, options or positions)
considered. Explain with sufficient detail to judge their
suitability. Listing alternatives espoused by others helps them
know that their opinions were heard.
7. Argument. Outline why a position was selected. This can
include items such as implementation cost, total cost of
ownership, time to market, and availability of required
development resources.
8. Implications. Describe the decision’s implications. E.g., it may
- Introduce a need to make other decisions
- Create new requirements or modify existing requirements
- Pose additional constraints to the environment
- Require renegotiation of scope or schedule
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 88
Architecture Decision Record (ADR)
Template - 3
9. Related Decisions. List decisions related to this one. Useful relations
among decisions include causality (which decisions caused other
ones), structure (showing decisions’ parents or children), or
temporality (which decisions came before or after others).
10. Related Requirements. Map decisions to objectives or requirements,
to show accountability.
11. Affected Artifacts. List the architecture elements and/or relations
affected by this decision. You might also include external artifacts
upstream and downstream of the architecture, as well as
management artifacts such as budgets and schedules.
12. Notes. Capture notes and issues that are discussed during the
decision process.
As in all cases, choose the parts of this template appropriate for your
situation.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 89
Exercise – View selection for DIP
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 90
Architecture design and
analysis
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 92
What Is Design and Analysis?
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 93
Implications for Software Architecture Design
and Analysis
The degree to which a system meets its quality attribute
requirements is dependent on architectural decisions.
• A change in structure improving one quality often affects the
other qualities.
• Architecture is critical to the realization of quality attributes.
These quality attributes should be designed into the
architecture.
• Architecture can only permit, not guarantee, any quality
attribute.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 94
Use of Analysis in Design Methods
- Concerns
- Design Purpose
For More Information: Hofmeister, C.; Kruchten, P.; Nord, R.L.; Obbink, H.; Ran, A.; America, P. “A General Model of Softw are
Architecture Design Derived from Five Industrial Approaches.” Journal of Systems and Software, 2007.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 95
Architectural Analysis and Design
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 96
Analysis and Documentation
as a Portion of Design
1: Focus on
architectural
drivers to create
design concept.
2: Focus on functional
requirements to create
instantiated design.
3: Verify requirements
and complete architecture
description.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 97
Analysis and Documentation
as a Portion of Design – Iterative Process
1: Focus on
architectural
drivers to create
design concept.
2: Focus on functional
requirements to create
instantiated design.
3: Verify requirements
and complete architecture
description.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 98
Architecture Centric Engineering
BUSINESS
AND MISSION ACE/TSP ARCHITECTURE ACE/TSP SYSTEM
GOALS
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 99
Architecture Centric Engineering - Methods
BUSINESS
AND MISSION ACE/TSP ARCHITECTURE ACE/TSP SYSTEM
GOALS
Conformance
Review
Views and
Beyond
Architecture Trade-off
Analysis Method
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 100
QAW, ADD, V&B, and ATAM Together
Account Account
Server-Main Server-Backup
ASTER V0
Gateway Gateway
Account
Database Administrative
Maintenance
KEY Component Types:
Tool
Attachment
Client
Connector Types:
Server Publish-Suscribe
Database Client-Server
Request/Reply
Database Database Access
Application
SYBASE DS <<layer>> A <<layer>> A
<<layer>> A
<<allowed to use>>
<<layer>> A
<<allowed to use>>
KEY Repository Component SQL
<<allowed to<<allowed
use>> to <<layer>>
use>> A <<layer>> A
<<allowed to use>>
<<layer>> B <<layer>> B
<<segment>> <<segment>> <<segment>> <<segment>> <<segment>> <<segment>>
B1 B2<<allowed to<<allowed
B3
use>> to use>> B1 B2 B3
<<allowed to use>>
<<layer>>
<<allowed to use>>B <<layer>>
<<allowed B
to use>>
<<segment>> <<segment>> <<segment>> <<segment>> <<segment>> <<segment>>
B1 B2<<allowed to B3
use>> B1 B2 B3
<<layer>> C <<layer>> C
<<layer>> C <<layer>> C
ADD
Prioritized
QA scenarios Views &
Beyond
ATAM
Requirements,
constraints
Stakeholders
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 101
Start of Day 3
Day 1:
• Definition and importance of architecture
• Architectural drivers, quality attribute scenarios
Day 2:
• Architecture Documentation: Views – Structure and Behavior,
Principles of Sound Documentation, Architecture Decision
Records
• Architecture-centric Engineering
Day 3:
• Architecture analysis
- Evaluation approaches, lightweight evaluation
• Architecture design
- Design process, Attribute-Driven Design
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 103
Architecture Analysis
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 105
Why Analyze?
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 106
Analyze Early and Often
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 107
Analysis Techniques: Cost and Confidence
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 108
Techniques for Analysis
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 109
Lightweight Analysis Techniques
Examples:
• Maintainability: https://resources.sei.cmu.edu/library/asset-
view.cfm?assetid=650480
• Integrability: https://resources.sei.cmu.edu/library/asset-
view.cfm?assetid=637375
• Software Architecture in Practice, 3rd. Edition
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 110
Reflective Questions
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 111
Reflective Question Examples
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 112
Tactics-Based Questionnaires
We can employ tactics as an a guide to analysis. By turning every tactic
into a question, we create a set of QA-specific questionnaires. These are
employed as follows:
1. The reviewers determine a number of quality attributes to drive the
review. These quality attributes will determine the selection of tactics-
based questionnaires to use.
2. The architect presents the portion of the architecture to be evaluated.
The reviewers individually ensure that they understand the
architecture. Questions at this point are just for understanding.
3. For each question from the questionnaire, the designer walks through
the architecture and explains whether and how the tactic is addressed.
The reviewers ask questions to determine how the tactic is employed,
the extent to which it is employed, and how it is realized.
4. Potential problems are captured. Real problems must be fixed, or a
decision must be explicitly made to accept the risks.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 113
Example: Availability
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 114
Tactics-Based Questions for Availability
• Does the system use ping/echo to detect a failure of a
component or connection, or network congestion?
• Does the system use a component to monitor the state of health
of other parts of the system? A system monitor can detect failure
or congestion in the network or other shared resources, such as
from a denial-of-service attack.
• Does the system use a heartbeat—a periodic message
exchange between a system monitor and a process—to detect a
failure of a component or connection, or network congestion?
• Does the system use a timestamp to detect incorrect sequences
of events in distributed systems?
• Does the system employ rollback, so that it can revert to a
previously saved good state (the “rollback line”) in the event of a
fault?
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 115
Checklists
Architecture design is a systematic approach to making design
decisions.
We categorize the design decisions that an architect needs to
make as follows:
1. Allocation of responsibilities
2. Coordination model
3. Data model
4. Management of resources
5. Mapping among architectural elements
6. Binding time decisions
7. Choice of technology
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 117
Example Design Checklist for Availability:
Coordination Model
Determine the system responsibilities that need to be highly available.
With respect to those responsibilities,
• ensure that coordination mechanisms can detect an omission, a crash,
incorrect timing, or an incorrect response. Consider, for example,
whether guaranteed delivery is necessary. Will the coordination work
under degraded communication?
• ensure that coordination mechanisms enable the logging of the fault,
notification of appropriate entities, disabling of the source of the events
causing the fault, fixing or masking the fault, or operating in a degraded
mode
• ensure that the coordination model supports the replacement of the
artifacts (processors, communications channels, persistent storage,
and processes). For example, does replacement of a server allow the
system to continue to operate?
• determine if the coordination will work under conditions of degraded
communication, at startup/shutdown, in repair mode, or under
overloaded operation. For example, how much lost information can the
coordination model withstand and with what consequences?
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 118
Scenario-Based Analysis
In the ATAM we
• precisely capture architectural requirements as 6-part scenarios
• prioritize those scenarios
• map the highest-priority scenarios onto representations of the
architecture to understand their consequences
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 119
The Architecture Tradeoff Analysis Method
(ATAM)
The purpose of the ATAM is to assess the consequences of
architectural decisions in light of quality attribute requirements and
business goals.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 120
Conceptual Flow of the ATAM
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 121
Example Scenario Walkthrough
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 122
Continuous Architecture Evaluation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 123
Lightweight Architecture Evaluation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 124
Summary
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 125
Exercise
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 126
Fuser Deployment Views
(Primary Presentation)
Alternative #1 Alternative #1
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 127
Tradeoffs
Fuser rule
maintainability
Client connection
workload impact on
Fuser
Operations complexity
Data uniformity to
clients
Feed customizability
for clients
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 128
Architecture Design
Why does a yurt look like a yurt, which is different from an igloo or
a chalet or a longhouse?
The architectures of these styles of houses have evolved, over the
centuries, to reflect their unique sets of goals, requirements and
constraints.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 131
Is Design Hard?
Yes and no.
Novel design is hard.
But the vast majority of design is not novel.
There are ample proven designs and design fragments, that we
call design concepts, that can be reused and combined to reliably
achieve your goals for most designs.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 132
Architectural Design
Design Concepts
Module
<<selects and
instantiates>>
Uses …
Des ign Purpose
Decomposition Class/Generalization
Layered
Pri ma ry Functionality
Component-and-Connector
<<uses>> <<produces>>
Qua l ity Attri butes Client-Server
…
Concurrency Shared-Data
Cons traints Process
Allocation
Archi tectural Concerns
Work Assignment
…
Deployment Implementation
Architectural Drivers The Architect
Structures
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 133
What Makes a Decision “Architectural”?
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 134
Architectural Drivers
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 135
Design Concepts
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 136
The Output of the Design Process
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 137
Design Principles
There are more specific design principles. For example, the SOLID
principles aid in designing modifiable, extensible OO-based
architectures.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 138
Design Principles
SOLID principles:
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 140
Reference Architecture for
Big Data Systems
J. Klein, R. Buglak, D. Blockow, et al., “A Reference Architecture for Big Data Systems in the National Security Domain,” in Proc. 2nd Int. Work shop on BIG
Data Software Eng. (BIGDSE'16), Austin, TX, USA, 2016, pp. 51-57. URL: https://resources.sei.cmu.edu/library/asset- view.cfm?assetid=454876
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 141
Externally Developed Components
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 142
Architectural Design Decisions
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 143
Documenting During Design
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 144
Tracking Progress
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 145
Design Backlog
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 146
Using a Design Kanban Board
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 147
Termination Criteria
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 148
Attribute-Driven Design (ADD) Method
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 149
Recall: The Architecture Influence Cycle
(AIC)
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 150
Design Is a Transformation
In architectural design, we make decisions to transform our design
purpose, quality attributes, functionality, constraints, and
concerns—the drivers—into structures.
Design Concepts
Module
<<selects and
instantiates>>
Uses …
Des ign Purpose
Decomposition Class/Generalization
Layered
Pri ma ry Functionality
Component-and-Connector
<<uses>> <<produces>>
Qua l ity Attri butes Client-Server
…
Concurrency Shared-Data
Cons traints Process
Allocation
Archi tectural Concerns
Work Assignment
…
Deployment Implementation
Architectural Drivers The Architect
Structures
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 151
On the Need for an Architecture Design Method
Step 4: Choose one or more design concepts that satisfy the selected drivers
Iterate if necessary
(Refined) Software
Artifact flow
architecture design
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 153
ADD Step 1
selected drivers
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 154
Recall: Prioritizing QA Scenarios
Before commencing design, prioritize quality attribute scenarios.
• Typically only the most important scenarios can be considered in
architectural design.
• Choose the top 5-7 scenarios.
One could also use the ATAM technique where scenarios are
prioritized across two dimensions.
• Importance (high, medium, or low) to the success of the system,
ranked by the customer.
• Degree of technical risk (high, medium, or low), ranked by the
architect.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 155
Recall: Functional Requirements
The way the system is structured normally does not inhibit the
satisfaction of functional requirements. Functionality and quality
are orthogonal concerns.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 156
Recall: Prioritizing Functional Requirements
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 157
Recall: Constraints
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 158
ADD Step 2
selected drivers
sub-problems.
Step 5: Instantiate architectural elements, allocate
responsibilities and define interfaces
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 159
Recall: Scenario Prioritization
If the quality attribute scenarios haven’t been prioritized, a
technique can be borrowed from the ATAM.
Scenarios are prioritized across two dimensions:
• importance to the success
of the system
• degree of technical risk
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 160
ADD Steps 3-5
selected drivers
existing solutions
that support the Step 5: Instantiate architectural elements, allocate
decomposition responsibilities and define interfaces
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 161
ADD Step 6
The “blueprint” is Step 3: Choose one or more elements of the system to refine
refined. This may be
done in parallel with Step 4: Choose one or more design concepts that satisfy the
Iterate if necessary
selected drivers
Step 5.
Step 5: Instantiate architectural elements, allocate
responsibilities and define interfaces
Note: This is not full
documentation but
Step 6: Sketch views and record design decisions
Driver
rather sketches.
Architecture
Step 7: Perform analysis of current design and review iteration design
goal and achievement of design purpose Process step
Precedence
(Refined) Software Artifact
architecture design
flow
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 162
ADD Step 7
selected drivers
more iterations are
necessary. Step 5: Instantiate architectural elements, allocate
responsibilities and define interfaces
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 163
ADD Output/Iteration
selected drivers
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 164
Design Decisions
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 165
Design Concepts
There are several categories of design concepts, some abstract and some
more concrete.
Here we consider
• reference architectures
vs.
• deployment patterns
• architectural/design patterns
• tactics
• externally developed
components (e.g., frameworks)
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 166
Reference Architectures
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 167
Deployment Patterns
Examples
• 2, 3, 4 and n-tier deployment
• Load-balanced cluster
• failover cluster
• private/public cloud
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 168
Tactics - 1
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 169
Tactics - 2
Chen, H-M, Kazman, R., Haziyev, S., Kropov, V., Chtchourov, D. “Architectural Support for DevOps in a Neo-Metropolis BDaaS
Platform”, IEEE 34th Symposium on Reliable Distributed Systems Workshop (SRDSW), (Montreal, Canada), Sept. 2015
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 170
Architectural / Design Patterns
Patterns are proven (conceptual)
solutions to recurring design problems.
Patterns originated in building architecture.
Many patterns exist (thousands), and they are
documented across several pattern catalogs.
It is difficult to draw a clear boundary between
“design” and “architectural” patterns.
Cover art for SOA Design Patterns used w ith permission from Thomas Erl.
Cover art used w ith permission of John Wiley & Sons, Inc., from Security
Patterns in Practice, Eduardo Fernandez-Buglioni, 1st edition, 2013, and
Pattern-Oriented Software Architecture, Douglas Schmidt et al., volume 2, 1st
edition, 2000; permission conveyed through Copyright Clearance Center, Inc..
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 171
Externally Developed Components
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 172
Selecting Design Concepts (Step 4)
Design concept
Design concept
Design concept
Design concept
Design concept
Design concept
Design concept
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 173
Continuous Architecture Evaluation
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 174
Design Decisions and Technical Debt
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 175
Summary
Architecture design transforms drivers into structures.
Architectural drivers include functional requirements, quality
attributes, and constraints but also design purpose and
architectural concerns.
ADD is a method that structures architecture design so it may be
performed systematically.
Design concepts are building blocks from which the design is
created. There are several important types: reference
architectures, deployment patterns, architectural patterns, tactics,
and externally developed components such as frameworks.
ADD can be performed in an agile way by using initial
documentation (sketches) and a design Kanban board to track
design advancement.
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 176
Final Discussion and Questions
NSAS DIP Architecture Training [Distribution Statement A] Approv ed f or public release and unlimited distribution.
© 2021 Carnegie Mellon University 177