CSC444: Software engineering I
Fall 2003
Instructors: Homy Dayani-Fard and Mou Hu

Announcements:

You can check you term marks here but your final mark will be available through the undergraduate office.

During this course, there will be a lot of clarifications, suggestions, and changes made to the project description. Students are expected to read the announcements regularly and monitor the appropriate course newsgroups.

You should also read the course newsgroup ut.ecf.csc444 as well as the course project FAQ.

Course objectives and overview

Many software engineering practices may be considered as common sense. However, in practice, as you will experience in your course project, common sense is commonly forgotten. As the pressures of deadline, budget, quality, added/modified functionality add up, people are forced to make trade-offs. Sometimes, these trade-offs are justified, while other times, they are not and their consequences are severe.

This course aims to introduce the students to the field of software engineering and its fundamental challenges. Lectures provide a more theoretical foundation. Their purpose is to intrigue students to investigate in more detail the issues raised. Practical sessions provide a more pragmatic approach to these issues through a small project.

Text book and other reading materials

The course main text book is "Software Engineering: Principles and Practice" by Hans van Vliet, ISBN 0-471-97508-7. Here are other sources that you should consult for more exposure to the topics that we will discuss:

Course project

Each phase of the project roughly maps to a stage of water-fall model. During each phase students complete one of the phases: requirement specification, design, implementation, testing, and maintenance. Students must work in teams of two or three. Each phase must be treated as a min-project. Students must apply project management principles: initiate, plan, execute, and close.

The result of each phase carries to the next. At the end of the term, each group must submit their complete project diary. You may apply small changes to your previous phases subject to instructor's approval.

The following list contain (or will contain) links to project resources:

Finally, each team must provide an executive report and present it to the class during the last weeks of the term. This presentation must focus on what you did, what your challenges were, and what solutions you propose (and why).

Grading

Weight
Phase 1 plan 1
Phase 1 4
Phase 2 plan, status minutes1
Phase 2 8
Phase 3 plan, status minutes2
Phase 3 8
Phase 4 plan 3
Phase 5 plan, status minutes, change management 2
Phase 5 11
Presentation/report 10
Final exam 50
The final exam will take place during official exam period. It will be a closed-book exam.

Lecture schedules

Week of Lecture Reading Event
Sep. 1No lecture Chapter 1
Sep. 8Orientation and introductionChapters 2,3.1,5,8Form teams, sign up for practical session
Sep. 15Project management and software life cycleChapters 3.2,3.3,3.4,9,15.1Project phase 1 out
Sep. 22Requirement engineering (cont'd)
Sep. 29Software modeling, design, and architectureChapters 10,11,12.1,12.2, UML distilledProject phase 1 due, phase 2 out
Oct. 6 Software modeling, design, and architecture (cont'd)
Oct. 13 Software modeling, design, and architecture (cont'd)
Oct. 20Software implementationChapters 4, 13.4, 19.1, 19.2, Unix RCS/CVSPhase 2 due, phase 3 out
Oct. 27Software implementation (cont'd)
Nov. 3Software verification and validation Chapters 13,15.2,15.4Phase 4 out
Nov. 10Software verification and validation (cont'd)Phase 3, 4 due, phase 5 out
Nov. 17Software maintenance and evolution Chapter 14
Nov. 24 Software qualityChapter 6, Appendix A Presentations
Dec. 1Course review Phase 5 due, presentations