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

"Is software development an art, a craft, science, engineering, or something else entirely? Does it even matter? Yes, it does matter, and it matters to you. Your actions and their results will differ depending on which of those is more correct. The main thinking is this: You want your software out soon and defect free, but more than that, you need a way to examine how your team is doing along the way.", Alistair Cockburn

"That it is people who design software is terribly obvious ... and ignored", Alistair Cockburn

"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


Welcome to the web site for CITS4401 for semester 1 2020. All material (lectures, workshops, assignments) for this unit will be published on these pages. Only recorded lectures, unit readings and unit outline will be available through LMS.

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. The content comprises (1) requirements engineering (2) software design (3) software architectures; and (4) design patterns and idioms.

Unit Coordinator and Lecturer: Rachel Cardell-Oliver
Consultation:Tuesday 11am-12pm in CSSE Rm 1.31B (ask at the CSSE front office)
Students are also welcome to make contact by email and speak to me after the lectures.

Lecturer: Arran Stewart
Consultation: Thurs 4-5pm in CSSE Rm G.08

  1. Software Engineering: A Practitioner's Approach, by Pressman and Maxim, 9th Ed., International ed, 2020.

The text, recommended reading (and more!) are available via LMS from UWA Unit Readings

Recommended Reading:
  1. Earlier editions of Pressman are fine too
  2. Object Oriented Software Engineering, by Bruegge and Dutoit, 3rd Ed. Pearson, 2010.
  3. UML Distilled, by Martin Fowler, 3rd Ed., 2003.
  4. Software Engineering, by Sommerville, 10th Ed., Pearson, 2016.


Students attend two lectures and a workshop every week. Workshops will start in in week 1.
Type Time Day Location
Lecture 10-11amTuesday CSSE Seminar Room 1.24
Lecture 2pm-3pmWednesday CSSE Seminar Room 1.24
Workshop 3pm-4pmWednesdayCSSE Seminar Room 1.24


The assessment for CITS4401 consists of regular workshop exercises, a software requirements and design assignment (with 2 deliverables), and a 2 hour closed book examination. See the schedule for details.
Assessment weight Assessment Dates
Regular Workshop Exercises15% Regular in class submissions (see schedule)
Requirements and design assignment 30% Due week 6 and week 11
Final exam 55% End of Semester Examination Period
Workshop exercises will be marked in the workshops and so attendance at the workshops is compulsory unless a previous arrangement has been made with the unit coordinator. Selected workshops will be led by industry developers. See the schedule for details. Project deliverables must be 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