Software design as an optimisation problem
Download
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


    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