Download "Good" Architectural Design Alternatives with Multi

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Computational electromagnetics wikipedia , lookup

Algorithm 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

Multi-objective optimization wikipedia , lookup

Mathematical optimization 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