This task is an individual task and covers the following learning outcome. Demonstrate in depth knowledge and understanding of current best practice in the design and development of Object Orientated systems. In this task requires you to carry out some research. It is important that you use a range of quality sources and your findings and conclusions must be supported by the literature. The mark you are awarded is based on the quality of the research carried out, and principle conclusion you have drawn from the research you have conducted.
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. 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.
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.
A relational database must be used to store your application data. However you are expected to create an object orientated system. Therefore you must consider how the objects link to the database CRUD operations. It is strongly recommended that you use Entity Framework however this is not compulsory and other data access such as ADO level 2 may be used however a fully justification as to why should be provided.
The system must be implemented using Visual Studio 2017 C# and the application must run on Visual studio 2017 professional in the lab. Other languages and/or platforms will receive a mark of zero.
You may include instructions as to use which would include any valid logon details or user details that you have created. You will be required to use a database for the development of the application; the only condition is that the application must run in the lab.
Scope Quality of technical implementation
Justification and implementation of data access layer
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. Testing should be carried out at the unit level, making sure the component works as expected, and at the system level using user requires (scenarios) as a basis for creating the tests. You should be 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 decency injection/mock objects to isolate classes you should make this clear in your strategy.
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 you 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. If any problems occurred they should be listed as well as any attempt to reach a resolution.