c#代写 SIT323 Practical Software Development

SIT323 Practical Software Development, Trimester 2, 2018

 

Assessment Task 2

 

 

 

  1. Introduction

 

As 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 algorithm
  • reporting on the unit tests, and
  • designing 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:

  1. implementing the recursive Greedy algorithm from Practical 6

 

  1. a crozzle text file
  2. a configuration text file
  3. a sequences text file

 

  1. crozzle constraints
  2. configuration constraints

 

  1. letter sequence constraints
  2. time constraints
  3. scoring constraints

 

  1. Text File Formats

 

The 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.

 

 

 

 

 

 

 

 

 

Page 1 of 4

 

SIT323 Practical Software Development, Trimester 2, 2018

 

Assessment Task 2

 

  1. Software Requirements

 

Your 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.

 

The URLs for these files will be:

http://sit323.azurewebsites.net/Task2/Test1-Crozzle.txt

 

http://sit323.azurewebsites.net/Task2/Test1-Configuration.txt

 

http://sit323.azurewebsites.net/Task2/Test1-Sequences.txt

 

http://sit323.azurewebsites.net/Task2/Test2-Crozzle.txt

 

http://sit323.azurewebsites.net/Task2/Test2-Configuration.txt

 

http://sit323.azurewebsites.net/Task2/Test2-Sequences.txt

 

http://sit323.azurewebsites.net/Task2/Test3-Crozzle.txt

http://sit323.azurewebsites.net/Task2/Test3-Configuration.txt

 

http://sit323.azurewebsites.net/Task2/Test3-Sequences.txt

 

Your code for accessing and reading such files can be based on the WebClient code as demonstrated during class.

 

  1. 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.

 

Page 2 of 4

 

SIT323 Practical Software Development, Trimester 2, 2018

 

Assessment Task 2

 

  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 crozzles

 

  • display the highest scoring crozzle that your program found
  • display the score of that crozzle

 

 

  1. Unit Test Designs

 

You are to design unit tests for your recursive Greedy method.

 

 

 

 

  1. Unit Test Implementations

 

You are to implement each unit test design.

 

 

 

 

  1. Test Results Report

 

You 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 page
  • a contents page
  • an introduction page
  • a document body that contains numbered sections, one section for each Test Scenario. Each section will include:

 

  1. a justification for each test case,
  2. a justification for each test case that failed
  3. a justification for each test case that was not implemented

 

  1. what you learnt from this scenario
  2. a completed Test Scenario form including values for Test Method name, Actual Data, Test Results, and any Test Comments
  3. an ordered list of data or filenames used by Test Cases (as described in Assessment Task 1)

 

 

 

Page 3 of 4

 

SIT323 Practical Software Development, Trimester 2, 2018

 

Assessment Task 2

 

 

 

  1. Azure and AWS Deployment Report

 

You are to write a comprehensive report, including diagrams, on how to deploy your solution to an:

 

  1. Azure Scale Set

 

  1. AWS Scale Set

 

where 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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 4 of 4