|
We are what we repeatedly do. Excellence, then, is not an act, but a habit. Aristotle
For example, scientists categorize all natural objects as belonging
to either the animal, plant, or mineral kingdom.
For an object to be classified as an animal, it must satisfy the
rules:
To be classified as a plant, it must satisfy the rules:
Examples:
Rules for a Bird:
Given these rules, neither an ostrich nor a penguin could be classified as a bird, because neither can fly.
If we attempt to make the rule set less restrictive by eliminating the 'flight' rule, we are left with:
Bird rules:
Further simplication.
Bird rules:
Oops!
Starting an information systems development project by gathering details about the real world situation on which the system is to be based:
Then sort out the essentials. As with all abstractions, all of our decisions of inclusion versus elimination when building a software system must be made within the context of the overall purpose and domain, or subject matter focus, of the future system.
Example: When representing a person in a software system, is their eye color important? How about their genetic profile? Salary? Hobbies? The answer is, any of these features of a person may be relevant or irrelevant, depending on whether the system to be developed is a:
We then prepare a model of that situation.
pattern matching and reuse -- the technique of comparing features to find an abstraction that is similar enough to be reused successfully.
Difficult!! Because:
Appropriate abstraction as the basis for a software system model requires:
Plus: