Identifying "Good" Architectural Design Alternatives with Multi
Download
Report
Transcript Identifying "Good" Architectural Design Alternatives with Multi
Identifying "Good" Architectural
Design Alternatives
with Multi-Objective Optimization
Strategies
By Lars Grunske
Presented by Robert Dannels
Introduction
• Increasing complexity in software systems
• Competing quality attributes
• Difficult to identify best combinations
• Simplify by applying mathematics
Problem
• Current practices focus on one quality
attribute at a time
• Cycle repeats with new architectural
description
• Time consuming (brute force)
• Risk of finding local minimum
How?
• Need numerical value for all quality
attributes, constraints and architectural
objects
• Use existing tools like COCOMO II, RMA
• Assign functions to non-functional items
• Apply weighting factors according to
business requirements
• Apply mathematical methods
The method
•
•
•
•
•
•
Using list of functions and starting values
Calculate score
If not done, apply evolutionary algorithm
Repeat till max or min is reached
Called Pareto-optimal
Of course, the architect makes the final
decision
Observations
• This method is designed to handle multiple
objectives
• Only as good as the quality of weighting
factors and object values
• May need a return to fix one factor, try
again pattern
• Is good for identifying good choices
Example
• STAR satellite system
(hardware?!)
• Constraints: weight
(100kg)
• Maximize reliability,
minimize cost
• Can add backup
items
Results
• Start with one of each component
• Apply evolutionary algorithm
• Find Pareto-optimal solutions
Analysis
• Which is more important, cost or
reliability?
• Obviously some components are more
vital
• The one that communicates is most
unreliable
• Sample is too simple
• Need better (Software!) example
Final Thoughts
•
•
•
•
Needs more work
Has potential, can be useful
Can clearly be automated
May be helpful in identifying requirements
and priorities, system understanding