Module Identifier CHM5920  
Academic Year 2004/2005  
Co-ordinator Mr Christopher W Loftus  
Semester Semester 3 (Summer)  
Other staff Mr Christopher W Loftus, Mr David E Price, Dr Lynda A Thomas, Mr Neil Taylor  
Pre-Requisite Available only to students taking the Diploma/MSc in Internet and Distributed Systems (Advanced) scheme. CHM5820.  
Course delivery Workload Breakdown   55 hours of contact time; lectures, practicals, workshops.  
  Lecture   44 Hours  
  Practical   Up to 6 x 2 hours  
Assessment TypeAssessment Length/DetailsProportion
Semester Assessment2 Hours written exam  50%
Semester Assessment 1 programming assignment (60 hours)  50%
Supplementary Assessment Supplementary examination will take the same form, under the terms of the Department's policy.  100%

Learning outcomes

On successful completion of this module students should be able to:
1. demonstrate the ability to reuse design expertise through the application of software design patterns in the context of designing distributed applications.

2. build a substantial, multi-tier distributed application.

3. critically explain the relative merits of alternative server-side technologies.

4. demonstrate a critical appreciation of design issues encountered when developing multi-tier, distributed applications.

5. demonstrate a critical appreciation of a range of software development methodologies, and their relative advantages and disadvantages in the context of building distributed systems.


This module forms a core part of the new Internet and Distributed Systems (Advanced) MSc. This module builds on CHM5820 looking more in-depth at technological solutions and design issues associated with building multi-tier applications.

Brief description

This module examines development processes, techniques and technologies for constructing Internet-based, distributed software systems. The majority of modern applications are now distributed. Students will learn about the nature of such applications, and techniques and technologies for constructing them.


1. Introduction to module. Provides a road-map to the module, with a brief overview of main concepts and how they interrelate.

2. Distribution and issues. Discusses distribution challenges, and technologies and techniques for addressing them. Compares and contrasts the options, such as J2EE and .NET.

3. Construction technologies. In this section students will learn how to build multi-tier Internet/intranet applications. Organizations are increasingly making their systems accessible over the Internet, or internally across organizational intranets. Access is often from web browser clients and increasingly from other web applications (web service oriented architectures). Typically, these applications comprise a client tier, server-side web tier, business logic tier and enterprise information system tier. Students will learn how to use two major technologies that can be used to develop such applications, namely J2EE and .NET.

4. Designing multi-tier applications, the use of design patterns. Building multi-tier applications requires developers to know more than just technologies, they must also know and use design techniques suited to their development. Students will learn about reusable design patterns, and in particular those used for the development of distributed, multi-tier applications.

5. Agile methodologies. Many Internet-based applications must reach the market in a timely manner and must adapt to changing market requirements. The application of agile methodologies in such projects to achieve rapid time-to-market and flexibility will be examined.

Reading Lists

** Consult For Futher Information
Scott Ambler (2002) Agile modeling Wiley ISBN: 0471202827
Martin Fowler (2000) Refactoring Addison-Wesley ISBN: 0201485672
John Hunt, Chris Loftus (March 2003) Guide to J2EE: Enterprise Java. Springer-Verlag ISBN: 1852337044
John Hunt (2002) A Guide to C# and Object-Orientation Springer-Verlag ISBN: 1852335815
Eric Gamma et al (1995) Design patterns: elements of reusable object-oriented software Addison-Wesley ISBN: 0201633612
Mark Grand (2002) Patterns in Java: a catalog of reusable design patterns illustrated with UML, Volume 1 John Wiley & Sons ISBN: 0471227293
John Crupi (2001) Core J2EE patterns. Prentice Hall ISBN: 0130648841
Floyd Marinescu (2002) EJB Design Patterns. John Wiley & Sons ISBN: 0471208310
Marc Fleury (2002) The Official JBoss Development and Administration Guide. Sams ISBN: 0672323478
Ken Auer et al. (2002) Extreme Programming Applied. Addison Wesley ISBN: 0201616408


This module is at CQFW Level 7