1 / 16

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. Certain aspects not covered. Results of the optimisation. Architectural candidates. response time.

huslu
Download Presentation

Software Design as an Optimisation Problem

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Design as an Optimisation Problem Raffaela, Lucia, Catia, Assel, Anne, Bara, Heiko, Eitan, Carlo Dagstuhl October 2009 Source: pixelio.de

  2. One optimisation problem • Certain aspects not covered Software Design as an Optimisation Problem

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. Objective functions • Predict values of the objective function • Too many parameters? Software Design as an Optimisation Problem

  12. 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

  13. Constraints • In other domains, there are more constraints • The design space is more limited Software Design as an Optimisation Problem

  14. How to improve a certain QA • Existing literature about improvement of a single objective Software Design as an Optimisation Problem

  15. Define your design space • What are the things you can change in your architecture automatically Software Design as an Optimisation Problem

  16. 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

More Related