Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Our scheduler is being evaluated in the context of three different user demographics:

...

Efficient errand runner ("The one with the car")

The first demographic runs errands for her/himself and others living in an apartment.  It is normal for only one person to have a car, when living in undergraduate or graduate student housing.  This person does personal errands, but is occasionally asked to do other people's errands as well.  Since this demographic is typically made up of students with busy schedules, getting them done as fast as possible is desirable.  We want this demographic to use SMak as a way to (a) organize tasks from different sources in a single place, and (b) find an optimal way to finish those tasks.

Dependable errand runner

The second demographic runs errands related to managing a home.  While efficiency is important to this demographic, it can be relaxed as long as certain constraints are met.  One type of constraint is absolute time of day: It doesn't matter how much time it takes to do the dry cleaning as long as the kids are picked up between 2:45p and 3:15p.  Another type is order of events: It doesn't matter how long it takes to get to the market from the previous destination, as long as the distance from the market to home is as short as possible (to avoid food going bad).  This demographic uses SMak to make sure that, given a plan of execution, all such constraints have been met.

Cross-border traveler

The last demographic is people who travel abroad to foreign places.  As is the case with people running errands, tourists typically know what they want to see and where they want to go, but not how to do it once they are there.  It is typically difficult for this demographic to change plans in case of a museum closing or children suddenly getting hungry (for example) because the demographic is not familiar with the area.  We think SMak will help with this problem because if a change in plans does occur, the interface will be able to dynamically re-route the remaining destinations.

...

  1. Input destinations
    • Goal: Allow the user to input destinations to visit
    • Preconditions:
      • Determined locations to visit
      • Pre-loaded constraint information about destination like hours of operations, lunch break, expected time for visit
    • Subtasks:
      • Auto-complete/correct destination names
  2. Add/edit constraints for destinations
    • Goal: Modify constraints for destinations such as:
      • best time to visit
      • appointment times
      • known duration of visit
      • "visit this destination first" and other similar constraints
      • What is the priority for visiting a given place (relative to visiting other places)  (example: important, very important, etc)
    • Preconditions:
      • Know what time appointments are scheduled for
      • Have an estimate of the amount of time that needs to be spent at each destination
    • Subtasks:
      • Add “global constraints” such as:
        • Between what times these destinations need to be visited
        • Earliest time / latest time ("I want to wake up at...")
        • Partial orderings of destinations ("I want to visit the post office right after I buy stamps at the paper store")
        • What type of transportation (car, public transit, walking) is preferred
      • Place priority on different constraints (example: it is most important to visit all places or it is most important to visit some places but stay for the whole time.  When you have three museums to visit, you want to get to all of them for a short period each.  If you have three shows to go to, choose two and see the whole show; don't walk out early on each show).
  3. Auto-generate schedule
    • Goal: Using the destinations and constraints inputted by the user, create a schedule to visit all the destinations that meets all the constraints
    • Preconditions:
      • All those listed under the "Input destinations" task
    • Subtasks:
      • Display the generated schedule both overlayed on a map on and a timeline
      • Display the optimal path between locations on a map
      • Show the user the delta between the auto-generated schedule and any partial schedule that the user had previously worked out, so that the user can choose to accept or decline some or all of the changes
  4. View and Adjust schedule
    • Goal: Change and tweak any part of the schedule including the 
      • Order of destinations
      • Duration of visit
      • Path to take between destinations
      • New constraints for one or more destinations
    • Preconditions:
      • At least one destination must already be in the system, inputted by either the user or through a generated schedule.
      • Once a schedule has been auto-generated, the user should will still be able to make changes to it
    • Subtasks:
      • Edit destinations and paths from place to place
  5. Incremental schedule rollback & history
    • Goal: Allow the user to undo changes made to a schedule, or revert changes made through generating a schedule
    • Preconditions:
      • At least one action must be taken towards creating or refining a schedule
    • Subtasks:
      • Create a language to describe changes made to a schedule, so that all schedule revisions are labeled in a readable way (such as "Moved groceries to the first stop")