Software Engineering (COMP 409)

Updated: September 5, 2004

This page is a companion web site for the
BEDS I - "Software Engineering I"

Lecture Notes   Labs   Recommended reading list   Free online book

Software Engineering Lecture schedule and notes.

The slides are based on Sommerville's slides  which have been modified for non-commercial educational purposes only.
The various parts may be delivered in one lecture or may be delivered over a number of lectures, depending on the amount of material to be covered.
Please print this material before the lecture. NOTE: The material in these slides are only a portion of the material presented at the lecture. Attendance at the lecture is still necessary.


Further Information


Slides PDF format

Course Outline


Ariane 5 more information
Ambulance dispatch more information
Book 6th Ed. of Chapter1



Chapter 1

3 Software Processes None Sommerville
Chapter 4
Software Processes
4 Requirements None Sommerville Chap. 5 and 6
5 Structured analysis None None 04-StructuredP1.pdf
6 Algorithms Part 1 None None
7 Algorithms Part 2 None None
8 Testing None None
9 Structured Design None None


Week 1 Class handout - Program development 1
Week 2 Class handout - Program development 2
Week 3 Class handout - Program development 3
Week 4 Compiling and  linking multi-file programs (with g++)
Week 5 Makefiles ( also see O'Reilly Openbook on Make
Week 6 Battleships
Week 7 OO Programming
Week 8 Structured Programming and NassiSchneiderman diags (Get app here
Week 9 Source Code Control with RCS

Web based programming

C/C++ Labs

The labs will initially focus on C programming and programming tools like gcc, ddd, make, lint, indent and others as appropriate..Software engineering tools will be investigated and used in this environment.  'C' programming langauage and development tools

Homework will normally consist of a number of programming exercises. You must print a copy of your code and subsequently demonstate the code running during the lab. Your code must include a descriptive section [for each program] indicating the Exercise name, Program Name, Author, Date, Description, Usage, Restrictions and Error Handling. An example is shown here

Reading List

The course textbooks are

Required Additional



On a more general note (useful for background material) is a comprehensive software engineering reading list available at

Free Online Books