COMP 405
Spring 2015
|
HW02: Extending
the State Pattern Demo
|
 |
As with all assignments, the first part of the assignment is to peer
review 3 groups' work from the
previous assignment. The peer review
assignments are posted on the HW01 wiki page on the SharePoint site.
The HW02 groups are the same as the HWO1 groups.
The goals of this assignment are to take your HW01 demo and do the following:
- Extend your code to be able to dynamically, i.e. at run-time, modify the
states involved and the transition graph
- The changes to the transition graph must include at least some
changes to the transitions between existing states. That is,
the new transitions cannot only involve the new states.
- Modify your system to use lazy evaluation. Possibilities
include the lazy evaluation of
- The states
- The transitions
- Other properties and/or behaviors
- Ideally, the above modifications would involve minimal changes to your
codebase. Mostly likely, that was not the case to some degree.
It's possible that you may have to re-architect some significant portion of
your system and/or rethink what your system does and how it does it.
In your discussions, explain
- Why you believe that such changes were required.
- Look for mistakes that were made.
- Look for misconceptions that affected how you thought about the
problem.
- For instance, look at one's initial conceptualization of the
scope of the application -- for instance, were you thinking
about the system in a too narrow context?
- Perhaps you didn't properly understand the design patterns
involved and how thinks should/could be decoupled in the system.
- Etc., etc.
- In all cases, exactly what are the differences in how you
did think about the system and how you should have been thinking
about the system? Be specific and complete!
- Simply saying something to the effect of "we didn't know how to
do it from what we had" is not an
acceptible reason. Look for solid engineering
and/or theoretical factors that drove the situation.
- What changes you made to the system and
why you made them.
- What was acheived by making the changes? What
features and capabilities were added?
- What did you give up by making the changes you made?
- Include the pieces of the this discussion that do not fit in other
parts of the general discussion template in the "Additional Notes"
section or make a new section for it if you prefer.
Please include a wiki link directly to your HW01 wiki page. The
link should look something like [[HW01 NetID1,
NetID2]] (Just type the [[ and then scroll down the list of possible link targets until you find your HW01 page.)
© 2015 by Stephen Wong