Module Identifier CS31220  
Module Title ADVANCED SOFTWARE DEVELOPMENT  
Academic Year 2004/2005  
Co-ordinator Mr Christopher W Loftus  
Semester Semester 2 (Taught over 2 semesters)  
Other staff Mr Christopher W Loftus  
Pre-Requisite CS22120  
Course delivery Lecture   44 lectures  
  Seminars / Tutorials   1 x 1 hour  
  Practical   10 x 3 hour worksheets  
Assessment
Assessment TypeAssessment Length/DetailsProportion
Semester Exam2 Hours Written exam  50%
Semester Assessment Assignment  40%
Semester Assessment Regular Worksheets  10%
Supplementary Exam Will take the same form, under the terms of the Department's policy.   

Learning outcomes

On successful completion of this module students should be able to:
1. demonstrate a critical appreciation of a range of software development methodologies, and their relative advantages and disadvantages

2. demonstrate specialized skills to achieve reuse of design expertise through the application of software design patterns and particularly in the context of designing distributed applications

3. perform key steps in an agile methodology

4. describe the generic architecture of multi-tier, distributed applications

5. build a simple, multi-tier distributed application

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

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

Brief description

We look at development processes, techniques and technologies for constructing real operational software systems. The two parts of this module cover two important development facets: Part A examines the spectrum of development methodologies available to software projects, from agile methodologies through to plan-driven methodologies. Students will learn about the advantages and disadvantages of various methodologies. The majority of modern applications are distributed. In Part B, students will learn about the nature of such applications, and techniques and technologies for constructing them. Reference will be made to process issues discussed in Part A.

Content

1. Introduction to module ? 1 Lecture.
The lecture provides a road-map to the module, with a brief overview of main concepts and how they interrelate.

PART A: The Planning Spectrum ? 14 Lectures, 5 Worksheets

2. In this part students will learn about the spectrum of software development methodologies, from agile through to plan-based, and hybrids, and their advantages and disadvantages, depending on the nature of the software project. To balance focus on plan-based methodologies in other modules, this module will focus on agile methodologies, and in particular Extreme Programming (XP). Students will learn the 12 XP principles. An overview of the Rational Unified Process is also provided. An introduction to design patterns and frameworks will be provided.

PART B: Building Multi-Tier Applications

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

4. Construction technologies ? 20 Lectures, 3 Worksheets

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. 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 one major technology that can be used to develop such applications, namely J2EE.

5. Designing multi-tier applications, the use of design patterns ? 7 Lectures, 2 Worksheets

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.

Reading Lists

Books

John Hunt, Chris Loftus (March 2003) Guide to J2EE: Enterprise Java Springer-Verlag 1852337044
Kent Beck (2002) Extreme Programming Applied Addison Wesley 0201616408
Martin Fowler (2000) UML Distilled Addison Wesley 020165783X
John Crupi (2001) Core J2EE patterns Prentice Hall 0130648841
Marc Fleury (2002) The Official JBoss Development and Administration Guide Sams 0672323478
Martin Fowler (2000) Refactoring Addison-Wesley 0201485672
Philippe Kruchten (March 2000) The Rational Unified Process: An Introduction 2. Addison-Wesley 0201707101
Eric Gamma et al (1995) Design patterns: elements of reusable object-oriented software Addison-Wesley 0201633612
Floyd Marinescu (2002) EJB Design Patterns John Wiley & Sons 0471208310
Mark Grand (2002) Patterns in Java: a catalog of reusable design patterns illustrated with UML, Volume 1 John Wiley & Sons 0471227293
Scott Ambler (2002) Agile modeling Wiley 0471202827
Please await advice from lecturing staff before purchasing books for this module.

Notes

This module is at CQFW Level 6