* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download "Good" Architectural Design Alternatives with Multi
Computational electromagnetics wikipedia , lookup
Operational transformation wikipedia , lookup
Gene expression programming wikipedia , lookup
Factorization of polynomials over finite fields wikipedia , lookup
Determination of the day of the week wikipedia , lookup
Algorithm characterizations wikipedia , lookup
Expectation–maximization algorithm wikipedia , lookup
Data assimilation wikipedia , lookup
Genetic algorithm wikipedia , lookup
False position method wikipedia , lookup
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