Accessibility Skip to Global Navigation Skip to Local Navigation Skip to Content Skip to Search Skip to Site Map Menu

COSC345 Software Engineering

Due to COVID-19 restrictions, a selection of on-campus papers will be made available via distance and online learning for eligible students.
Find out which papers are available and how to apply on our COVID-19 website

The development of large-scale, reliable, and maintainable software systems.

Paper title Software Engineering
Paper code COSC345
Subject Computer Science
EFTS 0.15
Points 18 points
Teaching period Full Year (On campus)
Domestic Tuition Fees (NZD) $1,092.15
International Tuition Fees (NZD) $5,004.75

^ Top of page

COSC 202 or COSC 242
Recommended Preparation
COSC 203
Schedule C
Arts and Music, Science
Computer Science Adviser
Teaching staff

Lecturer: Associate Professor Andrew Trotman

Paper Structure

Topics include:

  • Software specification
  • Software design
  • System design
  • Prototypes
  • System maintenance
  • Code reading and browsing
  • Software reuse
  • Project management
  • Human factors
  • Documentation
  • Standards for software and documentation
  • Verification and validation
  • Configuration management
  • Software evolution

Assignment work includes a major project completed in teams of four or five people to develop and implement a useful system, including all relevant documentation.


  • Four part assignment (software project) 40%
  • Final exam 60%
Teaching Arrangements
This is a full-year (two-semester) paper.
Two lectures per week and laboratory work.

Textbooks are not required for this paper, however, this book is recommended:
S. McConnell, Code Complete 2nd edition, Microsoft Press, 2004.

Graduate Attributes Emphasised
Lifelong learning, Communication, Critical thinking, Information literacy, Teamwork.
View more information about Otago's graduate attributes.
Learning Outcomes

This paper will give students practice in:

  • Designing a software system
  • Planning the development
  • Carrying out the development using appropriate tools
  • Evaluating their work

Students will learn to use "good practices" including:

  • Version control
  • Static checking
  • Testing
  • Following industry or platform standards

^ Top of page


Full Year

Teaching method
This paper is taught On Campus
Learning management system


Stream Days Times Weeks
A1 Tuesday 16:00-16:50 9-13, 15-22, 28-34, 36-41


Stream Days Times Weeks
A1 Friday 09:00-09:50 9-12, 15-22, 28-34, 36-41