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.