|| CS31220 |
|| ADVANCED SOFTWARE DEVELOPMENT |
|| 2003/2004 |
|| Dr Mark B Ratcliffe |
|| Semester 2 (Taught over 2 semesters) |
|| Mr Christopher W Loftus |
|| CS22120 |
| Course delivery
|| Lecture || 44 lectures |
|| Seminars / Tutorials || 1 x 1 hour |
|| Practical || 10 x 3 hour worksheets |
|Assessment Type||Assessment Length/Details||Proportion|
|Semester Exam||2 Hours Written exam ||50%|
|Semester Assessment|| Assignment ||40%|
|Semester Assessment|| Regular Worksheets ||10%|
|Supplementary Exam||2 Hours 2 hour examination only ||100%|
Learning outcomesOn 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
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.
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.
John Hunt, Chris Loftus (March 2003) Guide to J2EE: Enterprise Java
Kent Beck (2002) Extreme Programming Applied
Addison Wesley 0201616408
Scott Ambler (2002) Agile modeling
Martin Fowler (2000) UML Distilled
Addison Wesley 020165783X
Mark Grand (2002) Patterns in Java: a catalog of reusable design patterns illustrated with UML, Volume 1
John Wiley & Sons 0471227293
John Crupi (2001) Core J2EE patterns
Prentice Hall 0130648841
Floyd Marinescu (2002) EJB Design Patterns
John Wiley & Sons 0471208310
Marc Fleury (2002) The Official JBoss Development and Administration Guide
Eric Gamma et al (1995) Design patterns: elements of reusable object-oriented software
Martin Fowler (2000) Refactoring
Philippe Kruchten (March 2000) The Rational Unified Process: An Introduction
2. Addison-Wesley 0201707101
This module is at CQFW Level 6