Project 2 - Design
For the first phase of Project 2 our team, Team 8 - Typescript, was assigned to create a design of search list. A program designed based on a linked list methodology with a means to search for a specific node and return it’s distance to the end of the list. After the lecture I posted some basic templates to my group page. Since I am a synchronous student I have the earliest access to the lectures and assignments. I wanted to make sure my group had all the information posted in order to get a start on our design documents.
I created a word template for our design document and a template for the project 2 design wiki. I also posted to the group chat about my updates so that we could plan a meeting. Our team arranged a meeting for Sunday at noon. Our goal was to get the majority of the design work done and assign any remaining tasks. We met up at reviewed the specifications for the search list we would be designing. Our next step was to create a UML diagram that would help us map out and understand how the class worked.
Once the UML diagram was complete we began work on the design document itself. We discussed various ways to optimize the methods in order to achieve all the expected functions and began detailing the parameters, return types, and visibility of the methods. During this process we also made several revisions to our UML structure as we changed aspects of our design.
For the add and remove functions, we chose to design them to be overloaded based on the type of action intended. For example, add can take in a string variable and it will add it at the first spot where it is alphabetically after the node in front of it. Or it can take in the string and a number representing an index location and it will add the node at the desired index.
We analyzed several options for add, remove, and find but determined that linear time was likely the best we could optimize the runtime due to a non-ordered list, and having to check the list for duplicates. We discussed structures like string tries and hashing that could optimize the search or add functions but ultimately decided that those would be outside the scope of the project and make things difficult for the implementation team.
We completed the details for our design document and UML diagram for delivery to the implementation team next week.