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

COSC345 Software Engineering

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 Semester 2 (On campus)
Domestic Tuition Fees (NZD) $1,141.35
International Tuition Fees Tuition Fees for international students are elsewhere on this website.

^ 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:

  • Project management
  • Software specification
  • Software design
  • System maintenance
  • Software reuse
  • Human factors
  • Documentation
  • Software build processes
  • Testing and debugging
  • Continuous integration
  • Code review
  • Standards for software and documentation
  • Verification and validation
  • Configuration management
  • Software evolution
  • Software development tools

Assignment work includes a major project completed in teams of three or four people who develop and implement a useful system, including all relevant documentation, and using industry standard software tools and practices.


  • Four part assignment (software project) 40%
  • Final exam 60%
Teaching Arrangements

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


Semester 2

Teaching method
This paper is taught On Campus
Learning management system

Computer Lab

Stream Days Times Weeks
A1 Friday 14:00-15:50 29-34, 36-41


Stream Days Times Weeks
A1 Monday 12:00-12:50 28-34, 36-41
Wednesday 13:00-13:50 28-34, 36-41


Stream Days Times Weeks
A1 Tuesday 09:00-09:50 28-34, 36-41
Thursday 09:00-09:50 28-34, 36-41