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!
We did some revision of the basics of UML which were covered in SEOC1. I
handed out Coursework 2 (sic) and talked about the idea of having a
current affairs slot for discussing relevant things from the news. I failed
to get any volunteers to take the slot next week... it was probably a
bad idea to ask in public for volunteers for something in Lecture 1! The
fire alarm rang.
Learning good solutions to common problems: Composite. I handed out Chapter
18 of Using UML, of which you need to read section 18.2 for background on
patterns (and hang onto the rest for later in the course!)
Use cases: uses and extends relationships between use cases, and advantages
and disadvantages of use case analysis.
Introduction to the running case study.
I handed out some notes on Composite, which we discussed last time.
About architecture and process. I talked about Objectory, which is an
example of a controlled iterative, architecture centric, use case driven
development process. Then we talked about layered architecture (aka
architectural pattern Layers) in some detail, and briefly mentioned other
architectural patterns (Pipes and filters, Blackboard, Microkernel).
Coursework 1 handed out. Also handed out Chapter 4 of the book, which is
partly revision and includes most of what I said today about architecture
and process.
Said that next week I will be away at a conference and will give out
reading for you to do independently. Some parts of Coursework 1 depend on
this reading.
Covered (in brief!) component-based development and its relation with
architecture, and mentioned frameworks at the end. I handed out copies of
the slides I used this time and last, with a few supplementary notes.
Current affairs slot by Maynard Case on EU working hours directive.
I was away at a conference: you had some reading. (Chapters 10,13,14 of
Using UML.)
I was still away at the conference: more time to finish the reading.
I handed out a paper presented at FSE: The Architecture of Montana: An Open
and Extensible Programming Environment with an Incremental C++ Compiler, by
Michael Karasick of IBM, which is compulsory reading. (paper only
available: spare copies in the CS4 pigeonhole, ask me if they run out.) I
talked through some of the aspects of architecture it considers and why.
The fact that it frequently refers to "observers" was a good excuse to
cover this common pattern. (It also talks about Visitors: you do not need
to know this pattern, but broadly it is a neat way to avoid having type
case statements (e.g. if foo has class Foo then ... else if it has class
Bar then...)
Current affairs slot by Kieron Smith on a debacle at the BBC.
A guest lecture on wider (e.g. non structural) aspects of architecture and
the importance of considering them, from Dr. Corin Gurr. Copies of the
slides were given out and there are some copies in the CS4 SEOC2
pigeonhole. Remark: anything in the slides is examinable, even though it
wasn't me that said it, since it's within the syllabus' scope.
Started to consider quality: You brainstormed a large number of attributes
of a product and/or a company that might contribute to it being considered
"high quality", and some factors which affect quality (from technical
things e.g. quality of the design and the testing procedure to mangagerial
things e.g. deadlines.) In support of the idea that managerial factors are
important I read out part of the chapter "Quality is Free" from Peopleware
and showed a couple of Dilberts. In groups, you considered which aspects of
quality and ways of achieving it might be
most important for
different kinds of company, from a software house specialising in safety
critical systems to a vendor of off-the-shelf business applications.
I handed out Chapters 19 and 20 of the book -- these are (probably) the
last chapters I shall hand out and include notes on much of the rest of the
course.
Guest lecture from Dr Judith Underwood of QSS Ltd
Ways of improving quality: process oriented and product oriented. Within
process oriented, organisation driven vs individual driven. Quality
assurance: CMM, ISO9001. TQM.
Current affairs slot by Ruth Durie on outsourcing.
Configuration management, considered in its own right and as an example of
major process improvement. Defect tracking; cartoon on efficient bug
fixing.
Verification, validation and the difference.
Verification of UML models.
A technique useful for both: testing. Review and special features of OO
systems.
The Black Team.
Formal technical reviews.
Management (project and people), leadership, teamwork, types of
organisation.
Ensuring high levels of reuse in practice. (If you really know how to do
this now, set up a consultancy and make your fortune.)
won't happen -- this is Week 10.