PO Box 23346
Santa Barbara, CA 93121
(805) 966-9515
Source Documents
Home | Projects | Synthetic Dimensionality | Forum on Conceptual Structure | Source Documents
Username


Password

Join Us
Become a member of the forum

Hierarchy - themes from Grady Booch

  1. Encapsulation (p. 5, 45) -- complexity hidden under an integrated interface, with a few simple controls that interact with a complex hierarchical system underneath the controls
    • p45 The meaning of encapsulation. Abstraction and encapsulation are complementary concepts. Objects at a higher level of abstraction are shielded from lower-level implementation details. Encapsulation is also known as "information hiding" -- it prevents clients from seeing its inside view

      We define encapsulation as follows (p46):

      Encapsulation is the process of hiding all of the details of an object that do not contribute to its essential characteristics.

  2. Decomposition (p. 14)
    • What is the relationship between analysis and decomposition? Are they essentially the same thing? Do they both (necessarily) occur across descending levels of abstraction?

  3. Abstraction (p.17, 39)
    • P. 39, The meaning of abstraction. Abstraction is one of the fundamental ways that we as humans cope with complexity. Hoare suggests that "abstraction arises from a recognition of similarities between certain objects, situations, or processes in the real world, and the decision to concentrate up these similarities and to ignore for the time being the differences." Shaw defines an abstraction as "a simpoified description, or specification, of a system that emphasizes some of the system's details or properties while suppressing otehrs. A good abstraction is one that emphasizes details that are important to the reader or user and suppresses details that are, at least for the moment, immaterial or diversionary."

      Berzins, Gray and Naumann recommended that "a concept quliaifes as an abstraction only if it can be described, udnerstood, and analyzed independently of the mechanisim that will eventually be used to realize it. Combining these different viewpoints, we define an abstraction as follows:

      An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide cripsly defined conceptal boundaries, relative to the perspective of the viewer.

  4. Module (p.30) ??
    • (p50)Modularity packages abstractions into discrete units

  5. Hierarchy (p54)
    • p54. The meaning of hierarchy. Abstraction is a good thing, but in all but in all except the most trivial applications, we may find many mroe different abstractions than we can comprehend at one time. Encapsulation helps manage this complexity by hiding the inside view of our abstractions. Modularity helps also, by giving us a way to cluster logically related abstractions. Still, this is not enough. A set of abstractions often forms a hierarchy, and by identifying these hierarchies in our design, we greatly simplify our understanding of the problem.

      We define hierarchy as follows:

      Hierarchy is a ranking or ordering of abstractions

      The two most imortant hierarchies in a complex system are its class strcuture (the "kind of" hierarchy) and its object structure (the "pasrt of" hierarchy).

      Inheritance is the most important "kind of" hierarchy. Bascially, inheritance defines a relationship among classes, wherein one class shares the structure or behaviour defined in one or more classes (called single inheritance an multiple inheritance, respectively)

      Inheritance thus represents a hierarchy of abstractions, in which a subclass inherits from one or more superclasses. typically, a subclass augments or redefines the existing structure and behaviour of its superclass.

  6. Aggregation, p59
    • Examples of hierarchy: aggregation. Whereas these "kind of" hierarchies denote generalization specialization relationships, "part of" hierarchies described aggregation relationships for example, a flowering plants object is buildup of six some objects can (the four slots defined in the class plans

      Whereas these "kind of" hierarchies denote generalization specialization relationships, "part of" hierarchies described aggregation relationships. For example, a flowering plants object is buildup of sit six some objects in parentheses to four slots defined in the class plant, and the two slots defined in the class flowering plants mix in right parentheses. When dealing with hierarchy such as these we often speak to "levels of abstraction", a concept first described by Dykstra. In terms of its "kind of" hierarchies, a high-level abstraction is generalized, and a low-level abstraction is specialized. Therefore, we say that plant class is a high-level abstraction and a flowering plant class. In terms of its "part of" of hierarchy, the class is a high-level abstraction in any other classes that make up its implementation area thus the class standard for growing plan is a high-level abstraction in the tight day, upon which builds.

  7. Concurrency, p.65
    • Concurrency allows different objects to act at the same time




p.59, We use the terms "type" and "class" interchangeably.

Relationship between design and analysis -- design is the synthetic inverse of decomposition or analysis: the assembly of diverse elements into a modular unit