A Design and Implementation Exercise
in Java
Prof. David Bernstein
James Madison University
Computer Science Department
bernstdh@jmu.edu
Motivation
Review:
Recall that we considered different ways of implementing
checklists
Now:
We want to design and implement a more robust system for determining if a set of complicated requirements has been satisfied
Examples:
Graduation requirements
Legal/contractual requirements
Medical requirements
User Needs - Encapsulating Requirements
Satisfaction Criterion:
Must be very flexible
Individual Requirements:
Must be able to use the system in a wide variety of contexts
Combining Requirements:
Must be able to combine requirements using "and" and/or "or"
Need not worry about "\(m\) of \(n\)" situations for now
User Needs - Satisfying Requirements
Basics:
Must be able to determine if an item satisfies a requirement
"Double" Counting:
One item can satisfy multiple requirements
User Needs - A Prototype
The Context:
Graduation requirements
Types of Criteria to Include:
Complete a course with a minimum grade
Complete a course in a particular department