touque.ca > Education Commons > Java > Assignments

The Zoo Project

The Toronto Zoo holds in its collection a large number of specimens which need be managed. Part of that management involves accession and de-accession, breeding, raising of young, feeding, provision of medical care, research, autopsy, and disposal of remains.

Animals in the zoo’s collection, inter alia, feed, groom, breed, lay eggs, give birth, lactate, suckle, raise young, moult, metamorphose, form pods, pair, build nests, become ill, recover from disease, and die.

Assignment

You have been charged by the zoo’s board of directors with the responsibility of constructing a set of Java classes which will enable the zoo to manage its Vertebrate collection from accession through de-accession. You will use these classes to construct a database of the collection and the programs required to allow zoo staff to record and document all aspects of the specimen life cycle. The board advises specifically that the lists of management tasks and animal activities shown above are not exhaustive.

All classes must be documented to conventional Javadoc standards, and each class must be thoroughly tested for accuracy and the integrity of its data. The programs which employ these classes must be robust and straightforward, and the data must persist from session to session.

Because the programs and data will reside on a stand-alone system in a secure location, no special data-security measures need be implemented.

Based on its experience with previous consultants, the board advises that it requires a hierarchy of classes to represent the various specimens in its collection. While it does not require—or desire—the level of detail prescribed by the standard taxonomic model, it does expect that your Java classes will employ inheritance appropriately so that the set of classes can easily be extended to other subphyla, classes, groups, etc.

For the first phase of this project, the zoo board has provided the following brief description of the vertebrates it wants your system to manage. These descriptions are neither exhaustive nor prescriptive: they are offered merely as a guide.

In order to ensure that all project members can effectively present your work to the board at the conclusion of this assignment, please be certain that each member gains experience in

  1. designing and writing the public interface;
  2. designing, coding, and testing the private implementation;
  3. designing, coding, and testing the animating classes;
  4. file operations;
  5. creating, verifying, and entering data;
  6. testing the user interface; and
  7. writing and editing user documentation.

You will, of course, divide yourselves into project teams as appropriate, and these teams may be reconstituted as the work of the project develops. To facilitate the board’s supervision of your work, each project team will maintain a daily log on a separate page of the project wiki. Since the wiki is accessible only by project members, you can use it to store all of your work, and you can add and delete pages as needed.

The board has appointed Mr. Arkin as its liaison, so you can direct all of your questions and concerns to him.


Specimen

  1. unique identification number
  2. taxonomic class
  3. region or pavilion
  4. red listed

Vertebrates (Vertebrata)

Amphibian (Amphibia)

  1. vertebrate
  2. ectothermic
  3. part of life cycle in water, part on land
  4. no scales
  5. skin is permeable
  6. breathe with gills for at least part of life cycle
  7. undergo metamorphosis (most)
  8. live birth (some)

Bird (Aves)

  1. vertebrate
  2. endothermic
  3. lay eggs
  4. have feathers
  5. can fly (most)

Fish (Pisces)

  1. vertebrate
  2. ectothermic (except tuna & Pacific salmon shark)
  3. live in water
  4. breathe with gills
  5. no jaw + no scales = class Agnatha (lampreys, hagfish)
  6. no bones = class Chondrichthyes (sharks, rays)
  7. bones = class Osteichthyes (tuna, salmon, etc)

Mammal (Mammalia)

  1. vertebrate
  2. endothermic
  3. females produce milk for young
  4. live birth (except platypus & echidna)
  5. have hair

Reptile (Reptilia)

  1. vertebrate
  2. ectothermic (most)
  3. scales
  4. breathe with lungs
  5. lay eggs (most)

References

Kidport (2012). The Animal Kingdom. Retrieved 2012-10-06 from <http://www.kidport.com/reflib/science/animals/animals.htm>.

Metropolitan Toronto Zoological Society (n.d.). Check Out Our Amazing Animals! Retrieved 2012-10-06 from <http://www.torontozoo.com/ExploretheZoo/Animals.asp>.

National Wildlife Federation (2012). Amphibians, Reptiles and Fish. Retrieved 2012-10-06 from <http://www.nwf.org/Wildlife/Wildlife-Library/Amphibians-Reptiles-and-Fish.aspx>.

O’Neil, D. (2012). Classes of Vertebrates. Retrieved 2012-10-06 from <http://anthro.palomar.edu/animal/animal_4.htm>.

touque.ca > Education Commons > Java > Assignments

[This page last updated 2020-12-23 at 12h11 Toronto local time.]