Software Architecture
Adaptability: An NFR Approach
Nary Subramanian Lawrence Chung
Firmware Engineer Dept. Of Computer Science
Applied Technology Division Univ. Of Texas at Dallas
Anritsu Company Richardson, TX.
Email: chung@utdallas.edu
Richardson, TX.
Email: narayanan.subramanian@anritsu.com
Software Architecture Adaptability: An NFR Approach
Jini and the Programmer*
Once a lucky and broad-minded programmer found a Jini.
Programmer: “I feel sorry for people in the mid-east. Can you fix
that problem so that no more suffering occurs?”
Jini: “I am sorry, but that is something I cannot do.”
Programmer: “Then will you fix my programs so that they
meet the needs of every single user?”
Jini: “Give me the map - I have a better chance at Middle
East!”
*source: Web Moral : Be Adaptable
Software Architecture Adaptability: An NFR Approach
Adaptability Examples
• dual-mode cell phone
• command-processing system that accepts
commands of different versions
• software system being able to operate on
different OS’s
• self-managing systems such as eLiza
• dynamic uploading of firmware
Software Architecture Adaptability: An NFR Approach
Advantages of Adaptable Systems
• accomodate new requirements easily
• faster development of new software
• adding new software features
• fixing defects during maintenance phase
(which consumes currently 50% of cost)
Software Architecture Adaptability: An NFR Approach
What is Adaptability?
• No fixed definition
• Examples:
– ease with which system may be adapted to
changing requirements
– modifies behavior in response to changes in
operating environment
– a software quality metric
– ...and many more ...
Software Architecture Adaptability: An NFR Approach
Current Approach to Adaptability
State Problem
“problem is to develop adaptable system that does xxx ...”
Define Adaptability
“adaptability is evolution to meet the needs of user and business”
Develop solution
“Solution”
Software Architecture Adaptability: An NFR Approach
Some Drawbacks of Current Approach
• Lack of traceability of solutions to
requirements : why should “Solution” be
adaptable? The usual justification is “Solution
does so-and-so and hence satisfies definition
of adaptability”.
• No way to analyze/explore alternative
solutions: what are other possibilities besides
“Solution”
• No way to determine the degree to which
system is adaptable
Software Architecture Adaptability: An NFR Approach
The NFR Approach
• Applicable to any definition of adaptability
• Allows alternative solutions to be explored
• Decomposes “adaptability” depending on
the domain
• Criticalities can be allocated to different
NFRs of the decomposition
• Permits design tradeoffs
• Assessment of adaptability is possible
Software Architecture Adaptability: An NFR Approach
Steps in The NFR Approach
Decompose Adaptability
for the domain - NFR softgoal hierarchy
Develop architectural alternatives - Design softgoal hierarchy
Assign criticalities to various softgoals
Determine extent to which
design softgoals satisfice NFR softgoals - claim softgoal hierarchy
Choose the design components that satisfice the relevant softgoals
Legend: Down arrow = go to next step; Up arrow = iterate
Software Architecture Adaptability: An NFR Approach
A Comprehensive Definition of Adaptability
meets
S E
S E
meets
S’ E’
Figure 1. Symbols in the Definition of Adaptation
Legend:
S,S’: old and new system
E,E’: old and new environment
S,E: change in system, environment
Software Architecture Adaptability: An NFR Approach
Example SIG Development - Step 1
NFR Softgoal Decomposition
Adaptation[RCES] Extensibility[RCES] Speed[RCES]
Syntactic Semantic Contextual Quality
Adaptation Adaptation Adaptation Adaptation
[RCES] [RCES] [RCES] [RCES]
Semantic Semantic Semantic
Adaptation Adaptation Adaptation Quality
[Communication] [Parsing] [Processing] Quality[Behavior, Output] [Others]
Semantic Extensibility of Speed of
Semantic
Adaptation Semantic Semantic
Adaptation
[Change in Behavior, Adaptation Adaptation
[Change in Environment,
Change in Output] [Processing] [Processing]
Change in System]
Software Software
Detection Recognition Perform System System
[Change in [Change in [Change in [Change in [Change in
Environment] System] System] Behavior] Output]
Auto Manual Auto Manual Auto Manual Software Software Software Software
Detect Detect Recog. Recog. Perform Perform System System System System
[E] [E] [S] [S] [S] [S] [ ] [ ] [ ] [ ]
SIG = Softgoal Interdependency Graph
Software Architecture Adaptability: An NFR Approach
Example SIG Development - Step 2
Design Softgoal Decomposition
3Rs
Technique
Semantic Communicati-
Analysis Syntax on
Analysis
SIG = Softgoal Interdependency Graph
Software Architecture Adaptability: An NFR Approach
Final SIG
SIG = Softgoal Interdependency Graph
Adaptation[RCES] Extensibility[RCES] Speed[RCES]
Syntactic Semantic Contextual Quality
Adaptation Adaptation Adaptation Adaptation
[RCES] [RCES] [RCES] [RCES]
Semantic Semantic Semantic
Adaptation Adaptation Adaptation Quality
[Communication] [Parsing] [Processing] Quality[Behavior, Output] [Others]
Semantic Extensibility of Speed of
Semantic
Adaptation Semantic Semantic
Adaptation
[Change in Behavior, Adaptation Adaptation
[Change in Environment,
Change in Output] [Processing] [Processing]
Change in System]
!
Software Software
Detection Recognition Perform System System
[Change in [Change in [Change in [Change in [Change in
Environment] System] System] Behavior] Output]
Auto Manual Auto Manual Auto Manual Software Software Software Software
Detect Detect Recog. Recog. Perform Perform System System System System
[E] [E] [S ] [S ] [S ] [S ] [ ] [ ] [ ] [ ]
! ! ! !
3Rs
Technique
Semantic Communicati-
Analysis Syntax on
Analysis
Software Architecture Adaptability: An NFR Approach
Notation for SIGs
NFR Softgoal
3Rs Design Softgoal
Technique
OR-contribution
AND-contribution
Strongly-negatively satisficing
Negatively satisficing
Positively satisficing
Strongly-positively satisficing
Correlation Rule (negatively satisficing)
Software Architecture Adaptability: An NFR Approach
Knowledge-Based Approach
• A KB of design goals, decomposition
methods, correlations will make it easier to
search for such items for future use.
• Currently even when such catalogs are
available, they are not easy to use.
• NFR Approach allows for a knowledge-
based approach
• Can be used to (semi-)automatically
generate adaptable architectures
Software Architecture Adaptability: An NFR Approach
Frame-like Notations
Operationalizing Softgoal 3RsTechnique NFR DecompositionMethod RCESQualityViaSubType
Type: 3Rs Technique Parent: ty[RCES]
Topic: RCES Offspring: ty1[RCES],...,tyn[RCES]
Label: yet to be determined Contribution: OR
Priority: non-critical Applicability Condition: ty: NFR Type
Author: ABC Constraint: for All i: tyi isA ty and
Creation time: 24 May 2001 /* set up one offspring for every
subtype of ty */
3Rs
Technique Adaptation[RCES]
Design Softgoal
Syntactic Semantic Contextual Quality
Adaptation Adaptation Adaptation Adaptation
[RCES] [RCES] [RCES] [RCES]
NFR Decomposition Method
Software Architecture Adaptability: An NFR Approach
Frame-like Notations (cont’d)
OperationalizationMethod 3RsTechnique Correlation Rule SemanticAnalysisHURTSSpeed
Parent: Extensibility of Semantic Adaptation[Processing] OfSemanticAdaptation
Offspring: 3Rs Technique[RCES] Parent: Speed Of Semantic
Contribution: MAKE Adaptation[Processing]
Offspring: Semantic Analysis[RCES]
ApplicabilityCondition: Always - 3Rs Technique[RCES] always
Contribution: HURTS
MAKEs Extensibility of Semantic Adaptation[Processing] Condition: semantic analysis takes more than 100ms
Constraint: /*Manual change to the software and reloading of software required*/
Speed
of
Semantic
Extensibility of
Adaptation
Semantic [Processing]
Adaptation
[Processing]
Semantic
Analysis
3Rs
Technique
Operationalization Method Correlation Rule
Software Architecture Adaptability: An NFR Approach
Summary
• Analysis of NFR adaptability
• Current techniques are not traceable to
“whys” of software
• NFR Approach provides several advantages
to developing adaptable architectures
• NFR Approach allows for a KB approach
which will help generate architectures
(semi-)automatically.
Software Architecture Adaptability: An NFR Approach
Future Work
• Better cataloging of the NFR Adaptability and its
refinements
• Develop methods for different domains so that
KB is more useful to industry
• Develop procedure to generate architectures.