COMP 4718: Survey of Software Engineering

This course is of interest to those students wanting exposure to the design and development of a large-scale software system.

Prerequisites:  COMP 2005 or the former COMP 3716

Availability: ⚠ This course is not planned to be offered in the near future.

Course Objectives

This course introduces methods and tools for developing, managing and maintaining large-scale software systems and provides students with practical experience in the development of a software prototype that goes through the life cycle of large-scale software development.

Representative Workload
  • Assignments 35%
  • Project Report 15%
  • Tests 20%
  • Final Exam 30%
Representative Course Outline
  • Software products and development models
  • Project management and cost estimation
  • Software requirement engineering
    • System requirements
    • Software requirements
    • Definition
    • Specification
    • Validation
  • Software prototyping
  • Formal specification
  • Software design methodologies
    • Object-oriented vs. function-oriented design
    • User interface design
    • Real-time systems
  • Software validation
    • Program verification and validation
    • Testing
    • Techniques
  • Programming techniques and environments
    • Reliability and reuse CASE)
  • Software maintenance, configuration management and software re-engineering
Project Outline
  1. Use the concepts and techniques of software engineering to develop a software prototype of your own interests.
    • Recommended: Prototype a potential commercial system
  2. Hand in a report of the project.
    • In the report, you need to use your software prototype to show your understanding and practice of software development. Your report must cover the specified stage(s) of the software development life-cycle.
    • As a guideline for you to schedule the project, the report will be broken down into four stages that will be specified respectively in assignments. The report will be marked according to its readability and your discussions on:
      • What should be done?
      • What methods or techniques are available?
      • What did you do and how did you do it?
      • What you did not do and why?
      • (optional) What feedback did you get from the succeeding steps and what modifications did you make?

Page last updated May 24th 2021