COMP 2005: Software Engineering

This course is required for all computer science  MAJ   majors.

It helps students build an understanding of how to develop a software system from scratch by guiding them through the development process and giving them the fundamental principles of systems development with object oriented technology.

This course involves a substantial group project, and participation is compulsory.

Prerequisites:  COMP 2001

Availability: This course is usually offered in Fall and Winter semesters.

Course Objectives

The objective of this course is to create a software system from requirements capture, perform requirements capture with use case analysis, create an object-oriented domain analysis model from the use cases, transform the domain model into software classes and apply design patterns in selecting and creating the software.

Representative Workload
  • Individual Assignment 5%
  • Group Project (over several iterations) 45%
  • In-class Exams (2) 50%
Representative Course Outline
  • Software development process definitions (3 hours):
    • Software lifecycles, and activities within software lifecycles.
    • Systems level considerations, such as, the interaction of software with its intended environment.
    • Introduction and evaluation of software process models.
    • Programming in the large versus individual programming.
  • Use cases and UML use case notation (2 hours)
  • Applying use case for requirement capture (2 hours)
  • Design patterns (8 hours)
  • Software construction (2 hours)
  • Software project management (2 hours)
  • Software verification and validation (4 hours)
  • Software evolution (1 hour)
  • Software reliability (1 hour)
  • Professional communication (1 hour)
  • Professional ethics (1 hour)
  • Defensive programming (1 hour)
  • Optional: Software tools, CVS/SVN/Git, Ant, JUnit
  • Credit cannot be obtained for both Computer Science 2005 and the former Computer Science 3716.

Page last updated May 24th 2021