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 Tools • Gantt charts 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.