Reference no: EM132726151
KF7014 Advanced Programming - University of Northumbria
Learning Outcome 1: Demonstrate in-depth knowledge and understanding of current best practice in the design and development of Object Orientated systems
Learning Outcome 2: Design a system using advanced object orientated principles and methods, such as Behavioural, Creational and Structural design patterns, ensuring a high level of quality and data security.
Learning Outcome 3: Implement and test Object Orientated programmes using advanced techniques ensuring a high level of quality and data security.
Learning Outcome 4: Critically evaluate the effectiveness of implemented Object Orientated applications
Learning Outcome 5: Demonstrate a professional understanding of the importance of software quality in the development of applications.
Assessment Scenario
Case Study: Quick Fix Dental Practice
Technology requirements
Application must be built using Visual Studio 2019 or Visual Studio 2017, professional or enterprise. The community edition is not suitable for this work, as it will not work with Entity Framework.
You must use the database built into visual studio as your data store, you should not use any other database.
The GUI must be built using windows forms (winForms). ASP or other presentational technologies are not permitted.
Patterns must be present in the technical solution, for example the presentational layer should use MVP. You are also required to use Entity Framework and LINQ.
Background
Radiant Smile Dental practice requires you to build a windows application to support dental practice. The dental practice only deals with NHS patients however it does offer a number of treatments not covered by the standard NHS services such: teeth whiting, dental implants.
Patients
When a patient is registered their details such as date of birth, name, address, email are captured and stored by the system. A medical questionnaire is given during the registration process. The questionnaire captures information regarding any medical conditions which may affect the treatment and any allergies the patient may have such as to latex or antibiotics.
When a patient visits the dental surgery a check is done to see when they last updated their medical history. If this was more than a year ago the system will prompt the reception staff to ask if they has been any changes to their medical history. If there has they will be required to fill in a new medical questionnaire.
All patients must provide the name and address of their GP practice. It is likely that many of the patients in the dental practice will be register to a small number of local GP practices.
NHS patients may be entitled to free treatment or they may pay a fixed free given the dental work undertaken.
Checkups (15 minute appointment)
Checkups can be booked in one of three ways
• When a patient comes to the end of a treatment plan of has had a check-up which requires no work they are offered an opportunity to book a six month check-up.
• When they first register with the practice.
• If they telephone in and ask for a check-up, a check is made to make sure they have not already had a check up within the last four months.
In the case of new patient or coming to the end of the treatment plan, the system must prompt the reception staff to ask the patient to make an appointment.
The system should identify any patients who have not visited the dental practice in the past six months and have no future appointments books. The system will produce a reminder letter which will be mailed out to the patient asking them to make an appointment. They will be contacted again is six months if they have not made an appointment and has not visited the dental practice.
Any patient who has not made contact with the dental practice for a two year period will be removed from the list of active patients.
Emergency Appointments
A practice holds 2 hours non advance appointments each day; these are for dental emergencies and are allocated on a first come first served basis.
Recording a treatment plan
A person will have 32 adult teeth, and when they are younger 20 baby teeth. During someone's life the state of the teeth may change: all the way from a filling to an extraction.
The system should only record information only about a ‘treatment plan' the work identified as needing to be carried out following an examination.
The dentist will fill out a visual representation on a pre-printed view of the teeth so that the patient is aware of what is going to be done. This visual representation is not recorded by the system instead the dentist makes professional medical notes. These medical notes will be short multi line text documents which are written in such as way that any trained dentist will understand.
Treatment plan consent and payments
Many NHS patients will pay a fixed free for the detail service which is split into three bands. Some patients are entitled to free treatment, depending on their individual circumstances. In both cases the patient signed a standard NHS form consent/treatment form, these are scanned and a copy is held on the system.
In the event of an emergency appointment this may be done immediately after the treatment is carried out.
Appointment Reminders
The practice has suffered from many missed appointments, patients forget about appointments which are often set weeks or months in advance. In order to try and solve this problem SMS text message is sent to the patient five working days before the appointment, and another is send the day prior to the appointment.
It is also policy to phone parents who have long appointments. Some dental work may require 40 or more minutes to complete. Patients who have long appointments are contacted by phoned by a member of the reception team to double check that they will be attending. This normally takes place two working days before the appointment.
A third party service is used to contact patients via SMS text messages. The system should provide the following text document which will be sent to the service. The text document contains a list of the reminders to the sent that day; it has the mobile phone number and the day/time of the appointment. This should be in the form of a comer delimited file.
The system will also produce the list of phone numbers, names and appointment details for all those who have a long appointment in three working days time. This will be processed by the reception staff during quiet periods. Reception staff should be able to mark those who have been successfully contacted, those who have not been contacted by the end of the day will appear on the following day's list. No further attempts will be made if they are not contacted on the second consecutive day.
The practice operates a policy deregistering anyone who has missed three appointments within a rolling five year period, this will only happen when their current treatment plan has ended. There are exceptions such as any patient who has a memory problem or if anyone has missed an appointment due to illness or bereavement, even events such as a traffic is seen as an acceptable reason for missing an appointment. A clarification for any missed appointment will be sort on the next interaction with the reception staff. Your system must prompt the staff to ask and then record if it allowable or not. In the event of a non-allowable reason the system must check if there has been two more within the past three years. If so, the patients' record will be marked as one to deregister. If not them a record is made of the missed appointment.
Staff
Staff have the ability to request flexible working so it is possible that some staff may work less than five days a week. Or that they only work the hours between 10am and 2pm. The practice diary which contains all the staff and appointments is held six months in advance.
Staff can also request holiday. It is normal that there will be appointments which have already been made for the period of the holiday. In these cases reception staff will be able to identify and contact the patients so that they can rearrange the appointment.
Staff sickness. Staff may become ill and be unable to work for a period of time. If a member of staff becomes ill then it may be possible to move some of the appointments for a day to other dentists and also use half of the allocation of emergency appointments.
The system should be able to identify from the treatment plan and type of appointment which patients should be dealt with as soon as possible and which can be moved a new appointment in the future. Patients undergoing root canal work or crows are priorities and an attempt is made to fit them into current weeks work, checkups are seen as lest priority and are rescheduled last. Contact information is listed for all the affected patients. The receptionist calls each one in the list which has been prioritised. They explain the situation and work with the patient to choose an alternative day and time.
Task 1 Research Question (Individual Work)
This task is an individual task and covers the following learning outcome.
1. Demonstrate in depth knowledge and understanding of current best practice in the design and development of Object Orientated systems
Question for section one and two
"Most systems require user authentication, identify the technical approach you would use to storing the password information so that a user was able to authenticate themselves at a later date. You discuss a range of approaches and any weaknesses with the indentified approaches."
The research is split into three sections,
Section one
The initial part you will be limited in your usage to a single source of information, namely "stack overflow". This initial investigation should take approximately 1 hour to complete. And will be undertaken during the lab session. See Appendix B for information regarding how to capture the information. If you miss the lab you can still do the exercise and forward the information to the module tutor for analysis.
(5 marks)
Section two
This second part answers the same question however it should be only done after the lecture on security. You must document the work in the same way as you did for section one, using the layout from Appendix B. Part one documented finding information on stack overflow in this section. You also need to write a short summary identifying the technical measures you would take and give a reference to any code examples which you would use as a basis for implementing the solution.
Word Limit 300
Section three
Identify possible technical solutions to security protecting information in the properties of a class prior to it being persisted on a database. Additionally you should consider and outline any implications any of the possible solutions may have on the winder functionality or performance the application.
Word Limit 1500
References from good-quality, relevant literature must be used in order to strengthen any points that you raise in your discussion. This only relates to sections two and three of this question.
Task 2 UML Designs and OOP considerations
This task assesses the learning outcome.
Design a system using advanced object orientated principles and methods, such as Behavioural, Creational and Structural design patterns, ensuring a high level of quality and data security.
Produce an implementable class diagram for the system you are developing, this should show your final design of the software components and clearly show architectural patterns used in the development of the system. It should not be post implementation diagram created by visual studio. You are expected to use Design Patterns in the creation of you product, and you are also expected to show layering of the application, patterns should be considered in each of the layers for example you are expected to use a presentational Patten in the interface layer. This work should only include the requirements which you are expecting to implement during the time-box.
You must provide a justification for any of the patterns you have chosen to implement. Outlining reasons why the choices have been made. You should also include any patterns which you believe could be beneficial to the software architecture, but which you decided not implement. A rational for their exclusion should be given.
Word Limit 300
Task 3 Implementing the technical Solution (Group work)
In this task the following learning outcome is assessed.
Implement and test Object Orientated programmes using advanced techniques ensuring a high level of quality and data security.
You are not expected to try and implement the entire system. Agile methods require a subset of requirements to be taken into a time-box for development. You can apply MoSCoW to list of requirement, this will help you decide on what requirements you plan to implement. However you are expected to pick requirements which work together so that you can demonstrate a working subsection of the entire system, you should use vertical development.
You are expected to develop the application using the standard three layer model and the domain and presentation layer should contain some of the patterns covered in the module.
Entity Framework must be used to persist the objects. It is your choice on how you use the technology. It is recommended not to use Database first as this will have architectural consequences to your system.
The system must be implemented using Visual Studio 2017 or 2019 and be written in C#. As stated earlier only windows forms may be used and the application must use the inbuilt database.
You may include instructions as to use which would include any valid logon details or user details that you have created.
The code is marked on the following aspects:
Scope technical implementation
Quality of the solution, including architecture patterns used.
Task 4 Testing (Group work) 10 marks
In this task the following learning outcome is assessed.
1. Demonstrate a professional understanding of the importance of software quality in the development of applications.
It is expected that there is sufficient level of unit level testing within the layers of the application. It is important that each class and method has an associated testing component. You should also carry out some testing at system level making sure that the system performs the needed system functionality. You should use both positive and negative testing.
Visual Studio provides an inbuilt testing framework, you are expected to automate as many of the tests as possible using the inbuilt unit testing framework. If you have used dependency injection/mock objects to isolate classes you should make this clear in your testing strategy.
All tests must also be documented in a test plan, it is not enough to just have test project, it must documented in a plan.
Task 5 Evaluation of the development process (Individual Work)
In this task the following learning outcome is assessed.
1. Critically evaluate the effectiveness of implemented Object Orientated applications
2. Demonstrate a professional understanding of the importance of software quality in the development of applications.
Many iterative methodologies incorporate an evaluation step at the end of each development time-box. The purpose is to reflectively evaluate the development increment so that lessons can be learned, and improve the development process in future increments. In this section you are required to critically evaluate development process and the tools used.
• Critically evaluate the approach your team used in selecting what requirements in implement in the development time box, you should consider the logical grouping of the functionality and if you choose to many or two few requirements to implement.
• Teamwork, you need to critically evaluative how you're team worked together in producing the technical solution. How you self organised yourselves. If any problems occurred they should be listed as well as any attempt to reach a resolution.
• Tool evaluation: Critically Evaluate: the development environment, database chosen and the use of testing tools in the development of the system.
Approximately 700 words
Task 6 Evaluation of the technical solution (Individual Work)
In this task the following learning outcome is assessed.
1. Critically evaluate the effectiveness of implemented Object Orientated applications
Critically evaluate the Design and Implementation in relation to the object orientated principles covered in the module. You must consider the patterns you have used and discuss if they were effective and also identify any patterns you have not implemented but believe to be relevant.
Discuss the choice of Data Access implementation. Was Entity Framework directly used or did you impose your own unit of work and repository patterns. You need to justify and reflect on the choice you made.
Critically evaluate your application in terms of security. You do not need to discuss password security which you covered in the research question. However you should focus on the security needs of the application from the data perspective. You should use what you discovered from task one section three in order to give some specific recommendation related to this application.
Attachment:- Implementing Object Orientated Design.rar