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|
|Teaching period||Semester 2 (On campus)|
|Domestic Tuition Fees (NZD)||$1,110.75|
|International Tuition Fees||Tuition Fees for international students are elsewhere on this website.|
- COSC 202 or COSC 242
- Recommended Preparation
- COSC 203
- Schedule C
- Arts and Music, Science
- More information link
- View more information about COSC 345
- Teaching staff
Lecturer: Associate Professor Andrew Trotman
- Paper Structure
- Project management
- Software specification
- Software design
- System maintenance
- Software reuse
- Human factors
- 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 threeor fourpeople whodevelop 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
- Following industry or platform standards