OOD Overview

  • Upload
    asg1970

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

  • 8/3/2019 OOD Overview

    1/10

    O b j e c t - O r i e n t e d D e s i g n a n d

    P r o g r a m m i n g

    O v e r v i e w o f O b j e c t - O r i e n t e d

    D e s i g n P r i n c i p l e s a n d T e c h n i q u e s

    D o u g l a s C . S c h m i d t

    w w w . c s . w u s t l . e d u s c h m i d t

    s c h m i d t @ c s . w u s t l . e d u

    W a s h i n g t o n U n i v e r s i t y , S t . L o u i s

    1

    D e j a V u ?

    I n t h e p a s t : S t r u c t u r e d = G o o d

    T o d a y : O b j e c t - O r i e n t e d = G o o d

    e . g . ,

    O b j e c t - o r i e n t e d l a n g u a g e s a r e g o o d

    A d a i s a n o b j e c t - o r i e n t e d l a n g u a g e

    - - - - - - - - - -

    T h e r e f o r e , A d a i s g o o d

    N o t e , t h e r e i s e v e n a n o b j e c t - o r i e n t e d C O B O

    2

    G o a l s

    D e m y s t i f y t h e h y p e s u r r o u n d i n g O O D a n d

    O O P

    F o c u s o n O O D O O P p r i n c i p l e s ,

    m e t h -

    o d s,

    n o t a t i o n s , a n d t o o l s

    R e l a t e O O D O O P t o t r a d i t i o n a l d e v e l o p -

    m e n t m e t h o d s

    3

    O v e r v i e w

    W h a t a r e o b j e c t - o r i e n t e d O O m e t h o d s ?

    O O m e t h o d s p r o v i d e a s e t o f t e c h n i q u e s f o r

    a n a l y z i n g , d e c o m p o s i n g , a n d m o d u l a r i z i n g s o f t -

    w a r e s y s t e m a r c h i t e c t u r e s

    I n g e n e r a l , O O m e t h o d s a r e c h a r a c t e r i z e d b y

    s t r u c t u r i n g t h e s y s t e m a r c h i t e c t u r e o n t h e b a -

    s i s o f i t s o b j e c t s a n d c l a s s e s o f o b j e c t s r a t h e r

    t h a n t h e a c t i o n s i t p e r f o r m s

    W h a t a r e t h e b e n e t s o f O O ?

    O O e n h a n c e s k e y s o f t w a r e q u a l i t y f a c t o r s o f a

    s y s t e m a n d i t s c o n s t i t u e n t c o m p o n e n t s

    W h a t i s t h e r a t i o n a l e f o r u s i n g O O ?

    I n g e n e r a l , s y s t e m s e v o l v e a n d f u n c t i o n a l i t y c h a n g e

    b u t o b j e c t s a n d c l a s s e s t e n d t o r e m a i n s t a b l e

    o v e r t i m e

    4

  • 8/3/2019 OOD Overview

    2/10

    S o f t w a r e Q u a l i t y F a c t o r s

    O b j e c t - o r i e n t e d t e c h n i q u e s e n h a n c e k e y e x -

    t e r n a l a n d i n t e r n a l s o f t w a r e q u a l i t y f a c -

    t o r s , e . g .

    ,

    1 . E x t e r n a l v i s i b l e t o e n d - u s e r s

    a C o r r e c t n e s s

    b R o b u s t n e s s a n d r e l i a b i l i t y

    c P e r f o r m a n c e

    2 . I n t e r n a l v i s i b l e t o d e v e l o p e r s

    a M o d u l a r i t y

    b F l e x i b i l i t y E x t e n s i b i l i t y

    c R e u s a b i l i t y

    d C o m p a t i b i l i t y v i a s t a n d a r d u n i f o r m i n t e r f a c e s

    5

    O O A , O O D , a n d O O P

    O b j e c t - o r i e n t e d m e t h o d s m a y b e a p p l i e d

    t o d i e r e n t p h a s e s i n t h e s o f t w a r e l i f e -

    c y c l e

    e . g . , a n a l y s i s , d e s i g n , i m p l e m e n t a t i o n , e t c .

    O O a n a l y s i s O O A i s a p r o c e s s o f d i s -

    c o v e r y

    W h e r e a d e v e l o p m e n t t e a m m o d e l s a n d u n d e r -

    s t a n d s t h e r e q u i r e m e n t s o f t h e s y s t e m

    O O d e s i g n O O D i s a p r o c e s s o f i n v e n -

    t i o n a n d a d a p t a t i o n

    W h e r e t h e d e v e l o p m e n t t e a m c r e a t e s t h e a b -

    s t r a c t i o n s a n d m e c h a n i s m s n e c e s s a r y t o m e e t

    t h e s y s t e m ' s b e h a v i o r a l r e q u i r e m e n t s d e t e r m i n e d

    d u r i n g a n a l y s i s

    6

    O O A , O O D , a n d O O P c o n t ' d

    I s i t a l s o u s e f u l t o d i s t i n g u i s h b e t w e e n o b j e c t -

    o r i e n t e d d e s i g n O O D a n d o b j e c t - o r i e n t e d

    p r o g r a m m i n g O O P

    O O D i s r e l a t i v e l y i n d e p e n d e n t o f t h e p r o g r a m -

    m i n g l a n g u a g e u s e d

    O O P i s p r i m a r i l y c o n c e r n e d w i t h p r o g r a m m i n g

    l a n g u a g e a n d s o f t w a r e i m p l e m e n t a t i o n i s s u e s

    O b v i o u s l y , t h e m o r e c o n s i s t e n t t h e O O D

    a n d O O P t e c h n i q u e s , t h e e a s i e r t h e y a r e

    t o a p p l y s u c c e s s f u l l y i n r e a l - l i f e : : :

    7

    O O A , O O D , a n d O O P c o n t ' d

    B a s i c D e n i t i o n s

    1 . O b j e c t - O r i e n t e d D e s i g n

    A m e t h o d f o r d e c o m p o s i n g s o f t w a r e a r c h i -

    t e c t u r e s b a s e d o n t h e o b j e c t s e v e r y s y s t e m

    o r s u b s y s t e m m a n i p u l a t e s

    R a t h e r t h a n t h e " f u n c t i o n i t i s m e a n t t o

    e n s u r e

    2 . O b j e c t - O r i e n t e d P r o g r a m m i n g

    T h e c o n s t r u c t i o n o f s o f t w a r e s y s t e m s a s s t r u c -

    t u r e d c o l l e c t i o n s o f A b s t r a c t D a t a T y p e A D T

    i m p l e m e n t a t i o n s , p l u s i n h e r i t a n c e a n d d y -

    n a m i c b i n d i n g

    8

  • 8/3/2019 OOD Overview

    3/10

    O b j e c t - O r i e n t e d D e s i g n T o p i c s

    O b j e c t - o r i e n t e d d e s i g n c o n c e p t s i n c l u d e :

    D e c o m p o s i t i o n C o m p o s i t i o n

    A b s t r a c t i o n

    M o d u l a r i t y

    I n f o r m a t i o n H i d i n g

    V i r t u a l M a c h i n e H i e r a r c h i e s

    S e p a r a t i n g P o l i c y a n d M e c h a n i s m

    S u b s e t I d e n t i c a t i o n a n d P r o g r a m F a m i l i e s

    R e u s a b i l i t y

    M a i n p u r p o s e o f t h e s e d e s i g n c o n c e p t s i s

    t o m a n a g e s o f t w a r e s y s t e m c o m p l e x i t y b y

    i m p r o v i n g s o f t w a r e q u a l i t y f a c t o r s

    9

    O b j e c t - O r i e n t e d P r o g r a m m i n g

    T o p i c s

    O b j e c t - o r i e n t e d p r o g r a m m i n g f e a t u r e s a n d

    t e c h n i q u e s i n c l u d e

    D a t a a b s t r a c t i o n a n d i n f o r m a t i o n h i d i n g

    A c t i v e r a t h e r t h a n p a s s i v e t y p e s

    G e n e r i c i t y

    I n h e r i t a n c e a n d d y n a m i c b i n d i n g

    P r o g r a m m i n g b y c o n t r a c t

    A s s e r t i o n s a n d e x c e p t i o n h a n d l i n g

    T h r o u g h o u t t h e c o u r s e w e ' l l d i s c u s s h o w

    t h e s e O O P f e a t u r e s a n d t e c h n i q u e s i m -

    p r o v e s o f t w a r e q u a l i t y

    e . g . , c o r r e c t n e s s , r e u s a b i l i t y , e x t e n s i b i l i t y , r e l i -

    a b i l i t y , e t c .

    1 0

    R e v i e w : G o a l s o f t h e D e s i g n

    P h a s e

    D e c o m p o s e S y s t e m i n t o M o d u l e s

    i . e . , i d e n t i f y t h e s o f t w a r e a r c h i t e c t u r e v i a c l u s -

    t e r i n g "

    I n g e n e r a l , c l u s t e r s s h o u l d m a x i m i z e

    c o h e -

    s i o n a n d m i n i m i z e c o u p l i n g

    D e t e r m i n e R e l a t i o n s B e t w e e n M o d u l e s

    I d e n t i f y a n d s p e c i f y m o d u l e d e p e n d e n c i e s

    e . g . , i n h e r i t a n c e , c o m p o s i t i o n , u s e s , e t c .

    D e t e r m i n e t h e f o r m o f i n t e r m o d u l e c o m m u n i -

    c a t i o n , e . g . ,

    g l o b a l v a r i a b l e s

    p a r a m e t e r i z e d f u n c t i o n c a l l s

    s h a r e d m e m o r y

    R P C o r m e s s a g e p a s s i n g

    1 1

    R e v i e w : G o a l s o f t h e D e s i g n

    P h a s e c o n t ' d

    S p e c i f y M o d u l e I n t e r f a c e s

    I n t e r f a c e s s h o u l d b e w e l l - d e n e d

    f a c i l i t a t e i n d e p e n d e n t m o d u l e t e s t i n g

    i m p r o v e g r o u p c o m m u n i c a t i o n

    D e s c r i b e M o d u l e F u n c t i o n a l i t y

    I n f o r m a l l y

    e . g . , c o m m e n t s o r d o c u m e n t a t i o n

    F o r m a l l y

    e . g . , v i a m o d u l e i n t e r f a c e s p e c i c a t i o n l a n -

    g u a g e s

    1 2

  • 8/3/2019 OOD Overview

    4/10

    D e c o m p o s i t i o n C o m p o s i t i o n

    D e c o m p o s i t i o n a n d c o m p o s i t i o n a r e c o n -

    c e p t s c o m m o n t o a l l s o f t w a r e l i f e - c y c l e

    a n d d e s i g n t e c h n i q u e s

    T h e b a s i c c o n c e p t s a r e v e r y s i m p l e :

    1 . S e l e c t a p o r t i o n o f t h e p r o b l e m i n i t i a l l y , t h e

    w h o l e p r o b l e m

    2 . D e c o m p o s e t h e s e l e c t e d p o r t i o n i n t o o n e o r

    m o r e c o n s t i t u t e n t c o m p o n e n t s u s i n g t h e d e -

    s i g n m e t h o d o f c h o i c e

    e . g . , f u n c t i o n a l v s . d a t a s t r u c t u r e d v s . o b j e c t -

    o r i e n t e d

    3 . D e t e r m i n e a n d d e p i c t h o w t h e c o m p o n e n t s i n -

    t e r a c t i . e . , c o m p o s i t i o n

    4 . R e p e a t s t e p s 1 t h r o u g h 3 u n t i l s o m e t e r m i n a -

    t i o n c r i t e r i a i s m e t e . g . , c u s t o m e r i s s a t i s e d ,

    r u n o u t o f m o n e y , e t c . ; -

    1 3

    D e c o m p o s i t i o n C o m p o s i t i o n

    c o n t ' d

    A m a j o r c h a l l e n g e o f t h e d e s i g n p h a s e f o r

    a s y s t e m i s t o d e t e r m i n e w h a t t h e p r i m a r y

    u n i t s o f d e c o m p o s i t i o n a n d c o m p o s i t i o n

    o u g h t t o b e

    A n o t h e r w a y o f l o o k i n g a t t h i s i s t o a s k

    a t w h a t l e v e l o f a b s t r a c t i o n s h o u l d t h e

    m o d u l e s b e s p e c i e d ? "

    T y p i c a l u n i t s o f d e c o m p o s i t i o n a n d c o m -

    p o s i t i o n i n c l u d e :

    S u b s y s t e m s

    V i r t u a l m a c h i n e l e v e l s

    C l a s s e s

    F u n c t i o n s

    1 4

    D e c o m p o s i t i o n C o m p o s i t i o n

    c o n t ' d

    S o m e p r i n c i p l e s f o r g u i d i n g t h e d e c o m p o -

    s i t i o n a n d c o m p o s i t i o n p r o c e s s

    S i n c e d e s i g n d e c i s i o n s t r a n s c e n d e x e c u t i o n t i m e ,

    m o d u l e s o f t e n d o n o t c o r r e s p o n d t o e x e c u t i o n

    s t e p s : : :

    D e c o m p o s e s o a s t o l i m i t t h e e e c t o f a n y o n e

    d e s i g n d e c i s i o n o n t h e r e s t o f t h e s y s t e m

    R e m e m b e r , a n y t h i n g t h a t p e r m e a t e s t h e s y s -

    t e m w i l l b e e x p e n s i v e t o c h a n g e

    M o d u l e s s h o u l d b e s p e c i e d b y a l l i n f o r m a t i o n

    n e e d e d t o u s e t h e m o d u l e a n d n o t h i n g m o r e

    T r y t o c o m p o s e t h e s y s t e m b y r e u s i n g e x i s t i n g

    c o m p o n e n t s i f p o s s i b l e

    1 5

    A b s t r a c t i o n

    M o t i v a t i o n

    A b s t r a c t i o n p r o v i d e s a w a y t o m a n a g e c o m -

    p l e x i t y b y e m p h a s i z i n g e s s e n t i a l c h a r a c t e r i s t i c s

    a n d s u p p r e s s i n g i m p l e m e n t a t i o n d e t a i l s

    T r a d i t i o n a l a b s t r a c t i o n m e c h a n i s m s

    N a m e a b s t r a c t i o n

    E x p r e s s i o n a b s t r a c t i o n

    P r o c e d u r a l a b s t r a c t i o n

    e . g . , c l o s e d s u b r o u t i n e s

    D a t a a b s t r a c t i o n

    e . g . , A D T s

    C o n t r o l a b s t r a c t i o n

    i t e r a t o r s , l o o p s , m u l t i t a s k i n g , e t c .

    1 6

  • 8/3/2019 OOD Overview

    5/10

    M o d u l a r i t y

    M o t i v a t i o n

    M o d u l a r i t y i s a n e s s e n t i a l c h a r a c t e r i s t i c o f g o o d

    d e s i g n s s i n c e i t :

    E n a b l e s d e v e l o p e r s t o r e d u c e o v e r a l l s y s t e m

    c o m p l e x i t y v i a d e c e n t r a l i z e d s o f t w a r e a r c h i -

    t e c t u r e s

    i . e .

    ,d i v i d e a n d c o n q u e r

    E n h a n c e s s c a l a b i l i t y b y s u p p o r t i n g i n d e p e n -

    d e n t a n d c o n c u r r e n t d e v e l o p m e n t b y m u l t i -

    p l e p e r s o n n e l

    i . e .

    ,S e p a r a t i o n o f c o n c e r n s

    T o b e b o t h u s e f u l a n d r e u s a b l e , m o d u l e s

    s h o u l d p o s s e s s

    1 . W e l l - s p e c i e d a b s t r a c t i n t e r f a c e s

    2 . H i g h c o h e s i o n a n d l o w c o u p l i n g

    1 7

    C r i t e r i a f o r E v a l u a t i n g D e s i g n

    M e t h o d s

    M o d u l a r D e c o m p o s a b i l i t y

    D o e s t h e m e t h o d a i d d e c o m p o s i n g a n e w p r o b -

    l e m i n t o s e v e r a l s e p a r a t e s u b p r o b l e m s ?

    e . g . , t o p - d o w n f u n c t i o n a l d e s i g n

    M o d u l a r C o m p o s a b i l i t y

    D o e s t h e m e t h o d a i d c o n s t r u c t i n g n e w s y s t e m s

    f r o m e x i s t i n g s o f t w a r e c o m p o n e n t s ?

    e . g . , b o t t o m - u p d e s i g n

    M o d u l a r U n d e r s t a n d a b i l i t y

    A r e m o d u l e s s e p a r a t e l y u n d e r s t a n d a b l e b y a

    h u m a n r e a d e r

    e . g . , h o w t i g h t l y c o u p l e d a r e t h e y ?

    1 8

    C r i t e r i a f o r E v a l u a t i n g D e s i g n

    M e t h o d s c o n t ' d

    M o d u l a r C o n t i n u i t y

    D o s m a l l c h a n g e s t o t h e s p e c i c a t i o n a e c t a

    l o c a l i z e d a n d l i m i t e d n u m b e r o f m o d u l e s ?

    M o d u l a r P r o t e c t i o n

    A r e t h e e e c t s o f r u n - t i m e a b n o r m a l i t i e s c o n -

    n e d t o a s m a l l n u m b e r o f r e l a t e d m o d u l e s ?

    M o d u l a r C o m p a t i b i l i t y

    D o t h e m o d u l e s h a v e w e l l - d e n e d , s t a n d a r d

    a n d o r u n i f o r m i n t e r f a c e s ?

    e . g . , p r i n c i p l e o f l e a s t s u r p r i s e "

    1 9

    P r i n c i p l e s f o r E n s u r i n g M o d u l a r

    D e s i g n s

    L a n g u a g e S u p p o r t f o r M o d u l a r U n i t s

    M o d u l e s m u s t c o r r e s p o n d t o s y n t a c t i c u n i t s i n

    t h e l a n g u a g e u s e d

    F e w I n t e r f a c e s

    E v e r y m o d u l e s h o u l d c o m m u n i c a t e w i t h a s f e w

    o t h e r s a s p o s s i b l e

    S m a l l I n t e r f a c e s W e a k C o u p l i n g

    I f a n y t w o m o d u l e s c o m m u n i c a t e a t a l l , t h e y

    s h o u l d e x c h a n g e a s l i t t l e i n f o r m a t i o n a s p o s s i -

    b l e

    2 0

  • 8/3/2019 OOD Overview

    6/10

    P r i n c i p l e s f o r E n s u r i n g M o d u l a r

    D e s i g n s c o n t ' d

    E x p l i c i t I n t e r f a c e s

    W h e n e v e r t w o m o d u l e s A a n d B c o m m u n i c a t e ,

    t h i s m u s t b e o b v i o u s f r o m t h e t e x t o f A o r B

    o r b o t h

    I n f o r m a t i o n H i d i n g

    A l l i n f o r m a t i o n a b o u t a m o d u l e s h o u l d b e p r i -

    v a t e t o t h e m o d u l e u n l e s s i t i s s p e c i c a l l y d e -

    c l a r e d p u b l i c

    2 1

    I n f o r m a t i o n H i d i n g

    M o t i v a t i o n

    D e t a i l s o f d e s i g n d e c i s i o n s t h a t a r e s u b j e c t t o

    c h a n g e s h o u l d b e h i d d e n b e h i n d a b s t r a c t i n t e r -

    f a c e s

    i . e . , m o d u l e s

    I n f o r m a t i o n h i d i n g i s o n e m e a n s t o e n h a n c e

    a b s t r a c t i o n

    T y p i c a l i n f o r m a t i o n t o h i d e i n c l u d e s :

    D a t a r e p r e s e n t a t i o n s

    A l g o r i t h m s

    I n p u t a n d O u t p u t F o r m a t s

    P o l i c i e s a n d o r m e c h a n i s m s

    L o w e r - l e v e l m o d u l e i n t e r f a c e s

    2 2

    V i r t u a l M a c h i n e s

    M o t i v a t i o n

    T o r e d u c e o v e r a l l c o m p l e x i t y , s o f t w a r e s y s t e m

    a r c h i t e c t u r e s m a y b e d e c o m p o s e d i n t o , m o r e

    m a n a g e a b l e v i r t u a l m a c h i n e " u n i t s

    A v i r t u a l m a c h i n e p r o v i d e s a n e x t e n d e d

    s o f t w a r e i n s t r u c t i o n s e t "

    P r o v i d e s a d d i t i o n a l d a t a t y p e s a n d a s s o c i a t e d

    s o f t w a r e i n s t r u c t i o n s " t h a t e x t e n d t h e u n d e r -

    l y i n g h a r d w a r e i n s t r u c t i o n s e t

    V i r t u a l m a c h i n e s a l l o w i n c r e m e n t a l e x t e n s i o n s

    t o e x i s t i n g a p p l i c a t i o n p r o g r a m m a t i c i n t e r f a c e s "

    A P I s

    2 3

    V i r t u a l M a c h i n e c o n t ' d

    C o m m o n e x a m p l e s o f v i r t u a l m a c h i n e s i n -

    c l u d e

    C o m p u t e r A r c h i t e c t u r e s

    e . g . , c o m p i l e r

    !a s s e m b l e r

    !o b j e c t c o d e

    !m i c r o c o d e

    !g a t e s , t r a n s i s t o r s , s i g n a l s ,

    e t c .

    C o m m u n i c a t i o n p r o t o c o l s t a c k s

    e . g . , I S O O S I r e f e r e n c e m o d e l , I n t e r n e t r e f -

    e r e n c e m o d e l

    2 4

  • 8/3/2019 OOD Overview

    7/10

    V i r t u a l M a c h i n e c o n t ' d

    S e v e r a l c h a l l e n g e s m u s t b e o v e r c o m e t o

    e e c t i v e l y u s e v i r t u a l m a c h i n e s a s a n a r -

    c h i t e c t u r a l s t r u c t u r i n g t e c h n i q u e :

    E n s u r i n g A d e q u a t e P e r f o r m a n c e :

    I t i s d i c u l t t o o b t a i n g o o d p e r f o r m a n c e a t

    l e v e l N

    , i f b e l o w N

    a r e n o t i m p l e m e n t e d e f -

    c i e n t l y

    T h i s o f t e n r e q u i r e s i m p l e m e n t i n g t h e v i r t u a l

    m a c h i n e d i e r e n t l y t h a n t h e d e s i g n m a y d i c t a t e : : :

    A l l e v i a t i n g I n t e r - l e v e l D e p e n d e n c i e s

    T o m a x i m i z e r e u s e , i t i s e s s e n t i a l t o e l i m i -

    n a t e r e d u c e d e p e n d e n c i e s b e t w e e n " v i r t u a l

    m a c h i n e l e v e l s : : :

    T h e r e f o r e , v i r t u a l m a c h i n e s a r e o f t e n o r g a -

    n i z e d i n t o h i e r a r c h i c a l l a y e r s o r l e v e l s o f a b -

    s t r a c t i o n

    2 5

    V i r t u a l M a c h i n e c o n t ' d

    A h i e r a r c h y " m a y b e d e n e d t o r e d u c e

    m o d u l e i n t e r a c t i o n s b y r e s t r i c t i n g t h e t o p o l -

    o g y o f r e l a t i o n s h i p s b e t w e e n v i r t u a l m a -

    c h i n e s

    A r e l a t i o n d e n e s a h i e r a r c h y i f i t p a r t i -

    t i o n s u n i t s i n t o l e v e l s

    L e v e l 0 i s t h e s e t o f a l l u n i t s t h a t u s e n o o t h e r

    u n i t s

    L e v e l i i s t h e s e t o f a l l u n i t s t h a t u s e a t l e a s t

    o n e u n i t a t l e v e l i a n d n o u n i t a t l e v e l i

    A d v a n t a g e s o f h i e r a r c h i c a l s t r u c t u r i n g

    F a c i l i t a t e s i n d e p e n d e n t d e v e l o p m e n t o f l e v e l s

    o r l a y e r s

    I s o l a t e s r a m i c a t i o n s o f c h a n g e

    E n a b l e s r a p i d p r o t o t y p i n g

    2 6

    V i r t u a l M a c h i n e c o n t ' d

    R e l a t i o n s t h a t d e n e h i e r a r c h i e s :

    U s e s

    I s - C o m p o s e d - O f

    I s - A

    H a s - A

    T h e r s t t w o a r e g e n e r a l t o a l l d e s i g n

    m e t h o d s , t h e l a t t e r t w o a r e m o r e p a r t i c u -

    l a r t o o b j e c t - o r i e n t e d d e s i g n a n d p r o g r a m -

    m i n g

    2 7

    V i r t u a l M a c h i n e c o n t ' d

    T h e U s e s R e l a t i o n

    XU s e s

    Yi f t h e c o r r e c t f u n c t i o n i n g o f

    Xd e -

    p e n d s o n t h e a v a i l a b i l i t y o f a c o r r e c t i m p l e -

    m e n t a t i o n o f Y

    N o t e , u s e s

    i s n o t n e c e s s a r i l y t h e s a m e a s i n -

    v o k e s :

    S o m e i n v o c a t i o n s a r e n o t

    u s e s r e l a t i o n s

    e . g . , e r r o r l o g g i n g

    S o m e

    u s e s r e l a t i o n s d o n ' t i n v o l v e d i r e c t i n -

    v o c a t i o n s

    e . g . , m e s s a g e p a s s i n g , i n t e r r u p t s , s h a r e d

    m e m o r y a c c e s s

    A s i m p l e , b u t e e c t d e s i g n h e u r i s t i c i s t o d e s i g n

    u s e s r e l a t i o n s t h a t y i e l d a h i e r a r c h y

    i . e . , a v o i d c y c l e s i n t h e u s e s g r a p h "

    2 8

  • 8/3/2019 OOD Overview

    8/10

    V i r t u a l M a c h i n e c o n t ' d

    T h e U s e s R e l a t i o n c o n t ' d

    A l l o w X

    t o u s e Y

    w h e n :

    Xi s s i m p l e r b e c a u s e i t u s e s

    Y

    e . g . , s t a n d a r d C l i b r a r y r o u t i n e s , O S I l a y e r s

    Yi s n o t s u b s t a n t i a l l y m o r e c o m p l e x b e c a u s e

    i t i s n o t a l l o w e d t o u s e X

    i . e . , h i e r a r c h i e s s h o u l d b e d e s i g n e d t o b e

    u s e f u l , a n d n o t j u s t t o b l i n d l y s a t i s f y s o f t -

    w a r e e n g i n e e r i n g p r i n c i p l e s

    T h e r e i s a u s e f u l s u b s e t c o n t a i n i n g

    Ya n d

    n o tX

    i . e . , a l l o w s s h a r i n g a n d r e u s e o f

    Y

    T h e r e i s n o c o n c e i v a b l y u s e f u l s u b s e t c o n -

    t a i n i n g X

    b u t n o t Y

    i . e .

    , Yi s n e c e s s a r y f o r

    Xt o f u n c t i o n c o r -

    r e c t l y

    2 9

    V i r t u a l M a c h i n e c o n t ' d

    T h e U s e s R e l a t i o n c o n t ' d

    H o w s h o u l d r e c u r s i o n b e h a n d l e d ?

    G r o u p

    Xa n d

    Ya s a s i n g l e e n t i t y i n t h e u s e s

    r e l a t i o n

    A h i e r a r c h y i n t h e u s e s

    r e l a t i o n i s e s s e n t i a l f o r

    d e s i g n i n g n o n - t r i v i a l r e u s a b l e s o f t w a r e s y s t e m s

    N o t e t h a t c e r t a i n s o f t w a r e s y s t e m s r e q u i r e s o m e

    f o r m o f c o n t r o l l e d v i o l a t i o n o f a u s e s h i e r a r c h y

    e . g . , a s y n c h r o n o u s c o m m u n i c a t i o n p r o t o c o l s ,

    c a l l - b a c k s c h e m e s , s i g n a l h a n d l i n g , e t c .

    U p c a l l s a r e o n e w a y t o c o n t r o l t h e s e n o n -

    h i e r a r c h i c a l d e p e n d e n c i e s

    3 0

    V i r t u a l M a c h i n e c o n t ' d

    T h e I s - C o m p o s e d - O f R e l a t i o n

    T h e i s - c o m p o s e d - o f r e l a t i o n s h i p i l l u s t r a t e s h o w

    t h e s y s t e m i s s t a t i c a l l y d e c o m p o s e d i n t o i t s

    c o n s t i t u e n t c o m p o n e n t s

    Xi s - c o m p o s e d - o f

    fx

    i

    gi f X i s a g r o u p o f u n i t s

    x

    i

    t h a t s h a r e s o m e c o m m o n p u r p o s e

    A g r a p h i c a l d e s c r i p t i o n o f a s y s t e m ' s a r c h i t e c -

    t u r e m a y b e s p e c i e d b y t h e i s - c o m p o s e d - o f

    r e l a t i o n s u c h t h a t :

    N o n - t e r m i n a l a r e v i r t u a l " c o d e

    T e r m i n a l s a r e t h e o n l y u n i t s r e p r e s e n t e d b y

    a c t u a l " c o d e

    3 1

    V i r t u a l M a c h i n e c o n t ' d

    T h e I s - C o m p o s e d - O f R e l a t i o n c o n t ' d

    M a n y p r o g r a m m i n g l a n g u a g e s s u p p o r t t h e i s -

    c o m p o s e d - o f r e l a t i o n v i a s o m e h i g h e r - l e v e l m o d u l e

    o r r e c o r d s t r u c t u r i n g t e c h n i q u e

    N o t e : t h e f o l l o w i n g a r e n o t e q u i v a l e n t :

    1 . L e v e l v i r t u a l m a c h i n e

    2 . M o d u l e a n e n t i t y t h a t h i d e s a s e c r e t

    3 . A s u b p r o g r a m a c o d e u n i t

    4 . A r e c o r d a p a s s i v e d a t a s t r u c t u r e

    M o d u l e s a n d l e v e l s n e e d n o t b e i d e n t i c a l , a s a

    m o d u l e m a y h a v e s e v e r a l c o m p o n e n t s o n s e v -

    e r a l l e v e l s o f a u s e s h i e r a r c h y

    L i k e w i s e , a l e v e l m a y b e i m p l e m e n t e d v i a

    s e v e r a l m o d u l e s : : :

    3 2

  • 8/3/2019 OOD Overview

    9/10

    V i r t u a l M a c h i n e c o n t ' d

    T h e I s - A a n d H a s - A R e l a t i o n s

    T h e s e t w o r e l a t i o n s h i p s a r e a s s o c i a t e d w i t h

    o b j e c t - o r i e n t e d d e s i g n a n d p r o g r a m m i n g l a n -

    g u a g e s t h a t p o s s e s s i n h e r i t a n c e a n d c l a s s f e a -

    t u r e s

    I s - A d e s c e n d a n t o r i n h e r i t a n c e r e l a t i o n s h i p

    c l a s s X p o s s e s s e s

    I s - A r e l a t i o n s h i p w i t h c l a s s

    Y i f i n s t a n c e s o f c l a s s X a r e s p e c i a l i z a t i o n o f

    c l a s s Y

    e . g . , a s q u a r e i s a s p e c i a l i z a t i o n o f a r e c t a n -

    g l e , w h i c h i s a s p e c i a l i z a t i o n o f a s h a p e : : :

    H a s - A

    c l i e n t o r c o m p o s i t i o n r e l a t i o n s h i p

    c l a s s X p o s s e s s e s a H a s - A r e l a t i o n s h i p w i t h

    c l a s s Y i f i n s t a n c e s o f c l a s s X c o n t a i n a n

    i n s t a n c e s o f c l a s s Y

    e . g . , a c a r h a s a n e n g i n e a n d f o u r t i r e s

    : : :

    3 3

    S e p a r a t e P o l i c i e s a n d M e c h a n i s m s

    M o t i v a t i o n

    S e p a r a t e c o n c e r n s b e t w e e n t h e w h a t w h e n a n d

    t h e h o w a t b o t h t h e d e s i g n a n d i m p l e m e n t a -

    t i o n p h a s e s

    M u l t i p l e p o l i c i e s m a y b e i m p l e m e n t e d v i a

    a s e t o f s h a r e d m e c h a n i s m s

    e . g . , O S s c h e d u l i n g a n d v i r t u a l m e m o r y p a g i n g

    S a m e p o l i c y c a n b e i m p l e m e n t e d b y m u l -

    t i p l e m e c h a n i s m s

    e . g . , r e l i a b l e , n o n - d u p l i c a t e d , b y t e s t r e a m s e r -

    v i c e c a n b e p r o v i d e d b y m u l t i p l e c o m m u n i c a -

    t i o n p r o t o c o l s

    W h a t i s a p o l i c y a n d w h a t i s a m e c h a n i s m

    i s a m a t t e r o f p e r s p e c t i v e : : :

    3 4

    P r o g r a m F a m i l i e s a n d S u b s e t s

    P r o g r a m f a m i l i e s a r e a c o l l e c t i o n o f r e -

    l a t e d m o d u l e s o r s u b s y s t e m s t h a t f o r m a

    r e u s a b l e a p p l i c a t i o n f r a m e w o r k ,

    e . g . ,

    U N I X S y s t e m V S T R E A M S I O s u b s y s t e m

    G r a p h i c a l u s e r i n t e r f a c e f r a m e w o r k s s u c h a s I n -

    t e r V i e w s , M F C , a n d F r e s c o

    T h e c o m p o n e n t s i n a p r o g r a m f a m i l y a r e

    s i m i l a r e n o u g h t h a t i t m a k e s s e n s e t o e m -

    p h a s i z e t h e i r s i m i l a r i t i e s b e f o r e d i s c u s s i n g

    t h e i r d i e r e n c e s

    M o t i v a t i o n

    P r o g r a m f a m i l i e s a r e u s e f u l f o r i m p l e m e n t i n g

    s u b s e t s

    R e a s o n s f o r p r o v i d i n g s u b s e t s i n c l u d e c o s t , t i m e ,

    p e r s o n n e l r e s o u r c e s , e t c .

    3 5

    P r o g r a m F a m i l i e s a n d S u b s e t s

    c o n t ' d

    I d e n t i f y i n g s u b s e t s :

    A n a l y z e r e q u i r e m e n t s t o i d e n t i f y m i n i m a l l y u s e -

    f u l s u b s e t s

    A l s o i d e n t i f y m i n i m a l i n c r e m e n t s t o s u b s e t s

    A d v a n t a g e s o f s u b s e t t i n g :

    F a c i l i t a t e s s o f t w a r e s y s t e m e x t e n s i o n a n d c o n -

    t r a c t i o n

    P r o m o t e s r e u s a b i l i t y

    A n t i c i p a t e s p o t e n t i a l c h a n g e s

    3 6

  • 8/3/2019 OOD Overview

    10/10

    P r o g r a m F a m i l i e s a n d S u b s e t s

    c o n t ' d

    P r o g r a m f a m i l i e s s u p p o r t :

    D i e r e n t s e r v i c e s f o r d i e r e n t m a r k e t s

    e . g . , d i e r e n t a l p h a b e t s , d i e r e n t v e r t i c a l

    a p p l i c a t i o n s , d i e r e n t I O f o r m a t s

    D i e r e n t h a r d w a r e o r s o f t w a r e p l a t f o r m s

    e . g . , c o m p i l e r s o r O S s

    D i e r e n t r e s o u r c e t r a d e - o s

    e . g . , s p e e d v s . s p a c e

    D i e r e n t i n t e r n a l r e s o u r c e s

    e . g . , s h a r e d d a t a s t r u c t u r e s a n d l i b r a r y r o u -

    t i n e s

    D i e r e n t e x t e r n a l e v e n t s

    e . g . , U N I X I O d e v i c e i n t e r f a c e

    B a c k w a r d c o m p a t i b i l i t y

    e . g . , s o m e t i m e s i t i s i m p o r t a n t t o r e t a i n b u g s !

    3 7