IT Project, 2000, Semester 2

Unit Description

Information Technology Project, unit number 4675, is a level G core computing subject in the Graduate Diploma in Computing.

The subject aims to introduce students to the object oriented paradigm, in particular object oriented design and implementation. Topics covered will include object oriented concepts and terminology; classes and objects; encapsulation and information hiding, inheritance; assertions and exceptions; polymorphism; genericity; use of class libraries and toolkits; design patterns. The language of implementation will be Java, but other languages will also be discussed.

IT Project is essentially about constructing software. The process of designing and implementing software systems, managing a project and applying Object Oriented analysis and design will be learned in the context of constructing an system consisting of two complementary applications. There will be a strong emphasis on how to construct high quality software - that is, software which is correct, robust, extensible and reusable.



Jan Newmarch

Office / Phone

11A9 / (6201) 2422


Class Contact

There are two lectures per week, each of 1½-2 hours. There is also a 1 hour tutorial session. Much of the tutorial work is group work done by each team. Tutorials will start in week 2. Tutorial attendance is obligatory.






Lecture Notes

Lecture notes will be placed on the Web as they become available. This can be accessed from the IS&E Teaching page. They will also be available for photocopying at the inquiries desk.


Assignments will be done in teams of 3-4 students. Each team will write one system consisting of two complementary applications. Part of the system will be demonstrated and details handed in at the end of first term (assignment 1). The full system will be tested and details handed in at the end of the semester (assignment 2).

At the end of the semester you will be required to write a report on your assignments. Reports will be individual.

Teams members must all attend the same tutorial. Teams will be decided during the first tutorial (in week 2). Students are welcome (and encouraged) to form their own teams.


Each assignment and the report will be given a grade - HD, DI, etc.

There will also be a final exam in the examination period. Your mark for this exam will be converted to an exam grade. (Grade boundaries will be about 50%, 65%, 75%, 85%).

It will be necessary to pass assignment 2 and the final exam.

Subject to passing assignment 2 and the final exam, your final grade will be computed as follows. Your final grade will be a weighted average of your assignments grades, report grade and your exam grade. The weightings of <assignment 1 : assignment 2 : report : exam> will be <1 : 3 : 1 : 2>.

Late work

Late assignments or reports, if accepted, will be subject to a 1 grade penalty.


Computers and Programming G and Intro to S/W Engineering Systems Analysis and Design G

These prerequisites will be enforced.


The language of implementation for this unit is Java. Any vendor implementation will do, as long as it supports Java version 1.1, 1.2 or 1.3. A free copy is available from Sun Microsystems,

WWW Home Page

The home page for IT Project is at
It will be my main method of communicating with students outside lectures.


The text book for this subject is

C. Larman, Applying UML and Patterns, Prentice Hall, 1998.

We will be following Larman's book closely.

Other recommended books are

Highly recommended

*B. Meyer, Object Oriented Software Construction, 2nd edition, Prentice Hall 1997.

*M. Fowler with K. Scott, UML Distilled, Addison Wesley, 1997.

*Gamma, E., et al, Design Patterns: Elements of Object Oriented Software, Addison Wesley, 1995; QA76.64.D47; BRN 252398

Recommended reading


K. Walden and J-M. Nerson, Seamless Object-Oriented software architecture: analysis and design of reliable systems. Prentice Hall 1995

Software Engineering

I. Sommerville, Software Engineering, Addison Wesley, 5th edition, 1996.


B. Meyer and J.-M. Nerson, Object-Oriented applications. Prentice Hall 1993; QA76.64.O244; BRN 237082

The books marked with an asterisk are available on short loans in the library.

Remarks on the recommended books

Applying UML and Patterns: This is an excellent book for learning the OO life cycle. It is application driven in that it describes the method in the context of a concrete application. One feature that is valuable for beginning students of OO is its use of check lists.

Object Oriented Software Construction: The second edition completely updates the classic first edition of 1986. It is regarded as the best book written on OO construction and SE principles. What sets this book apart is the solid foundation it lays and applies consistently to all areas of OO. As well as discussing basic OO principles and techniques, it introduces more advanced topics such as concurrency, persistence and GUI techniques. The principles and issues are presented in language independent manner, but the notation used is that of Eiffel.

UML distilled. UML (Unified Modelling Language) is probably the dominant language to express OO design. It is, however, very big and very complex, and the full UML is best suited to very large projects. This book gives the essence of the notation with some comment on the process.

Design Patterns: Elements of Object Oriented Software. This was the book that acted as a catalyst to the widespread use of Design Patterns. It describes and names 23 design patterns and gives examples of their use. It is not, however easy to read, partly because the subject is difficult and partly because the contexts they give are rather big and not mainstream. Still, it is a classic and should be in the library of every OO professional.

Seamless Object-Oriented software architecture: analysis and design of reliable systems describes the BON methodology. They emphasise seamlessness (OOA ? OOD ? OOP requires no translation), reversibility (OOP ? OOD ? OOA is equally seamless) and software contracting. It is Eiffel-based in that Eiffel is the only language which currently supports design by contract. A very "pure" method - there are no non-OO parts (for instance, there is no ER, DFD or FSM in their model).

Software Engineering. A standard book on software engineering. It covers, specification, design, validation, management etc. It is very broad, but has little on OO.

General Information for all Subjects

The "General Information for all Subjects" document addresses issues such as prerequisites, availability of staff, grades, special conditions for illness and misadventure, withdrawal, appeal, examinations, and issues concerned with cheating, plagiarism and similar misconduct. Students in their third year should generally be familiar with these issues but should consult the handout in specific cases. It is important that students are familiar with this document.

The latest version is available on the Faculty's Web site with the URL: