8.3.0.10

7 — The Clean Up

Due Wednesday, 10 November 2021, 11:59:59pm

Delivery Place the product of this milestone into a repo-level directory named 7:

  • bugs.md, the list of fixed correctness bugs exposed by any failing test;

  • reworked.md, the list of reworked code pieces; and

  • todo.md, a todo list of still outstanding items that would improve the code base.

These are to be formatted as specified below.

Clean-up Tasks

Like all software projects, your code base has accumulated a significant technical debt, partly due to the usual kinds of disagreement between your "customer" and you, mostly due to the usual deadline stress.

Your team manager has decided that the project needs to reduce this debt now, mostly because you have a new partner. This will give you a chance to work through design rationales, document all critical and difficult to decipher code snippets, and assess the qualities of the code base in general.

Step 1 Compile the feedback you have gotten for the past six milestones: failing integration tests, missing unit tests, demands for improved data definitions, and so on. If you have items of your own—in particular, failing unit tests—add them.

Group this list of potential todo items around (1) data representation and (2) functionality per data representation. Summarize the items appropriately. Simply submitting all of your feedback in raw form is inappropriate.

Each summary is a todo item. Format the list as shown in figure 4.

Order these todo items by priority, from highest at the top to lowest at the bottom, and place the list in todo.md.

As you work through issues, mark the finished items with an "X" between the two brackets.

[ ] need a data definition and interpretation for the `map` structure;

... other related bullets elided ...

 

[ ] delete inconsistent and superfluous purpose statement,

create unit tests for `int get_segment_number_from(Connection c)`

... other related bullets elided ...

 

[ ] inspect the failing integration test from `5/yellowstone/Tests/1-in.json`

... other related bullets elided ...

Figure 4: The todo list items

Step 2 Create bugs.md and reworked.md.

Step 3 As you work through this todo list, document the changes in the one of the two files as appropriate:

the `acquire_conn` function failed to check whether it exists on the map

failing unit test prior to fix: ... github.ccs.neu.edu ...

fix: ... github.ccs.neu.edu URL to commit ...

 

the `deserialize` function for map did not remember the visualization hints

for cities

failing integeration test prior to fix: ... github.ccs.neu.edu ...

fix: ... github.ccs.neu.edu URL to commit ...

Figure 5: bugs.md

 

missing data definition for the Action representation

we defined Acquisition as ...

... github.ccs.neu.edu URL to commit ...

 

map: missing data interpretation for the Map data representation

we added an ASCII diagram to the `map.py` file and explained how

connections in this diagram map to data representations

... github.ccs.neu.edu URL to commit ...

Figure 6: reworked.md

Learn You will want to learn how to squash git commits for this exercise. Google "interactive git commit" or "squashing git commits". While squashing isn’t strictly needed, anyone who reads git commits for design, rework, and bug-fix information will prefer to have all changes on a single page. You might as well figure out squashing now.