CSE 990
Search Based Software Engineering
Fall 2005

Home | Course Syllabus | Class News and Announcements

Meta-heuristic search algorithms are a class of algorithms that can be used to solve large optimization problems. In these problems it is usually infeasible to find the globally optimal solution, therefore the searches aim to balance multiple constraints to find a 'good' solution. Software engineering has many problems that fit into this category. Examples include generating test data, clustering of modules for maintenance, cost/effort prediction and software performance tuning. In this course we will learn about several meta-heuristic search algorithms in detail. We will discuss fitness functions, and data structures and algorithms for efficiency and generalization. We will study current literature where meta-heuristic search algorithms have been used to solve problems in software engineering.

The course will have a substantial independent project and will require strong class participation. Many of the lectures will not be structured. You are expected to read the material assigned and participate in discussions.


This course is a project based course. The first part of the course will consist of structured lectures on meta-heuristic search algorithms, and combinatorial techniques. The second part of the course will involve reading current literature on related topics. Students will be responsible for leading presentations. This includes creating supplementary overheads to lead the discussion.

Each student will select a project during the course of the semester. They will be expected to become familiar with a particular body of research beyond the classroom lectures. Students will submit a written report, and give an oral presentation of their findings. A list of suggested projects for this course will be available after the first 4 weeks of classes. Students are encouraged to work on projects related to their current research areas.

To succeed in this course you should have taken an algorithms course and have some prior knowledge of software engineering.

This document is available at http://www.cse.unl.edu/~myra/classes/cse990_05/syllabus.html

Course Textbook: There is no official text for this course. I will provide handouts and will try to have one book available on short term loan in the library. Research papers from conferences and journals will be posted on line for you to read.

Topics to be Covered:

(This syllabus will be updated and expanded as the semester progresses. You should use your browser reload button each time to make sure you have the most current version). A detailed schedule of lectures and handouts can be found below.

Part I: Meta-heuristic Search

Part II: Applications in Software Engineering

In this part of the course we will read research papers that use search to solve software engineering problems. The topics will be specific to the papers read. Some topics that may be included are (exact topics may vary):

The grading for the class will be as follows:

 

Detailed Class Schedule:

Wed 11/15
Class Day/Date Topic and Lecture Notes Handouts Assignments
1 Tues. 8/23 Introduction to Course lecture1.pdf Handed out:
  • syllabus
  • Introduction to Heuristic Search
    (in Library as e-document)
Reference: Reformulating Software Engineering as a Search Problem
Return Student Questionnaire to me by email, before next class (8/25).
Read Introduction to Heuristic Search - handed out.
2 Thurs. 8/25 Introduction to Meta-heuristic Search.
Hill Climbing and Simulated Annealing. Slides: lecture2.pdf.
Homework One handed out. Due Thursday 9/1/05 4PM. (note: the range of symbols should read N-N^2, not N-N^2-1). This has been corrected on the posted handout.

Reading for Tuesday: "Tabu Search" as an e-document from the library (Note: the second part of the tabu search reading has a broken link. The correct .pdf is named cohe.2.pdf. This should be fixed soon).

3 Tues. 8/30 Tabu Search Slides: lecture3.pdf.   Reading for Thursday: Genetic Algorithms: e-document Part I/II.
4 Thurs. 9/01 Genetic Algorithms Slides: lecture4.pdf.   Reading for Thursday: Visualizing the Search Landscape. E-document
5 Tues. 9/06 Search Landscapes Slides: lecture5.pdf.   Reading for Thursday: Test Generation Using Genetic Algorithms. pargas99.pdf
6 Thurs. 9/08 Generating Software Tests Using Genetic Algorithms Slides: lecture6.pdf.   Homework 2 Handed out: Due 9/22 4PM
Reading: Improving network applications security: a new heuristic to generate stress testing data. delgrosso.pdf
7 Tues. 9/13 Slides: Improving network applications security lecture7.pdf.    
8 Thurs. 9/15 Class projects and project timeline.
Additional papers on SBSE for project ideas
  Reading for Tuesday: Designing and reporting on computational experiments with heuristic methods e-reserve
