1 / 9

Object-Oriented Analysis 2: Finding Classes

Object-Oriented Analysis 2: Finding Classes. CMPT 371 Fall 2004 J.W. Benham. Abstractions.

laddie
Download Presentation

Object-Oriented Analysis 2: Finding Classes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object-Oriented Analysis 2: Finding Classes CMPT 371 Fall 2004 J.W. Benham

  2. Abstractions • “An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the user.” – Booch, Object-Oriented Analysis and Design

  3. Types of Abstractions • Entity abstraction – represents a useful model of a problem- or solution-domain entity • Action abstraction – provides a generalized set of operations which perform the same kind of function • Virtual machine abstraction • Coincidental abstraction

  4. Classification • “The identification of classes and objects is the hardest part of object-oriented design.” – Booch • Discovery – recognize key abstractions and mechanisms from problem domain • Invention – devise generalized abstractions and new mechanisms that specify how objects collaborate

  5. Iterative Classification • “Only at later stages in the design, once clients [other classes] have been built that use this structure, can we meaningfully evaluate the quality of our classification.” – Booch • Derivation • Factorization • Composition • Abstraction

  6. Approaches to Classification • Classical categorization – use related properties as the criteria for sameness among objects • Conceptual clustering – formulate conceptual descriptions and then classify entities according to those descriptions • Prototype theory – represent a class by a prototypical object which other objects must resemble in significant ways

  7. Classification and Object-Oriented Analysis • Classical approaches -- conceptual class categories • Behavior analysis – responsibility-driven design, system functions • Domain analysis – vocabulary of problem domain • Use-case analysis – identify objects that participate in scenario • CRC Cards

  8. Identifying Classes • Wirfs-Brock, et. al. Designing Object-Oriented Software • Model physical objects • Model conceptual entities that form a cohesive abstraction • If there is more than one word for a concept, use the one that is most meaningful in terms of the rest of the system

  9. Identifying Classes - 2 • Be wary of the use of adjectives • Be wary of sentences in the passive voice • Model categories of classes • Model known interfaces to outside world • Model values of attributes, but not the attributes themselves

More Related