Learning Outcomes:
On successful completion of this module, the student should be able to:
1. Comprehend the architecture of a multi-layered enterprise application and the disadvantages associated with traditional approaches to accessing infrastructure services.
2. Describe the key concepts underpinning lightweight enterprise application frameworks (AOP, IOC, and Declarative service application) and how they benefit application architecture – coupling, modularity, testability, simplicity.
3. Explain how IOC is realised in a best-of-breed container and comprehend the full extent of its power in the management and configuration of an applicationÕs components, including life cycle management, externalising deployment configuration, internationalisation, and event management.
4. Comprehensively define the AOP model and utilize an implementation of this model to illustrate the enrichment of objects.
5. Demonstrate the exploitation of the key concepts to achieve declarative application of infrastructure services to an enterprise applicationÕs components.
6. Implement and deploy a web application that demonstrates MVC Model2 as well as Web 2.0 characteristics
7. Combine all of the above outcomes to develop a skeleton multilayered enterprise application requiring a range of infrastructure services, using the tools and techniques of Agile development.
Syllabus Content:
This module will address the use of lightweight application frameworks in the development of secure, transactional, web-enabled, multi-tiered enterprise applications. This technologiesÕ non-invasive characteristic results in greatly simplified business logic code consisting of so-called POJOs (plain old java objects). The foundation concepts associated with this technology are explained followed by an in-depth look at the leading open source products in this market. There will be a strong emphasis on the practical side, where the student will experience the benefits of the frameworks toward testability, reuse, maintainability, and ease of configuration. The skills and knowledge acquired from earlier modules - Agile Software Development and Relational Persistence - will be consolidated, giving a more complete picture of enterprise application development.
Pre-requisites:
1. Strong programming skills with Java experience (graduate of a BSc(Hons) or BEng involving significant programming experience)
2. Object-Oriented Programming and Design skills. (BSc(Hons) level Systems Analysis)
3. Moderate understanding of computer architecture and of operating systems.
4. Moderate understanding of distributed computing
Indicative syllabus content:
a. Background
Enterprise application layers; Code bloat ; Code scatter and tangling; Dependency management; Infrastructure services ; Programming best practice.
b. Core IOC Container
Declarative Component configuration; Bean lifecycle management; Internationalisation;
c. The AOP paradigm
Concepts; Framework support.
d. Middle-tier infrastructure services
Security; Remoting; Transaction management; Persistence; Messaging; Scheduling. Declarative application
e. The web tier
MVC Model 2; Web Conversations.
f. Agile development support
Testing; Deployment.
Practical Programme:
This module has a strong practical element. Students are required to demonstrate competency in the use of the frameworks discussed in the lectures. Additionally, best practice in agile development will be assumed and inspected in assignment work submitted – testing, system build. The student will be required to develop a multi-tiered secure, transactional enterprise application with a manageable set of user features. The problem domain can be of the studentÕs choosing or taken from an application being developed for another module/dissertation. It will be submitted in three phases, each one demonstrating the framework features covered to-date.