To get an idea of the content of upcoming lectures, take a look at the
schedule from 2016/17
Week 1
Tuesday's Lecture (19 Sep 2017):
Software engineering overview
[slides]
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.
Thursday's Lecture (21 Sep 2017):
Requirements engineering
[slides]
Required Readings:
- SWEBOK V3
Chapter 1 on Software Requirements.
Suggested Readings:
- Sommerville, Requirements Engineering chapter (locate it using the index).
Tutorials: No tutorials in Week 1 (or Weeks 2 and 3)
Week 2
Tuesday's Lecture (26 Sep 2017):
Use Cases
[slides]
Required Readings:
- 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
Thursday's Lecture (28 Sep 2017):
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 SDM 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.
Tutorials: No tutorials this week
Week 3
Tuesday's Lecture (3 Oct 2017):
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"
Thursday's Lecture (5 Oct 2017):
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
Tutorials: No tutorials this week
Week 4
Tuesday's Lecture (10 Oct 2017):
Design Patterns [slides]
Required reading:
- Wikipedia entries on
Observer Pattern and
Template
Method Pattern.
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.
Thursday's Lecture (12 Oct 2017):
Construction I: good coding
[slides]
Required Readings:
Tutorial 1:
Questions to work on before
the tutorial.
Week 5
Tuesday (17 Oct 2017):
NO LECTURE
Thursday's Lecture (19 Oct 2017):
Construction II: version control and system building
[slides]
Required reading:
Suggested reading:
Tutorials: No tutorials this week
Week 6
Tuesday's Lecture (24 Oct 2017):
Refactoring [slides]
Thursday' Lecture (26 Oct 2017):
Verification, validation and testing
[slides]
Tutorial 2:
Questions to work on before
the tutorial.
Week 7
Tuesday (31 Oct 2017): NO LECTURE
Thursday's Lecture (2 Nov 2017):
Deployment and maintenance [slides],
Bug reporting [slides]
Tutorials: No tutorials this week
Week 8
Tuesday's Lecture (7 Nov 2017):
Preview of
Coursework 3
Thursday's Lecture (9 Nov 2017):
Introduction to software processes
[slides]
Tutorial 3:
Questions to work on before the tutorial.
Week 9
Tuesday's Lecture (14 Nov 2017):
Agile processes and Extreme Programming
[slides]
Thursday's Lecture (16 Nov 2017):
Risk management and improving quality
[slides]
Tutorials: No tutorials this week
Week 10
Tuesday's Lecture (21 Nov 2017):
Non-functional requirements, reliability
[slides],
Security engineering
[slides]
Suggested Readings:
Thursday's Lecture (23 Nov 2017):
IP and licensing [slides],
Ethics [slides].
Tutorial 4:
Questions to work on before
the tutorial.
Week 11
NO LECTURES THIS WEEK
Slides originally authored by Perdita Stevens and adapted by Nigel
Goddard, Ajitha Rajan and Paul Jackson.