
ASSESSMENT BRIEF | |
Module Title: | Advanced Programming |
Module Code: | KF7014 |
Academic Year / Semester: | 2021-22 / Semester 1 |
Module Tutor / Email (all queries): | Mark Hurrell mark.hurrell@northumbria.ac.uk |
% Weighting (to overall module): | 100% (40% group work, 60% individual report) |
Assessment Title: | Practical Programming and Report |
Date of Handout to Students: | 11th October 2021 |
Mechanism for Handout: | ELP |
Deadline for Attempt Submission by Students: | 3rd January 2022 11.59pm GMT |
Mechanism for Submission: | Document upload to Module Blackboard Site. And Turn-it-in |
Submission Format / Word Count | Please upload your written report as a single PDF document. Group work must be in ZIP format. |
Date by which Work, Feedback and Marks will be returned: | 1st February 2022 |
Mechanism for return of Feedback and Marks: | Mark and individual written feedback sheet will be uploaded to the Module Site on Blackboard. For further queries please email module tutor. |
LEARNING OUTCOMES
The learning outcomes (LOs) for this module are:-
Knowledge & Understanding:
- LO1: Demonstrate in-depth knowledge and understanding of current best practice in the design and development of Object Orientated systems
Intellectual / Professional skills & abilities:
- LO2: 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.
- LO3: Implement and test Object Orientated programmes using advanced techniques ensuring a high level of quality and data security.
- LO4: Critically evaluate the effectiveness of implemented Object Orientated applications
Personal Values Attributes (Global / Cultural awareness, Ethics, Curiosity) (PVA):
- LO5: Demonstrate a professional understanding of the importance of software quality in the development of applications.
This assessment addresses leaning outcomes LO1, LO2, LO3 , LO4 and LO5.
Assessment Criteria/Mark Scheme:
See Appendix A for assessment criteria. Note that this work is worth 100% of the module and that the marks total 100 marks.
Nature of the submission required:
Individual work: The individual report should be a single document, and it must be in PDF format. You are required to upload this using Turn-it-in (ELP) as an originality report is required. Your work must be uploaded no later than the deadline specified on the first page. You should name this file so that it is clearly your individual work and should contain your student ID as part of the document name.
Group work: A ZIP file should be created that contains your entire Visual Studio project, including the test project. It is your responsibility to make sure that the project can be loaded from a decompressed zip. Justifications of choices made such as patterns used and the data access layer need to be in a PDF document called justifications. The document should be in the root of the folder, you also need to supply a file which contains a list of all names and student ids of the group members “group.txt”.
Each C# software component should have the names of the group members within the comments at the top of the code. The ZIP file should also contain files for your Design (Task 2) and Testing (Task 4) these should be in PDF format and need to be legible (easy to read) it is your responsibility to check the PDF files are legible.
Late work carries a penalty. Even if you are one minute late, the penalty has to be applied. Please make sure you give yourselves plenty of time to upload the work.
It is your responsibility to check that you have uploaded the file correctly to the ELP/turn-it-in. After uploading the file to the ELP, download the file and check that the contents are what you expect.
You must check you work does not contain any viruses before submitting.
Referencing Style:
Where you have used someone else’s words in quotations, they should be correctly quoted and referenced in accordance to the Harvard System. For guidance on referencing, see Pears, R. & Shields, G. (2013) Cite Them Right: the essential referencing guide, 9th edn. Basingstoke: Palgrave Macmillan http://www.citethemrightonline.com/. Please use the Harvard Style for referencing and citations.
Group work
The maximum size of a group is four students; you are expected to form your own groups by the end of teaching week 4. One member of each group must email the module tutor giving the names of the group members. Anyone without a group at the beginning of week 6 will be assigned to a random group. In the rare event that a group is not working well together it may be disbanded. The module tutor will have final say when this occurs, It will only happen if there is sufficient documented proof that one or more members are not contributing to the work, in such eventualities it will be expected that each member does the remaining work on an individually basis, Alternatively students may be able to join another group which is willing to accept them and that there is still enough time to make a sufficient contribution to the new group (group size limits still apply). In such cases the module tutor must be notified. If your group is not working well together then you must inform the module tutor no later than week 10.
Expected size of the submission:
Expected size of written work is stated on the individual sections.
Academic Misconduct:
You must adhere to the university regulations on academic misconduct. Formal inquiry proceedings will be instigated if there is any suspicion of misconduct or plagiarism in your work. Refer to the University’s regulations on assessment if you are unclear as to the meaning of these terms. The latest copy is available on the university website. Quote or paraphrase other work with caution. Please discuss with the module tutor if you are unsure what is expected.
For further clarification students should read Appendix 1 of the latest version of the Assessment Regulations for Northumbria Awards. These can be found at:
Fair use of code from the internet:
You are not permitted to use templates from the internet; any group which uses a template to create the architectural foundation of their work will be formally investigated for academic misconduct, all the work must be your own.
Small amounts of code can be taken and modified from the internet however all occurrences must be clearly indicated in the comments section at the top of each class. You must including in the comments section a reference to the original source. Methods and properties should also be marked as “copied from: URL”. If you have changed the code, however it is not radically different from the original copied code, you still need to mark it in the same way.
Reflective writing:
Tasks 5 and 6 are reflective writings; although many of you are aware of what reflective writing is. Past evidence indicates that some students do not understand what is required. It is not about ‘book work’ where your answer is basing on external sources, although you should use some academic papers to support your arguments. These questions are about what you and your group have done and what you have learned from the process. You are required to indentify positives and weaknesses in the group work. Use the theory covered in the module to effectively aid you in this reflective evaluation of your work. The reflective commentary should be critical; you should identify what when wrong and demonstrate you have learned from the process.
Extensions and Illness:
Please make sure that all group items are held in a central repository so that it does not rely on a single individual. If someone in your group is ill then you must all discuss the possibility for extensions with Ask4Help. Module tutors and Course leaders cannot grant extension, you must go to Ask4Help.
Individual and Group components
Each task clearly states if the task is individual or group work. Submission of individual work will be at the same time as group work however these will be separate submission. Please make sure you read the questions carefully and that you answer matches the question being asked. If you require further clarification please email the module tutor.
Peer Assessment and Group Diary
In order to complete the group work you will need to work with other students. It is important that you evenly distribute the work between yourselves and work effectively with each other. You are required to keep a diary so that you log and minute all communication and meetings. The diary will be required as part of the evidence in the portfolio.
You must also supply one peer-assessment form for each group member. This will need to be agreed and signed by each group member. The peer assessment template is available on the module web page. Completed forms need to be scanned or photographed and need to be uploaded as part of your group work assessment.
If the diary and/or individual peer assessment forms are missing then the group part of this assignment, will be capped at 50%. Based on the peer assessment form you will be able to calculate a score of between 3 and 8 which measures your peers views of the quality of your team work in this task. We reserve the right to consult with you and potentially change the weightings (and in extreme cases marks) when this is felt necessary. We will not do this before the assignment is handed in. On the form each student’s performance in the team is graded by a number of criteria. Each criterion will be given a score of between 3 and 8. Once all the 9 criteria have been graded the average score across the criteria for the student will be determined. This is called Team Work Score, which will be between 3 and 8. Calculate this by adding up the score for each of the nine criteria and then dividing by nine. Once the peer assessment forms have been completed for all members of the group it is possible to determine the group average. This is calculated by adding up the Team Work Scores for all the group members and dividing the total by the number of group members. A weighting can then be calculated by dividing the students Team Work Score by the group average. The weighting applies to only the group component of the assessment. A student’s mark will be determined by multiplying the group mark by the weighting. This will be calculated to the nearest whole number
See ELP Document “Example_Peer_Assessment_Form”
Getting Visual Studio
You will require the professional or Enterprise version of Microsoft Visual Studio, the community edition of the software does not permit the use of Entity Framework, which is a mandatory technical requirement. Do not buy this software; do not give Microsoft you credit card information. The university has a licence with Microsoft which allows you to download this software and obtain a key.
You need to log into Azure Devtools for Teaching with your Northumbria StudentID and Password
This should allow you to download Visual Studio Professional for free.
Assessment Scenario
Case Study: Iron Helm
Background
Iron Helm has been in business for the last forty years. It supplies traditional handmade armoury to governments and the entertainment industry. The company prides itself on the artistry involved in make very fine traditional items.
The majority of the work undertaken by Iron Helm is in the production of very fine swords and armour. Various governments buy swords and armour for ceremonial occasions.
Another important source of revenue is the entertainment industry. Each year there are new movies and large scale TV productions which require beautifully crafted items for their main characters. There are only a few companies in the world which are trusted by the entertainment industry to produce these items on time and to the correct level of artistry. Undertaking such work is very prestigious for the company, and is seen as the most important of all the work they undertake. Items for the entertainment industry are also sold at a premium price which reflects the level of craftsmanship put into the items.
Lastly the company also undertakes creating items for wealthy collectors. There is not a huge amount of demand in this area as the prices of the items are very high. Items are made and then there is an attempt to sell them on the company’s website. The items are usually copies of the items made for the entertainment industry as well as some proven designs such as the Excalibur sword.
The main problem the company faces is volatility in the demand for its products. Although there is a fairly constant demand from governments, the entertainment industries demand is very sporadic. However the entertainment industries work is prized most of all by the company.
The deadlines from the entertainment industry are very strict; if the company was late with an order then there would be little change of securing future work from this sector.
Recently a deadline for the entertainment industry was almost missed. If the deadline had of being missed the impact on the company would have been significant. Therefore a new system is needed which will aid management in understanding the current schedule of work. In doing so it will help in three main areas:
- The scheduling of work (order in which to do the work)
- Deciding on whether new contracts can be undertaken.
- Help managers to identify problem early so that mitigating action can be taken.
Swords typically for the entertainment industry will take 80 to 120 hours to make and sell for many thousands of Euros, and armour can take 80 to 300 hours to construct depending on the complexity and the design required. Ceremonial swords will typically take 20 to 30 hours to make depending on the design and sell for no more than one thousand Euros. The system will then calculate the estimate of the total number of hours required to complete the potential order.
Functional Requirements
- Initial enquiry: Due to the sporadic nature of the demand there are times when the company needs to refuse orders it cannot complete. It should be able to provide honest estimates as to when a potential order can be completed. An initial form captures the key information so that an estimate can be given to the client, they are also recorded in the system as an enquiry so that the client can choose to turn the enquiry into an order at a later date. See below for enquiry/order information.
- Production estimates: The contracts manager will quickly assess the time needed to complete the order this will be in hours, and price the work accordingly. The system will then check to see if the work can be scheduled. See below for details regarding automatic scheduling and schedule check.
- Create order: Enquiries can be progress an order status if the client accepts the estimated completion date as well as the price. The order is then automatically placed into the Schedule.
- View schedule: The system show the schedule for next two months as well as highlighting if the current order is being schedule. This is calculated from the start and end dates and the percentage complete
- Record Progress: Allows a percentage complete to be recorded against an order.
Automatic scheduling takes place when the order is created. The order will be scheduled to begin as soon as there is the next period which is not scheduled with an order. This means that the actual scheduled completion may be before the date the order is required by the client. The work to produce items for the collectors market is only carried out when there is a period with no current orders, it appears as scheduled work but is should always be removed to make way for any orders. A check can be made to see if an inquiry can be scheduled to complete before the clients requested completion date. If the work cannot be scheduled due to already scheduled work a check must be carried out to see if the previously scheduled work can be moved to a later date, this can be only be done if the clients required date for that order is not violated.
The company employs twelve artisans who each work 37 hours a week. The company does not usually expect its staff to work overtime. To account for annual leave and sickness the company has the policy of counting only 80% if the total workforce time as available in any given week.
Order information.
Source – Entertainment, Governmental.
Client information.
Date enquiry is received.
Date any order must be completed.
Item List (for each item)
The number required
A name for the item
A short description that may include artwork, photograph.
Information Added to contracts manager.
(Time estimate in hours, Price)
If accepted as an order
(Scheduled Start Time, Percentage Complete)
Minimum Technical Requirements:
- C# visual studio project.
- Object Orientated Domain layer
- Presentational Patten MVP
- Entity Framework 6: code first approach
- Unit testing using the testing framework
- Using the inbuilt database in Visual Studio
Task 1 Research Question (Individual Work) 30 marks
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
Statement “Many commercial software developments use Object Orientated Languages but do not produce Object Orientated Systems. Growing numbers of projects are switching to an Anaemic Domain Model rather than the traditional Rich Domain Model. Monolithic systems which are based on Object Orientated Analysis, Design and Programming are being replaced by micro services architecture which are often procedural in nature.”
Questions you should consider:
- Should we lament the decline in OOP systems?
- Have the changes been influenced by a change in the development methodologies and/or changes to the technologies available, if so, how? And to what extent has this influenced the change?
- Procedural based systems have proven to be problematic in the past, are the new developments using procedural programming likely to lead to the same problems?
- Is pattern based engineering no longer relevant?
Word Limit 2000
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 (Group work) 10 marks
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.
(5 marks)
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. (5 marks)
Word Limit 300
Task 3 Implementing the technical Solution (Group work) 20 marks
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. You must use code first approach. Database first and Design First are not allowed.
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 must include instructions on how to start the application including any valid logon details or user details that you have created.
The code is marked on the following aspects:
Scope technical implementation (5 marks)
Quality of the solution, including architecture patterns used. (15 marks)
Task 4 Testing (Group work) 10 marks
In this task the following learning outcome is assessed.
- 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, and it must documented in the test plan (a formal list of the tests to be carried out and the expected outcome).
Task 5 Evaluation of the development process (Individual Work)
15 marks
In this task the following learning outcome is assessed.
- Critically evaluate the effectiveness of implemented Object Orientated applications
- 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.
Word limit: 1000.
Task 6 Evaluation of the technical solution (Individual Work)
15 marks
In this task the following learning outcome is assessed.
- 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.
Word limit: 1000.
APPENDIX A
Marking criteria
Task 1 Research Question (Individual Work) 30 marks
The criteria used for marking will include:
- The quality and scope of the literature survey.
- The principle arguments and conclusions of the work undertaken.
Mark | Criteria |
27-30 | Demonstration of an exceptional answer to the question, work contains sufficient high quality sources of information which are correctly referenced in the Harvard style. Work should contain no unsupported statements. Answer is near perfect with a detailed and balanced argument and an exceptional conclusion. |
21-16 | Demonstration of an outstanding answer to the question, work contains no major flaws with only major issues with unsupported statements. High quality sources of information which is correctly referenced in the Harvard style. The answer should be detailed and concise, work should reflect a balanced and objective approach and with an outstanding conclusion. |
18-20 | Demonstration of a very good answer to the question, majority of the important statements should be supported with references to high quality academic sources. The answer should be detailed and concise, and balanced there may be some of the important points omitted due to lack of scope. |
15-17 | Satisfactory work exhibits a fair understanding of principles underpinning the questions but it is lacking one some depth, such as exhibiting poor referencing or a lack of reading. Work may show some omissions and may not fully address the questions.. |
13-14 | Weak Unsatisfactory answer which is not balanced lacking any true depth and shows little in the way of reading. There may be some attempt to answer the question but it may contain flaws and significant omissions. |
0-9 | Work is incomplete and/or irrelevant. Work may sure significant sections which are highly derived. |
Task 2 UML Designs and OOP considerations (Group work) 10 marks
Implementable Class Diagram showing patterns and layers 5 marks
Justification of the patterns used or their absence 5 marks
mark | Criteria |
8 – 10 | Outstanding or exception diagram which clearly shows the system layers and the patterns used in the system. Narrative clearly explains the use of patterns and the reasons for the adoption or omission from the work. |
6 – 7 | Work is of good or very good quality. Diagram is clear however it lacks depth in the range of patterns chosen and/or considered. The rational for inclusion of omission has some minor weaknesses |
5 | Diagrams contain flaws which would affect the implementation. Patterns may not be well considered and the narrative explaining the rational lacks depth. The application layers are not clearly defined. |
0 – 4 | Diagrams are incomplete or non-implementable and or the consideration of pattern is either missing or is poor. |
Task 3 Implementing the technical Solution (Group work) 20 marks
The criteria used for marking will include:
- Quality of technical implementation 15/20
- Scope of the technical implementation 5/20
mark | Criteria |
18-20 | A reasonable set of requirements are implemented given the time frame. Importantly the scope of requirements should not be at the cost to the quality. The system demonstrates excellent or outstanding engineering principles such as the use of patterns in the all three layers of the application. Presentation layer should use a pattern to separate responsibilities or presentation and control. |
14-17 | Work is good or very good, the scope or the requirement may be limited but the engineering excellent. Or the scope may be high with a reduction in the level of the engineering principles applied. However the work overall is still very competent and has few problems such as a lack of patterns. |
10-13 | Quality of the application and/or the engineering has problems such as failure to consider patterns in the presentation layer. Code may suffer from problems with the way the engineering principles have been applied. |
0-9 | Scope of the application is poor, significant issues with the engineering principles which are being applied. There is little consideration of the implementation of patterns. |
Task 4 Testing (Group work) 10 marks
The criteria used for marking will include:
- Test plan based on user requirements both negative and positive testing’s
- Tool based unit testing also with test plan.
marks | Criteria |
8-10 | Outstanding or Excellent Testing. Use of dependency injection and mocks where needed, positive and negative in nature. Tests must be at a unit and systems level, and be fully documented and unit level should be fully implemented in Visual Studio in built test suite. |
6-7 | Very good testing, covering a good range unit tests however it may lack some testing or many lack some negative testing. |
5 | Scope of the testing is incomplete this may be due to poor choices of presentation pattern or a lack of scope in the tests chosen. Documentation is poor regarding test. |
0-4 | Testing in incomplete or missing. |
Task 5 Evaluation of the development process (Individual Work) 15 marks
Required items to evaluate
- Critically evaluate selecting requirement.
- Teamwork
- Tool evaluation
marks | Criteria |
12-15 | Outstanding or exceptional evaluation. Well balanced critical evaluation covering all three aspects. Work should identify problems and where applicable this may require quotes from the literature to back up the students statements. Clear evidence that the student has understood weaknesses and has learn from them. |
9-11 | Good or Very good evaluation however it may lack some degree of balance or critical evaluation in some areas or maybe not as strong one of the three aspects required. |
8 – 9 | Critical evaluation is lacking in depth. May contain some degree or inaccuracy or misconception. |
0 – 7 | Missing key elements. Irrelevant material or poor non critical reflection of the work. |
Task 6 Evaluation of the technical solution (Individual Work) 15 marks
Required items to evaluate
Design and Implementation in relation OO (patterns and principles).
mark | Criteria |
12-15 | Overall an excellent evaluation of the technical solution, Identification and reflection of the weaknesses, as well and the achievements. This must include the OO considerations such where patterns were used to good effect or missing or incorrectly used. Security must be discussed including what needs to be protected via encryption this must not be ‘book work’ but directly related to the implementation. |
10 -11 | Good or very good. Weaknesses should be identified however there may be some degree of limited scope in the identification of what patterns could have been applied or some degree or lack of depth relating to the problems of applying cryptography to the system. |
8-9 | Satisfactory evaluation lacks some important items or lacks depth especially in offering alternatives or identification of weaknesses. Security evaluation has weaknesses in scope or type of security being recommended is limited in the understanding of the effect it will have on the application. |
0-7 | Evaluation missing key elements and/or alternatives. The work lacks depth and/or lacks critical evaluation. |

Get expert help for KF7014 Advanced Programming and many more. 24X7 help, plag free solution. Order online now!