- May 15, 2020
IntroductionAs outlined in the Assessment Task 1 document, both assessments (Assessment Task 1 and Assessment Task 2) comprise parts of one project. Assessment Task 1 focused on updating an old program to load and validate data from three files with new formats, and designing and implementing several unit tests.Assessment Task 2 will use the original version of the old program and old file formats. This will ensure equity as everyone is starting Assessment Task 2 using the same code and files.Assessment Task 2 will focus on:implementing the recursive Greedy algorithm (from Practical 6) to create a new crozzle based on data from three files,ensuring that this new crozzle is valid,designing and implementing unit tests for the recursive Greedy algorithmreporting on the unit tests, anddesigning Azure and AWS cloud solutions.Creating a new valid crozzle is where you write nearly all of your new code for Assessment Task 2. Your code needs to determine which letter sequences from a file, that when connected in some arrangement, produces a high or maximum score, and adheres to all constraints and configurations.You will also write code for unit tests. Creating one new crozzle must be based on:implementing the recursive Greedy algorithm from Practical 6a crozzle text filea configuration text filea sequences text filecrozzle constraintsconfiguration constraintsletter sequence constraintstime constraintsscoring constraintsText File FormatsThe formats of the crozzle text file, configuration text file, and the text file of letter sequences is the same as that for the original old program that you started with for Assessment Task 1. See Formats of Input Files.docx for details.However, as you are creating a new crozzle from an empty grid, ROW and COLUMN items will not be provided in crozzle text files for Assessment Task 2.Software RequirementsYour software solution for Task 2 is an extension of the old program. It requires functionality to:1. Access and read files that are hosted on Azure. These files are crozzle text files, configuration text files, and text files of letter sequences.Your code for accessing and reading such files can be based on the WebClient code as demonstrated during class.2. Obtain URLs from the user as you will not be able to use an OpenFileDialog to browser for and select a file on the Azure web site.To obtain a URL from the user via the GUI, you must include some controls such as a ComboBox and a “GO” button as depicted in Figure 1. But you must not hardcode the URLs.Figure 1.Create a valid crozzle based on letter sequences, constraints and configurations.In general, there might be thousands or millions of crozzles that can be created from a list of letter sequences, grid size, other configuration values and constraints.Ideally the implementation of the recursive Greedy algorithm should find one of these crozzles with the maximum score, but practically this might be impossible in cases with large grids and a large number of letter sequences.As your algorithm might not meet this ideal goal, your program must attempt to obtain a large score within a 400 second time period. That is, after 400 seconds of runtime, your program must:stop looking for other crozzlesdisplay the highest scoring crozzle that your program founddisplay the score of that crozzleUnit Test DesignsYou are to design unit tests for your recursive Greedy method.Unit Test ImplementationsYou are to implement each unit test design.Test Results ReportYou must produce a Word document of professional quality to show the results of program testing. Similarly to Assessment Task 1, this document must include the following:a title pagea contents pagean introduction pagea document body that contains numbered sections, one section for each Test Scenario. Each section will include:a justification for each test case,a justification for each test case that faileda justification for each test case that was not implementedwhat you learnt from this scenarioa completed Test Scenario form including values for Test Method name, Actual Data, Test Results, and any Test Commentsan ordered list of data or filenames used by Test Cases (as described inAssessment Task 1)Azure and AWS Deployment ReportYou are to write a comprehensive report, including diagrams, on how to deploy your solution to an:Azure Scale SetAWS Scale Setwhere each VM runs a Web Service to compute a crozzle based on the recursive Greedy algorithm.The client invoking this Web Service provides the name of the crozzle file, a starting sequence and its location and orientation.This Web Service returns the score, starting sequence and its location and orientation.The client uses the returned score to determine whether a better scoring crozzle has been found. If this score is larger than the previous best score, the client can then store this score, starting sequence and its location and orientation as the better scoring crozzle.The client only needs the score, starting sequence and its location and orientation because it can regenerate this crozzle, if needed, based on this starting sequence and its location and orientation.