- Forward


Analysis Class Diagrams
for Understanding Software Systems


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Overview
Back SMYC Forward
  • Introduction
  • Identifying Concepts
  • Identifying Associations
  • Identifying Attributes
Class Models for Analysis (i.e., Conceptual Models)
Back SMYC Forward
  • Definition:
    • A representation of meaningful concepts in a problem domain
    • Focuses on domain concepts not software entities
  • To Be Aware Of:
    • Require existing uses cases and actors
    • May be built at the same time as use cases and actors
Class Models for Analysis (cont.)
Back SMYC Forward
  • What They Illustrate:
    • Concepts (i.e., ideas, things, or objects)
    • Associations between concepts
    • Attributes of concepts
  • Purpose:
    • Decompose the problem domain into comprehensible units
    • Clarify terminology
Building Class Model for Analysis
Back SMYC Forward
  1. List the candidate concepts
  2. Add associations
  3. Add attributes
Identifying Concepts
Back SMYC Forward
  • Physical Objects
  • Places
  • Organizations
  • Events
  • Records
  • Containers
  • Roles of People
  • Descriptions, Specifications, Rules
  • Processes
Identifying Concepts (cont.)
Back SMYC Forward
  • Don't confuse concepts and attributes
    • If you do not think of it as numbers or letters in the real world it is probably a concept

      concepts1
      Expand

  • Dont include things that aren't relevant
    • concepts2
      Expand
Identifying Concepts (cont.)
Back SMYC Forward
  • Include specifications
    • Will deleting an instance result in information loss?
    • Can a description reduce redundancy?

      concepts3
      Expand

Identifying Associations
Back SMYC Forward
  • Part-of (physical or logical)
  • Contained-in (physical or logical)
  • Description-of
  • Member-of
  • Uses/Manages/Controls
  • Communicates-with
  • Related-to
  • Owned-by
  • Near/Far-from/Above/Below...
Identifying Associations (cont.)
Back SMYC Forward
  • Look for relationships that need to be preserved
  • Avoid redundant or derivable associations
  • Think about verb phrases
Roles in Associations
Back SMYC Forward
  • Each end of an association is called a role
  • In conceptual models roles often have:
    • A name

      association4
      Expand

    • A multiplicity expression

      association3
      Expand

More on Associations
Back SMYC Forward
  • Two concepts can have more than one association

    association5
    Expand

  • One concept alone can have an association

    association6
    Expand

Identifying Attributes
Back SMYC Forward
  • Think about the information requirements of the use cases
  • Think about what needs to be remembered
  • Focus on simple/pure data types (i.e., in which unique identity is not meaningful)
Non-Primitive Attribute Types
Back SMYC Forward
  • Attributes need not be primitive types (e.g., phone number, social security number)
  • Use non-primitive types if:
    • Units are important
    • Delimiters are useful
Example: IVANA (cont.)
Back SMYC Forward

From the Display Map Use Case Descriptions

ivana_concepts3
Example: IVANA Revisited
Back SMYC Forward

From the Enter Destination and Display Map Use Case Descriptions

ivana_concepts1
Example: IVANA (cont.)
Back SMYC Forward

From the Process New Position Use Case Description

ivana_concepts2
Example: IVANA (cont.)
Back SMYC Forward

The Display Map use case description includes the concept of a "Route". What is a Route?

  • A Route "has" Streets
    Expand
    • A Route that uses Elm St. does not use all of Elm St.
    • Expand
  • A Route "has" Intersections
    Expand
    • What about cul-de-sacs?
    • Expand
  • A Route "has" Locations
    Expand
    • Seems duplicative
    • Expand
  • A Route "has" StreetSegments
    Expand
    • Seems like a good approach
    • Requires us to change StreetSegment - it needs to include Locations (i.e., shape points)
    • Expand
There's Always More to Learn
Back -