CSCI 8790 Advanced Topics in Software Engineering

Spring 2010

Meeting time: TR 7:00-8:15PM
Classroom: PKI 270 256 (room changed)
Instructor: Dr. Harvey Siy
Office: PKI 281B
Phone: (402)554-2834
Email: hsiy at unomaha dot edu
Office Hours: By appointment (call or email ahead)

Description

An in-depth study of one or more topics in the field of software engineering such as human factors in software engineering, software specifications and modeling, reuse and design recovery, software valuations, software management, emerging technology and applications.

Prerequisites: CSCI 4830/8836 (Introduction to Software Engineering)

Overview of Content and Purpose of the Course

For this spring, the course will primarily be an introduction to techniques for conducting empirical studies in software engineering. Empirical studies evaluate the effectiveness and practicality of different software development methods. Such studies range from case studies to controlled experiments. The results of these studies play a crucial role in contributing to our fundamental knowledge of the underlying mechanisms driving the techniques and tools that comprise our software development methodologies. This information helps us cut through the hype to identify strengths of weaknesses of different methods. This also improves the decision-making capability to determine when to apply which method under what situation. Finally, this provides fundamental knowledge of the way software engineers work, think and interact with each other.

To provide us with examples to work with, we will also examine a few software engineering methods that can be subjected to empirical analysis. This range from the simple (e.g., software inspections) to the complex (e.g., model-driven software development). We will study available examples of such methods and get some hands-on experience. Then we will look into how to critique the strengths and weaknesses of different example methods.

Learning Objectives

Students who complete this course will:

Course content:

  1. Empirical software engineering research
    1. Experiments
    2. Case studies
    3. Qualitative techniques
    4. Secondary studies
  2. Software methods
    1. Software inspection
    2. Model-driven software development

What to expect in class

To learn empirical analysis, we will mainly study papers that are examples of empirical analysis. A reading list will be provided shortly. To facilitate the learning process, students will submit brief writeups of the papers to be discussed on a given day and participate in class discussions. Students will also have a chance to design their own empirical study.

For this semester, we will also examine example model-driven software development (MDSD) methodologies. There will be a few lectures on MDSD. To gain hands on experience, students will work on a software project using MDSD.

Evaluation

Term Paper 30%
Projects and presentations 30%
Homeworks 30%
Class participation 10%

Term Paper

At the end of the semester, a term paper must be submitted. Students have the option of working in pairs. The term paper will be about designing empirical studies.

Presentations and projects

Here is a tentative list of presentations and projects. More details will be announced later.
  1. Empirical study from ESEM, ISESE, ESE Journal
  2. MDSD presentation
  3. MDSD-based project

Homeworks

Homeworks will mainly be writeups of papers assigned for reading. To the extent possible, the homeworks will be designed to prepare you for the subsequent class discussion.

A complete list of papers to be assigned for reading will be available soon.

Class participation

Class participation will be assessed on a scale of 1 to 5.
RatingDescription
5Regularly makes helpful, relevant contributions to lecture discussions.
Offers observations that challenges classmates to think about the material in new ways.
4Attends regularly and occasionally makes helpful, relevant contributions to lecture discussions.
3Attends regularly and actively pays attention to discussion.
2Attends regularly but does not pay attention to discussion.
1Does not attend regularly.
0Misses most classes.
(Adapted from http://web.hamline.edu/personal/skellert/cpgrade.htm.)

Some class policies

Policy on late homeworks

Academic Integrity

Cheating will not be tolerated for project assignments, exams and other assignments. Consult the UNO Student Policies and Department of Computer Science Policies and Procedures for formal policies about cheating and plagiarism.