Syllabus Schedule Papers Project Review Form Students My home page
final:
21 August, 2008
 
Software Engineering Experimentation
SWE 763 Course Syllabus
Fall 2008
 
Professor: Jeff Offutt
Office: S&T II 347, 703-993-1654
Email: offutt ++++ gmu.edu
URL: http://www.cs.gmu.edu/~offutt/
Class Hours: T 4:30-7:10, Innovation 204
Prerequisite: SWE foundations
Office Hours: anytime electronically or Th 2:00-4:00, or by appointment
 

OVERVIEW:
Software Engineering Experimentation. A horizontal look at a number of different research areas in software engineering, with the view being on empirical validation. Most research in computing and almost all research in software engineering must be validated empirically. This course discusses how to design and carry out experiments in computing, with focus on defining experimental hypotheses, choosing appropriate dependent and independent variables, and designing an experiment that will answer the right question without bias.

MATERIALS:
A collection of papers. Most are available on the web; Others will be distributed as the course progresses.

LEVEL:
This course is appropriate for advanced MS students in all computing disciplines (SWE, CS, ISA, INFS, E-Commm), and ideal as an introductory course to computing software engineering research for PhD students.

CS 700:
SWE 763 is a perfect complement to CS 700. CS 700 focuses on data analysis (statistics), which SWE 763 focuses on how to gather data that will answer a hypothesis.

OBJECTIVES:
Detailed study of the scientific process; particularly using the experimental method. Examination of how empirical studies are carried out in computing in general and software engineering in particular. Review of the distinction between analytical techniques and empirical techniques. When is experimentation required in software engineering, and what kinds of problems can be solved using experimentation. How to control variables and eliminate bias in experimentation. Analysis and presentation of empirical data for decision making.

Students will learn how the scientific process should be applied, how and when to apply it in computing and software engineering, and how to evaluate empirical evidence. The principles will be reinforced by examination of published experimental studies, and through designing and carrying out small experiments. On completion of the course students will be in a position to design and carry out experiments in ways appropriate for a given problem, and will acquire skills in analyzing and presenting experimental data.

This course will examine and critique experimental techniques to evaluate software engineering techniques and processes. Our method will be to read and discuss papers in the current literature, specifically focusing on the methods of the experiments as opposed to the background or the implications of the results. Specific topics to be explored include (but are not limited to) software quality and testing, human computer interaction, software design, maintenance, and software development techniques.

PAPERS:
The first set of papers are about experimentation, and the rest are descriptions of experiments. It is important that you read the papers BEFORE the lectures, as the discussion will be very interactive. Turn in simple summaries and evaluations of four of the first nine. For one half of the remaining papers, turn in a short (about one page) summary of the paper. The summaries are due before class on the day they are discussed and should be submitted via the online form. The summaries should: (1) describe the problem in general terms, (2) paraphrase the experimental hypothesis, (3) summarize and critique the design, (4) discuss the conduct of the experiment, (5) explain whether the hypothesis was proved or disproved, and (6) critique the presentation of the paper.

PROJECT:
Each student will design, conduct, write up and present a small-scale experiment. A paper will be delivered and the results presented orally to the class in December. I will suggest a number of projects or students can develop their own related to their research topic. I recommend seeking help on writing from the GMU writing center. Their online resources are especially helpful. Numerous papers from past semesters have been published in refereed conferences and led to PhD dissertations.

GRADING:
There will be three major components to the grading.

I. (15%) Class participation is required. All students are expected energetically participate in the discussions. Each PhD student is required to lead the discussion of one paper during the semester. You can choose which paper (not including papers from category I "Empirical Methods Overview") and sign up by sending me an email the day before we will discuss the paper (or earlier). Students who do not participate in the discussions, and students who miss (or sleep through) classes will not receive credit for this portion of the grade. Shyness or lack of English proficiency are not excuses.

II. (35%) Each student will submit a short (about one page) summary of one half of the papers, as specified above under PAPERS.

III. (50%) The experimental project will constitute half the grade, and both the paper and the presentation will be graded. We will spend time in class discussing writing and presentations.

BACKGROUND:
A strong background in software development will be necessary. Although many of the papers will be quite specific in topic, extensive background in these topics will not be necessary–we will extract the experimental techniques and procedures from the papers. Although experimental data must be analyzed appropriately, simple analysis usually suffices for this type of research, so this course is not a statistical methods course.
 
Top

© Jeff Offutt, 2008, all rights reserved. This document is made available for use by GMU graduate students of SWE 763. Copying, distribution or other use of this document without express permission of the author is forbidden. You may create links to pages in this web site, but may not copy all or part of the text without permission of the author.