Component Based Software Development
This module introduces the theory and practice associated with implementing large-scale distributed information systems in heterogeneous environments. The student will develop the technical knowledge necessary to analyse the scalability and interoperability problems associated with large-scale heterogeneous systems and will experience the design and implementation of enterprise-level computer applications. Industry standard frameworks such as Java Enterprise Edition (JakartaEE), Spring, Enterprise Service Bus (ESB), and Microservies, will be explored using practical workshops. The development of web services will also be discussed through the use of standards such as XML, SOAP, WSDL and UDDI. How web services can be used to implement a Service Oriented Architecture (SOA) will be discussed. The growing usage of Serverless architectures will be considered and the usage of Container based systems and the cloud.
The module employs a blended learning approach to presenting the materials which means that not all the sessions will be lectures; some will be lab-only, some will be a mixture of lab and lecture, and some will be devoted to self-study. To this end the module utilises videos, tutorials, worksheets, and online question-answer scenarios to develop the topics.
At the conclusion of the course the student should have an appreciation of:
- the design and implementation of multi-tier applications;
- the use, and understand the relevance of, distributed component technology;
- the evaluation of requirements and specifications;
- the security implications on intranets and the Internet of multi-tier applications;
- the complex ideas of component software engineering and relate them to a specific problem;
- the implementation of server-side applications and an e-Commerce application using a variety or proprietary and open-source approaches;
- the relationship between Microsoft component technology and the Java enterprise bean approach;
- the enhanced systems analysis techniques;
- the development of systems architecture design.
- Introduction to Component Based Software
- Java approaches to n-tier architectures (JakartaEE, Spring, etc.)
- Enterprise Computing in the real world (Case Study)
- Message-Oriented Middleware (RabbitMQ, etc.)
- Microservices, Containers, Virtualisation, and Cloud Computing
- Design Patterns and Enterprise Architectures
- The .NET model for distributed computing
- Persistence layers
- User Interfaces
- The twelve-factor app methodology for building software-as-a-service apps
- Serverless frameworks
- Web Services
- RESTful services
One of the following:
- Introduction to Software Development (with a distinction level grade)
- Principles of Programming II
- or a similar course or relevant experience (as approved by the module leader)
All dates and timetables are listed in the programme handbooks of individual programmes.
Programming assignment involving the implementation of a typical CRUD application using one of the module frameworks.
By two hour written examination (worth 80%) and practical coursework (worth 20%).
- Component Software: Beyond Object-Oriented Programming by Clemens Szyperski. 2nd Edition. Addison Wesley. 2002. ISBN: 978-0201745726
- Operating Systems and Middleware by Max Hailperin. Course Technology Inc. 2007. ISBN: 978-0534423698
- Introduction to Middleware: Web Services, Object Components, and Cloud Computing by Letha Hughes Etzkorn. Chapman and Hall/CRC. 2017. ISBN 9781498754071
- Getting MEAN with Mongo, Express, Angular, and Node, Second Edition by Simon D. Holmes. Manning Publications. 2017. ISBN 9781617294754
Learn Serverless by Philipp Müns. Available via Gumroad
- Patterns of Enterprise Application Architecture by Martin Fowler. Addison Wesley. 2002. ISBN: 978-0321127426