1 / 30

SBSE

SBSE. Course 3. EA applications to SE. Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo Rela http://www2.lut.fi/~rela/dtyo_Leo_Rela.pdf. Overview: Analysis. Record and elicit customer requirements

bijan
Download Presentation

SBSE

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

  2. EA applications to SE • Analysis • Design • Implementation • Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo Rela http://www2.lut.fi/~rela/dtyo_Leo_Rela.pdf

  3. Overview: Analysis • Record and elicit customer requirements • Understand customer requirements • No technical decisions about the system’s implementation • Includes feasibility study

  4. Overview: Design • Translate requirements into a representation of software • Focuses on • Data structures • Architecture • Interfaces • Algorithmic details • Also include • Resource and task allocation in a distributed system

  5. Overview: Implementation • The software design is translated into a computer program • Two facets • Produce computer programs • Support work of computer programmers • Typically, GP falls into this class

  6. Overview: Testing • Validation and Verification • Tackles problems like: • Test case generation • Find inputs that cause failures • Find inputs that cause long running time

  7. Applications: Analysis • Prediction of software failures • Exploring difficulty of the problem • Software project effort prediction • Project management

  8. Applications: Design • Multiprocessor scheduling • Task and resource allocation in distributed systems • Hardware/software co-design in embeded systems • Protocol construction • Architecture design

  9. Applications: Implementation • Automatic programming • N-version programming • Search for compiler optimization • Re-engineering

  10. Applications: Testing • Structural (White-box) testing • Functional (Black-box) testing • Integration test design • Testing based on mutation analysis • Search for response time extremes

  11. Analysis

  12. Prediction of Software Failures • Fixing failures is expensive • In testing → extra coding effort • After deployment → even more expensive • Applying reliability techniques is expensive • Quality prediction methods identify which parts of the system need reliability techniques

  13. ◙ GP-based software quality prediction • Modules are clasified as error-prone and not error prone • GP is used to predict the number of expected faults, but only the resulted ranking is used as a base for decision • For each module, a series of metrics are recorded • For some modules, the reliability has been measured • Can we predict, using the metrics, which will be the reliability for an yet untested program? • Metrics used: n. of operators/operands, LOC, LOEC, cyclomatic complexity

  14. ◙ Genetic programming model for software quality classification • Metrics • number of times the source code was inspected • number of LOC for different production phases • final number of commented code. • Implementation note: not LISP, but pointers to functions in C

  15. ◙ Automated Knowledge Acquisition and Application for SoftwareDevelopment Projects • Fuzzy system which classifies modules by probability of containing errors

  16. ◙ Combining Software Quality Predictive Models: An Evolutionary Approach • Various studies have used various methods/metrics • Combine the resulting experts into one which is able to work with partial input data. • AdaBoost: Gives weights to how hard is a specific data instances, and to how good is an expert. • GP: Combines decision trees

  17. Neural Networks / GA • ◙Using the genetic algorithm to build optimal neural networks for fault-prone module detection • GA generates NN (structure, weights) • ◙Evolutionary neural networks: a robust approach to software reliability problems

  18. Exploring difficulty of the problem • In early phases developers are not aware of potential (hard) problems ahead • Uncertainty about the real nature of the task • Bad decisions, made early, are difficult to fix • Possible solution: collect more knowledge about the problem to be solved • software problem exploration using genetic programming (SPE-GP)

  19. ◙Genetic Programming as an Explorative Tool in Early Software Development Phases • GP is used to try to solve the problem • For each input data, it is recorded how often the resulted programs fail to work correctly

  20. Software project effort prediction • Software is the most complex part of the system • It is also the most expensive to obtain • Goal: estimate cost and effort for a given project • Related: COCOMO (2)

  21. ◙ Limits of the Methods in Software Cost Estimation • Regression, GP, NN for software cost estimation • Estimations are not too good! • Poor methods / need new methods? • Incomplete/Inconsistent input data?

  22. ◙Can genetic programming improve software effort estimation? A comparative evaluation • Data from 81 Canadian software companies • Developer/manager experience, year of completion, attributes regarding size and complexity, effort (person-hours). • ANN and GP performed better.

  23. ◙ Software Project Effort Estimation Using Genetic Programming • Grammar Guided Genetic Programming • Classic GP: “closure”: any non-terminal should be able to handle as an argument any data type and value returned from a terminal or non-terminal. • Other alternative: Strongly Typed GP

  24. Other articles • ◙An evolutionary approach to estimating software development projects • Combination of Software Project Simulator and GAs. SPS generates input data which is then used by the GA for learning and prediction. • ◙ A validation of the component-based method for software size estimation.

  25. Project management • Manager has resources (time, budget, team etc.) and goal. • Task: meet the goal with the given resources • Or: which resources are needed to meet the goal? • Or: what can be accomplished with the given resources

  26. Tools • Gantt charts

  27. Tools (2) • TPG (Task Dependency Graph) • MM: Man Month • SR: Skill Required

  28. Software Project Management Net • Automatic allocating / scheduling based on GA • Input • TPG • Employee/skill database • Output • Schedule

  29. ◙ Genetic Algorithms for Project Management • Many-to-many relation between task and employees • Partial commitment • Objectives • Validity of job assignment • Minimum overtime • Minimum cost • Minimum time span

  30. Tasks • Read the survey • Skim over the articles • Like one? Choose it! • You are not supposed to like a 2-page article, unless you can implement the techniques described in it. • Don’t like any? Find your own SBSE article on the net and talk to me about it.

More Related