A2(a) mark scheme

The main lesson here was supposed to that even simple OOA's can be pretty confusing before one's thoughts become organized. Wording and re-wording the usecases in terms of the classes in the OOA is the only way to make progress. Students spent a huge amount of effort trying to find the answer in the problem statement before knuckling down and inventing a solution. (That's why analysts get paid the big bucks, right?).

In class I've almost come out and admitted that I actually think mostly in terms of some implementation and really use the UML to communicate the overall structure of my thinking. I'm not sure that such true confessions are particularly useful at this stage. In any case the trick appears to be getting above the details of the implementation and sketching out the overall shape of the entity model. I certainly know good analysts who appear to be able to toggle between "programmer mode" and "analyst mode".

Use Cases

The use cases were difficult for some students without some notion of a user interface. It's okay if they refer to totally fictional UI, so long as nouns are defined by their OOA class diagram and verbs by and large correspond to associations. (Naturally, their fictitious boundary classes can be left off the OOA.) Read Rosenberg on use cases if you are not sure what I mean here.

Given the science fiction aspect to the domain please do not penalize students for making stuff up. I left the task very vague hoping that this would allow students to write very general use cases but this is not the route some of them took.

  1. Import Yield Files
    The Yield files, in an unknown John Deere XML format, must be read in and converted to the objects of this analysis. No more details need to be provided about where the information is coming from, but some indication of what kind of objects are created as a result should be given.
  2. Update Historical Data.
    This is the most interesting use case in terms of the model. Information that the problem statement describes as residing in the imported Yield Files is used to update the network of objects representing historical data. This use case may be invoked from the "import yield file" but needn't be. The source of all the information is vague but the shape of the destination objects should not be.
  3. Enter (or edit) current Overview Crop Plan.
    This use case is not in the problem statement explicitly, but somehow information about which fields are to planted with which crop must make its way into the system. Might be cast as "import overview crop plan". Might be cast in terms of hypothetical user interface. The key is that some object oriented description of what an overview crop plan is must be given.
  4. Create Detailed Crop Plan from current OverView Crop Plan
    It is explicitly not known what algorithms are used to create a detailed plan from historical data and an overview crop plan. However, it should be clear in the students mind that a network of objects is created that describes what is going to be done to each Quad. Historical data requires the co-existence of these networks of objects from the past.
  5. Print Insurance Report
    Requires little more than creating a report describing the overview crop plan.
  6. Print Shopping List
    Report that elaborates the overview plan with the total amounts calculated from the detailed plan.
  7. Export Detailed Crop Plan to XML Field Files.
    Clearly, no detail need be given about the output format, but the network of object traversed during export must be described.

Domain Classes

Presumably most solutions will be based around the 1 to many between fields and quads. Students will relate overview and planned amounts and types of Seed (etc) differently. An association class may be used to carry the overview plan and also the detailed plan. (See the problem statement for a2b.) I don't think I saw a single student at office hours that used association classes.

Students had trouble accommodating the historical nature of the data. Clearly an analysis that did not require an entire copy of each year's object network is preferable. For instance, if students simply used attributes in the Quad to store the amount of seed they would have to make a copy of the all Quad objects for each year of data. The association class approach is better in this way.

Remember, simplicity is highly desirable. The model could be quite simple.

Mark Scheme

marks Comment
5 Appropriate Use cases. The use cases above should appear in the set written by the student. Don't penalize for extra use cases (it's penalty enough to have wasted the time). The students have been warned that relationships between use cases in the use case diagram are hard to understand and NOT useful in this case. Scribble complaints but don't penalize unless the relationships on the use case diagram are far off the mark.
5 Use case text corresponds to class diagram in that most nouns and at least some of the verbs correspond to classes and associations in the OOA class diagram. A hypothetical user interface is okay -- but the Boundary objects it implies should not appear in the OOA. somewhere.
5 Class Diagram is an analysis diagram (no methods).
Multiplicity is right.
Associations are named sanely.
NB: Association classes are the way to model this assignment most easily. A diagram taking this approach will appear as part of the problem statement of 2b.
5 Check to make sure the detailed plan is modeled. The main thrust of the system is to create detailed plans. Hence, I suggest 5 marks and a quarter of your effort should be set aside for this. There must be some way to get at the amount of seed, fertilizer and poison for each quad of each field for the current year and each year of history.
Don't worry too much if dollar amounts are sprinkled here and there. Students that didn't see to use association classes may have quite a messy solution for this aspect of the analysis.

Suggested quality to marks:
5 Excellent superior grasp of the subject matter no problems
4few and minor problems
3 okay a few more problems, none major
2marginalsome slight evidence that they understand.
0-1inadequatelittle to no evidence of even a superficial understanding of what is required

General Comments

David Penny made some good comments last year about how to mark OOA.


Mathew Zaleski
Last modified: Tue Nov 18 07:03:21 EST 2003 $RCSfile: a2markScheme.html,v $ $Revision: 1.1 $