Lecture log
These notes are intended to record very briefly what I think happened at each
meeting. Anything in italics is a prediction, not a record!
Revision of the basics of UML which were covered in SEOC1. Hand out of
Coursework 2 (sic). Pyramid discussions on (a) what is design? (b) what
tool support exists for design? (c) what tool support should exist for
design?
Talked about Argo/UML, the design tool which we will use in this course
(though you're encouraged to use others too).
More advanced features of class diagrams.
To do before next lecture:
- Play with Argo/UML and browse its website.
- Read Chapter 6 of Using UML
Learning good solutions to common problems: Composite, and principles of
design patterns and their use.
Handouts: "update pack" for old editions of Using UML; notes on Composite
and on patterns in general covering some of the material of the lecture; an
article from Communications of the ACM on patterns in UML. (This last
brings in things we'll be discussing later in the course as well as
patterns. For now, concentrate on the range of patterns used and the use of
UML to represent them.)
To do before next lecture:
- Read section 18.2 of Using UML for background on patterns
- Skim CACM article.
Refactoring: improving the design of existing code.
Handouts: a draft of an
article on web resources concerning patterns, which includes the rest of
what we covered on patterns last lecture; notes on refactoring.
To do before next lecture:
- Read draft article on patterns, visiting the mentioned web sites at
least briefly (comments are especially welcome).
Development methodologies 1: the Unified Process. A use-case driven,
architecture-centric, controlled-iterative process. Also covered more
advanced use-case notation.
Handouts: Exercise 1 and a paper needed for exercise 1 (The Dependency
Inversion Principle).
To do before next lecture:
- Read Using UML chapters 4 and 8
Layers as an architectural pattern. UML notation useful for describing
architecture: structure of the physical system, structure of the design.
Development methodologies 2: Extreme Programming
Handouts: notes on development methodologies and architecture.
To do before next lecture:
- Read Using UML chapters 13 and 14
Thinking about designs: you worked each in one of 10 groups on a design
problem, and prepared 3 minute presentations on what you discussed.
Presentations and discussion arising from 6 of the 10 groups (concerning
patterns State, Visitor and Observer).
To do before next lecture:
- Bearing in mind that these patterns are examinable, make sure you
understand the (best) solutions presented and the design issues raised.
Remaining presentations and discussion (concerning patterns Decorator and
Strategy).
Overview of rest of course.
Quality in software: brainstorming of attributes which are relevant;
reading from Peopleware about in what sense "quality is free".
Midterm questionnaire about learning experiences in SEOC2.
Feedback on questionnaire.
Quality and quality assurance, product and process focussed. ISO9001, CMM,
TQM. Organisation vs individual driven. What has UML to do with quality?
Handout: notes on quality and quality assurance.
Configuration management, both in its own right and as key process area.
Handout: notes on configuration management; paper reproduced with
permission from CrossTalk, which is a useful source of short papers.
Verification and validation: the difference. Testing; test automation;
special problems of OO.
Handout: notes on VV&T.
To do before next lecture:
- Read Chapter 19 of Using UML.
"The Black Team". Formal technical reviews.
Management, project and people. Leadership; teamwork; types of
organisations.
Ensuring high levels of reuse in practice: process, technical and quality
issues.
Handout: notes on reuse
Guest lecture by Dr. Alan Gauld of BT.
Handout: copies of AG's slides (examinable: but use your common sense; I am
not going to ask you how many PCs were involved in such and such a BT
project...)
Frameworks and product line architectures: process, technical and quality
issues.
Revision, examinable material.