Problem: Looking at Data in Many Ways

To help you understand MVC more deeply, I walk you through an example problem in this section. You've been asked to implement a system to help some wildlife researchers understand their subjects: coyotes living in urban and suburban environments. These researchers have collected a great deal of data over many years of studying their animal subjects, including all the following information (and more):

  • Birth and death records
    • Dates of birth and death
    • Identification and cross-references to siblings and parents
    • Cross-references to places of birth and death
  • Location information
    • Overall territory
    • Den location
    • Birthplace and death location
    • General range and travel patterns
  • Family grouping information
    • Parents, children, siblings
    • Mate
  • Encounters with people
    • Nuisance reports
    • Sightings
    • Missing-pet reports within coyote territories
  • Population data
    • General census information
    • Population trends (fertility rate, infant mortality rate, and so on)

Your researcher clients have asked you to prepare a display system that they can use to examine their data. They want to use some general views that they already have but imagine that they haven't thought of all possible useful views, so the system you build must be extendable. The clients want a new graphical user interface (GUI) that allows them to select what they view and to control the system.

Pondering what you need

As you sort out the data, you think about the main parts of the system you need ...

Get Pattern-Oriented Software Architecture For Dummies now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.