SBSE - profs.info.uaic.ro

Download Report

Transcript SBSE - profs.info.uaic.ro

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 • 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 – 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 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 – Find inputs that cause failures – Find inputs that cause long running time

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 • 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: Testing

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

Analysis

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 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 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 classifies modules by probability of containing errors

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

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

• 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

• Gantt charts

Tools

Tools (2)

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

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 • 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!

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