ood overview
TRANSCRIPT
-
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