Identifying Good Architectural Design Alternatives with MultiObjective Optimization

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 (100 kg) • 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
- Slides: 10