首页 > > 详细

辅导 Implementation & Testing讲解 留学生Java程序

Project: SurveillanceManager

Project

Implementation & Testing

Instructions for Implementation & Testing

Implement your software. You may need to adjust your algorithms and data structures from Part 1 as you go- if so, keep track of your changes so that you can discuss them in your experiment report in Part 3.

Implement and Test Your Software

Required Classes and Methods

To enable automated feedback through Jenkins (https://go.ncsu edu/jenkins-csc316), your implementation must meet the following criteria:

Your Eclipse project must be named SurveillanceManager

You must implement SurveillanceManager and ReportManager classes in an edu.ncsu.csc316.surveillance.manager package.

You must provide a user interface that ends in *UI. java (for example, SurveillanceManageruI. java) so that your black-box test cases can be executed. You do not need to implement a GUl. You can implement a simple command-line user interface.

Implement your software. You may need to adjust your algorithms and data structures from Part 1 as you go.

Policies & Reminders

You must implement a piece of Java software that solves the problem described in Part 1.

You must use Java, Eclipse, SpotBugs, PMD, CheckStyle, and EclEmma.

Your software must not have any Scary or Scariest FindBugs alerts.

Your software must not have any PMD alerts.

Your software must not have any Checkstyle. alerts.

You must fully document your source code with JavaDoc.

You must commit your project code to your assigned NCSU GitHub repository.

You must JUnit test your software.

You must maintain 100% method coverage of nonUl source code.

You must maintain at least 80% statement/line coverage of non-UI source code. To help Jenkins correctly identify your user interface code, name the class that contains your user interface code with something ending with "Ul.java"-for example, ManagerUL.java

You must fully document your test code with JavaDoc.

Jenkins will NOT run any Teaching Staff test cases until you satisfy the following conditions:

Your software must not have any PMD alerts related to JUnit test cases.

Your software must have 100% method coverage of non-Ul source code.

Your software must have >=80% line/statement coverage of non-Ul source code.

You cannot use any existing Java data structure libraries (for example, ArrayList, LinkedList, HashMap, TreeSet, etc.). You must create your own data structure(s) from scratch

You cannot use any data structures more advanced than those discussed so far in class. For example, you cannot use hashing to complete Project 1, which focuses on list-based maps.

Test Timeouts

If your software fails to meet efficiency targets, then the timed test cases on Jenkins will fail and display a stacktrace. Stacktraces that are generated when a test times out are not indicative of where your software is inefficient! For example, if the stacktrace indicates the InputReader was executing, that does not mean the process of reading the input file is inefficient. Instead, you need to examine your algorithm implementations:

are you using efficient data structures?

is there a logic error in your data structure implementation (for example, does addLast in your linked list ensure O(1) runtime instead of O(n) runtime?

is there a way to improve efficiency of your algorithms?

if you are implementing any code that performs a type of search, are you using a Map to store the searchable collection of data instead of iterating through loops to find elements that match?

if you are using sequential loops, is there a way to combine the logic into a single loop?

are you building report strings efficiently using StringBuilder instead of concatenationwithin-a-loop? (see the video on experiment studies (reviewDesign) embedded within the 'Review the Teaching Staff Design' page of this project writeup)

Sample Test Files

You must create your own test input files. In industry, you will usually have to create your own test input files and test data from scratch. Feel free to create and share your own test input files on the message board.



联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!