Unit 20 Advanced Programming - BTEC Higher National Diploma (HND) in Computing
Aim & Objective
This coursework is designed to allow the learner to demonstrate their broad understanding, knowledge and skills gained through the module`s learning journey. The coursework must be submitted as one document in a report format with the full implementation of the code project embedded as an object at the end of the report.
HealthInformatica is an advanced technology company that works in providing innovative technological healthcare solutions to its customers. HealthInformatica is based in London but works with customers across the UK and Europe. HealthInformatica is looking for a software developer to develop a software system for them to facilitate their main duties and services. HealthInformatica provides the following services: (i) book CT scans for patients, (ii) book MRI scans for patients, (iii) give access to individuals to their online platform to view the uploaded scans, (iv) receive requests from clinics and hospital to buy advanced healthcare devices, and (v) liaise with legal firms to look after terms and conditions of their services and banks to receive payments from their customers. Hence, HealthInformatica wants the hired software developer to develop a software system to perform the following functions:
1. To create, update, delete and search for a patient`s record.
2. To add, remove and update services for any customer. Services need to be described well and documented with different variables, e.g., types of scan, initial diagnosis (physiotherapy treatment, surgery, others), relative to contact in case of emergency, service fees, type of payment (check, cash, direct debit or money transfer), etc. Each type of service should have five attributes at least.
3. The system must retain a proper level of details about patients, this includes the following: patient`s first and last name, patient`s passport number, patient`s date of birth, patient`s gender, patient`s address, patient`s phone, patient`s email, patient`s job. You can add further information, if you prefer to do so.
4. The system must offer the administrator to generate a report with all patients and the services they received over a certain period of time.
C# is an OOP language that allows OOD paradigms such as Abstraction Encapsulation, polymorphism, and Inheritance. You need to examine the characteristics of the Object-orientated paradigm in relation to the given scenario. You need to discuss a range of design patterns from each of the creational, structural, and behavioural patterns and analyse the relationship between the object-orientated paradigm and the design patterns to be used in this application.
N.B. You may use code snippets to aid your discussion. Any code snippets that appear in your submission must be within the context of the given scenario. Textbook examples are not acceptable.
In designing an object-oriented solution, it is important to make use of modelling tools such as UML diagrams. Your task here is to produce a UML Class diagram to capture the relationships (generalisation, specialisation, composition) between the entities identified for the implementation of an OO solution to the scenario. Your UML class diagrams should be specific to the design pattern you will use in this implementation, and it must be complete with the necessary fields and methods that will be implemented in LO3.
N.B. All UML diagrams and/or code snippets included in your submission must be within the context of the given the scenario. Textbook examples are not acceptable.
Based on your UML class diagrams in LO2 you are required to develop the application in C# by following object-oriented programming paradigm. The application should implement all the features listed in the given scenario above. You will select an appropriate design pattern (with justification) to implement and evaluate the pattern used. Use Visual Studio 2019 community edition or any other IDE of your choice as your development tool.
N.B. In This section, you should explain the key elements of your implementations, the rationale for your approach etc., for example how your implementation relates to your design in LO2, its relationship with the design patterns discussed and your evaluation and test results. This can be supported with code snippets. Your complete code will be submitted as an embedded object in the appendix section also.
Discuss a range of design patterns (Creational, structural, and behavioural pattern types) with reference to relevant examples as applied to the given scenario. Reconcile the most appropriate design pattern to the given scenario and critically evaluate the design patterns against a range of scenarios with a justification of your choices.
N.B. Any models, code etc. included in this section must be within the context of the given scenario. Textbook examples alone are not acceptable.