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 their study of this module a student should have an appreciation of:
- The design and implementation of multi-tier applications;
- The concepts of component software engineering and how they relate to a specific case study;
- The use, and the relevance of, distributed component technology;
- The relationship between different component technologies and their appropriate deployment.
- The development of an application based upon distributed systems architecture design;
- The ability to evaluate the requirements and specifications of a distributed computing application;
- To understand the security implications of multi-tier applications;
- To understand the general implementation of server-side applications, and an e-Commerce application, using a variety of proprietary and open-source software.
- An Introduction to Component-Based Software and Enterprise based Computer Systems
- Enterprise Computing and the real world (Case Study)
- Message-Oriented Middleware (RabbitMQ, etc.)
- Microservices, Containers, Virtualisation, and Cloud Computing
- Design Patterns and Enterprise Architectures
- Persistence layers
- User Interfaces
- The twelve-factor app methodology for building software-as-a-service apps
- Serverless frameworks
- Web and 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)
- You should be conversant with the materials covered in the following LinkedIn Learning course:
- Java Essential Training for Students by Peggy Fisher.
All dates and timetables are listed in programme handbooks, found in the downloads section of individual programme pages.
- Timetable of all departmental teaching events
- Term dates
- Timetable for the week ahead (including venue information)
Enrolled students can find their personal teaching timetable and location of classes on their My Birkbeck profile.
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