Module Information

Module Identifier
CHM5820
Module Title
Enterprise Systems Development
Academic Year
2017/2018
Co-ordinator
Semester
Semester 1
Mutually Exclusive
Pre-Requisite
Only available to MSc students
Other Staff

Course Delivery

Delivery Type Delivery length / details
Workshop 8 x 2 Hour Workshops
Lecture 25 x 1 Hour Lectures
 

Assessment

Assessment Type Assessment length / details Proportion
Semester Assessment Assignment one.  Approximately 50 hours, software development with a 3,000 word report.  50%
Semester Assessment Assignment two.  Approximately 40 hours, research-based investigation producing a 5,000 word report.  50%
Supplementary Assessment Resubmission of failed/non-submitted coursework components or ones of equivalent value.  100%

Learning Outcomes

On successful completion of this module students should be able to:

Demonstrate specialised skills to achieve the reuse of design expertise through the application of software design patterns and particularly in the context of designing and building distributed applications.

Describe the generic architecture of multi-tier, distributed applications.

Assess critically the appropriateness of various Internet-based communication technologies to solving the communication requirements of a variety of distributed applications.

Build a simple, multi-tier distributed application that employs the use of appropriate testing techniques, design patterns and communication technologies.

Demonstrate a critical appreciation of Cloud computing.

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

Demonstrate cognizance of the security requirements of distributed applications.

Demonstrate the undertaking of original research within the area of building distributed applications.

Aims

Teach best practice in building web applications with rich and responsive user interfaces; enterprise design patterns; support for business-to-business application interoperation; and security. Give students the opportunity to build a distributed application that employs best practice in these areas and in agile methodologies and accessibility requirments, taught in other modules. Make students aware of the opportunities and limitations of various distribution technologies. Allow students to demonstrate their ability to apply such technologies.

Brief description

The majority of software developed today is distributed. It is important that students are given the opportunity to build a distributed application that employs best practice: agile methodologies taught in other modules, building web applications, enterprise design patterns, support for business-to-business application interoperation, security and deployment to the cloud.

Students will be made aware of the opportunities and limitation of various distribution technologies, and also demonstrate their ability to apply such technologies.

Content

1. Introduction to building Internet-based applications.
General introduction to the module. Distributed application architectures: client and server (n-tier architectures).

2. Building a simple web application using a web application framework such as Ruby-on-Rails. The web application framework and its support for the MVC enterprise design pattern and for object-relational mapping.
Introduction of a running example used during some of the module.

3. Internet-based communication technologies and architectures.
Support for interoperability by various technologies: e.g. sockets, object-based communication, message-based communication, XML-RPC and Soap-based web services. Representational State Transfer (REST) web services. Design issues. Application of web services to the running example. Ajax concepts and application.

4. Cloud computing.
Overview of the Cloud and deployment to a popular Cloud environment.

5. Testing Web-based applications.
Use of appropriate tools and techniques, such as behaviour-driven techniques.

6. Security of distributed applications.
Including cryptography, symmetric and asymmetric algorithms, Transport Layer Security protocol, mitigating web hacking attacks (code injection attacks), single sign-on. The Java Security Model, and the CERT Oracle Secure Coding Standard for Java.

Module Skills

Skills Type Skills details
Application of Number Inherent in the subject.
Communication Writing assignment report.
Improving own Learning and Performance Self study.
Information Technology The module is IT focused. Students will use computer tools to develop and run their applications.
Personal Development and Career planning The module will provide more information on what software engineers do.
Problem solving Deciding on an appropriate design when developing a multi-tier application.
Research skills Students will be required to acquire further knowledge from journals and on-line sources. The second assignment contains an element of original research.
Subject Specific Skills Software development skills.
Team work Not applicable.

Notes

This module is at CQFW Level 7