Wednesday, February 29, 2012

Subordinate Role Project – Design Phase

What up! I’m back here with some updates.

So, the 2nd Project is over (we are actually quite into the 3rd one right now) and I will try to provide a small recap on it. This project consisted on two (2) phases: Design and Implementation. The idea for the first part of the project was for my team to come up with a design that satisfies a specification provided by the professor and then we would handle the finished Design Document to an Implementation Team (not my team) for the next phase. Likewise, my team was handled another team's Design Document for the Implementation Phase, but more on that part in the next post.

In our particular case we were handled the Spin specification. This requiremeconsisted in a large list of items that could be rotated (spin) between two (2) provided indices. When I say "rotate" I mean that all items inside the given range are flipped in their ordering. In order to illustrate this better look at following provided example:


Well, my premise for designing was keeping things simple and close to the original idea stated in the specification, so after some debate inside the team we decided to go with my proposed doubly-linked list mainly because it provided the following advantages:

  • Insertion (at the head and tail of the list) and removal of nodes can be done in constant time.
  • List can be traversed forward or backward starting from either the head or tail of the list.
  • Searching by node index inside the list can be faster since the operation can start from the end closer to the desired node.


I personally think we came up with a pretty solid and efficient design, and the package we provided to the Implementation Team was very detailed because it included: design overview, class diagrams, sequence diagrams, a suggested implementation schedule, test code and expected results.

Finally, and from the feedback we got from the Implementation Team, I can affirm you that my team’s hard work paid great dividends: the Implementation Team did not complain about the work placed upon them, and they contacted us no more than a couple of times (and were just clarifications), so this is how I would some it up “The more time you invest in producing thorough and fault-tolerant design documentation, the less time you will probably spend fixing possible bugs when the implementation phase comes in (support)”.

I will be back really soon with comments on the Implementation Phase of this project. Adios!

No comments:

Post a Comment