The University of Western Australia
School of Computer Science and Software Engineering

School of Computer Science and Software Engineering

CITS4401 Software Requirements and Design

Software Engineering Quotes

"Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to to, let us concentrate rather on explaining to human beings what we want a computer to do.", Donald Knuth

"Documentation is the castor oil of programming. Managers think it is good for programmers and programmers hate it!", Gerald Weinberg

"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.", Tony Hoare


Requirements and design are important phases of software development because errors or misunderstandings of software requirements or designs are expensive to correct during later stages and may lead to project failure.

This unit introduces the theory and practice of software requirements and design. It aims to equip graduates of the Master of Professional Engineering in the Software Engineering specialisation with the ability to select, evaluate and apply appropriate requirements and design techniques for software projects. The content comprises (1) requirements engineering – elicitation, analysis, specification, documentation and evolution; (2) software design – using formal rationale to document design decisions; design constraints including reliability, availability, maintainability; (3) software architectures – monolithic, distributed, client/server, event driven; and (4) design patterns – observer; abstract factory, adapter; bridge and facade.

Unit Coordinator and Lecturer: Du Huynh
Consultation: Wednesday 11am-12pm in CSSE Rm 1.22
Students are also welcome to send me emails and see me after the lectures.

Lecturer: Keith Johnson
Consultation: Please send Keith emails or see him after the lectures.

Recommended Textbooks:
  1. Object Oriented Software Engineering, by Bruegge and Dutoit, Prentice Hall, 2010.
  2. Software Engineering, by Sommerville, 9th Ed., Addison Wesley, 2011.
  3. Software Engineering: A Practitioner's Approach, by Pressman, 7th Ed., International ed, 2010.
A copy of each of these books is available on closed reserve in the Reid Library. Older editions of these books are available in the Science Library.

Other Useful References:
  1. Sommerville's website:


Students must attend both lectures every week and the workshop and one practical every alternate week. Workshop/prac classes will start in in week 2.
Type Time Day Location
Lectures 9am-11amWednesday Robert Street LT
Tutorial/Practical 9am-11am Friday Robert Street LT


The assessment for CITS4401 consists of a group software design assignment, a research essay, and a 2hr closed book examination.
Assessment weight Assessment Dates
In-class test10% week 5
Practical design assignment 30% Due: week 9
Requirements and design research essay 10% Due: week 13
Final exam 50% End of Semester Examination Period
The assignment and essay should be submitted using cssubmit. As the semester proceeds, your ongoing marks will be updated regularly and stored in a database that you can check by using the csmarks program.

This Page