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

Lecture handouts are available from the links on this page. Four of the weekly workshops as indicated on this schedule will contribute to 15% Regular Workshop Exercises assessment. Click here for the marking rubric for the workshops. Workshop questions, sample answers, the group project and further readings for each topic will also be published on this page during the semester. Please bookmark this schedule which will be updated as the semester progresses. This schedule is under development and likely to change during the semester. Please refer to this web page and not a printed copy.

Week Starting
Lectures CSSE1.24
Tue 10am to 11am and Wed 2pm to 3pm
Workshop CSSE1.24
Wed 3pm to 4pm
Assessments Due
1 24 Feb 1. Introduction to CITS4401
2. Essence and User stories
Requirements workshop 1
(week 1 sample answers)
2 2 Mar 3. Requirements engineering
4. Requirements elicitation
Requirements workshop 2
(week 2 sample answers)
Group project part 1 (requirements elicitation) project specification
List of project group members and contact emails
3 9 Mar 5. Requirements Analysis
6. Use cases
Specifying Requirements (video)
Requirements workshop 3
(week 3 sample answers)
4 16 Mar 7. Requirements specification, negotiation
8. and validation

Validation checklist
Industry workshop with Health Engine
Questions given in class. Individual feedback returned to students.
Workshops submission 2 due (questions completed in class then cssubmit)
5 23 Mar 9 and 10. Identifying objects and UML Class diagrams Class models workshop
week 5 sample answers (see also video answer in LMS)
Workshops submission 2 due 8pm via LMS or cssubmit
6 30 Mar 11. Object interaction (sequence diagrams)
12. Dynamic requirements (statecharts)
Dynamic models workshop
week 6 sample answers
Group project phase 1 (requirements elicitation)
due (Fri 4pm)
7 20 April 13. System design 1
14. System design 2
- Design workshop
- Sample answers
8 27 Apr 15. Design patterns cont'd
16. Design documentation
- Design patterns workshop (includes assessed exercise)
- Workshop assessment FAQs
- Workshops submission 3 due (submitted via cssubmit)
- Group project part 2 (design) project specification
- UML class diagram (also available on Google Drive)
9 4 May 17. Design activities
18. Event-driven systems
Design workshop
10 11 May 19. Architectural design 1
20. Interfaces and design
Architecture workshop (assessed)
Workshops submission 4 due (marked in class)
11 18 May 21. Non-OO design
22. Design review
Non-OO design workshop
Group project phase 2 (design) due (Fri 4pm)
12 25 May - Revision and final exam discussion
- CITS4401 sample exam 2020
Design -- Revision Q&A
June Final exam

This Page