Week 1
Tuesday's Lecture (22 Sep 2015):
Software engineering overview
[slides]
Thursday: NO LECTURE (24 Sep 2015)
Required Readings:
Suggested Readings:
The aim with the above readings is to deepen your understanding of
what software engineering is, why the term was invented and is still
used, and why problems still exist.
Tutorials: No tutorials in Week 1 (or Weeks 2 and 3)
Week 2
Tuesday's Lecture (29 Sep 2015):
Requirements engineering
[slides]
Thursday's Lecture (1 Oct 2015):
Use Cases
[slides]
Required Readings:
- SWEBOK V3
Chapter 1 on Software Requirements.
- The
System Requirements Specification for the Tokeneer ID
Station industrial case study. Look at the structure of the
Use-Case-like scenarios in Section 5, noting the different kinds
of fields in each scenario. How are these scenarios different from
the use cases presented in class? More generally, observe the kinds of information also
included elsewhere in the document.
Suggested Readings:
- Sommerville, Requirements Engineering chapter and sections on
Use Cases (locate them using the index).
- Use Case Fundamentals post on Alistair
Cockburn's website. Cockburn is author of books on writing
effective Use Cases and Agile software development.
- Stevens, Ch 7: The Essentials of
Use Case Models.
- Fowler, Ch 9: Use Cases
Tutorials: No tutorials this week
Week 3
Tuesday's Lecture (6 Oct 2015):
Software design and modelling
[slides]
Suggested readings:
- SWEBOK v3
Ch2 on Software Design, particularly Sections 1-3. By its nature,
SWEBOK is rather terse: it lists important topics but includes
often only very brief explanations.
- Sommerville Chapter on Architectural Design (Ch 11 in 8th Ed, Ch 6 in 9th and 10th Eds,)
- An
Introduction to Software Architecture CMU Tech Report. David Garlan and Mary Shaw. 1994.
- The Software Architecture and Design section, Chapters 1-3, of the
Microsoft
Application Architecture Guide, 2nd Ed. Ch 2 has a good survey
of key design principles.
The last three readings all cover a number of architectural styles
(also known as architectural patterns). The 3rd year SAPM course
goes into architectural styles in detail. For this course, you
should aim for basic familiarity with 2 or 3 styles, enough that you
can briefly describe each style and discuss how it realises general
design principles such as those outlined in the slides or covered
by the last reading.
Thursday's Lecture (8 Oct 2015):
UML Class diagrams
[slides]
Suggested readings:
- Stevens: Ch 3, Ch 5, Ch 2 for OO concepts, Ch 6 for abstract
classes and interfaces
- Lots online: search for "UML class diagram"
Tutorials: No tutorials this week
Week 4
Tuesday's Lecture (13 Oct 2015):
UML interaction diagrams
[slides]
Required reading: At least one of
You should know the idea of the CRC cards technique, including the basics of
what each letter in "CRC" refers to.
Suggested reading:
- Stevens: Ch 9 for basics of UML Sequence diagrams, Ch 10 for conditional and iterative behaviour
Thursday's Lecture (15 Oct 2015):
Design Patterns
[slides]
Required reading:
- Wikipedia entries on
Observer Pattern and
Template
Method Pattern
(or equivalent): you should know and understand those patterns
to the extent that you could use them, describe them in UML class and
sequence diagrams, and explain what they achieve and how
Suggested reading:
Read more on design patterns, e.g.
- Stevens: Section 18.2
- Sommerville: Look up design patterns in index
- Design
Patterns entry in Wikipedia
Tutorial 1:
Questions to work on before
the tutorial.
Week 5
Tuesday's Lecture (20 Oct 2015):
Construction I: version control and system building
[slides]
Thursday's Lecture (22 Oct 2015):
Construction II: good coding
[slides]
Required Readings:
Week 6
Tuesday's Lecture (27 Oct 2015):
Verification, validation and testing
[slides]
Thursday's Lecture (29 Oct 2015):
Refactoring
[slides]
Tutorial 2:
Questions to work on before
the tutorial.
Week 7
Tuesday's Lecture (3 Nov 2015):
Deployment and maintenance
[slides],
Bug reporting
[slides]
Thursday's Lecture (5 Nov 2015):
Introduction to software processes
[slides],
Week 8
Tuesday's Lecture (10 Nov 2015):
Agile processes and Extreme Programming
[slides],
Thursday: NO LECTURE (12 Nov 2015)
Tutorial 3:
Week 9
Tuesday's Lecture (17 Nov 2015):
Coursework 3 overview
[web page],
Thursday's Lecture (19 Nov 2015):
Risk management and improving quality
[slides],
Week 10
Tuesday's Lecture (24 Nov 2015):
Non-functional requirements, reliability
[slides]
Security engineering
[slides]
Suggested Readings:
Thursday's Lecture (26 Nov 2015):
Ethics [slides],
IP and licensing [slides],
Tutorial 4:
Questions to work on before
the tutorial.
Week 11