|
|
|
| ||||||||
| Software Development with UML | |||||||||||
Lecturer: Zhiming Liu
Duration of the Course: 30-40 lecturing hours + 100 hours lab,
execises and self-study, but shorter versions on Introduction to UML
or OO Requirement Analysis are also available.
Subject Knowledge
Aims
The overall purpose of the couse is to give an understanding of the
problems of large-scale software development and how this can be
solved using object-oriented techniques. The main aim of the module is
to teach the understanding and use of object-oriented methods to
analyse, specify, design and implement large computer systems.
Learning Outcomes
The couse participants should be able to: Analyse customer
requirements; produce a UML requirement model, a design model based
on requirement model; implement a design; understand what activities
to carry out and what artifacts to produce in software development;
use UML for consistent specification of the models at different levels
of abstraction in the development of a system of a moderate size; use
automated UML tools; have a sound grasp of the basic principles and
techniques in object-oriented software development.
Methods
Lecture notes, class sessions, recommended textbooks, worksheets, supervised laboratories, feedback from markers and extensive web support.
Subject Skills
Aims
Produce written work in a number of different formats; analyse problems, formulate strategies to solve them, design a plan, carry out the required research, implement and evaluate the solution; recognise the need for information, and then locate and access that information. Work effectively in a group to solve problems, communicate ideas effectively to to other members of group, evaluate and work with strengths and weaknesses of other group members.
Learning Outcomes
Students will learn to develop object-oriented software systems. This will involve requirements capture and analysis, and the design and implementation of suitable solution strategies.
Methods
Class sessions, individual and group worksheets with feedback from markers.
Explanation of Pre-requisites
A sound knowledge of basic algorithm and program design and data structures is required. A good understanding of logic and discrete structures is essential for rigorous and formal models and specifications of software systems. A good experince in Java, C++ or C# programming will be required. It is also desirable that students have some knowledge of database systems.
Course Description
This module provides the participants with the engineering principles, methods needed to specify, design and implement a large syste using object oriented techniques, and gives them practice in developing such systems.
Syllabus
Introduction: Software crisis and historical background of Software Engineering; features of modern software systems, software products and their characteristics: maintainability, dependability, efficiency and usability.
Software Development Process: Requirement analysis; system design; implementation and unit testing; integration and system testing; operation and maintenance; the waterfall model; Rational Unified Development Process (RUP).
Introduction to OO Development: The inherent complexity of software; mastering complex systems; examples of complex systems; function oriented vs object-oriented methods.
Object-oriented requirement capture and analysis: Case study; requirement specification; use cases; conceptual models, use case based project planning; testing based on use cases.
System Behaviour: System input events and system operations; contracts; from analysis to design.
OO Design: Interaction diagrams; UML notational issues. creating interaction diagrams, patterns for assigning responsibilities; connecting user interface objects to domain object; design class diagrams; use interaction for testing plan.
Implementing a Design: UML notation for interface details; mapping a design to code; container/collection classes in code.
Advanced Modelling Concepts and Design Techniques: Iterative development process; generalization; abstract classes; associative classes; UML notation for packages; modelling behaviour in state diagrams; Formal use of UML.
Summing Up
Reading list
Essential:
Z. Liu, Software Development with UML, UNU-IIST Technical Report 259,
UNU-IIST, P.O. Box 3058, Macau, July 2002. abstract pdf postscript.
Recommended:
M. Fowler, UML Distilled, 2nd edition, Addison-Wesley, 1999.
R. Pooley and P. Stevens, Using UML: Software Engineering with Objects and Components, Addison-Wesley, 1999.
I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process, Addison-Wesley, 1999.
C. Larman, Applying UML and Patterns, Prentice-Hall International, 1998.
R. Pressman and D. Ince, Software Engineering - A Practitioner's Approach (5th (European) Edition), McGraw Hill.
I. Sommerville, Software Engineering (5th Edition), Addison-Wesley, 1995.
| Software Development with UML | |||||||||||
|
|
|
| ||||||||