* 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
Survey
Document related concepts
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
Transcript
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