Software Engineering

Welcome to COSC345

Full year, 2018



This paper covers the development of large-scale, reliable, and maintainable software systems. Topics include software specification; software design; system design; formal specification; prototypes; system maintenance; code reading and browsing; software reuse; project management; human factors; documentation; standards for software and documentation; verification and validation; configuration management; and software evolution. This paper is not an application development paper, as the list of lecture topics shows. The project is an opportunity to practice software engineering skills. Self-directed use of the available learning media for HTML + CSS + JavaScript development is part of the practical work. The project is to be completed in teams of three or four people and is as much about managing your time and documenting your work as about writing code.

The project is only partly specified: write a smart-watch application prototype running in your own emulator inside a Web browser. You get to decide what the application will be. Have fun! You get to decide what the capabilities of the emulator need to be. Don't make too much work for yourselves!

We want you to teach yourself a new programming language, framework, or development environment in order to make the project experience realistic.

The project is to be completed in teams of three or four people. Each team will work on their own application This is as much about managing your time and documenting your work as about writing code.

Lectures and Tutorials, semester 1

Tuesdays, Lectures 16:00-16:50, Castle D
Fridays, Tutorials 09:00-09:50, Union Street

Assessment, semester 1

Assignment part 1, due 16th April, worth 10%.

Assignment part 2, due 28th May, worth 10%.

Lectures and Tutorials, semester 2

Tuesdays, Lectures 16:00-16:50, OBSG02
Fridays, Tutorials 09:00-09:50, Union Street SDAV2 Owheo G34

Assessment, semester 2

Assignment part 3, due 13th August, worth 10%.

Assignment part 4, due 1st October, worth 10%.

Full details on the Assessment page.

Practical work

A group project in four parts, each worth 10% of your final mark.

Organised in groups, to be carried out in the laboratory (or elsewhere if you prefer), according to project schedules. Deadlines for assignments are coordinated by groups; assessment for practical work is continuous during the year and relates to both project management and final deliverables.


S. McConnell, Code Complete 2nd edition, Microsoft Press, 2004.


E-mail concerning the course is frequently sent to the cosc345 mailing list. You should be checking your e-mail regularly so that you see any such messages. From 2016 on e-mail is sent to your University-wide student e-mail address unless you have made other arrangements.


For lecture plan and resources, see the Lectures page.


Student Administration have asked us to add this note on Plagiarism:
"Students should make sure that all submitted work is their own. Plagiarism is a form of dishonest practice. Plagiarism is defined as copying or paraphrasing another's work, whether intentionally or otherwise, and presenting it as one's own (approved University Council, December 2004). In practice this means plagiarism includes any attempt in any piece of submitted work (such as an assignment or test) to present as one's own work the work of another (whether of another student or a published authority). Any student found responsible for plagiarism in any piece of work submitted for assessment shall be subject to the University's dishonest practice regulations which may result in various penalties, including forfeiture of marks for the piece of work submitted, a zero grade for the paper, or in extreme cases exclusion from the University."