Nerson - 1992 - Applying Object-Oriented Analysis and Design
Transcript of Nerson - 1992 - Applying Object-Oriented Analysis and Design
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
1/12
a r / ~ i G l e s
J e a n - M a r c N e r s o n
A p p l y i n g O b j e c t - O r i e n t e d
A n a l y s i s a n d D e s i g n
: io n a l a n a l y s i s a n d d e s i g n t e c h n i q u e s i m p l y c o n s t a n t p a r a d i g m s h i ft s , s i n c e
m a n i p u l a t e d i f f e r e n t c o n c e p t s a t e a c h d i f f e r e n t p h a s e o f s o f t w a r e d e v e l o p -
t. T h e o b j e c t - o r i e n t e d t e c h n i q u e o f fe r s a s e a m l e s s p r o c e s s th a t h e l p s v i e w i n g
t h e s o f t w a r e a r c h i t e c t u r e i n t e r m s o f p r o b l e m s p a c e e l e m e n t s .
Th i s a r t i c l e p r e s e n t s a n a n a l y s i s
a n d d e s i g n t e c h n i q u e r e l y i n g o n a
s e t o f n o t a t i o n s a n d g u i d e li n e s . I t
p r o m o t e s a d e s c r i p t i v e m e t h o d t h a t
a d d r e s s e s b o t h a n a l y s i s a n d d e s i g n
i s su e s . Ke y c r i t e r i a h a v e g u i d e d
t h e d e f i n i t i o n o f t h e t e c h n i q u e :
s c a l a b i l i t y , r e v e r s e e n g i n e e r i n g s u p -
p o r t , d o c u m e n t a t i o n a i d , s t r u c t u r -
i n g m e c h a n i s m s , s y s t e m a t i c d e s i g n
s u p p o r t a n d c o m p o n e n t m a n a g e -
m e n t s u p p o r t . A c a s e s t u d y s h o w s
h o w t h e t e c h n i q u e w o r k s a n d f o s -
t e r s th e p r o d u c t i o n o f r e u sa b l e
c o m p o n e n t s .
The Object -Or iented
Deve lopment Process
I n d u s t r i a l - q u a l i t y s o f t w a r e p r o d u c -
t i on o f t o d a y h a s b e c o m e e x t r e m e l y
d e m a n d i n g . A p p l i c a t io n s t e n d t o b e
m u c h l a r g e r a n d m o r e c o m p l e x
a n d t h u s m o r e d i f f i c u l t to d e v e l o p .
T h e i r f u n c t i o n a l i t y i s s h i f t i n g f r o m
p r o c e s s i n g t o s y s te m s i m u l a t i o n a n d
i n t e g r a t i o n ; f r o m c e n t r a l i ze d t o di s-
t r i b u t e d c o m p u t i n g ; f r o m t e x t -
b a s e d t o g r a p h i c s a n d m u l t i m e d i a -
b a s e d s y s t e m s [ 2 3 ] .
H i g h l y v o la t il e r e q u i r e m e n t s a n d
s t r o n g c o m p e t i t i o n c a l l f o r e v e n
s h o r t e r d e v e l o p m e n t t i m e s . T h i s
c o n f l ic t c au s e s m a n y s o f t w a r e p r o d -
u c t s t o b e c o m e d e l a y e d , o r w o r s e ,
r e l e a s e d w i t h o u t a d e q u a t e p r o d u c -
t i o n q u a l i t y .
T h e i m p o r t a n c e o f a p p li c at i on
p o r t a b i l i t y a m o n g a l a r g e n u m b e r
o f r a p id l y c h a n g i n g h a r d w a r e p la t-
f o r m s a n d t h e n e e d t o b e e a s y t o
l e a rn a n d u n d e r s t a n d b y e n d u s e r s
w i t h d i f f e r e n t b a c k g r o u n d s , m a k e
t h i n g s e v e n m o r e d i f f i c u l t .
T h e r e f o r e , t h e r e i s n o l o n g e r a n y
t i m e t o w a s t e o n r e i n v e n t i o n o r i n -
e f f i c ie n t i m p l e m e n t a t i o n o f w e ll -
k n o w n a l g o r i t h m s a n d u s e r i n t e r -
f a c e t e c h n i q u e s .
I n t h e l o n g r u n , o b j e c t - o r i e n t e d
s o f t w a r e i s a i m e d a t h e l p i n g t o s i m -
p l i f y t h e wa y we v i e w t h e r e a l wo r l d
a s i t i s ( o r a s i t s h o u l d b e ) a n d t r a n s -
l a t e o u r v i e w i n t o s o f t wa r e s y s t e m 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 x i s t t o
h e l p m a n a g e t h e c o m p l e x i t y a c -
c o r d i n g t o s o m e k e y p o i n t s :
* O b j e c t - o r i e n t e d a r c h i t e c t u r e s a r e
d e c e n t r a l i z e d ;
C l a s s i f i c a ti o n i s p a r t o f t h e s y s t e m
s t r u c t u r e ;
T h e s a m e i d e a s a n d c o n c e p t s a r e
m a n i p u l a t e d f r o m t h e r e q u i r e -
m e n t s p h a s e d o w n t o t h e i m p l e -
m e n t a t i o n p h a s e .
Th e o b j e c t l i f e c y c l e s h o wn i n
F i g u r e 1 a n d i n s p i r e d b y [ 9, 1 6 , 1 8 ],
c o n v e n i e n t l y r e f l e c t s a d e v e l o p -
m e n t s c h e m e i n w h i c h a k n o w l e d g e
b a s e r e p r e s e n t e d b y li b ra r ie s o f
r e u s a b l e a n d p l u g g a b l e c o m p o -
n e n t s i m p a c t t h e d i f f e r e n t p r o d u c -
t i o n p h a s e s . T h e c l a s s r e u s e a n d
g e n e r a l i z a t i o n p r o c e s s i s a n i t e r a -
t iv e p r o c e s s i n f l u e n c i n g b o t h a n a l y -
s is ( r e u s e o f f r a m e w o r k s [ 6 ]) a n d
des ign ( r eus e o f c l a s s i f i ca t ions [ 10 ]) .
C o m p a r e d t o t r a d i ti o n a l t e c h -
n i q u e s , o b j e c t - o r i e n t e d d e v e l o p -
m e n t i s a s e a m l e s s p r o c e s s : t h e r e i s
n o p a r a d i g m s h i f t b e t w e e n t h e d i f -
f e r e n t s t a g e s o f t h e l i f e c y c l e. Un i -
f o r m p r i n c i p l e s a p p l y t h r o u g h o u t
t h e d e v e l o p m e n t p r o c e s s . I f t y p e s
o f o b j ec t s i d e n t if i e d d u r i n g s y s t e m
a n a ly s is a r e s p e c i f i e d b y a n a m e a n d
a p r e c i s e s e t o f p r o p e r t i e s , t h e y w i ll
t r a n s l a t e i n t o s y n t a c t i c a l u n i t s ( u s u -
a l ly ca l l ed "c l a s ses" ) in the f ina l p ro -
g r a m . T h i s o b s e r v a t i o n i s b o t h
g o o d n e w s a n d b a d n e w s .
T h e g o o d n e w s i s t h a t o n c e t h e
i n t e l le c t u a l p r o c e s s o f o b j e c t -
o r i e n t e d d e v e l o p m e n t i s p r o p e r l y
u n d e r s t o o d a n d m a s t e r e d , i t c a n b e
s u c c e s s f u l l y u s e d ( w i t h s o m e v a r i a -
t i o n s i m p o s e d b y t h e l e v el s o f a b -
s t r a c t i o n ) t o t h e d i f f e r e n t d e v e l o p -
m e n t s ta g es . T r a c i n g r e q u i r e m e n t s
b e c o m e s e a s i e r s i n c e m a n i p u l a t i o n
o f e n ti t ie s i s m o r e n a t u r a l a n d
s m o o t h .
T h e b a d n e w s i s t h a t w h e n e v e r
i n a p p r o p r i a t e t y p e s o f o b je c t s a r e
s e l e c t e d , o r w h e n e v e r a w k w a r d
s t r u c t u r i n g c h o i c e s a r e m a d e , t h e
f i n a l a r c h i t e c t u r e r e f l e c t s t h e s e
p o o r d e c i s i o n s .
B e c a u s e o f t h e c o n t i n u o u s d e v e l -
o p m e n t p r o c e s s i n v o l v e d , o b j e c t -
o r i e n t e d t e c h n i q u e s t e n d t o b l u r
t h e b o r d e r l i n e b e t w e e n a n a ly s i s a n d
d e s i g n .
I n t h e n e x t s e c t i o n s , we w i ll s t u d y
h o w a n o b j e c t - o r i e n t e d a n a l y s is a n d
d e s i g n m e t h o d a n d t e c h n i q u e i s
a p p l i e d . T h e t e c h n i q u e u s e d i s
b a s e d o n a m e t h o d a n d n o t a t i o n
c a l l e d B O N ( B e t t e r O b j e c t N o t a t i o n
[ 1 4 , 1 5 ] ) . A l t h o u g h t h e B O N n o t a -
t i o n i s b o t h g r a p h i c a l a n d t e x t u a l ,
w e s h a l l u s e t h e g r a p h i c a l f o r m . I n
t h e r e m a i n i n g t e x t , a l l B O N -
s p e c i f i c t e r m s w i l l a p p e a r i n
b o l d -
i t a l i c t y p e w h e n f i r s t i n t r o d u c e d .
Object -Or iented Ana lys is w i th
a n Exa m p l e
T h e s o f t w a r e t o b e d e v e l o p e d is i n-
t e n d e d t o a u t o m a t e t h e r e s e r v a t io n
a n d i n v o i c i n g sy s t e m o f a c a r r e n t a l
COMMUNICATIONSOF THE ACM/September 1992/Vol.35, No.9 6 3
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
2/12
c o m p a n y . A s h o r t o u t li n e o f t h e
m a j o r r e q u i r e m e n t s is g i v e n b e lo w .
Vehicles are taken f r om one locat ion
and re turned to the same locat ion .
D i f f e re n t m o d e l s o f c a r a re g ro u p e d
i n t o a sm a l l n u m b e r o f p r i c e c la s se s .
D i f f e re n t r e n t a l p l a n s a re a v a il a b l e ,
wi th a specia l weekend ra te to a t t ract
nonbusiness customers.
T he price charged i s estab li shed in
a d v a n c e .
Fre e o p t io n s a re : a u t o m a t i c o r m a n -
u a l t ra n sm i s s io n , t w o o r f o u r d o ors ,
l = ig u f e 1 . T h e objec t -oriented soft -
ware l ife cycle
sm o k e r o r n o n sm o k e r c a r .
N o n f i t t e d e x t ras a re : ro o f ra c k ,
t ra i ler , snow chains, c h i ld sea ts . T hese
extras are charged to the c l ien t .
Th e system mus t handle b lock booking
o f c a rs a n d k e e p t ra c k o f c a r a v a i l a b i l -
ity.
Ob j e c t - o r i e n t e d a n a l y s i s t r i e s t o
i d e n t i f y t h e t y p e o f o b je c t s t h a t m a p
i n t o e l e m e n t s o f t h e a p p l i c a t i o n
d o m a i n t o b e m o d e l e d . T h i s a c t iv i ty
h e l p s t o f i n d t h e m a j o r r e l a t i o n -
s h i p s b e t w e e n t h e d i f f e r e n t t y p e s o f
o b j e c t s c o n s i d e r e d a s c l a s s i n -
s t a n c e s . C l a s s e s a r e d e f i n e d w i t h
t h e i n f o r m a t i o n t h e y m a i n t a i n , t h e
IV USER R EQUIREMENTS
INFORMAL 1
REQUIREMENTS
~ ANALYSIS
I DESCRIPTIVEMODEL I ~~ I t #
- - - . 1 ~ ~ R E U S A B L E /
I
D E S I G N + ]
C O M P O N E N T S |
~CONSTRUCTION
I /
~ ( CLASSESNETWORK ) ~ L J
o
(3
ABSTRACTION/GENERALIZATION
1 ~ b l e 1 .
C l u s t e r c h a r t o f t h e c a r r e n t a l s y s t e m
CLUSTER CHA RT: C A R R E N T A L
CLASS
C L I E N T
CONTRACT
R E N T A L
V EH I C L E
M O D E L
RATE
DEFINITION
Car renter , individual or corporate customer
Rental
erms wi th payment condi t ions
Rental nform ation
completed wh en
taking
out and returning a vehicle
AutOmObilese lec ted rom the renta l
l eet
Description of selected features
Pricing conditions
s e r v i c e s t h e y p r o v i d e , t h e c o n -
s t ra i n ts t h e y c o m p l y w i th a n d h o w
t h e y r e l a t e t o o t h e r c l a s s e s . An a l y s i s
c l a s s e s m u s t s a t i s f y s o m e f u n c t i o n a l
r e q u i r e m e n t s a n d u s u a l ly r e fl e c t a
c e r t a i n s y s t e m v i e w p o i n t . A t t h e
ana lys i s l eve l a l l i den t i f i ed c l a s s in -
f o r m a t i o n i s c o n s i d e r e d p u b l i c .
An a l y s i s i n v o l v e s s o m e k e y a c t i v i -
t ie s t h a t r e p r e s e n t t h i n g s t o b e p e r -
f o r m e d b y t h e a n a l y s t to g e t a b e t t e r
u n d e r s t a n d i n g o f w h a t n e e ds t o be
d o n e . I n t h a t r es p e c t, B O N p r o -
v i d es a n o t a t i o n a n d a s e t o f g u i d e -
l i n e s a n d r e c o m m e n d a t i o n s a p p l i -
c a b l e t o t h e p r e a n a l y s i s a n d a n a l y s i s
p h a s e d o w n t o d e ta i l e d d e s i g n ; t h e
r e s u l t b e i n g a s t a r t i n g p o i n t f o r t h e
f i n a l c l a s s p r o g r a m m i n g i n s o m e
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 n o t a t i o n i s b a c k e d w i t h a s e t
o f g u i d e l i n e s t h a t s p e c i f y a c ti v i ti e s
a n d d e l i v e r a b l e s . A l t h o u g h a c t i v i -
t i e s a r e o f t e n l i s t e d i n s e q u e n t i a l
o r d e r , t h e y a r e i t e r a t i v e i n p r a c t i c e .
F o r i n s t a n c e , t h e r e i s s o m e t i m e s n o
c l e a r d i s t i n c t i o n b e t w e e n w h a t
r e a l l y b e l o n g s t o a n a l y s i s a n d w h a t
r e a l l y b e l o n g s t o d e s i g n . V e r y
r o u g h l y o n e c o u l d s a y t h a t a n a l y s i s
b e c o m e s d e s i g n w h e n e v e r i m p l e -
m e n t a t i o n d e c i s i o n s a r e t a k e n ,
w h e n e v e r n o n p u b J i c i n f o r m a t i o n is
i n t r o d u c e d i n a s y s t e m , o r w h e n -
e v e r n e w l y i n t r o d u c e d c l a s s e s d o
n o t r e l a t e t o p r o b l e m s p a c e o b j e c t s .
F i n d i n g , N a m i n g , a n d C l u s t e r i n g
Classes
Lo ok in g for ob jec ts and c lasses is
the very f i rs t s tep o f ob jec t -or ien ted
ana lys is . I t resem bles he ac t iv ity o f
desc r i b i ng a p i c tu re v iew ing the
p rob lem space o r w h i ch the sys tem
borde r l ine i s t he f r ame .
Bo th imag ina t i on and abs t rac -
t i on g u i d e t h e a n a l y s t . T h e s u b t l e
e f f o r t i s t o d e c o u p l e " n o u n s " p o -
t e n t i a l l y r e p r e s e n t i n g s e r v i c e s f r o m
t h o s e m a p p i n g t o e f f e c t i v e c a n d i -
d a t e c l a s s e s . N o m i r a c l e f o r m u l a
e x i s t s i n t h a t r e s p e c t b e s i d e s e x p e r i -
e n c e a n d r e c al l o f g o o d p r a c ti c e s.
S o m e g u i d e l i n e s e x i s t , b u t b e t t e r
s e r v e a s c h e c k l i s t s t o t h i n g s n o t t o
miss .
W e r e t a i n b a s i c a n d s i m p l e i d e a s
a s p r i n c i p l e s : t h e a i m o f a n a l y s i s is
6 4 September 1992/Vol.35, No.9/COMMUNICATIONS F T H E A C M
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
3/12
a r t i c l e s
t o p u t s o m e o r d e r t o o u r p e r c e p -
t i o n o f t h e r e a l w o r l d . T h e r e s u l t is
n o t t o p r o d u c e s o m e t h i n g t h a t
c o m p l i c a t e s t h e p r o b l e m t o s o lv e o r
t h e r e a l i t y t o m a p . O n t h e c o n t r a r y ,
t h e p u r p o s e i s t o s i m p l i fy , to m a s t e r
t h e c o m p l e x i t y b y r e f o r m u l a t i n g
t h e p r o b l e m . A n a l y si s m u s t r e m o v e
n o i s e a n d o v e r s p e c i f i c a t i o n , f i n d
i n c o n s i s t e n c i e s , p o s t p o n e i m p l e -
m e n t a t i o n d e c i s i o n s , p a r t i t i o n t h e
p r o b l e m s p a c e , t ak e a c e r t a i n v i ew -
p o i n t a n d d o c u m e n t i t. O b j e c t o ri -
e n t a t i o n s i m p l y a d d s s t r u c t u r i n g
m e c h a n i s m s f o r d e f i n i n g r e l a t i o n -
s h i p s b e t w e e n s y s t e m e l e m e n t s a n d
d e c e n t r a l i z i n g l o c al d e c i s i o n s .
A s y s t e m u s u a l l y i n t e r a c t s w i t h
d i f f e r e n t u s e r s . U s e r s a r e n o t
e q u a l l y q u a l i f i e d t o a c c e s s s p e c i f i c
p i ec e s o f i n f o r m a t i o n . T h e r e a r e
v a r i o u s r e a s o n s f o r t h i s : t h e l e v e l o f
r e s p o n s i b i l i t y i n a n o r g a n i z a t i o n ;
a c c e s s r i g h t s ( u s e r , a d m i n i s t r a t o r ) ;
t h e l e v e l o f c o n f i d e n c e ( n o v ic e , a d -
v a n c e d u s e r ) ; t h e l e v e l o f e x p e r t i s e
o r k n o w l e d g e o f t h e a p p l i c a t i o n
d o m a i n . O c c u p a t i o n a l n a m e s g i v e
s o m e i d e a s a b o u t p o s s i b l e c l a s se s
f o r u s e r s :
engineer, employer, cus-
tomer,
e t c .
L a r g e s y s t e m s a r e e x p e c t e d t o b e
u s e d i n c o m p l e t e l y d i f f e r e n t c o n -
t e x ts . F o r a c o m p a n y u s i n g a s y s te m
o p e r a t i n g t h r o u g h a c o m m u n i c a -
t i o n n e t w o r k
branches, affiliates, sub-
sidiaries,
a n d o t h e r
manufacturing
plants
m a y b e s i m i l a r ly d e s c r i b e d
r e g a r d l e s s o f t h e g e o g r a p h i c a l l o c a -
t i o n .
F o r o t h e r s p e c i f i c s y s t e m s , t h e
p l a c e o f o p e r a t i o n i m p a c t s t h e b e -
h a v io r . I n t h e c a se o f a n e m b e d d e d
s y s t em , t h e p l a c e o f e x e c u t i o n m a y
c o n f i g u r e t h e s y s t e m a c c o r d i n g t o
e x t e r n a l c o n s t r a i n t s : s e v e r e o r p r o -
t e c t e d e n v i r o n m e n t , a b i l it y t o t u n e
t h e t i m e / s p a c e t r a d e o f f , a b i l i t y t o
l i m i t o r e x t e n d t h e a c c u r a c y o f a
c o m p u t a t i o n d e p e n d i n g o n t h e
c o n t e x t .
S i n c e o b j e c t - o r i e n t e d a r c h i t e c -
t u r e s a r e f l e x ib l e , t h e y c a n m o d e l
d i f f e r e n t p r o b l e m s p a c e d e s c r i p -
t i o n s d i r e c t l y a s p a r t o f t h e s y s t e m
d e s c r i p t i o n .
I n f o r m a t i o n s y s t em s r e f l e c t t h e
w a y o r g a n i z a t i o n s w o r k . I n t h e c a s e
o f c o m m u n i c a t i o n s y s te m s , i n f o r -
m a t i o n i s p r e s e n t e d d i f f e r e n t l y a c -
c o r d i n g t o i m p l i e d a c t o r s . A m i l i -
t a r y s y s t e m w i l l n o t d i s p l a y
ground
information
i n t h e s a m e f a s h i o n f o r
t h e a r m y g e n e r a l a s f o r t h e f r o n t -
l i n e s o ld i e r . A c t o r s i n a n o r g a n i z a -
t i o n w i l l a c c e s s t h e s a m e i n f o r m a -
t i o n , b u t i t w i ll b e p r e s e n t e d
d i f f e r e n t l y . T h e t e r m " o r g a n i z a -
t io n " h e r e m u s t h e u n d e r s t o o d n o t
o n l y a s th e m a p p i n g o f t h e w o r k
b r e a k d o w n s t r u c t u r e o n t o a r e -
s p o n s i b i l it y a s s i g n m e n t c h a r t b u t
a l so a s a w a y i n f o r m a t i o n m u s t b e
d e t a i l e d o r n o t , d e p e n d i n g o n t h e
a c t o r s ' l e v e l s o f r e s p o n s i b i l i t y .
A n i n f o r m a t i o n s y s t e m b e h a v e s
a s a s e t o f b l a c k b o x e s o f w h i c h t h e
i n t r in s i c s a r e h i d d e n a n d t h e o n l y
v i s i b le p a r t i s t h e l i s t o f s e r v i c e s a n d
s t a t e s p r o v i d e d t o t h e u s e r . A l -
t h o u g h i t m a y b e t e m p t i n g t o v ie w
t h e s y s t e m a s a c o l l e c t i o n o f f u n c -
t i o n s, t h e o b j e c t a p p r o a c h e n f o r c e s
t h e u s e o f d a t a a b s t r a c t i o n t h a t e n -
c a p s u l a t e s s e r v i c e s . T h e r e f o r e ,
e v e n i f s e r v i c e s c o m e t o m i n d f i r s t ,
o n e s h o u l d l o o k f o r t h e u n d e r l y i n g
c l as s es t h a t r e p r e s e n t t h e g r o u p i n g
o f t h e s e o p e r a t i o n s .
M a n y s y s t e m s c a n b e d e f i n e d , a t
t h e r e q u i r e m e n t l e ve l s, a s s ta t e
m a c h i n e s . A s t a t e - t r a n s i t i o n d i a -
g r a m , i n t h i s c a s e, i s n o t a n i m p l e -
m e n t a t i o n t e c h n i q u e , s i m p l y a c o n -
v e n i e n t w a y t o e x p r e s s h o w t h e
s y s t e m c h a n g e s a c c o r d i n g t o i n t e r -
n a l e v e n t s . I t i s g e n e r a l l y t o o c o m -
p l i c a t e d , h o w e v e r , t o r e p r e s e n t t h e
e n t i r e l o g i c u s i n g t h i s m o d e l . L o o k -
i n g a t t h e i n f o r m a t i o n s y st e m m o d -
e l i n g t e c h n i q u e s , d i a g r a m s a r e p r o -
d u c e d t o s t re s s t h e i n f o r m a t i o n
f lo w s . S u c h d i a g r a m s a r e a l s o a v a r-
i a t i o n o f t h e s t a t e - t r a n s i t i o n d i a -
g r a m a n d c a n l e ad t o th e p r o d u c -
t i o n o f s y s t e m c l a s s e s .
A f i r s t p r i n c i p l e is t o c o n s i d e r
c l as s es a s r e p r e s e n t a t i o n s o f a b -
s t r a c t d a t a t y p e s a s o p p o s e d t o
" t h i n g s t h e y d o , " w h i c h i s f a r t o o
c l o s e t o p r o c e d u r a l t e c h n i q u e s . A
c l a ss h a s a n i n t e r n a l s t a t e a n d o f f e r s
s e r v i c e s .
T h e n , c l a s se s a r e g r o u p e d i n t o
clusters.
T h e g r o u p i n g f a c to r m a y
v a r y , b u t i n p r i n c i p l e i t i s s i m p l e r t o
d e s i g n a t e a c e r t a i n v i e w p o i n t a s t h e
m a i n f o c u s o f i n t e r e s t .
C l u s t e r s p l a y v a r i o u s r o l e s . D u r -
i n g a n a l y s i s t h e y h e l p g r o u p i n g
c l as s es a c c o r d i n g t o p r o x i m i t y c r i t e -
r i a b a s e d o n a s u b s y s t e m f u n c t i o n -
a l i t y , a n a b s t r a c t i o n l e v e l o r a n e n d -
u s e r s t a n d p o i n t . D u r i n g d e s i g n
t h e y a r e o f t e n u s e d a s a s t r u c t u r i n g
t e c h n i q u e t o s e l e c t i v e l y v i s u a l i z e t h e
c o u p l i n g b e t w e e n c l as s es . I n a n y
c a s e t h e y s h o u l d n o t b e c o n f u s e d
w i t h c l a s s e s .
F r o m t h e a n a l y s i s o f t h e c a r
r e n t a l s y s t e m , a n i n i t i a l s e t o f c l as s e s
c o m e s t o m i n d a n d p a r t i c i p a t e s i n
t h e d e f i n i t i o n o f a f i r s t c l u s t e r .
I n t h e e a r l y s t a g e s o f a n a l y s i s ,
B O N u s e s v a r i o u s c h a r t s f o r d e -
s c r i b i n g th e d i f f e r e n t t y p e s o f o b -
j e c t s . T h e s e c h a r t s a r e u s e d a s a
c o m m u n i c a t i o n t o o l b e t w e e n e n d
u s e r s a n d a n a l y s t s a n d w e r e i n -
s p i r e d b y t h e C R C t e c h n i q u e [ 1] ,
b u t w i t h a d i f f e r e n t r a t i o n a l e .
T h e
cluster chart
l i s t s c l a s s e s p a r -
t i c i p a t i n g in t h e i d e n t i f i e d c l u s t e r s
a n d g i v es a s h o r t d e f i n i t i o n f o r e a c h
o f t h e m . I t is v e r y c o m m o n t o s t a rt
w i t h o n l y o n e g e n e r a l c l u s t e r a n d
t h e n c o m e u p w i t h n e w o n e s a f t e r
d o i n g s o m e c l a ss g r o u p i n g . A s i m -
p l i f i e d c l u s t e r c h a r t f o r t h e c a r
r e n t a l s y s t e m i s g i v e n i n T a b l e 1 .
I t i s a l s o i m p o r t a n t t o l o c a t e th e
p l a c e o f a c l a s s w i t h i n t h e o v e r a l l
s t r u c t u r e . T h i s m e a n s t h a t f i n d i n g
r e l a t e d c l a s s e s i s m o r e i m p o r t a n t
t h a n f i n d i n g a s i n g l e c l a s s . D e s i g n
w i l l d e c i d e w h e t h e r c l a s s e s a r e
l i n k e d b y d e r i v a t i o n , a s s o c i a t i o n ,
g e n e r a l i z a t i o n , o r s p e c i a l iz a t i o n r e -
l a t i o n s h i p s. T a b l e 2 i l l u s tr a t e s h o w
c l u s t er i n g m a y g r o u p t o g e t h e r w i t h
a c l a s s , s a y
A U T O M O B I L E ,
q u i t e
d i f f e r e n t c l as se s d e p e n d i n g o n a p -
p l i c a t i o n d o m a i n s .
W e w i l l t h e n c o n t i n u e o u r s y s t e m
a n a l y s is b a s e d o n t w o t y p e s o f r e p -
r e s e n t a t i o n : a
dynamic model ,
s h o w -
i n g p a r t s o f i ts b e h a v i o r a n d a
s tat ic
model
d e s c r i b i n g i ts s t r u c t u r e .
E v e n t s a n d O b j e c t C o m m u n ic a t io n
Protocols
T w o d i f f e r e n t k i n d s o f e v en t s t h a t
a c t o n s y s t e m b e h a v i o r m u s t b e
s o r t e d o u t :
external events
a n d i n -
C O M M U N I C A T I O N S O F T H E
ACM/September 1992/ 1.35, No.9 6 S
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
4/12
t e r n a l e v en t s .
E x t e r n a l e v e n t s a r e a c t i o n s i n i ti -
a t e d b y t h e e x t e r n a l i n te r ac t or ., ~ t h a t
p r o d u c e a n i n c o m i n g d a t a f l ou r t h a t
c r o s s es t h e b o u n d a r y o f t h e s y s te m .
T h e y r e f e r t o s t i m u l i r e c e i v e d f r o m
t h e o u t s i d e u p o n w h i c h t h e s y s t e m
r e a c t s a c c o r d i n g t o a c e r t a i n b e h a v -
i o r . E x t e r n a l e v e n t s h e l p t o f i n d
c l a s s es t h a t i n t e r f a c e t h e s y s t e m
w i t h t h e o u t s i d e w o r l d . ' ] ' h e y
s h o u l d n o t b e c o n s i d e r e d a s " u n e x -
p e c t e d " e v e n t s . T h e y a r e t h i n g s
t h a t c a n p o s s i b ly h a p p e n b u t o v e r
w h i c h t h e s y s t e m h a s n o c o n t r o l o n
w h e t h e r o r w h e n t h e y m a y o c c ur .
E x t e r n a l e v e n t s m a y b e c o m e c l as s es
o r i n p u t p a r a m e t e r d a t a p a s s e d t o
c l a s s f e a t u r e s .
I n t e r n a l e v e n t s a r e t i m e - r e l a t e d
s t i m u l i t h a t m a y b e r e l a t i v e o r a b s o -
l u t e . T h e y r e f e r t o p a r t s o f s y s t e m
b e h a v i o r t h a t s i m p l y t r a n s l a t e i n to
c l a s s f e a t u r e s t h a t w i l l l e a d t o m e s -
s a g e s d e f i n i n g t h e objec t communi -
cation protocols.
S i n c e t h e y a c t o n
t h e s y s t e m s t a t e , t h e y a l s o t r a n s l a t e
i n t o a s s e r t i o n s t h a t c o n t r o l t h e
p r o p e r b e h a v i o r o f t h e s y st e m .
T h i s t e c h n i q u e r e l a t e s t o p r i n c i-
p l e s a p p l i e d i n " O b j e c t B e h a v i o r
A n a l y s i s " [ 1 9 ] .
T a b l e 3 g i v e s a n e x a m p l e o f
e v e n t s a p p l i c a b l e t o t h e c a r r e n t a l
s y s te m a n d c a n b e c o m p a r e d w i t h a
n o n r e l a t e d s y s t e m ( a t r a f f ic l i g h t
c o n t r o l l e r ) .
E v e n t s h e l p t o i n t r o d u c e t h e
d y n a m i c m o d e l t h a t c o m p l e m e n t s
t h e s t a t ic s y s t e m s t r u c t u r e . I t h i g h -
l i g h t s o b j e c t s r e l e v a n t t o s e l e c t e d
s y s t e m b e h a v i o r s . T h e d y n a m i c
m o d e l c o n s i s t s o f s c e n a r i o s d e m o n -
s t r a t i n g s i g n i f i c a n t o b j e c t c o m m u -
n i c a t i o n p r o t o c o l s . T h e p u r p o s e i s
t w o f o l d : i t h e l p s t o v a l i d a t e t h e
s t at i c m o d e l a n d t o m a k e s u r e o b -
j e c t s a r e r e a c h a b l e f r o m o t h e r s ; i t
m a p s t h e s y s t e m b e h a v i o r b e t t e r a s
o p p o s e d t o t h e s t at i c m o d e l t h a t
o n l y r e f l e c t s t h e s t r u c t u r e .
D e c i d i n g w h i ch m o d e l s h o u l d b e
p r o d u c e d f ir s t r e a ll y d e p e n d s o n
t h e n a t u r e o f t h e a p p l i c a ti o n a n d
t h e a n a l y s t 's l e v e l o f c o n f i d e n c e .
D e f i n i n g C l as s e s a n d S k e t c h i n g
O u t t h e K e r n e l A r c h i t e c t u r e
F r o m t h e i n i t i a l l i s t o f c l a s s e s ,
class
char t s
a r e t h e n f i l le d o u t . F o r e a c h
c l a s s e n t r y i n t h e i n i t i a l c l u s t e r
c h a r t , a c l as s c h a r t i s d e f i n e d a c -
c o r d i n g t o t h r e e b a s i c t y p e s o f i n -
f o r m a t i o n :
T h e
questions:
w h a t i n f o r m a t i o n
c a n o t h e r c l a s s e s a s k f r o m t h e c l a s s?
T h e
c om m ands :
w h a t s e r v ic e s c a n
o t h e r c l a s s e s a s k t h e c l a s s t o p r o -
v i d e ?
T h e
cons t raint s :
w h a t k n o w l e d g e
m u s t t h e c l a s s m a i n t a i n ?
T h e c h a r t i s s t r u c t u r e d i n t h r e e c o l -
u m n s , f i l l e d w i t h f r e e - f o r m a t E n g -
l i s h t e x t .
T h e c l as s c h a r t d e s c r i b e s a ty p e
o f o b j e ct t h a t s h o u l d c o r r e s p o n d t o
a c la s s e n t r y i n t h e c l u s t e r c h a r t . I t
i s a l s o p o s s i b l e t o s t a t e t h a t t h e d e -
s c r i b e d t y p e o f o b j e c t i s s u s p e c t e d
t o b e h a v e l i k e o t h e r t y p e s o f o b j e c t.
T h i s m a y h e l p r e f i n i n g t h e i n h e r i -
t a n c e c l a s s i f i c a t i o n l a t e r i n t h e p r o -
c e ss . E x a m p l e s o f c l a ss c h a r t s a r e
g i v e n i n F i g u r e 2 .
A n a l y s i s p r o c e e d s u s i n g a m o r e
f o r m a l w a y t o r e p r e s e n t t h e s y s t e m
s t r u c t u r e a n d b e h a v i o r . T h e s t a ti c
m o d e l s h o w s t h e s y s t e m s t r u c t u r e
b y i t s d e c o m p o s i t i o n , i t s e l e m e n t s
a n d t h e i r r e l a t i o n s h i p s , a l o n g w i t h
t h e c o n s t r a i n t s t h a t t h e c l as s es m u s t
f u l f i ll . T w o l e v e l s o f d e t a i l a r e s u p -
p o r t e d : t h e c l a s s l e v e l a n d t h e c l u s -
t e r l e v e l t h a t d e f i n e s r e l a t i o n s h i p s
b e t w e e n l o g i c a ll y g r o u p e d c l as s e s.
T h e m o d e l i n t r o d u c e s t y p e d i n f o r -
m a t i o n v e r y e a r l y i n t h e a n a l y s i s
p r o c e s s . I n p r a c t i c e , th i s m e a n s t h a t
a n y c l a ss d e f i n i t i o n i n t r o d u c e s a
t y p e d e f i n i t i o n .
R e l a t i o n s h i p s b e t w e e n c l u s t e r s
a r e m o s t l y s t r u c t u r a l . T h e y h e l p
s c a l i n g u p o r d o w n t h e s y s t e m a c -
c o r d i n g t o g r o u p i n g f a c t o r s o r a b -
s t r a c t i o n l e v e l s . C l a s s r e l a t i o n s h i p s
m a y c a p t u r e a d d i t i o n a l s e m a n t i c
i n f o r m a t i o n t h a t t r a n s l a t e i n t o
class
a n n o t a t i o n s . R e l a t i o ns h i p s b e t w e e n
c l a ss e s a r e r e p r e s e n t e d i n a q u i t e
d i f f e re n t m a n n e r c o m p a r e d w i th
T a b l e 2 .
C la s s A U T O M O B I L E w i t h r e l a t e d c l u s t e r c la s se s
APPLICATION DOMA IN
A u t O m o b i le m a n u f a c t u re r
T r a f f i c - li g h t c o n t r o l l e r
Repair
s t a t i o n
C a r re n tal c om p a ny
CLASSES RELATED TO A U T OMO B I L E
L I MO COUPE S ED AN S T A T ION _WAGON
PEDESTR IAN B I KE VEH I C L E
FORE IGN_CAR DOMEST I C _CAR
TRUCK TRA IL ER COMPACT _CAR
LUXURY_CAR
T a b l e 3 .
E v e n t c h a r t s
APPLICATION DOMA IN EXTERNAL EVENT INTERNAL EVENT
Car r e n ta l c o m p a n y C u s t o m e r m a k e s a c a r r e s e r v a ti o n . R e n t a l c o n t r a c t p r i n t e d w h e n c a r r e t u r n e d .
A r e n t e d c a r b r e a k s d o w n . T a n k r e f i l l e d o n r e t u r n ,
A n e w c a r j o i n s t h e f l e e t M i l e a g e c h e c k e d o n r e t u r n .
A c a r i s r e t u r n e d . C a r i n s p e c t i o n d o n e o n l e a v e a n d o n r e t u rn ,
Traffic-light c o n t r o l l e r
A v eh i c l e i s a r r i v i ng a t t he i n t e rs ec t i on . L i gh t t u rns g reen .
A veh ic le i s leav ing
t h e
i n t e rs ec t i on , Red l i gh t s t a r t s f l a s h ing .
A roa d i s c los ed t o t ra f f ic .
6 6
September 1992/Vol.35,
N o . 9 / C O M M U N I C A T I O N S O F T H E
AC:M
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
5/12
a r t i c l e s
t e c h n i q u e s s u c h a s t h e e n t i t y - r e l a -
t i o n s h i p m o d e l . T a b l e s 4 a n d 5
m a k e a p a r a l l e l b e t w e e n t h e e n t i t y -
t o - e n t i t y r e l a t i o n s h i p s i n t h e r e l a -
t i o n a l m o d e l a n d t h e c l a s s - t o - c l a s s
s t r u c t u r in g m e c h a n i s m s o f t h e o b-
j e c t m o d e l . T h e c l a s s s t r u c t u r i n g
m e c h a n i s m i s b a s e d o n t w o b a s i c
r e l a t i o n s h i p s : t h e inheritance rela-
tionship a n d t h e client-supplier rela-
tionship. T h e c l i e n t - s u p p l i e r r e l a -
t i o n s h i p u s u a l l y e n c o m p a s s e s t w o
t h i n g s : t h e association relationship
a n d t h e aggregation relationship, as
e x p l a i n e d i n [ 1 3 ] .
C l a s s es a l wa y s b e l o n g t o a c l u s t e r
u s u a l l y d i s p l a y e d i n a b s t r a c t e d
f o r m , t h a t i s o n l y w i t h t h e i r h e a d e r .
F i g u r e 3 i l l u s t r a t e s s t a t i c a n d d y -
n a m i c m o d e l n o t a t i o n s u s e d i n
B O N .
T a b l e 4 .
S e m a n t i c s o f e n t i t y
r e l a t i o n s h i p s I n t h e r e l a t i o n a l
m o d e l
TYPE O F R E L A T IO N S H I P (m u l t i p l iC i t y )
has_a(1:1)
o w n s , c o n t a i n s , i s - c o n t a i n e d - l n ( l : m )
c ons i s t s -o f ( re : m )
i s - a ( l : l l
O b j e c t - O r ie n t e d D e s i g n w i t h
a n E x a m p l e
O b j e c t - o r i e n t e d d e s i g n t r a n s f o r m s
t h e a n a l y s i s c la s s es i n t o a c o m p u t e r -
i z e d m o d e l t h a t b e l o n g s t o t h e s o l u -
t i o n s p a c e . Th i s a c t i v it y s t a r t s f r o m
t h e a n a l y s i s c l a s s e s a n d p r o d u c e s
a d d i t i o n a l t y p e s o f o b j e c t s t h a t b e -
c o m e c l a s s e s n o t d i r e c t l y r e l a t e d t o
t h e p r o b l e m s p a c e . T h e s e c l a s s e s
e x t e n d , g e n e r a l i z e , o r i m p l e m e n t
the in i t i a l s e t o f ana lys i s c l a s ses .
P r i m i t i v e s i n t r o d u c e d d u r i n g d e -
s i g n a r e n o t n e c e s s a r i l y p u b l i c a n d
m a y r el a t e t o i m p l e m e n t a t i o n d e c i -
s i o n s s u c h a s t o d e t e r m i n e w h i c h
T a b l e s .
S e m a n t i c s o f In h e r i t a n c e a n d c l i e n t - s u p p l i e r r e l a t i o n s h i p s In t h e o b j e c t - o r i e n t e d m o d e l
CLASS
T Y P E O F R E L A T I O N S H IP
CLASS
i n h e r i t a n c e
r e l a t i o n s h i p s
d e s c e n d a n t i s - a p a r e n t
d e s c e n d a n t
b e h a v e s - l i k e
p a r e n t
d e s c e n d a n t i m p l e m e n t s p a r e n t
d e s c e n d a n t c o m b i n e s paren t s
p a r e n t
d e f e r s - t o
d e s c e n d a n t
p a r e n t f a c t o r s - o u t des c endan t s
C l i e n t / S u p p l i e r
r e l a t i o n s h i p s
c l i en t
u s e s
s upp l i e r s
c l i en t n e e d s s upp l i e r s
c l i en t h a s - a s upp l i e r
c l i en t
c o n s i s t s - o f
s upp l i e r s
s upp l i e r
p r o v i d e s - t o
c l i en t s
CONTRA
C T
Cluster name: CAR RENTAL
S Y S T E M
Behaves l ike:
Y P E O F O B J E C T :
R e n t a l t e r m s w i t h p a y m e n t c o n d i ti o n s
Questions ....... I C Om m a n d s
PURCHASE ORDER
Constraints
Means of paymenL Invoice c l ie nL Corporate cus tomers
Indiv idual or Acknowledge do not get weeX-end
corporate customer, a reservat ion, rate discounts.
Rental documents.
VEHICLE
Cluste r name:
RENTAL PROPERTIES
T YPE O F O B JEC T : B e h a v es l ik e :
A u t o m o b i l e s e l e c t e d f r o m RENTED_ITEM
t h e r e n t a l fl e e t
I
Quest ions Comma nds Const ra in ts
[ Model o f c a r , Checkmi leage, Depar ting and
License_plate. Ref i l l gas ta nk . returning locat ions
Availabi li ty . Change oi l . are the same.
Depart ing locat ion.
Returning locat ion.
CUENT
Cluste r name: C O N T R A C T E L E M E N T S
T Y P E O F O B J E C T : B e h a v e s l ik e :
Car renter, i n d i v i d u a l o r P E R S O N
corporate customer
Quest ions Com mand s Const ra in ts
Name. Enter in Client has already
Address , date b a s e . reserved or rented
Corporate cus tom er. Give special a car.
Spec ial rate. rate.
RENTAL
Cluster name:
CONTRACTELEMENTS
T YPE O F O B JEC T : B e h a v es l ik e :
R e n t a l I n fo r m a t i o n c o m p l e t e d w h e n
t a k i n g o u t a n d r e t u r n i n g v e h i c l e
QuesUone Com mand s Const ra in ts
Selected automobile.
List o f authorized drivers,
Selected insurance policy.
Applicable rate.
E x t r a
choices,
Start ing and end ing mileage.
Depart ing and returning dates.
Start ing mileage
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
6/12
c l a s s es w i ll i n t e r f a c e t o t h e o u t s i d e
o f t h e s y s t e m , d e a l w i t h m a c h i n e o r
s y s te m d e p e n d e n t i n f o r m a t i o n ,
l e a d t o p e r s i s t e n t o b j e c t s , b e i n
c h a r g e o f e r r o r r e c o v e r y , et c .
D e s c r i b i n g , I n d e x i n g a n d
I n s t a n t i a t i n g
Classes
D u r i n g d e s i g n w i t h B O N , c l a s s
c h a r t s a r e t r a n s l a t e d i n t o
class de-
s c r i p t i ons .
T h e s e c l as s d e s c r i p t i o n s
r e p h r a s e t h e s a m e i n f o r m a t i o n i n a
m o r e s t r u c t u r e d a n d f o r m a l m a n -
n e r t h a t w i l l h e l p t h e g e n e r a t i o n o f
p r e f i l l e d c l a s s t e m p l a t e s i n a n a p -
p r o p r i a t e o b j e c t - o r ie n t e d l a n g u a g e .
T h e d e s c r i p t i o n d e t a i l s c l as s f ea -
t u r e s a n d c o n t r a c t i n g c o n d i t i o n s .
C l a s s d e s c r i p t i o n s f i r s t f o c u s o n v i s -
F ig u re 3 . G raph ica l notat ions used in
BON static and dynamic models
i b l e f e a t u r e s .
C l a s s c h a r t c o l u m n e n t r i e s b e -
c o m e c o m m e n t s a s s o c i a t e d to c la s s
f e a t u r e s ; w h i c h m e a n s t h a t a n y
c o n s i s t e n c y c h e c k i n g a t t h a t l e v e l
c a n o n l y b e d o n e b y a n a u t o m a t e d
t o o l. T h e t r a n s l a t i o n s c h e m e i s
s t r a i g h t f o r w a r d :
Q u e s t i o n s a r e m a p p e d i n t o a tt r i -
butes
( s t a t e v a r i a b l e s )
or func t ions
in
t h e E i f f e l s e n s e ;
C o m m a n d s a r e m a p p e d i n to
p r o -
cedu res ;
C o n s t r a i n t s a r e m a p p e d i n t o
as-
se r t i ons a n d class
invar iants ;
B e h a v i o r r e s e m b l a n c e t r a n s l a t e s
i n t o i n h e r i t a n c e ( s e e [ 1 1 ] ) .
R o u t i n e s i g n a t u r e s
( input
o r ou t p u t
p a r am e t er s p r e -
a n d
posteonditions)
a r e a l s o l i s t e d . I n a d d i t i o n t o t h i s ,
o n e s h o u l d r e c a l l t h a t i n t e r n a l
e v e n t s m a y b e c o m e c l a s s f e a t u r e s .
F i g u r e 4 i s t h e t r a n s l a t i o n t o c l a ss
d e s c r i p t i o n s o f t h e c l a s s c h a r t s d e -
f i n e d d u r i n g t h e a n a l y s i s s t a g e. T h e
e x p l a n a t i o n o f s o m e s y m b o l s i s a l s o
g i v e n i n a n a s s o c i a t e d t a b l e . C l a s s e s
a r e n o w f u l ly d e s c r i b e d : w i t h t h e i r
h e a d e r a n d t h e i r b o dy . T h e c la ss
b o d y i s d e c o m p o s e d i n t o d i f f e r e n t
p a r ts . T h e m o s t c o m m o n l y d e -
s c r i b e d p a r t s a r e : t h e r e f e r e n c e t o a
d i r e c t p a r e n t , t h e l i st o f t y p e d f e a -
t u r e s w i t h t h e i r a s s e r t io n s a n d c o m -
m e n t s , i f a n y , a n d t h e c l a s s i n v a r i -
a n t , i f a n y .
F o r i n s t a n c e , t h e
R E N T A L
c l a s s
s h o u l d m a k e s u r e t h a t w h e n e v e r a
v e h i c l e i s r e t u r n e d , i t h a s p r e v i o u s l y
b e e n t a k e n o u t . T h i s o b v i o u s s t a t e -
m e n t a v o i d s p o s s i b l e m i s u s e o f t h e
s y s t em . T h e r e i s a l w a y s a s t r a n g e
s i t u a t i o n w h i c h i s a p o t e n t i a l s o u r c e
o f e r r o r : d r i v e r s o f t h e s a m e c o m -
p a n y t h a t h a v e e a c h r e n t e d a c a r
*
/
pi lot
ow ner
% , s
I T R A N S P O R T A T I O N
S tat i c mod el ( l e f t s ide) :
I
I
I
I
I
2' -5-~D DRIVER
A car i s purchased by someone I
The driver enters the car 2
The car 's engine starts and runs 3
The car 's engine stops 4
The driver leaves t h e c a r 5
Clusters are represented wi th rounded corner rectangles drawn wi th dashed l ines and are tagged wi th a name .
C lasse s are represented a s a nam e inside an ell ipse, with optional annotations: deferred classes are topped with
a star sign, non-deferred descendant classes are topped with a plus sign, reused classes have an underlined name.
Inheritance relationships are represented with a single l ine ending by an arrowhead oriented from the descendant
to the pa rent Cl ient-suppl ier relat ionships are represented wi th a double l ine ending by an arrowhea d in case of
association and with an ope n curly bracket in case of aggregation. The d ouble l ine may be tag ged w ith class feature
name s involved in the c l i e n t - s u p p l i e r relat ionship. Relationships are def ined betw een classes and can b e extende d
to clusters
Dynamic model ( r igh t s ide) :
Objects are represented inside rectangles. A shadowed rectangle denotes multiple instances.
C omm unication protocols are represented w ith das h lines, labele d with numb ers. Th ese num bers are then referred
to in comm ented scenarios
68
Septernbcr 1992/Vo1.35,
N o . 9 /C O M M U N i C A T I O N $ O F T H E A C M
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
7/12
a r t i c l e s
a n d t h e n s w i t ch e d t h e m w i t h o u t
n o t i f y in g t h e r e n t a l c o m p a n y . I n
t h a t c a s e , t h e c l a s s i n v a r i a n t s e r v e s
a s a s y s t e m c o n s i s t e n c y c h e c k e r .
I n t h e CONTRACT c l a s s , t h e i n -
v a r i a n t tr a n s la t e s a m a n a g e m e n t
r u l e s t a t e d i n t h e i n i t i a l s e t o f r e -
q u i r e m e n t s : c o r p o r a t e c u s t o m e r s
d o n o t h a v e a c c e s s t o sp e c i a l w e e k -
e n d f e e s. F r o m t h e d e s c r i p t i o n o f
t h e c l a s s e s , a f i r s t d r a f t o f t h e a r c h i -
t e c t u re i s t h e n d e f i n e d a n d a p p e a r s
i n F i g u r e 5 . A d y n a m i c s c e n a r i o i s
g i v e n in F i g u r e 6 . T h e d e s i g n t e c h -
n i q u e e m p h a s i z e s t h e s y s t e m f l e x i -
b i l i t y w i t h r e s p e c t t o i t s p o s s i b l e e x -
t e n s i o n s o r a d a p t a t i o n s . H i g h - l e v e l
c l a s s es c a n e a s i l y b e c u s t o m i z e d o r
p a r t i c u l a r i z e d u s i n g i n h e r i t a n c e .
C l a s s e s a r e a p p l i c a t i o n - d e p e n -
d e n t . T h e o n l y w a y t o s o l v e t h e
p r o b l e m o f f i n d i n g s u i t a b l e c l a s s e s
f o r r e u s e i s t o a d d c l as s i n d e x i n g
F i g u r e 4 . C la ss de s c r ip t i ons o f t h e
c a r r e n t a l s y s t e m
~ l l c e n s e _ p l at e
K E Y
t y pe
MODEL
s t a t u s
A V A I L A B I L I T Y
depar t ing_ f rom , re t u rn ing_ t o
L O C A T I O N
J
I E - S E T [ O P T I O N ] [
I ava i lab i l i t y date I
m eans _ o f pa y m en t
M E A N S O F P A Y M E N T
c l ient
. . Ind iv idual or corporate cus tome
C LI EN T
doc um en t s
- - R e n l a l contracts
SET [ R EN T AL ]
invoice
- - D o the invoicing
means_of_payment #= ~
make_ reservat ion
client ~ ,-~
J
v e h i c l e
- - S e l e c t e d a u t o m o b i l e
V E H I C L E
authorized_ d r i v e r s
S E T [ D R I V E R ]
I ns u ranc e_po l i c y
I N S U R A N C E
d i s c o u n t
- - Rate used to compute the tee
R A T E
ext ra_ I tems
S E T [ E X T R A ]
s tar t ing_mi leage, re turn ing_mi leage
VALUE
tak ing_out_date, re turn ing_date
D A T E
J
Sy mbol s u s e d
Input argument --;-]
Output a rgument
Routine precondit ion -- I
Routine postcondit lon I- -
Class Invarlanl
Void reference ,,~
C O M M U N I C A T I O N S O F T HE ACM/September 1992/Vol.35, No.9
69
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
8/12
: : : ~ i l e s
a n d d o c u m e n t i n g i n f o r m a t i o n t o
r e t r i e v e t h e m e a s i l y f r o m l i b r a r i e s
o r d a t a ba s e s o f c o m p o n e n t s a c c o r d-
i n g t o g i v e n s e l e c t i o n c r i t e r i a .
T o i m p l e m e n t a u t o m a t e d t o o l s
m a n a g i n g i n d e x i n g t e c h n i q u e s , i t is
n e c e s s a r y t o p r e p a r e t h e f u t u r e
r e u s e b y e n f o r c i n g d e s i g n g u i d e -
l i n e s b y w h i c h a n y c o m p l e t e d c l a s s
F i g u r e 5 . Pa r t i a l s t a t i c m o d e l o f t h e
ca r r e n t a l s y s t e m
s h o u l d b e d o c u m e n t e d a c c o r d i n g t o
a p r e f i l l e d h e a d e r t e m p l a t e . C l a s s
h e a d e r t e m p l a t e s i n c l u d e r e f e r -
e n c e s t o t h e c o v e r e d a p p l i c a t i o n
d o m a i n s , t o p r o j e c t m a n a g e m e n t
i n f o r m a t i o n , t o r e q u i r e m e n t d o c u -
m e n t s , e t c. A n e x a m p l e o f s u c h a n
i n d e x i n g c l a u s e i s g i v e n i n F i g u r e 7 .
On c e a n a l y s i s a n d d e s i g n c l a s s e s
a r e a l l i d e n t i f i e d , w e n e e d t o k n o w
h o w t h e i r i n s t a n c e s a r e c r e a t e d
u n d e r c e r t a i n c i r c u m s t a n c e s . T h e
s t a t i c a r c h i t e c t u r e o n l y d e f i n e s c l a s s
r e l a t i o n s h i p s ; t h e d y n a m i c m o d e l
o n l y e m p h a s i z e s s e l e c te d c o m m u n i -
c a t i o n p r o t o c o l s b e t we e n o b j e c t s .
T h e r e f o r e , a w a y t o m a p o n e m o d e l
t o t h e o t h e r i s t o p r o d u c e d u r i n g
t h e d e s i g n p h a s e a n ob j ec t c r ea t i on
c h a r t .
T h e p u r p o s e o f th i s c h a r t i s t o
d e t e r m i n e w h i c h c la s s i s r e s p o n s i b l e
f o r t h e c r e a t i o n o f th e i n s t a n c e s o f
o t h e r c l as s e s. A t t h i s l e v el o f d e -
s c r i p t i o n , o n e s h o u l d c o n c e n t r a t e
o n l y o n c l a s s e s f o u n d d u r i n g t h e
/
f %
I C A R _ R E N T A L S Y S T E M I
o f _ p a y m e n t , c li e n t ,
( d o c u m e n t s )
/ d ~
I d e p a r t in g _ d a t e 1 ,
r e t u r n i n g _ d a t e t ~
, . n a m e . N S _ O F P A I
@
, . .
, ' , . ~ s ~ ;,~ - z_ - ~ ~ Z ~
I , . S U P P O R T s , , - - . ,
V E H I C L E _ P R O P E R T I E S
@ , ' @ @
I
I I
@ , - -
I
i I
.1 (options)
' ~ O P T I O N S , ~
I
RENTAL_PROPERTIES'~'
< - ; w e ; p e R ; - > i
UAL_G l
I
I
~. O PTION . TYP E
%.
7 0
S e p t e m b e r 1 9 9 2 / % 1 . 3 5 ,
N o . 9 /C O M M U N I C A T I O N S O F
T H E A C M
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
9/12
ar l~ | les
v e r y f i r s t s t a g e s . T a b l e 6 s h o w s a n
e x a m p l e o f t h e o b j e c t c r e a t i o n t a b l e
c o r r e s p o n d i n g t o t h e c a r r e n t a l
e x a m p l e r e v i e w e d e a r l i e r .
A b s t r a c t i n g a n d C l a s s i f y i n g
W h a t r e a l l y m a k e s o b j e c t - o r ie n t e d
s o f t w a r e s o a t t r a c t i v e i s t h a t i t s
s t r u c t u r e " i s " i t s o w n c l a s s i f i c a t i o n
a n d t h a t t h i s c l a s s i f i c a t i o n i s
a c h i e v e d s o as to b e g e n e r a l e n o u g h
t o a c c o m m o d a t e a n y p o s s ib l e e x -
t e n s i o n o r m o d i f i c a t i o n w i t h o u t
i m p a c t i n g o r c o m p l i c a t i n g t h e e x -
i s t i n g a r c h i t e c t u r e .
F i gu r e G . E x am ple o f a dyn am ic sce -
nario
F i gu r e 7 . In dex in g c lau se o f t he c lass
VEH ICLE
R e f e r r i n g t o [ 1 0 ] , w h i c h c o n -
c e r n s t h e d e s i g n o f a l i b r a r y o f re -
u s a b l e c o m p o n e n t s , i t is i n t e r e s ti n g
t o n o t e t h a t a n y o f a w i d e r a n g e o f
d a t a s t r u c t u r e s c o u l d a l w a y s b e
l i n k e d t o o n e o f t h e f o l l o w i n g c l as si -
f i c a t i o n c r i t e r i a :
T h e
storage;
a c l a s s i f i c a t i o n d i -
m e n s i o n t h a t c a p t u r e s w h e t h e r t h e
d a t a s t r u c t u r e is b o u n d e d , f ix e d ,
r es i zab le , . . .
T h e
t ravers ing;
a c l a s s i f i c a t i o n
d i m e n s i o n t h a t c a p t u re s t h e s t r u c -
t u r a l r e l a t i o n b e t w e e n t h e d a t a
s t r u c t u r e e l e m e n t s , . . .
T h e access method; a c l a s s i f i c a t i o n
d i m e n s i o n t h a t c a p t u re s t h e w a y s
e l e m e n t s a r e a c c e s s e d .
T h u s , i t b e c o m e s m u c h e a s ie r t o
12
- - - - -
R E N T A , i
: 4
A contract is prepared for a client: 1 V
R e q u e s te d r e n te d c a r s a r e g r o u p e d b y c l ie n t : 2 3 ] V E H I C L E I
A rentalplan Is established for a specific vehicle: 4
I
A v e h i c le mo d e l i s c h o s e n : 5 ~ 5
Se l ec t e d mo d e / i s a t w o - d o o r m a n u a l g e a r ca r :. 6
p . 8
I ] I
f
s y n o n y m s : c a r t r a n s p o r t a t io n m e a n
a p p l i c a t i o n d o m a i n s :
c a r r e n t a l c a r e a s e
a u t h o r :
J . M . N e r s o n
dat e :
M a y 1 1 9 9 2
r e v i s i o n : 2 . 1
s p e c - r e f s :
s r s . 1 . 3 . 3 s r s . 3 . 4 . 7
k e y w o r d s : r e n t a l a g e n c y c a r v e h i c l e a u t o m o b i l e
J
1 1 n b l e 6 .
O b j e c t c r e a t i o n t a b l e
l~/pe of object
CONTRACT
RENTA L
VEH ICLE
Creates
R E N TA L R A T E
VEH ICLE
M O D E L
p r o d u c e a n y k i n d o f d a t a s t r u c t u r e
s i m p l y b y p i c k i n g a n d a s s e m b l i n g
c l a s se s f r o m t h e s e t h r e e b a s i c c l a ss i -
f i c a t i o n s .
Y e t a c l a s s i f i c a t i o n i s n e v e r p e r -
f e c t . I t i s i n t e n d e d t o r e f l e c t a s
c l o s e l y a s p o s s i b l e a r e a l i t y w h i c h
h a s n o s i m p l e o r d e r . A
n o n s o f t w a r e - r e l a t e d e x a m p l e i s t h e
p e r i o d i c a l c l a s s if i c a ti o n o f c h e m i c a l
e l e m e n t s b y M e n d e l e i ' v : i t f i t s r e a l -
i ty v e r y w e l l, b u t n o t e x a c t ly . T h e r e
a r e s o m e " h o le s "; n o t b e c a u s e m i n -
e r a l e l e m e n t s a r e y e t t o b e f o u n d ,
b u t b e c a u s e i n s o m e c a s es t h e c l a s si -
f i c a t i o n s c h e m e i s b e t t e r r e p r e -
s e n t e d i n 3 D w h e r e a s i t w a s i n i ti a l ly
d e s i g n e d i n 2 D .
B a c k t o o b j e c t - o r i e n t e d s o f t w a r e ,
a s s u m e t h a t a li b ra r y m a n a g e m e n t
s o f tw a r e i s d e s i g n e d a r o u n d t h e
a s s u m p t i o n t h a t b o o k authors a r e
h u m a n b e i n g s. T o c a p t u r e t h is id e a ,
a c l a s s i f i c a t i o n i s d e f i n e d s o a s t o
m a k e c l a s s
A U T H O R
a d e s c e n d a n t
o f c l a s s
P E R S O N .
U n f o r t u n a t e l y ,
s o m e t i m e l a t e r , a n e w b o o k i s
a d d e d t o t h e l i b r a r y st o c k t h a t is n o t
w r i t t e n b y a p e r s o n b u t b y a g r o u p
o f u n k n o w n a u t h o r s u s i n g a p se u -
d o n y m . W h a t t o d o t h e n w i t h o u t
d a m a g i n g t h e e x i s t i n g a rc h i t e c t u re ?
T h e o n l y p o s s i b l e s o l u t i o n i s t o d e -
f i n e a n e w c l a s s ,
W R I T E R
f o r i n -
s t an c e , p r o b a b l y a d e f e r r e d o n e ,
w h i c h i s a n e w p a r e n t o f
A U T H O R
( t hi s w il l n o t c h a n g e t h e i n t e r f a c e o f
A U T H O R )
a n d t o e x t e n d t h e c l a s s i -
f i c at i o n d o w n f r o m t h e
W R I T E R
c l a s s s o a s t o i n t r o d u c e a c l a s s
A C R O N Y M . . A U T H O R .
A s a c o n c l u s i o n w e c a n s t a t e:
A c l a s s if i c a t i o n , p r o p e r l y l a i d o u t
b y t h e a n a l y s t a c c o r d i n g t o th e u n -
d e r s t a n d i n g o f t h e p r o b l e m s p a ce ,
m o d e l s r e a l i t y ;
O b j e c t - o r i e n t e d f a c i l i t i e s p e r m i t
m o d i f i c a t i o n o f th e m o d e l w i t h o u t
GOMMUNICATIONS
O F T H E
ACM/September 1992/Vol.35, No.9 7 1
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
10/12
b r e a k i n g t h e c o r e a r c h i t e c t u r e
w h e n e x t e n s i o n s o r s p e c i a l
c a s e s
s h o w u p .
G e n e ra l i z a t i o n o f t h e Ex a m p l e
A t t h e c o m p l e t i o n o f t h e o b j e c t -
o r i e n t e d a n a l y s i s a n d d e s i g n , b e -
f o r e c l a s s c o d i n g h a s e v e n s t a r t e d , a
g e n e r a l i z a t i o n p r o c e s s m u s t b e g i n .
L o o k i n g a t o u r s y s t e m a r c h i t e c t u r e ,
w e m a y w o n d e r i f it is s u f fi c i e n t ly
g e n e r a l t o m a x i m i z e f u t u r e r e u s e .
T h e a n s w e r u s u a l l y v a r i e s a c c o r d -
i n g t o t h e d o m a i n o f a c t iv i t y o f t h e
d e v e l o p m e n t t e a m . I n t h e c a s e o f a
l a r g e s o f t w a r e h o u s e , i t m a y b e
a p p r o p r i a t e t o d o s o m e e x t r a w o r k
t o g e n e r a l i z e t h e i n i t i a l a r c h i t e c -
t u r e . H i g h - l e v e l c l a ss a b s t r a c t i o n s
u s u a l l y d o n o t c o m e f i r s t t o m i n d .
T h e i m p r o v e m e n t p ro c e s s o f t e n
r e s u l t s i n t h e f o l l o w i n g s c e n a r i o :
A f i r s t v e r s i o n o f t h e s y s t e m i s
w r i t t e n .
L a t e r , s p e c i a l i z e d v e r s i o n s o f" e x -
i s t i n g
c l a ss e s a r e w r i t t e n . T h e y a r e
h e i r c l a s s e s o f t h e e x i s t i n g c l a s s e s ,
e x t e n d i n g o r r e i m p l e m e n t i n g p a r -
e n t f e a t u r e s .
S i n c e t h e i n i t i a l s e t o f c l a s s es a p -
p e a r s t o o p r o b l e m - s p e c i f i c , s o m e
c o m m o n f e a t u r e s a r e fa c t o r e d o u t
i n t o v e r y h i g h - l e v e l c l a s s e s . T h e s e
h i g h - l e v e l c la s s es s e r v e a s p a r e n t
c l a s s e s
o f t h e c l a s s e s b e l o n g i n g t o
t h e i n i t i a l s y s t e m a n d t o t h e
c l a s s e s
n e w l y i n t r o d u c e d . T h e s e n e w
c l a s s e s
k e e p t h e s a m e i n t e r f a c e a s
t h e o n e s t h e y a r e p a r e n t o f .
B e f o r e t h e i m p l e m e n t a t i o n o f
t h e c a r r e n t a l s y s t e m i s c o m p l e t e d ,
o n e m a y a s k h o w t o p a v e t h e w a y
f o r c o p i n g w i t h o t h e r s y s t em s s i m i -
l a r t o o u r i n i ti a l p r o b l e m s u c h a s :
A b o a t r e n t a l s y s t e m ( m o t o r b o a t
a n d s a i l b o a t ) ;
A s p o r t e q u i p m e n t l o a n s y s t e m
( s n o w s k i s , d i v i n g m a t e r i a l , e t c ) .
R e f e r r i n g t o o u r i n i t i a l c a r r e n t a l
s y s te m , m a n y c o m m o n f e a t u r e s
e x i s t , b u t o t h e r e l e m e n t s m u s t
c h a n g e : t h e r e i s l i tt l e c h a n c e t h a t
t h e p r i c e o f a p a i r o f s k is c a n b e
l i n k e d t o a n u m b e r o f m il e s . . . f o r
e x a m p l e .
E v e n a p p l i c a t i o n s s u c h a s a h o t e l
r e s e r v a t i o n s y s t e m o r a b o x o f f i c e
t i c k e t i n g s y s t e m h a v e s i m i l a r i t i e s
w i t h o u r i n i ti a l s y s t em . F r o m t h i s
o b s e r v a t i o n , t w o o p t i o n s a r e p o s s i -
b l e :
D o n o t h i n g a n d t h e b e n e f i t
g a i n e d f r o m a p p l y i n g o b je c t-
o r i e n t e d t e c h n i q u e s i s l i m i t e d t o th e
s t r u c t u r i n g o f t h e a p p l i c a t i o n .
D o s o m e e x t r a w o r k i n v o l v i n g t h e
s e a r c h f o r m o r e g e n e r a l s t r u c t u r e s .
L o o k i n g a t o u r c u r r e n t s y s t em
a r c h i t e c t u r e ; c l a s s e s i n s i d e t h e
C O N T R A C T . _ E L E M E N T S
c l u s t e r
c a n p o s s i b l y b e k e p t a f t e r s o m e
m i n o r m o d i f i c a t i o n s . C l a s s e s i n s i d e
t h e
R E N T A L _ P R O P E R T I E S
c l u s t e r
a r e
m u c h t o o p r o b l e m - s p e c i f i c . T o
b e g e n e r a l i z e d , n e w c l as s e s h a v e t o
b e i n t r o d u c e d a s a n c e s t o r c l a s s e s .
C l a s s e s
s u c h a s
V E H I C L E , D R I V E R ,
R A T E , I N S U R A N C E
m a y n o w b e
d e f i n e d a s d e s c e n d a n t c l as s es o f
m o r e g e n e r a l a n d a b s t r a c t c la s s es
t h a t c o u l d r e s p e c t i v e l y b e :
P R O D -
U C T , C O N S U M E R , P R I C E , W A R -
R A N T Y .
T h e s e c l a s se s i n t r o d u c e f e a t u r e s
t h a t w i ll b e i m p l e m e n t e d o r r e i m -
p l e m e n t e d i n o u r p r e v i o u s ly d e-
f i n e d c l a s s e s . F o r i n s t a n c e , t h e
P R O D U C T
c l a s s is i n i t i a l l y d e f i n e d
b y a b s t r a c t i n g f e a t u r e s o r i g i n a l l y
i n t r o d u c e d i n t h e
V E H I C L E
c la ss .
T h e c a r r e n t a l s y s t e m c l as s es li s t e d
i n s i d e t h e
R E N T A L
c l u s t e r c a n n o w
b e r e w r i t t e n a c c o r d i n g t o t h e g e n -
e r a l i z a t i o n p r o c e s s . C o n s e q u e n t l y ,
t h e V E H I C L E c l a s s c h a n g e s a s d e -
t a i l e d i n F i g u r e 8 .
S o m e c l a s s i n v a r i a n t s i n i t i a l l y i n -
t r o d u c e d i n th e
V E H I C L E
c l a s s
a r e
n o w m o v e d u p i n to t h e
P R O D U C T
c l a s s . S i n c e f e a t u r e license_plate is
a d a p t e d f r o m f e a t u r e
serial_number
i n t r o d u c e d i n p a r e n t c l a s s
P R O D -
UCT,
a p l u s s y m b o l s i g n ( + ) i s a p -
p e n d e d t o t h e f e a t u r e n a m e . F e a -
t u r e s l i s t e d i n t h e
V E H I C L E
c l a s s
n o w s i m p l y a d d r e s s c a r r e n t a l s y s-
t e m s p e c if i cs . I t is w o r t h n o t i n g t h a t
s o m e f e a t u r e s n o w i n t r o d u c e d i n
c l a s s
P R O D U C T ,
s u c h a s
serial-
_number
o r
stocking place,
m a y s i m p l y
b e k e p t u n d e r a n e w n a m e i n c l as s
P R O D U C T ,
w h i c h i s w h y t h e i r
n a m e s a r e a ls o a p p e n d e d w i th a
p l u s s i g n .
T h i s w i ll n o t h a p p e n t h o u g h ,
w i t h f e a t u r e
t y pe
t h a t i s o n l y r e l e -
v a n t t o t h e c l a s s
V E H I C L E
a s o u t -
l i n e d d u r i n g o u r i n i ti a l a n a ly s i s.
BON and Tools
T h e m e t h o d o l o g y a n d n o ta t i o n
p r e s e n t e d r e s u l t f r o m a n E S P R I T
P r o j e c t ( " B u s i n e s s C l a s s " [ 8 ] ) i n
w h i c h a n o b j e c t - o r i e n t e d a n a ly s i s
a n d d e s i g n t e c h n i q u e w a s d e v e l -
o p e d a f t e r e x p e r i m e n t i n g o n p i l o t
p r o j e ct s d i f f e r e n t e x i s ti n g m e t h o d -
o l o g i e s [ 2 , 5 , 7 , 1 7 , 2 0 , 2 2 , 2 4 ] . S p e -
c i fi c a t t e n t i o n w a s a l s o d e v o t e d t o
p o s si b le e n h a n c e m e n t s o f a m o d e l -
i n g t e c h n i q u e n a m e d O * [ 3 , 4 ] w i t h
a s t r o n g d a t a b a s e o r i e n t a t i o n a n d
s o m e s i m i l a r i ti e s t o O O S A [ 21 ].
T h i s i n s p i r e d t h e B O N o b je c t-
o r i e n t e d a n a ly s is a n d d e s i g n m o d e l
a n d n o t a t i o n d e s i g n e d s o a s t o s u p -
p o r t t h e f o l l o w i n g c a p a b il i t ie s :
A n a l y s i s a n d d e s i g n :
t h e f o r m a l -
i s m h e l p s t h e a n a l y s t i n s k e t c h i n g a
f i r st s e t o f c l a ss e s a n d r e l a t i o n s h i p s
t h a t c a n d i r e c t l y b e t r a n s l a t e d i n t o a
s y s t e m d e s i g n , i t s e l f t r a n s l a t a b l e
i n t o a s e t o f p r o g r a m m i n g l a n g u a g e
c l a s s e s .
S c a l a b i l i t y : t h e f o r m a l i s m f o r
r e p r e s e n t i n g g r o u p s o f cl a ss e s
s ca le s u p a n d s u p p o r t s p r o b l e m
p a r t i t i o n i n g b a s e d o n l a y e r s o f a b -
s t r a c t i o n u s i n g c l as s c l u s t e r i n g t e c h -
n i q u e s .
R e v e r s e e n g i n e e r i n g :
s i n c e a n y
k i n d o f i n f o r m a t i o n i s s t o r e d i n a
c o h e r e n t i n t e r n a l d a t a s t r u c t u r e , i t
i s p o s s i b l e t o r e u s e e x i s t i n g s y s t e m s
a n d t r a n s l a t e t h e m b a c k i n t o a s c h e -
m a t i c f o r m . T h i s e n a b l e s t h e a n a -
l y s t to v i s u a l i z e e x i s t i n g c l a s s l i b r a r -
i es n o t d e v e l o p e d w i th a m o d e l i n g
t e c h n i q u e , o r f o r w h i c h t h e a c c o m -
p a n y i n g a n a l y s is a n d d e s i g n d o c u -
m e n t a t i o n d o e s n o t c o m e w i t h t h e
o f f - t h e - sh e l f p r o d u c t .
D o c u m e n t a t i o n :
a n y e l e m e n t
t h a t a p p e a r s i n t h e s c h e m a t i c d i a -
g r a m o r i n th e t e x t u al f o r m s h o u l d
b e t r a c e a b l e . A r e p o s i t o r y o f c l a ss e s ,
p r o p e r t i e s , r e l a t i o n s h i p s a n d d e -
p e n d e n c i e s i s m a i n t a i n e d a n d c a n
I ~ September 1992/Vol.35,
N o . 9 /C O M M U N I C A T I O N S O F T H E
A C M
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
11/12
a r t i c l e s
b e q u e r i e d t o p r o d u c e b r o w s e r - li k e
i n f o r m a t i o n o r c r o s s - r e f e r e n c e
f o r m s .
Structur ing mechanism : t h e
m o d e l o f f e r s t w o g r a p h i c a l r e p r e -
s e n t a t i o n s : a s t a t i c d i a g r a m a n d a
d y n a m i c g r a p h . T h e s ta ti c d i a g r a m
r e p r e s e n t s c l a s s e s a n d c l u s t e r s o f
c l a s s e s a l l l i n k e d t h r o u g h d i f f e r e n t
k i n d s o f r e l a t i o n s h i p s . I t p e r m i t s
t h e d e f i n i t i o n a n d v i s u a l i z a t i o n o f
we l l - d e c e n t r a l i z e d s o f t wa r e a r c h i -
t e c t u r e s p r o m o t e d b y o b j e ct -
o r i e n t e d t e c h n i q u e s . T h e d y n a m i c
g r a p h i l l u s t r a t e s c o m m u n i c a t i o n
s c e n a r i o s b e t we e n o b j e c t s .
Systematic des ign:
t h e m o d e l
f o s t e rs t h e a p p l i c a t i o n o f t h e c o n -
t r a c t m o d e l b e t we e n c l a s s e s . As s e r -
t i o n s s u c h a s p r e - a n d p o s t c o n d i -
t i o n s o f c l a ss i n v a r i a n t s , c a n b e
e x p r e s s e d w i t h a f o r m a l i s m r e l y i n g
o n s y m b o l s c o m m o n l y u s e d i n s e t
t h e o r y a n d t h e n d i r e c t l y i m p l e -
m e n t e d i n E i f f e l .
C o m p o n e n t m a n a g e m e n t :
so f t -
wa r e e l e m e n t s s u c h a s c l a s s e s , f e a -
t u r e s , c l u s t e r s , r e l a t i o n s h i p s a r e
k e p t u n d e r c o n f i g u r a t i o n m a n a g e -
m e n t c o n t r o l , t h a n k s t o t h e i n d e x -
i n g c l a u s e s . Ea c h c l a s s i s k n o wn b y
i ts v e rs i o n a n d o t h e r k e y in f o r m a -
t i o n c a n p o t e n t i a l l y b e i n t e r f a c e d
w i t h a d a p t e d q u e r y i n g t o o l s .
A s u m m a r y o f t h e d i f fe r e n t m e t h -
o d o l o g i c a l s t e p s t o f o l l o w i s g i v e n i n
T a b l e 7 . A n y o b j e c t - o r i e n t e d a n a l y -
s i s a n d d e s i g n t e c h n i q u e m u s t b e
b a c k e d w i t h s u p p o r t i n g C A S E
t o o ls . I n t h e s c o p e o f " Bu s i n e s s
C l a s s " a w o r k b e n c h s u p p o r t i n g
B O N i s b e i n g i m p l e m e n t e d :
E if fe lC a s e .
T h i s w o r k b e n c h , d e -
s ig n e d w i th B O N a n d p r o g r a m m e d
i n E i f f e l [ 1 1 ] , c o n s is t s o f t wo d i f f e r -
e n t c o m p o n e n t s .
T h e f i r s t E i f f e l C a s e c o m p o n e n t
i s a d r a w i n g t o o l t h a t s u p p o r t s t h e
n o t a t i o n a n d g e n e r a t e s c l a ss te m -
p l a t e s f r o m a n i n t e r n a l f o r m o f
c l u s t e r s a n d s y s t e m d e p e n d e n c i e s .
A t a n y t i m e , t h r e e d i f f e r e n t v i e w s
c a n b e d i s p l a y e d a n d m a n i p u l a t e d :
T h e c l a ss c h a r t s ;
Th e c l u s t e r s ;
T h e c l a s s d e s c r i p t i o n s .
F o r t h e s e t h r e e v i e ws a c o n s i s t e n t
i n t e r n a l s t r u c t u r e is m a i n t a i n e d .
A n y c h a n g e m a d e t o o n e o f t h e
v i e w s i s a u t o m a t i c a l l y p r o p a g a t e d
i n t o t h e o t h e r t w o a s s o o n a s s o m e
" c o m m i t " o p e r a t i o n i s t r i g g e r e d .
T h e c la s s c h a r t v i e w o f f e r s f o r m s
t o fi ll o u t . Th e g r a p h i c a l v i e w o f f e r s
a d r a wi n g - t o o l i n t e r f a c e , w i t h a p a l -
e t t e o f g r a p h i c a l e l e m e n t s t o b e s e -
l e c t e d a n d p l a c e d o n t h e s c r e e n .
T h e l a y o u t o f t h e g r a p h i c a l c l a ss e s
a n d c l u s t e r s r e m a i n s u n d e r t h e
u s e r ' s c o n t r o l .
T h e s e c o n d E i f f e l C a s e c o m p o -
n e n t is a i m e d a t h e l p i n g t h e a n a l y s t
t o f i n d a n d m a n a g e c o l l e c t i o n s o f
c l a s ses . I t i s a l a rge - sca le b rowse r
t h a t q u e r i e s a n d u p d a t e s a d a t a b a s e
o f c la s s i n f o r m a t i o n a c c o r d i n g t o
v a r i o u s c r it e r ia . T h e s u p p o r t i n g
r e p o s i t o r y i s l a y e r e d o n t o p o f t h e
P C T E ( P or ta b le C o m m o n T o o l
E n v i r o n m e n t ) O b j e c t M a n a g e m e n t
S y s t e m e m e r g i n g a s a C A S E t o o l s
i n t e g r a t i o n s t a n d a r d .
Acknowledgments
I a m v e r y g r a te f u l t o B e r t r a n d
M e y e r f o r h i s c o n st a n t s u p p o r t a n d
f o r s u g g e s t i n g b r i g h t a n d p r o d u c -
t iv e i d e as . a l so t h a n k v e r y m u c h
I I = l g u T e 8 . M o d i f i e d
V E H I C L E
class de-
s cr i p t i o n
f -ser ial_number
KEY
s t o c k i n g _ p l a c e
LOCATION
s t a t u s
ACCESSIBILITY
H e i r o f : P R O D U C T
~
l i c e n s e _ p l a t e +
K E Y
d e p a r t i n g _ f r o m + , r e t u r n i n g _ t o
LOCATION
s t a t u s +
AVAILABILITY
type
MODEL
I d e p a r t i n g _ f r o m = r e t u r n in g _ t o I
J
T a b l e 1 .
S u m m a r y o f B 0 N m e t h o d o l o g i c a l s t e p s
DEL I NEAT E T H E S YS T EM B O R DER L I NE
L I S T C ANDI DAT E C L AS SES O B S ER VED I N T H E PR O B L EM DO M AI N
GR OU P CLASSES INTO CLUSTERS
DEF I NE C ANDI DAT E C L AS S ES I N T E R M S O F Q U ES T I O NS /C O M M ANDS /
CONSTRAINTS
DEF INE BEHA VIORS: EVENTS, OBJECT COMM UNICATION PROTOCOLS, OBJECT
C R EAT I O N C H AR T
DEF I NE C L AS S FEAT U R ES , I NVAR IANT S AND C O NT R AC T I NG C O NDI T IO NS
REF INE C LASS DESCR IPTIONS
W O R K O N GENER AL I Z AT IO N
C O M PL ET E AND R EVI EW AR C H IT EC T U R E
C O M M U N I C A T I O N S O F
THE
ACM/S eptember 1992/Vol.35, No.9
73
-
7/25/2019 Nerson - 1992 - Applying Object-Oriented Analysis and Design
12/12
K i m W a l d e n a n d a ll t h e r e v i e w e r s
f o r t h e i r e x t r e m e l y h e l p f u l c o m -
m e n t s . []
R e f e r e n c e s
1 . B e c k , K ., C u n n i n g h a m , W . A l a bo -
r a t o r y f o r t e a c h i n g o b j e c t - o r i e n t e d
t h i n k i n g . O O P S L A ' 8 9 , O c t . 1 . 9 8 9 ,
p p . 1 - 6 .
2 . B ooch , G. Object Oriented Design with
Applications.
T h e B e n j a m i n /
C u m m i n g s P u b l i s h i n g C o m p a n y ,
Inc. 1991.
3 . B r u n e t , J . M o d e l i n g t h e w o r l d w i t h
s em ant i c ob jec t s . Univer s i ty o f Par i s
I , I n t e rna l Repo r t , 1991 .
4 . Cauvet , C . , Roland , C . , P ro ix , C . A
d e s i g n m e t h o d o l o g y f o r o b j e c t o r i -
e n t e d d a t a b a s e . I n t e r n a t i o n a l C o n -
f e r e n c e o n M a n a g e m e n t o f D a t a ,
H y d e r a b a d , I n d i a , 1 9 8 9 .
5 . C o a d , P . a n d Y o u r d o n , E . Object Ori-
ented Analysis, S e c o n d E d i t i o n , P r e n -
t i ce-Hal l , Englewood C l i f f s , N. J . ,
1991.
6 . C o a d , P . O b j e c t - o r i e n t e d p a t t e r n s .
Commun. ACM 35,
9 (Sept. 1992).
G i v e t h e g i f t o f l if e .
C all (800)877-5833 or inform ation
~ S T . J U D E C H / L D R E N ' S
~ R E S E A R C H
H O S P / T A L
II~mn r~Nr~*i.Founder
7. Du ke, R. , K ing , P. , Rose, G. ,
Sm i th , G. Th e ob jec t -Z s pec i f ica t ion
l a n g u a g e . I n Proceedings TOOLS 5,
( S a n t a B a r b a r a , J u l y - A u g u s t 1 9 91 ),
P ren t i ce Hal l , Englewood C l i f f s ,
N. J . , 1991 , pp . 465-483 .
8 . E S P R I T I I , B u s i n e s s C la s s T e c h n i -
c a l A n n e x . P r o j e c t # 5 3 1 1 , C o m m i s -
s i o n o f t h e E u r o p e a n E c o n o m i c
C o m m u n i t y , B r u x e l l e s , S e p t . 1 9 90 .
9 . H e n d e r s o n - S e l l e r s , B . BOOK o f Ob-
ject-Oriented Knowledge.
O b j e c t O r i -
e n t e d S e r i e s , P r e n t i c e - H a l l , E n g l e -
wood Clif fs , N.J . , 1991.
10 . Meyer , B . Tool s fo r the new cu l -
t u r e : L e s s o n s fr o m t h e d e s i g n o f th e
Eiffel l ibrar ies ,
Commun. ACM 33, 9
(Sep t . 1990) , 69-88 .
11. Meyer , B. Eiffel: T he Language. O b -
j e c t O r i e n t e d S e r i e s , P r e n t i c e - H a l l ,
Engle wo od C l i f f s , N.J . , 1992.
12 . Meyer , B . Des ign by con t r ac t . I n
Advances in Object-Oriented Software
Engineering,
D . M a n d r i o l i a n d
B . M e y e r , E d . , O b j e c t - O r i e n t e d
S e r i e s , P r e n t i c e - H a l l , E n g l e w o o d
Clif fs , N.J . , 1991, pp. 1-5 0.
1 3 . M o n a r c h i , D ., P u h r , G , I . A r e s e a r c h
t y p o l o g y f o r o b j e c t - o r i e n t e d a n a l y -
s i s and des ign .
Commun. ACM 35, 9
(Sept. 1992).
1 4 . N e r s o n , J. E x t e n d i n g E i f fe l to w a r d
O - O a n a l y s is a n d d e s i g n . I n
Proceed-
ings TOOLS 5, ( S a n ta B a r b a ra , J u l y -
Augus t 1991) , P ren t i ce Hal l , Engle-
wood C l i f f s , N. J . , 1991 , pp . 377-
392 .
15 . Ner s on , J .
Object-Oriented Architec-
tures: Analysis and Design of Reliable
Systems. P r e n t i c e H a l l , E n g l e w o o d
Cl i f f s , N. J . To appear .
16 . Nier s t r az , O. , Ts i chr i t z i s , D. ,
G i b b s , S . C o m p o n e n t - O r i e n t e d
s o f t w a r e d e v e l o p m e n t .
Commun.
A C M 3 5 , 9 (Sept. 1992).
17 . P age- J ones , M. , Co ns tan t ine , L . an d
Weis s , S . Model ing ob jec t o r i en ted
s y s t e m s : t h e u n i f o r m o b j e c t n o t a -
t ion .
Comput. Lang. 7,
(Oct. 1990),
6 9 - 8 7 .
1 8 . P o t t e r , J. S o f t w a r e d e v e l o p m e n t
w i t h E i f f e l , T O O L S 4 T u t o r i a l
Notes , Par i s , J u ne 1990.
1 9 . R u b i n , K . , G o l d b e r g , A . O b j e c t b e -
hav io r ana lys i s .
Commun. ACM 35, 9
(Sept. 1992).
2 0 . R u m b a u g h , J . , B l a h a , M . , P r e m e r -
l an i , W. , Eddy , F . and Lorens en , W.
Object Oriented Modeling and Design.
Pren t i ce-Hal l , Englewood C l i f f s ,
N.J. , 1991.
21 . Sh laer , S . and Mel ln r , S . J .
Object
Oriented Systems Analysis, Modeling
th
World in Data.
Y o u r d n n P r e s s C o r n -
p u t i n g S e r ie s , P r e n t i c e - H a l l , E n g l e -
wood Clif fs , N.J . , 1988.
22 . Wa s s erma n , A. I . , P i r cher , P . A. ,
Mul l e r , R . J . Concep t s o f ob jec t -
o r i e n t e d s t r u c t u r e d d e s i g n . I n
Pro-
ceedings TOO LS '89 Conference, Paris ,
Nov . 1989 , pp . 269-280 .
23 . Win blad , A . L . , E dwa rds , S . D.,
King , D. R . Object Oriented Software.
A d d i s o n - W e s l e y P u b l i s h i n g C o m -
pany , 1990 .
24 . Wi r f s -Brock , R . , Wi lker s on , B . and
W e i n e r , L .
Designing Object-Oriented
Software. P r e n t i c e - H a l l , E n g l e w o o d
Clif fs , N.J . , 1990.
C R C a t e g o r i e s a n d S u b j e c t D e s c r i p -
tors : D .2 .1 [ Sof tware] : S o f t w a r e E n g i -
n e e r i n g - - requirements / specifications;
D. 2 . 10
[ Sof tware] :
S o f t w a r e E n g i -
n e e r i n g - d e s i g n ; 1.6.0 [ C o m p u t i n g
M e t h o d o l o g i e s ] :
S i m u l a t i o n a n d M o d -
e l ing -genera l ;
1.6.3
[ C o m p u t i n g M e t h -
o d o l o g i e s ] :
S i m u l at io n a n d M o d e l i n g - -
applications;
K. 6 . 3
[ C o m p u t i n g
M i l i e u x ] : M a n a g e m e n t o f C o m p u t i n g
a n d I n f o r m a t i o n
Systems--software
management; K. 6 . 4 [ C o m p u t i n g
M i l i e u x ] : M a n a g e m e n t o f C o m p u t i n g
a n d I n f o r m a t i o n
Systems--system man-
agement
G e n e r a l T e r m s :
D e s i gn , E x p e r i m e n -
t a t i o n
A d d i t i o n a l K e y W o r d s a n d P h r a s e s :
Analys i s , des ign , f l ex ib le s of tware a r ch i -
t e c t u r e , o b j e c t - o r i e n t e d n o t a t i o n a n d
m e t h o d o l o g y , o b j e c t - o r i e n t e d s o f t w a r e
e n g i n e e r i n g , r e l ia b l e c o m p o n e n t r e u s -
ab i l i t y , s t a t i c c l as s model and dynamic
o b j e c t m o d e l
A b o u t t h e A u t h o r :
J E A N - M A R C N E R S O N i s m a n a g i n g
di r ec tor o f the Soc i4 t~ des Out i l s du
Logiciel (Par is ) . C u r r e n t r e s e a r c h i n t e r -
e s t s i n c l u d e t h e a n a l y s i s a n d d e s i g n o f
r e l i ab le s ys t ems .
A u t h o r ' s P r e s e n t A d d r e s s :
Soci~t6 des
Out i l s du Logic i e l , 104 rue Cas tagnary ,
7 5 0 1 5 P a r i s , F r a n c e ; e m a i l : m a r c @
eiffel . f r
Permission to copy witho ut fee all or pa rt of
this mater ial is granted provided that the
copies are no t made or dis t r ibuted for direct
commercial advantage, the ACM copyright
not ice a nd the t i tle of the publ icat ion and i ts
date appear, and n otice is given that copying
is by permission of the Association for
Com puting Machinery. To copy otherwise, or
to republish, requires a fee and/or specific
permission.
ACM0002-0782/92/0900-063 $1.50