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
Notes
- Credit cannot be obtained for both Computer Science 2005 and the former Computer Science 3716.
Page last updated May 24th 2021