Software Engineering (Software Methodology 1)

CIS 422 Spring 2004
Instructor: Michal Young [mail]
GTF: Xiaofang Zhang [mail]

Tuesday/Thursday 10:00-11:20am
Volcanology 307


Overview | FAQ | Project 1 | Project Grading | Lecture Notes | Readings

News

The second midterm is available [here]. It is due no later than Friday at 10am, by email. I encourage you to turn it in earlier.

If you have not scheduled an installation session with Xiaofang, you may still have a chance to do so, altough Xiaofang also has exams to study for. If you aren't there for the installation, you are gambling on Xiaofang not having any trouble with it. We can't grade what we don't see.

Overview

This is a project-oriented course on software engineering. You will work as teams to construct software systems, including not only programs but also end-user documentation, maintenance guides, etc. You will also be expected to think about principles and issues in software engineering, to read and respond to papers, and to participate in class discussions.

No university course can substitute for years of real-world experience, and that is not the objective of this course. Rather, the objective is to prepare you to learn from that experience. Thus our focus is first on broad principles and issues that pervade software engineering. Because these principles and issues are fundamental, they appear again and again even as popular methods and tools shift. Yesterday we had structured development, today we have object-oriented development, tomorrow we can expect something else ... but the fundamental challenges of teamwork, complexity, change and variation have been with us from the beginning and will be with us for the forseeable future.

Rough Schedule

Project 1 (4 weeks): The first project is assigned by the instructor, and teams are also assigned by the instructor. Our project will be a web-based system for tracking stolen bicycles.

Project 2 (5 weeks): The second project is selected by each student team, and the teams are also self-chosen. Projects are due at the end of week 9; the final week of classes is used for in-class demonstrations and discussions.

There will be a midterm and a final exam, largely on lecture topics and readings.

Lecture Notes

CVS rough guide | Notes on Teamwork | Introduction to Design

User Interface | User Manuals| Performance

Readings

A Spiral Model of Software Development and Enhancement, Barry Boehm.

The Koala Component Model for Consumer Electronics Software, Rob van Ommering, Frank van der Linden, Jeff Kramer, and Jeff Magee. IEEE Computer, March 2000.

A newer paper on this project, with a good discussion of product populations, is Building Product Populations with Software Components; unfortunately the PDF file is a bitmap, and it may be slow to download and print. It's a bit denser as well as more up-to-date, and for grad students in particular I recommend the newer paper (from ICSE 2002) instead of, or in addition to, the IEEE Computer paper above. You may also find van Ommering's slides from a recent talk useful.


Last edit: Sat, 5 June, 2004 / Version identifier: $Id: index.html,v 1.19 2004/06/05 18:42:20 michal Exp $