Arquitectura de Software: Attribute Driven Design (ADD)
Arquitectura de Software: Attribute Driven Design (ADD)
Architectural
Architectural
Drivers and Architectural Architectural
Analysis and
Requirements Documentation Evaluation
Design
Identification
Attribute Driven Design
PLAN
“The ADD method is an
approach to defining a
software architecture in which
the design process is based
on the software’s quality System
attribute requirements” (or system
elements)
Software Engineering Institute (SEI)
CHECK DO
Attribute Driven Design
Inputs
Outputs
• Architecture Drivers
• Quality Attributes
System Design:
• Design Constraints
• Software Elements
ADD
• Functional
• Roles
Requirements
• Responsibilities
• Architecture Design • Properties
Objectives • Relationships
• Concerns
Attribute Driven Design
Design Primary functional Quality attributes
Constraints Concerns
objectives requirements scenarios
Step 2: Establish iteration goal and select inputs to be considered in the iteration
Step 8: Refine Step 4: Choose one or more design concepts that satisfy the inputs considered in the iteration
as necessary
Step 7: Perform analysis of current design and review iteration goal and design objectives
Software architecture
design
ADD: Step 1
❑Priorized list of requirements
▪ According to business and mission
goals
❑Enough quality attribute information
• Expressed in “Stimulus Response”
• Measurable
Review Inputs
❑Other relevant information (type of
systems, business goals, concerns,
etc.)
ADD: Step 2
❑Choose element system (or system
itself) to analyze. Iteration goal
1. Structure the system
2. Support primary functionality
Establish iteration goal 3. Support quality attribute scenario and
additional concerns
and select inputs to be
❑Decision Making
considered in the ▪ Knowledge of the architecture
iteration (dependencies)
▪ Risk and difficulty
▪ Business criteria
▪ Organizational criteria
ADD: Step 3
❑Rank requirements
▪ Criteria: Impact on the architecture
❑ Candidate Architectural Drivers:
• May not have an impact on the
structure of the architecture
Select elements to
Architecture Impact
decompose
High Med Low
iteration 4.
5.
Relate the patterns selected to types of elements
Describe the patterns selected
6. Evaluate and resolve inconsistencies in the design
concept
Trade-off Analysis
“A trade-off is a
situation that involves
losing one quality or
aspect of something
in return for gaining
another quality or
aspect”
Architectural Tactics
“Tactics are decisions
to achieve quality
attribute
requirements”
• Confidentiality
• Integrity
• Availability
• Authentication
• Nonrepudiation
• Authorization
Tactics: Security
Availability Tactic
Source of Stimulus System Administrator / Tour Packages Providers / External (Hacker)
Stimulus Attempt to change the booking links from database
Environment Normal Operation
Artefact System Database
Response Grant or withdraw permission to modify the data.
Response Measure Percentage of accuracy on detecting unauthorizes access and attempt on modifying
information
Tactics Authenticate users, Authorize users, Maintain data confidentiality, Maintain
Integrity.
Rational Modification, changing, deletion of the information can be only done by authorized
users.
Tactics: Security
Availability Tactic
Source of Stimulus External (Hacker)
Stimulus Crushing the server / try to make the system to be unresponsive
Environment Normal Operation / Peak Period
Artefact System
Response Detecting attack, identifying the individual responsible for attack, notify the
administrator, disable some service to maintain stability (run in degraded mode).
Response Measure Percentage of accurancy on detecting the attack and at least 80% of services are
still available (Robustness to the attack)
Tactics Limit Exposure, Limit Access, Intrusion detection.
Rational To be able to detect the attack and preventing the attack by limit the services that
are available on each host and restrict access based on message source or
destination port.
Tactics: Testability
The goal of tactics for testability is to
allow for easier testing when an
increment of software development is
completed.
Reference example ADD 3.0: Rethinking Drivers and Decisions in the Design Process.
Inputs: Functional Requirements
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Quality Attributes Scenarios
Design
Primary Quality Quality Associated use
functional attributes Constraints Concerns
objectives ID Attribute Scenario case Priority
requirements scenarios
A failure occurs in the management system during operation. The
QA-3 Availability management system resumes operation in less than 30 seconds. All H, H
Step 1: Review Inputs
The management system collects performance data from a network Collect
device during peak load. The management system collects all performancedata
Step 2: Establish iteration goal and select inputs to
be considered in the iteration QA-4 Performance performance data within 5 minutes to ensure no loss of data. (UC-7) H, H
A user displays the event history of a particular network device
Step 3: Choose one or more elements of the system Performance, during normal operation. The list of events from the last 24 hours is Display Event
to decompose QA-5 Usability displayed within 1 second. history (UC-3) H, M
Auser performs a change in the system during normal operation. It is
Step 4: Choose one or more design concepts that possible to know who performed the operation and when it was
satisfy the inputs considered in the iteration QA-6 Security performed 100% of the time. All H, M
Auser performs a change in the system during normal operation. It is
Step 5: Instantiate architectural elements, allocate possible to know who performed the operation and when it was
responsibilities and define interfaces
QA-6 Security performed 100% of the time. All H, M
Auser performs a change in the system during normal operation. It is
Step 6: Sketch views and record design decisions possible to know who performed the operation and when it was
QA-6 Security performed 100% of the time. All H, M
Auser performs a change in the system during normal operation. It is
Step 7: Perform analysis of current design and
review iteration goal and design objectives possible to know who performed the operation and when it was
QA-6 Security performed 100% of the time. All H, M
Auser performs a change in the system during normal operation. It is
Software architecture
design
possible to know who performed the operation and when it was
QA-6 Security performed 100% of the time. All H, M
Constraints
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Goal: Iteration 1
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Selection of design concepts
Primary Quality • Mobile applications, Rich client applications, Rich internet applications,
Design
objectives
functional
requirements
attributes
scenarios
Constraints Concerns
Service Applications, Web Applications
Software architecture
design
Architecture Design and Views
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Architecture Design and Views
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Design Kanban Board
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Goal: Iteration 2
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
• Inputs:
Step 5: Instantiate architectural elements, allocate
responsibilities and define interfaces • Primary Use Case
Software architecture
design
Iteration 2
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Selection of design concepts
Primary Quality • Domain objects, externally developed components
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Architecture Design
Design
and Views Primary Quality
functional attributes Constraints Concerns
objectives
requirements scenarios
Logical View
Step 1: Review Inputs
Software architecture
design
Interfaces
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Goal: Iteration 3
Primary Quality
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Selection of design concepts
Primary Quality • Tactics and from go to patterns or technologies
Design
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Architecture Design
Design
and Views Primary Quality
functional attributes Constraints Concerns
objectives
requirements scenarios
Software architecture
design
Practice
Bibliography
• Attribute Driven Design (ADD), Version 2.0
https://resources.sei.cmu.edu/asset_files/TechnicalReport/2006_005_001_14795.pdf
• Bass, Len. Clements, Paul. Zachman, Rick. Software Architecture in Practice. 3rd
Eddition.
• ADD 3.0: Rethinking Drivers and Decisions in the Design Process
https://resources.sei.cmu.edu/asset_files/Presentation/2015_017_101_438648.pdf
Gracias
Javier Eduardo Vargas M.
[email protected]
Diego Felipe Moreno Rodríguez
[email protected]