CompSci 308
Fall 2018
Software Design and Implementation

VOOGASalad : API Review Questions

Pair up with someone from a different team, but a similar area within the project, and discuss the following questions.

Each person should discuss the pieces of the project for which they are responsible, although you can also discuss higher level design issues that were addressed in your team meetings this week. Complete each part below together before moving on to the next part.

For the parts below, each person should listen to the other's complete ideas before expressing their own opinion. Feel free to ask questions to clarify your understanding of the design or its justification, but not to be critical of the design. After the person is done with their thoughts, then you can provide constructive comments about the design: if you like it, explain why; if you don't, explain why and provide an example of where you think it fails. Together, try to come up with a better design, instead of just telling them what you think is the "right" way to do it.

Part 1

  1. What about your API/design is intended to be flexible?
  2. How is your API/design encapsulating your implementation decisions?
  3. How is your part linked to other parts of the project?
  4. What exceptions (error cases) might occur in your part and how will you handle them (or not, by throwing)?
  5. Why do you think your API/design is good (also define what your measure of good is)?

Part 2

  1. Discuss the use cases/issues that you are responsible for: are they descriptive, appropriate, reasonably sized?
  2. Estimate how long you think each will take and why. What, if anything, makes estimating these tasks uncertain?
  3. What feature/design problem are you most excited to work on?
  4. What feature/design problem are you most worried about working on?
  5. What major feature do you plan to implement this weekend?

Submission

Use Gitlab's markdown format to record what each person got out of the discussion in a file called API_REVIEW_NETIDs.md and push it to the appropriate team's project repository in the doc folder by the end of class. Make sure the file includes both people's name that worked on it.