software design as an optimisation problem
Download
Skip this Video
Download Presentation
Software Design as an Optimisation Problem

Loading in 2 Seconds...

play fullscreen
1 / 16

Software Design as an Optimisation Problem - PowerPoint PPT Presentation


  • 92 Views
  • Uploaded on

Software Design as an Optimisation Problem. Raffaela , Lucia, Catia , Assel , Anne, Bara, Heiko , Eitan , Carlo Dagstuhl October 2009. Source: pixelio.de. One optimisation problem. Certain aspects not covered. Results of the optimisation. Architectural candidates. response time.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Software Design as an Optimisation Problem' - huslu


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
software design as an optimisation problem

Software Design as an Optimisation Problem

Raffaela, Lucia, Catia, Assel, Anne, Bara, Heiko, Eitan, Carlo

Dagstuhl October 2009

Source: pixelio.de

one optimisation problem
One optimisation problem
  • Certain aspects not covered

Software Design as an Optimisation Problem

results of the optimisation
Results of the optimisation

Architectural candidates

response time

responseTime(A) > responseTime(B)

P(failure)(A) < P(failure)(B)

reliability

Software Design as an Optimisation Problem

topic areas
Topic Areas
  • Decision making / Trade-off making
    • Conflicting stakeholders
    • Different utility, connected to requirements
    • Agree on the priorities of qualities
  • Optimisation of models
    • Possibly multicriteria
    • Objective functions
    • Constraints:
      • Some pieces already implemented
      • Cost limits
      • Few reconfiguration steps

Software Design as an Optimisation Problem

questions raised
Questions raised
  • Decision making
    • How to incorporate preferences of different stakeholders?
    • Is there something beyond weights?
  • Qualitative and quantitative attributes
    • How to quantify qualitative attributes?
    • How to integrate qualitative attributes in analyses?
    • How is this integration handles in other fields?
  • When in the design process?
    • High-level of abstraction vs. architecture based
  • How to optimise?
    • How to guide the optimisation process?

Software Design as an Optimisation Problem

decision making
Decision making
    • Look at decision making theory
      • Analytical Hierarchical Process
  • Look at requirements engineering community
    • Integrating goals of different stakeholder
    • Formalising, finding conflicts, …
    • Mostly functional goals
    • Also security
    • How to integrate the quantitative measures here?

Software Design as an Optimisation Problem

qualitative attributes
Qualitative attributes
  • Effect of measures on quantitative qualities can be quantified
  • You can create a partial order of the levels
    • E.g. for security based on several types of attacks, how many vulnerabilities
  • Look at other decision making theories, e.g. economics
    • Same theory for all domains?
  • Task of decision support:
    • Make decision makers aware of the problem

Software Design as an Optimisation Problem

decomposition in design
Decomposition in Design
  • Optimise at one abstraction level
  • Fix those decisions
  • Go one level down
  • Before and after architecture definition
    • Need ability to evaluate decisions
  • Heuristics can drive the process
    • Best practices
    • Antipatterns
  • In practice: Attribute-driven design
  • Possibly backtrack if other qualities become infeasible

Software Design as an Optimisation Problem

optimisation process
Optimisation process
  • Search techniques
    • Incremental steps (local search)
    • Jump in the design space
    • Combination
  • Evaluation of candidates is costly
    • Reduce number of needed evaluations
    • Use heuristics to guide the search
  • Decompose
  • Create suitable cost function

Software Design as an Optimisation Problem

quantifying security
Quantifying Security
  • Three possible quantification ideas
  • Observe attacks, historical data, mean time to security incident
  • Count vulnerabilities based on a number of attack scenarios
  • How many hours to break you security measures
  • Several approaches
    • How good security packages are, mutation testing
    • Risk-based analyses based on attack scenarios
    • Known vulnerabilities of frameworks

Software Design as an Optimisation Problem

slide11
Objective functions
    • Predict values of the objective function
    • Too many parameters?

Software Design as an Optimisation Problem

power consumption
Power consumption
  • Measures to decrease power consumption
  • Example: Sensor networks
    • Calculation and communication costs energy
    • Define allocation problem for calculations

Software Design as an Optimisation Problem

constraints
Constraints
  • In other domains, there are more constraints
  • The design space is more limited

Software Design as an Optimisation Problem

how to improve a certain qa
How to improve a certain QA
  • Existing literature about improvement of a single objective

Software Design as an Optimisation Problem

define your design space
Define your design space
  • What are the things you can change in your architecture automatically

Software Design as an Optimisation Problem

when in design process
When in Design Process
  • Before High level of abstraction
    • Before architecture definition
    • Tree of decisions -> no combinatorial space
    • Optimisation required after you have taken a number of decisions
    • Need ability to evaluate decisions
  • Given an architecture
    • Deployment and configuration
    • Dynamic reconfiguration

Software Design as an Optimisation Problem

ad