System Design and Analysis using UML COMP70180
| Credits | 15 |
|---|---|
| Course Start Date & Duration: | 25 February 2013 (16 weeks) |
| Required Time per Week: | 8–10 hours |
| Course Contact: | Alex Walker (alex@cs.man.ac.uk) |
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. 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++).
The material in this course will make sense to any programmer, i.e
someone who knows what a computer is and has written programs in
at least one of the imperative languages listed above. Other than
that, you will need to possess certain human qualities, such as
the ability to think, discuss and experiment.
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.
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. |
50% groupwork exercises, 50% online exam.
All distance learning course materials and related resources will be available electronically through our website on registration.
The unit is a 100% distance learning course, with the core material provided as a CBT package.The course is delivered using a virtual learning environment (VLE). The material is supplied as a Computer Based training Package (CBT) and the students are guided through their study using a series of work packages presented by the VLE.
A series of assessments associated with the course must be periodically submitted to the Course Assessor or Tutors who will respond with relevant feedback.
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. Students also have weekly online tutorials. Discussion of the assessments is encouraged, but the actual exercise and project work is done individually.