In this lab, you will work through Kruchten's guidance for the elaboration phase and compare it with your work on CodeGrader.
NOTE: In a one-semester project, it is not possible to deliver a professionally constructed project of the complexity of CodeGrader. Realistically, we will deliver the end-product of the elaboration phase: an architecturally sound prototype that demonstrates all major functionality and can become the basis of the construction phase.
You will work with your team. One of you writes up a Track+ issue summarizing your results. (Title: Lab 12 / Team name). One or two teams will be randomly selected to present their result at the end of the class.
You should follow Kruchten's chapter 7.
1. Read through Kruchten ch. 7 section "First Iteration in Elaboration"
a) The author talks about "critical scenarios". In your team's opinion, what are your top three critical scenarios (i.e. happy day or exceptional scenarios in use cases) in CodeGrader?
b) What makes them "critical"?
2. The author suggests: "Detail the flow of events of roughly half of the use cases you intend to detail in Elaboration, in order of decreasing priority"
a) How do you go about detailing the flow of events?
b) Which are the use cases that you think are worth detailing in the first iteration, and in which order?
3. The author talks about "architectural risks".
a) What do you consider the top two architectural issues in your design? (Omit the choice of JSF/EJB; I take responsibility for that risk.)
b) What can be done to mitigate these risks early?
4. Read through Kruchten ch. 7 section "Second Iteration in Elaboration".
a) Your team has 4-5 people and about 10 days for each iteration. How would you compare the complexity of each person's task with the complexity of a 20 day homework assignment?
b) Exactly which features do you expect to work after the first iteration? After the second iteration?
5. Kruchten tells you to "Design and implement a preliminary version of the database".
a) Why does he label the design as "preliminary" whehn this is the final phase?
b) Why are we not concerned about this step in CodeGrader?
6. Kruchten is rather vague on testing. Building testability into a product doesn't seem to rate high on his agenda. What additional steps is your team doing in CodeGrader to ensure a sucessful testing strategy?