Module Catalogues, Xi'an Jiaotong-Liverpool University   
 
Module Code: CSE406
Module Title: Software Architectures
Module Level: Level 4
Module Credits: 5.00
Academic Year: 2019/20
Semester: SEM2
Originating Department: Computer Science and Software Engineering
Pre-requisites: N/A
   
Aims
The aim of this module is to train students on the principles of software architectures based on distributed computing technology, the design of complex applications and the deployment techniques. This ranges from the conventional techniques such as Java RMI to the web-based middleware techniques such as web services. The module will equip the students with experience and skills of applying these techniques to distributed systems.


This is an option module MSc Applied Informatics and MSc Financial Computing, to provide students with an opportunity to exercise techniques for complex software development.
Learning outcomes 
A. Acquire an in-depth knowledge of software architectures for complex applications;


B. Effectively design and implement a distributed computing system to specifications in a creative and consistent manner;


C. Critically evaluate distributed systems using relevant technologies;


D. Critically analyse the practical and theoretical problems which exist in distributed computing systems.


Method of teaching and learning 
Formal lectures:

Students will be expected to attend three hours of formal lectures in a typical week plus a one hour of supervised lab session. In some weeks, in lieu of lectures, we will have seminars where we discuss papers relevant to the lectures. Towards the end of the module, students will have the opportunity to present their projects in front of the class.


Private study:

In a typical week, students will be expected to devote six hours of unsupervised time to private study. The time allowed per week for private study will typically include three hours for revision of course material and background reading, with three hours for completion of practical work


Assessment:

The assessment consists of coursework and a written exam. The coursework contains three parts: a design of a distributed system, a critical evaluation of an existing system, and a project to develop a new distributed system. The written exam evaluates the students’ critical understanding of the theory components of the module.

Syllabus 
1. Fundamental concepts: distributed computing, software architecture, architectural styles, middleware


2. Middleware technologies


2.1 Object request brokers (ORB) middleware: fundamental concepts, advantages, system architecture, interfaces, registries, remote objects, Java RMI


2.2 Message-oriented middleware (MOM): fundamental concepts, system architecture, standards (e.g., AMQP/XMPP/JMS), comparisons with ORB middleware, Java Message Service (JMS) (point-to-point messaging style and publish/subscribe messaging style, JMS elements, JMS programming model)


2.3 Data access middleware: fundamental concepts, system architecture, Java Database Connectivity (JDBC), Java Persistence API (JPA), Hibernate ORM, MyBatis framework


2.4 Distributed transaction processing middleware: fundamental concepts, two-phase commit protocol (2PC), XA specification, resource manager and transaction manager, XA transactions, Java Transaction API (JTA)


3. Enterprise computing architectures, frameworks, and technologies


3.1 Java EE framework and technologies: distributed multi-tiered architecture, components and containers, servlet programming, JSP programming, model-view-controller (MVC) architectural pattern, client state maintenance


3.2 Spring framework and technologies: fundamental concepts, system architecture, dependency injection, aspect-oriented programming (AOP), Spring MVC, Spring Boot, Spring Cloud


4. Service-oriented architecture (SOA)


4.1 Fundamental SOA concepts


4.2 Traditional web services: XML, SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language), UDDI (Universal Description, Discovery, and Integration), JAX-WS (Java API for XML Web Services


4.3 RESTful web services: representational state transfer (REST) architectural style, JAX-RS (Java API for RESTful Web Services)


4.4 Microservices: fundamental concepts, characteristics, microservice frameworks and techniques


5. Revision



Delivery Hours  
Lectures Seminars Tutorials Lab/Prcaticals Fieldwork / Placement Other(Private study) Total
Hours/Semester 39       13    98  150 

Assessment

Sequence Method % of Final Mark
1 Coursework 1(10%), 2(10%), 3(30%) 50.00
2 Written Examination 50.00

Module Catalogue generated from SITS CUT-OFF: 12/14/2019 3:14:17 PM