Object Oriented Analysis and Design with UML
(Code: COMP7018)
| Course Duration: |
16-18 weeks |
|---|---|
| Required Time per Week: |
8 - 10 hours. |
| Course Contact: |
Alex Walker (alex@cs.man.ac.uk) |
| Summary: |
This course teaches essential skills in object-oriented analysis and design and the Universal Modelling Language. It is independent of particular software packages or programming languages, although there are a few small Java code examples. The only prerequisite is some familiarity with programming, not necessarily in an object-oriented language. |
| Prerequisites: |
Knowledge and/or experience of programming in at least one high-level
imperative language (object-oriented or structured eg Java, Smalltalk,
Eiffel, C, Ada, Modula or C++). |
Objectives:
After successful completion of the module, a student will
- understand how to design software in an object-oriented manner
- have mastered UML as a notation to support this design
- have undertaken a reasonably sized OO design in UML as part of a team-work exercise
Course Outline:
The course starts with a thorough introduction to object concepts, before explaining business modelling ("what do the customers need?") analysis ("what must the software do?") and design ("how will it do it?") Aspects of design covered include system and subsystem design and semi-formal specification of software responsibilities. No particular sofware development process is prescribed, but the approach taken is consistent with current best practice, in particular, the Rational Unified Process (RUP).
The course covers the OO software development life-cycle up to, but not including, the actual writing of code. The full syllabus is as follows:
| Topic | Content |
|---|---|
| Object Overview | Objects; Classes; Inheritance; Object-Oriented Type Systems; Software Development Methodology; Engineering or Invention?; Artifacts of Object-Oriented Software Development; Classes, Responsibilities and Collaborators. |
| Requirements | Introduction; Business Perspective; Developer Perspective. |
| Analysis | Introduction; Static Analysis; Dynamic Analysis. |
| System Design | Introduction; Networked System Topologies; Choosing Technologies; Partitioning Software. |
| Subsystem Design | Designing the Business Logic; Persistence using a Relational Database; Finalizing the User Interface; Designing the Business Services; Thread Safety. |
| Specification | The Specification Process. |
Assessment:
50% groupwork exercises, 50% online exam.
Further Details:
The course is delivered using a virtual learning environment (VLE). - Instruction takes the form of a written tutorial, delivered through the VLE. The tutorial includes a realistic case study to reinforce learning. Students are expected to study this tutorial in their own time.
At the end of each major topic, the students are asked to complete a substantial exercise; each exercise comes with its own guidelines. The exercises are based around another realistic case study. After the completion of each exercise, the course assessor will provide feedback to the students (via e-mail) and each will receive a copy of a model solution.
The VLE provides a bulletin board facility that the students are encouraged to use to communicate with one another, this board is moderated by the tutors and course assessor.
In this course students are split into project groups to develop solutions as a team (common practice in the work environment). The VLE supports the concept of teamwork, enabling the project groups to share information and to pass documents amongst the group. The tutors and course assessor can be contacted by e-mail or through the bulletin board for advice.
Each student is allocated to a tutorial group which meets on-line every week to discuss their individual study and any problems they are encountering. These tutorials are led by a member of School staff with the appropriate skills. The tutorial content is logged and students who are unable to attend are able to access the logged material.