Designing for Visibility - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Designing for Visibility

Description:

Title: Object Oriented Analysis and Design Author: George Blank Last modified by: George Blank Created Date: 1/23/2003 2:48:52 PM Document presentation format – PowerPoint PPT presentation

Number of Views:12
Avg rating:3.0/5.0
Slides: 25
Provided by: George565
Category:

less

Transcript and Presenter's Notes

Title: Designing for Visibility


1
Designing for Visibility
  • Chapter 19
  • Applying UML and Patterns
  • Craig Larman

2
Objectives
  • Identify four kinds of visibility
  • Design to establish visibility
  • Illustrate kinds of visibility in the UML notation

3
Introduction
  • Q. What is visibility?
  • A. Visibility is the ability of one object to
    see or have reference to another.

4
Visibility Between Objects
  • Q. When is visibility necessary?
  • A. To send a message from one object to another,
    the receiver object must be visible to the
    sender, so the sender has to have a pointer or
    reference to the receiver.

5
Visibility Between Objects
  • Example
  • Q. If A sends messages to B, which must be
    visible to which?
  • A. B is visible to A means A can send a message
    to B.
  • Some say that "B is an acquaintance of A".

6
Visibility Between Objects
7
Visibility
  • Visibility is related to the scope
  • Is one resource (such as an instance) within the
    scope of another?
  • The motivation to consider visibility
  • For an object A to send a message to an object B,
    B must be visible to A.

8
Four Kinds of Visibility
  • How visibility can be achieved from object A
    to object B
  • Attribute visibility - B is an attribute of A
  • Parameter visibility - B is a parameter of a
    method of A
  • Local visibility - B is a local object in a
    method of A
  • Global visibility - B is in some way globally
    visible

9
Attribute Visibility
  • Attribute visibility from A to B exists when B is
    an attribute of A
  • Relatively permanent visibility because it
    persists as long as A and B exist
  • Common form of visibility
  • public class Register
  • private ProductCatalog Catalog

10
Attribute Visibility
11
Parameter Visibility
  • Parameter visibility from A to B exists when B is
    passed as a parameter to a method of A.
  • Relatively temporary visibility because it
    persists only within the scope of the method
  • The 2nd most common form of visibility in the OO
    systems

12
Parameter Visibility
13
Parameter to attribute Visibility
  • It is common to transform parameter visibility
    into attribute visibility.

14
Local Visibility
  • Local visibility from A to B exists when B is
    declared as a local object within a method of A.
  • Relatively temporary visibility since it persists
    only within the scope of the method.

15
Local Visibility
  • There are two common means by which
  • local visibility is achieved
  • Create a new local instance and assign it to a
    local variable.
  • Assign the returning object from a method
    invocation to a local variable. A variation of
    this method does not explicitly declare a
    variable, but one implicitly exists as the result
    of a returning object from a method invocation
  • Ex anObject.getAnotherObject.doSomething()

16
Global Visibility
  • Global visibility from A to B exists when B is
    global to A.
  • Relatively permanent visibility since it persists
    as long as A and B exist.
  • The least common form of visibility in OO
    Systems.

17
Global Visibility
  • Ways to achieve global visibility
  • Assign an instance to a global variable.
  • Use the Singleton pattern

18
Singleton Pattern (Gang of Four)
  • Problem
  • Exactly one instance of a class is needed.
    Objects need a single point of access.
  • Solution
  • Define a class method that returns the singleton
    object, instantiating it if it does not exist.
  • Example
  • A print queuemany programs must access one queue

19
Illustrating Visibility in the UML
20
Visibility in the UML
  • Public
  • Any outside classifier with visibility to the
    given classifier can use the feature specified
    by pre-pending the symbol
  • Protected
  • Any descendant of the classifier can use the
    feature specified by pre-pending the symbol
  • Private
  • Only the classifier itself can use the feature
    specified by pre-pending the symbol -

21
Terms Classifier
  • A classifier is a mechanism that describes
    structural and behavioral features.
  • Modeling elements that can have instances are
    called classifiers.
  • Classifiers include classes, interfaces,
    datatypes, signals, components, nodes, use cases,
    and subsystems.
  • A classifier has structural feature (in the form
    of attributes), as well as behavioral features
    (in the form of operations).

22
Terms Feature
  • A feature is a property, such as operations or
    attributes that is encapsulated within entity
    such as an interface, a class, or a datatype.

23
Questions Answers
  • Q. Which would you use if you wanted a
    relatively permanent connection?
  • A. attribute, or global
  • Q. Which would you use if you didn't want a
    permanent connection?
  • A. parameter, or local
  • Q. How would you create a local visibility?
  • A. create a new instance - use result of a
    method call

24
Questions Answers
  • Q. how would you achieve a global visibility?
  • A. use a global variable in C, static (or
    class) variable (in C or Java) - use the
    Singleton pattern (a static method that returns
    the object)
Write a Comment
User Comments (0)
About PowerShow.com