9 Tues. 9/20 Experimenting with Heuristic Methods Slides    
10 Thurs. 9/22 Building Interaction Test Suites Slides Proposal instructions available here.
Information on formatting for the final report is posted here.
The final report will be restricted to 10 pages. References can extend beyond this however.
Project Proposal due Tuesday, 10/4.
Optional reading for Tuesday Ant Colony Optimization
11 Tues. 9/27 Building Interaction Test Suites (cont.)    
12 Thurs. 9/29 Ant Colony Optimization Slides    
13 Tues. 10/4 An Approach for QoS-aware Service Composition based on Genetic Algorithms
Slides
  Reading for Thursday: Stress Testing Real Time Systems with Genetic Algorithms
14 Thurs. 10/6 Stress Testing Real Time Systems
Slides
   
15 Tues. 10/11 Parallel Meta-Heuristic Search
Reading: Handbook of Metaheuristics
Slides
  Reading for Thursday: Timeweaver
16 Thurs. 10/13 Timeweaver: a Genetic Algorithm for Identifying Predictive Patterns in Sequences of Events Presenter: Madeline Diep
slides
Reading for Thursday: Chaining Approach
- Tues. 10/18 No Class - Fall Break    
17 Thurs. 10/20 Hybridizing Evolutionary Testing with the Chaining Approach Presenter: Joe Ruthruff
slides
Reading for Tuesday: Test Prioritization
18 Tues. 10/25 Test Prioritization for Pairwise Interaction Coverage Presenter: Sandeep Lingam
slides
Reading for Tuesday: Evaluation of Fitness
19 Thurs 10/27      
20 Tues. 11/1 Evaluation of Different Fitness Functions for the Evolutionary Testing on an Autonomous Parking System Presenter: Martin Coria
Slides
Reading for Thursday: Large State Spaces
21 Thurs. 11/3 Exploring Very Large State Spaces Using Genetic Algorithms Presenter: Suzette Person
Slides
Reading for Tuesday: The Ant System: Optimization by a colony of cooperating agents
22 Tues. 11/8 The Ant System: Optimization by a colony of cooperating agents Presenter: Xiao Qu
slides
Reading for Thursday Self-tuning
23 Thurs. 11/10 A Self-Tuning Cache Architecture for Embedded Systems Presenter: Mithuna Soundararaj

slides
Reading for Tuesday Fitness Functions
24 Tues. 11/15 Fitness Function Design to Improve Evolutionary Structural Testing Presenter: Chris Thiel
slides
Reading for Thursday: Using Artifical Life Techniques to Generate Test Cases for Combinatorial Testing
      My office hours on Wednesday are moved to 2:00-3:30  
25 Thurs. 11/17 Using Artifical Life Techniques to Generate Test Cases for Combinatorial Testing Presenter: Naresh Arcot

slides
Reading for Tuesday Multiple Hill Climb
26 Tues. 11/22 A Multiple Hill Climbing Approach to Software Module Clustering Presenter: Shiu Beng Kooi

slides

Schedule of Final Presentations
Reading for Tuesday: Tabu Search
- Thurs. 11/24 Thanksgiving Holiday    
27 Tues. 11/29 Upper bounds for covering arrays by tabu search Presenter: Jiangfan Shi

slides
 
28 Thurs. 12/01 Presentation Schedule
Final Presentations Begin: Early Start Time: 9:15
Martin, Naresh, Shiu Beng  
29 Tue 12/6 Final Presentations: Early Start Time 8:45 Xiao, Joe, Chris, Madeline  
30 Thur 12/8 Final Presentations: Early Start Time 8:45 Jiangfan, Suzette, Sandeep, Mithuna Final Reports Due: 4PM