Скачать презентацию SBSE Course 3 EA applications to SE Скачать презентацию SBSE Course 3 EA applications to SE

2727d2efb870479166698b415d26b8b9.ppt

  • Количество слайдов: 30

SBSE Course 3 SBSE Course 3

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

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

Overview: Design • Translate requirements into a representation of software • Focuses on – 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

Overview: Implementation • The software design is translated into a computer program • Two 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

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

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

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

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

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

Analysis Analysis

Prediction of Software Failures • Fixing failures is expensive – In testing → extra 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

◙ GP-based software quality prediction • Modules are clasified as error-prone and not error ◙ 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

◙ Genetic programming model for software quality classification • Metrics – number of times ◙ 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

◙ Automated Knowledge Acquisition and Application for Software Development Projects • Fuzzy system which ◙ Automated Knowledge Acquisition and Application for Software Development Projects • Fuzzy system which classifies modules by probability of containing errors

◙ Combining Software Quality Predictive Models: An Evolutionary Approach • Various studies have used ◙ 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. • Ada. Boost: Gives weights to how hard is a specific data instances, and to how good is an expert. • GP: Combines decision trees

Neural Networks / GA Using the genetic algorithm to build optimal neural networks for 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 • ◙

Exploring difficulty of the problem • In early phases developers are not aware of 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)

◙ Genetic Programming as an Explorative Tool in Early Software Development Phases • GP ◙ 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

Software project effort prediction • Software is the most complex part of the system 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)

◙ Limits of the Methods in Software Cost Estimation • Regression, GP, NN for ◙ 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?

◙ Can genetic programming improve software effort estimation? A comparative evaluation • Data from ◙ 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.

◙ Software Project Effort Estimation Using Genetic Programming • Grammar Guided Genetic Programming • ◙ 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

Other articles An evolutionary approach to estimating software development projects • ◙ – Combination 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. • ◙

Project management • Manager has resources (time, budget, team etc. ) and goal. • 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

Tools • Gantt charts Tools • Gantt charts

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

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

◙ Genetic Algorithms for Project Management • Many-to-many relation between task and employees • ◙ 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

Tasks • • Read the survey Skim over the articles Like one? Choose it! 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.