SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.

Slides:



Advertisements
Similar presentations
CS487 Software Engineering Omar Aldawud
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
© Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University.
Alternate Software Development Methodologies
Automated Software Maintainability through Machine Learning by Eric Mudge.
Software Quality Ranking: Bringing Order to Software Modules in Testing Fei Xing Michael R. Lyu Ping Guo.
The Decision-Making Process IT Brainpower
Software Engineering CSE470: Intro Software Engineering CSE470 (Fall 1999) Instructor: Dr. B. Cheng (Sect. 1) TAs: Jack Brown Durga Prasad.
Software Quality Metrics
1 SYS366 Week 1 - Lecture 2 How Businesses Work. 2 Today How Businesses Work What is a System Types of Systems The Role of the Systems Analyst The Programmer/Analyst.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Lecture 13 Revision IMS Systems Analysis and Design.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
Introduction to Software Testing
© 2005 Prentice Hall14-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
SBSE Course 4. Overview: Design Translate requirements into a representation of software Focuses on –Data structures –Architecture –Interfaces –Algorithmic.
CPTE 209 Software Engineering Summary and Review.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
S oftware Q uality A ssurance Part One Reviews and Inspections.
CMSC 345 Fall 2000 Unit Testing. The testing process.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Cristian Urs and Ben Riveira. Introduction The article we chose focuses on improving the performance of Genetic Algorithms by: Use of predictive models.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Chapter 10 Information Systems Analysis and Design
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 Introduction to Software Engineering Lecture 1.
Cost Estimation What is estimated? –resources (humans, components, tools) –cost (person-months) –schedule (months) Why? –Personnel allocation –Contract.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
1 5. Application Examples 5.1. Programmable compensation for analog circuits (Optimal tuning) 5.2. Programmable delays in high-speed digital circuits (Clock.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
Systems Analysis and Design in a Changing World, Fourth Edition
Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Week 1 -Introduction IT2005 System Analysis & Design.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
A field of study that encompasses computational techniques for performing tasks that require intelligence when performed by humans. Simulation of human.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Advanced Software Engineering Dr. Cheng
Software Defects Cmpe 550 Fall 2005
IEEE Std 1074: Standard for Software Lifecycle
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 1 (pages 4-9); Overview of SDLC
Quality Measurable characteristic Cyclomatic complexity Cohesion
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 26 Estimation for Software Projects.
Presentation transcript:

SBSE Course 3

EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo Rela

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.