Skip to content

Commit 454b927

Browse files
updated readme for project 7
1 parent b0f0b05 commit 454b927

1 file changed

Lines changed: 42 additions & 41 deletions

File tree

project-overview/README.md

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
1-
PROJECT SIX RELFECTION
2-
3-
Madi Crowley, Melissa Kohl, Michelle Zhang, and Sage Levin
4-
5-
For project 6, we decided to add a HistoryManager class so that we could track each action - that is, adding a note, moving them on the Pane, and grouping them, etc.. In doing so, we used a stack to store all the actions so that we can easily undo and redo actions, and the creation of this class makes it so that we do not have to modify any of our other classes to deal with modifying other classes. We also added a ButtonHandler class so that we could deal with the menu items being enabled/disabled when appropriate.
6-
7-
Some of our original implementation has changed. We spent our first time meeting refactoring what we had after we submitted Project 5; we made NoteHandler so that we could move all the handler methods into static NoteHandler. Sage notably removed the TuneComposer's dependency NoteHandler's variables, following the Law of Demeter. After doing our code review, we resolved a majority of the issues noted on GitHub: keyboard shortcuts being platform-independent, grouping behavior of gestures, refactoring, renaming methods and variables, dealing with the the Gesture rectangle getting out-of-synce, and the issues relating to KeyFrame upon launching the program.
8-
9-
Our strategy to add a HistoryManager class, as noted above, was so that we did not have to modify anything; rather, we extended functionality through the addition of this class, which does adhere to SOLID programming principles. However, in practice, this has issues. In fact, the actuality, there is some pretty ugly code. There is a lot of cross-class dependency, and we are not keeping track of the changes - we are deleting and re-creating things as we go along. We looked ahead at Project 7 and realized that some of our strategies regarding Project 6 will have to completely change.
10-
11-
As for Planning Poker, we tried. We estimated 60 story points from breaking down the expectations for the project into 6 stories, which meant an estimated velocity of 2 for about 10 hours of work. In actuality, the project took about 16 hours. We did not anticipate undo/redo being so complicated when it came to tracking where they are on the Pane. Since we did not do planning poker for the previous project, we can't really compare what we estimated.
12-
13-
Below are our planning poker breakdowns:
14-
15-
1. Updating the menu
16-
0 0 0 0
17-
J J J J
18-
19-
2. Undo single action
20-
1.5 hours 1.5 hours 13 hours 2.5 hours
21-
3 3 K 5
22-
23-
3. Repeated undo
24-
1.5 hours 1.5 hours 1 hour 30 minutes
25-
3 3 2 A
26-
27-
4. Redo
28-
1 hour 1 hour 30 minutes 30 minutes
29-
2 2 A A
30-
31-
5. Disable when appropriate
32-
30 minutes 30 minutes 1.5 hours 2.5 hours
33-
A A 3 5
34-
35-
6. Disabling other menu items when appropriate
36-
1.5 1.5 1.5 30
37-
3 3 3 A
38-
39-
As a team, we spent the first time re-factoring with Melissa at the computer. The next time we met, Michelle and Madi worked on figuring out how to implement enabling/disabling menu item options as well as updating the menu in SceneBuilder as well as dealing with fx:ids in FXML so that menu items could be accessed and enabled/disabled, and Sage and Melissa worked on writing HistoryManager.java so that undo/redo could be later implemented. After that, we worked together at a single computer, working to merge the ideas and make sure that undo/redo could account for all actions on the Pane.
40-
41-
For the next time, we'd like to improve the elegance and quality of the code we wrote for Project 6, as well as resolve some other issues. Refactoring is definitely in the plan. Next time we also hope to benefit more from Planning Poker. We aim to also continue meeting on Tuesdays and Thursdays 4-6.
1+
PROJECT 7 REFLECTION
2+
3+
For project 7, we added TuneParser, StringToXMLConverter, and ClipboardManager as classes to implement the cut/copy/paste behavior and the open/save file functionality.
4+
5+
Seeing that we did not get project 6 feedback, we spent some time addressing the issues noted in our respository. Also, like previous projects, our first meeting session consisted of refactoring. This time around, we added a ClickHandler class to deal with all mouse events to reduce the cross-class dependencies and to minimize coupling. Notably, promptUnsaved() in the FileManager class was pretty complicated as well when it came to some of our new implementation.
6+
7+
As for elegance, we believe that our TuneParser is particuarly elegant since it deals with all the parsing in a single class, rather than interspering the responsibilites throughout all the other classes. This follows the Single Responsibility Principle. By thinking ahead in prior projects, we also benefitted partially from actively trying to adhere to the Open-Closed Principle -- some of our classes did not have an additional modifications in the methods, but rather, extensions, so that we could implement what was needed. Technical debt is still very real, and we did run into issues. With a lot of various adjustments, we were able to implement the new features. While coding, we also made sure to consistently name classes in a style that mirrored our previous projects; we also double checked all the parameters and their order.
8+
9+
As for planning poker -- we estimated 72 story points. This again meant an average velocity of 2 for an estimated 10.1 hours of work. This project took around 16 hours. Cut/copy/paste had various small bugs that we didn't anticipate which added some time, and we did except file handling to take up a lot of our time. Thankfully, our parser was functioning properly from the get go and we were able to allocate our time to implementing the rest of the expected functionality without too many time constraints.
10+
11+
Below are our planning poker breakdowns:
12+
13+
1. Menu changes
14+
J J J J
15+
0 0 0 0
16+
17+
2. Cut/Copy
18+
2 2 3 2
19+
1 hour 1 hour 1 hour 1.5 hours 1 hour
20+
21+
3 Paste
22+
3 3 3 3
23+
1.5 hours 1.5 hours 1.5 hours 1.5 hours
24+
25+
4. About dialog box
26+
A A 2 A
27+
.5 hours .5 hours 1 hour .5 hours
28+
29+
5. File open/save/save as
30+
5 5 5 5
31+
2.5 hours 2.5 hours 2.5 hours 2.5 hours
32+
33+
6. Release preparataion
34+
2 2 2 2
35+
1 hour 1 hour 1 hour 1 hour
36+
37+
7. Refactoring
38+
3 5 5 5
39+
1.5 hours 2.5 hours 2.5 hours 2.5 hours
40+
41+
As for working as team, we followed what worked: refactoring first, and then working as a group to talk through concepts and plans. We programmed like we usually did for the most part -- that is, huddled around one main computer and one main typer/programmer. We worked through a rota of who typed, and those who were not on typing duty were on other computers searching and trying things as we worked on the project.
42+
We're excited to finish working on TuneComposer next time -- all of our team strategies have worked well so far so we are hoping to keep with it for just a few more days!

0 commit comments

Comments
 (0)