Assignment 2 (a) Handout CSC407H fall 2003

Your task will be to write several use cases and prepare an object oriented analysis in UML for a proposed software system.

Synopsis

Old MacDonald has a farm. On this farm he has a lot of sophisticated John Deere http://www.deere.com equipment. Young MacDonald (Old's son) has a computer engineering degree from the big city. Consequently they have purchased Deer's "Green Star" system. This enables them to use Global Positioning System (GPS) technology to map the yield of each 25 square meter (5m x 5m) "quad" of their field. In addition, their tractor can control its implements (seed drills and sprayers) on a per-quad basis. (A reasonable synopsis of the technology exists at your friendly local agricultural college website, for instance, colorado state.) In a nutshell, these systems allow the farmer to adapt the seed, fertilizer and pesticide application to the needs of each quad of each field. in response to the yield obtained in previous years. Given that the cost of tilling is dominated by energy and capital there is a real opportunity to increase profit.

The MacDonalds' intention is to import the yield data for each field into a new historical database. Then, over the winter, they will compute and evaluate alternate plans for the following season. Farmers routinely create a overview crop plan that describes which fields are to planted with which crop. To make use of their new gear the MacDonalds also will have to create a detailed crop plan. The detailed plan will detail the amount of seed, fertilizer and pesticide that should be applied to each quad of each field the following season.

Unfortunately, available software did not live up to Young's expectations, so he has asked us to help him perform the OOA for a new system. Young's strategy is that we should start by analyzing the problem domain without worrying about the details of the database. Then, in a later phase of development, perhaps after our involvement has ended, an efficient data model will be created.

The MacDonalds don't need city slickers like us us to help them with the agricultural algorithms but hope that some object oriented expertise early in the software project will lead to better software in the future.

Thus, the MacDonalds are "all dressed up, but have nowhere to go" in the sense that they have all the hardware in place but are missing essential software. In the proposed process following their combine, tractor, implements, network and servers are capable but their back office is not! For instance, their crop plan is a still a paper document and their historical database is non-existent.

At this stage we will attempt to capture the main classes and use cases needed to describe the domain and system operation. If Old MacDonald likes our work we have a good chance of winning the development contract. He might even let us drive his combine.

Outline of process

The MacDonald's series 100 combine automatically records grain yield as it harvests. Essentially all the farmer needs to do is to press the "Field Start" and "Field End" buttons and the combine will save the yield data in an XML file. The yield data for a field is a the amount of grain harvested (in kilograms) for each quad of the field. Each quad is identified by its 64 bit GPS id. The assumption is that the fields were cultivated according to the overview crop plan for the current season. When within range of the barn's IEEE 801 wireless network the MacDonalds will upload the XML file corresponding to each field to their server. During the busy harvest season this is all they have to do.

Later, after the harvest is in, the MacDonalds will import their crop plan and the XML yield files into the proposed system. This system will associate the yield for each quad with the actual crop planted (wheat, barley, soy, etc) and the amount, and cost in dollars of seed (in kg), fertilizer (in kg) and pesticide (in MegaToxins) the quad of field received. By integrating the yield data with the crop plan for their farm they bring their historical yield database up to date.

Once the mundane work of updating the historical data is complete the MacDonalds will compute and evaluate alternate proposed crop plans for the upcoming season. The analytics of their system integrates the proposed crops with historical yield data to calculate the detailed field plan. The detailed plan lists the seed and chemicals for each quad of each field. (Young takes care to reiterate that he doesn't need us to think about the analytics -- so long as we create an OOA for the historical data and crop plan he and his father will design and write the analysis code in Java.)

In midwinter the MacDonalds must order their seed and chemicals. At this time they will finalize their detailed crop plan. The system must help them produce their shopping list.

Early spring is the time when crop insurance must be applied for. At that time system will create a report indicating how many acres of which crop are to be planted in the upcoming season.

In the spring the detailed plan will be exported to an XML file for each field and downloaded into their tractor. The tractor is equipped with a GPS and related controllers for the implements. There, the detailed per-quad plan will be used to control the seed drills and chemical sprayer. The driver of the tractor does not need to be aware of the details of the detailed crop plan -- the GPS and controllers will arrange that the implements deliver the correct dosage to each quad in a field as the tractor is driven normally.

Assumptions

In case you have any doubts, all this is mostly make-believe. You will need to make assumptions. Furthermore, some of the details should have little influence of the OOA we will produce. The task of separating wheat from chaff isn't just for combines! Furthermore, assume:

Your task for assignment 2(a)

You will articulate the use cases describing what the MacDonalds proposed system will do.

Hint: There are only a few use cases. They concern the handling of data in the spring and fall, mostly, and a few reports in the winter.

You may omit the use cases detailing how a proposed crop plan is constructed. We will suppose that if we model a crop plan the MacDonalds will be able to import them into the system.

You must create an Object Oriented Analysis (OOA) in UML. You may use any drawing tool (visio, illustrator or even powerpoint) or design tool (Rose, Poseidon, Enterprise Architect, Together) that you wish. If you really must, neatly use a pencil and paper (There should be some good reason, like you had to do write the assignment during a power blackout.)


Mathew Zaleski
Last modified: Mon Oct 6 07:07:36 EDT 2003 $RCSfile: a2.html,v $ $Revision: 1.7 $