- Class 15
- Practice 30
- Independent work 105
Advanced application development based on templates
This module introduces students to applying SOLID principles in the given scenarios and identifying the need to implement appropriate design patterns.
This module provides the foundation for writing reusable and decoupled software components, which is a prerequisite for fully understanding the following Advanced Programming Paradigms module. The skills acquired by this module will contribute significantly to students’ development as professionals in the respective fields.
Students will learn:
• How to design and implement software solutions, which are valuable skills for their future challenges as software architects.
• How to determine the need to implement the SOLID principles in the given scenarios.
• How to identify the need to apply appropriate design patterns in the data, business, and presentation application layer.
The module is taught in Java and C
programming languages. The module assessment is based on individual student projects. In these projects, students must create a properly designed software solution to the given specifications.
1. Gamma, E. et al (1995) Design Patterns: Elements of Reusable Object-Oriented Software. 1st edn. Boston: Addison-Wesley Publishing Company.
1. Freeman, E. et al (2008) Head First Design Patterns: A Brain-Friendly Guide. 1st edn. Sebastopol: O'Reilly Media.
1. Fowler, M. (2012) Patterns of Enterprise Application Architecture. 1st edn. Boston: Addison-Wesley Professional.
Minimal learning outcomes
- Determine the need to apply the SOLID principles in the given scenario, and implement them in the given scenario.
- Identify the need to apply appropriate design patterns in the business logic layer and apply them to the given scenario.
- Determine the need to apply design patterns in the data and service layer and apply them to the given scenario.
- Determine the need to apply design patterns in the presentation layer and apply them to the given scenario.
- Critically evaluate the final product in relation to the initial one, after applying the design patterns.
Preferred learning outcomes
- Argue various options for improving architectural characteristics of solution.
- Argue various options for improving solution in the business logic layer.
- Argue various options for improving solution in the data and service layer.
- Argue various options for improving solution in the presentation layer.
- Analyse solution according to “clean code rules”.