CS4: Software Engineering with Objects and Components 2

Description: This course builds on the CS3 course Software Engineering with Objects and Components 1, which is a pre-requisite^{1}, as well as on CS3 Programming Methodology. We continue the study of object oriented software engineering, placing the emphasis on analysis, high level design and issues of large scale projects and systems, such as quality and process control. We use the Unified Modelling Language, supported by a CASE tool. The final part of the course deals with management, people and quality issues in software. The emphasis here is on finding relevant questions and exploring possible answers, considering practical advantages and disadvantages. No silver bullets will be provided.

Context: The CS3 courses Software Engineering with Objects and Components 1 and Programming Methodology are prerequisite. There is a strong sense in which this course completes the task of studying the object oriented development process begun by SEOC1.

1: Recapitulation We briefly revise object concepts and the elements of UML covered in SEOC1. We cover the final part of the UML model, which is the implementation diagrams: component diagram, deployment diagram.

2: The development process

• Use case analysis: problem domain objects: interfaces

• Software architecture

• Reuse of frameworks and components: high-level design for reuse

• Design patterns

• Verification, validation and testing of models: recognising faulty analysis and design

• Development methodologies with UML.

3: People and quality issues

• Quality in software.

• Issues in project management and teamwork. How does an OO project differ? Management of reuse.

• Organisations’ approaches to software. Trends in employment.

Activities: Some of the course meetings will be lectures, others will be practical sessions working with design problems, in groups or individually, with the CASE tool or on paper.

Assessment: An examination paper accounts for 75% of the mark. The remaining 25% is accounted for by individual coursework, which may take the form of exercises or reports and may draw on the practical sessions. There will normally be two pieces of coursework, due in in weeks 5 and 9. Books:

*** Rob Pooley and Perdita Stevens, Using UML: Software Engineering with Objects and Components, Addison Wesley. (To appear November 98: draft available until then.)

** DeMarco & Lister Peopleware: productive projects and teams Dorset House (an excellent read, relevant to the final part of the course and highly recommended to anyone considering a career in software)

1This does not mean that you absolutely have to have done SEOC1, but it does mean that if you haven’t you should contact me in advance and be prepared to do some extra reading and thinking.