Software Architecture Adaptability An NFR Approach Nary Subramanian

Software Architecture Adaptability: An NFR Approach Nary Subramanian Lawrence Chung Firmware Engineer Applied Technology Division Anritsu Company Richardson, TX. Dept. Of Computer Science Univ. Of Texas at Dallas Richardson, TX. Email: narayanan. subramanian@anritsu. com Email: chung@utdallas. edu

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 e. Liza • 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 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 SIG = Softgoal Interdependency Graph

Software Architecture Adaptability: An NFR Approach Example SIG Development - Step 2 Design Softgoal Decomposition SIG = Softgoal Interdependency Graph

Software Architecture Adaptability: An NFR Approach Final SIG = Softgoal Interdependency Graph

Software Architecture Adaptability: An NFR Approach Notation for SIGs NFR Softgoal Design Softgoal 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 knowledgebased approach • Can be used to (semi-)automatically generate adaptable architectures

Software Architecture Adaptability: An NFR Approach Frame-like Notations Design Softgoal NFR Decomposition Method

Software Architecture Adaptability: An NFR Approach Frame-like Notations (cont’d) 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.
- Slides: 19