INDICATIVE CONTENT
This module addresses topics of:
Review of the Four Pillars of OO (Encapsulation, Abstraction, Inheritance and Polymorphism)
Clean coding
Clean unit testing
Refactoring
SOLID principles
Design patterns
Clean Architecture
Distributable APIs
Making applications secure
Plug-able components in Clean Architecture
Database components
Interface components (Command-line, desktop, and APIs for HTTP requests)
ADDITIONAL ASSESSMENT DETAILS
Practical Assessment – Students will critically analyse a given application and refactor it into clean code. They will need to design and implement a suite of clean tests to test a given application (Learning Outcomes 1 to 3).
Written Report - Students will write a report identifying, with examples, the problems of the original application, the principles of clean code that have been used to refactor the application, and the principles of clean tests used (Learning Outcomes 1 to 3).
LEARNING OUTCOMES
1. Demonstrate a critical understanding of the principles of clean code and clean testing, being able to refactor code into clean code.
Analysis,
Application
2. Design a suite of clean tests for a given application.
Knowledge and Understanding,
Communication
3. Implement clean tests from a set of created designs.
Knowledge and Understanding
LEARNING STRATEGIES
All teaching sessions will blend theory and practical learning. Students will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples within the same sessions. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry stories. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.
RESOURCES
Java SE Developers Kit
Java IDE (e.g. IntelliJ IDEA Ultimate)
REFERENCE TEXTS
Martin, R.C. (2021), Clean Craftsmanship: Disciplines, Standards, and Ethics, Addison-Wesley Professional
Khorikov, V. (2020), Unit Testing:Principles, Practices and Patterns Paperback, Manning Publications
Martin, R.C. (2017), Clean Architecture: A Craftsman's Guide to Software Structure and Design, Prentice Hall.
Spring Boot (2022) "Spring Boot" [Online] Available at: https://spring.io/projects/spring-boot (Accessed: 03/01/2023)
WEB DESCRIPTOR
In this module, you will learn and practice the principles of clean code, clean testing and clean architecture. This will add a degree of professionalism to the coding and testing practices you have already gained during your studies. You will also experience industry-standard methods, tools, and frameworks to develop server-side web applications.