HW3 Part 3
This is an individual assignment.
No late submissions will be accepted. (Note: this is due the week of the midterm)
You will be repeating (parts of) Part 1 and Part 2 of Homework 3, by yourself, but integrating with the Microsoft Band instead of FitBit. You’ll be provided with a sample file export from the Microsoft Band. All the fields in the file must be stored in the database, viewable, and editable by the HCP.
You’ll need to do the following:
Get your own copy of iTrust, from Part 2, in your own individual repo for HW3P3. The specific repo you'll use will be assigned and will magically show up in your NCSU GitHub account sometime during Part 2.
Update the Homework 3 Part 1 use case [UC87] to include requirements for the Microsoft Band. Include these updated requirements in your GitHub wiki. Data file can be found here.
Add GitHub issues for the missing requirements
Implement the missing features.
Implement unit tests to cover the new features. In the GitHub wiki, make a test plan that includes: a) a mapping from the GitHub issues to the relevant test file(s), b) an explanation of how you selected your test values for the unit tests, and c) screen shots from a coverage tool of your choice to demonstrate code coverage of your new features. For part b), you must use each of the following techniques at least once for input selection: boundary values, equivalence classes, and diabolical values. Clearly state in your test plan where you used each technique, and why.
Add screen shots of the new features to your GitHub issues. Close the issues.
Extra Credit*:
Implement logging for all fitness tracking data transactions (including FitBit and Microsoft Band).
Using the Logging information in UC11, UC52, and UC4 as guides, design a logging table for UC87 with transaction codes (e.g., 8700: manually upload fitness data, 8701: file import of fitness data, 8702: edit existing fitness data, 8703: view summary report, etc.). Of course, your design is likely to differ, and it needs to be more complete with respect to the subflows (inclusive of the changes you introduce as part of the required parts of HW3P3). Note that the transaction codes must start with 87 for the use case in HW3.
Implement the logging feature for the FitBit and Microsoft Band transactions. Write unit tests to ensure the logger is working as expected for all the transaction codes.
Include the following in GitHub wiki page(s).
The logging design table covering all the UC87 subflows
Screenshots of the logger in action, showing each of the the new transaction codes (this can be multiple screen shots)
Test suite design for the unit tests for the logger. This must include test suite design information (e.g., inputs, expected outputs) and hyperlinks to the relevant test files in the repo.
A new/edited design diagrams from HW3P2 or HW3P1 (whichever is most recent). Make sure you clearly identify the changes, and state why they were necessary.
*All steps must be completed to receive any extra credit, though full points on the extra credit is not guaranteed by completion.
Submission will be handled via GitHub. Your final submission for the homework is your last push to the master branch of GitHub before the submission deadline. Jenkins will pull and build the project to automate part of the grading.