non-functional requirements in software engineering
TRANSCRIPT
-
7/27/2019 Non-functional requirements in software engineering
1/31
2 T H E N F R F R A M E W O R K I N A C T I O N
C o n s i d e r t h e d e s i g n o f a n i n f o r m a t i o n s y s t e m , s u c h a s o n e f o r m a n a g i n g c r e d i t
c a r d a c c o u n t s . T h e s y s t e m s h o u l d d e b i t a n d c r e d i t a c c o u n t s , c h e c k c r e d i t l i m i t s ,
c h a r g e i n t e r e s t , i s s u e m o n t h l y s t a t e m e n t s , a n d s o f o r t h .
D u r i n g t h e d e v e l o p m e n t p r o c e s s o f r e q u i r e m e n t s e l a b o r a t i o n , s y s t e m s
d e s i g n a n d i m p l e m e n t a t i o n , a d e v e l o p e r n e e d s t o m a k e d e c i s i o n s s u c h a s :
H o w f r e q u e n t l y w i l l a c c o u n t i n f o r m a t i o n b e u p d a t e d ?
H o w w i l l c u s t o m e r i d e n t i t y b e v a l i d a t e d | e . g . , b y u s i n g p e r s o n a l i d e n t i -
c a t i o n n u m b e r s ( P I N c o d e s ) o r b i o m e t r i c s ?
W i l l a c e r t a i n g r o u p o f d a t a b e s t o r e d l o c a l l y o r r e p l i c a t e d o v e r m u l t i p l e
s i t e s ?
T h e s e d e v e l o p m e n t d e c i s i o n s h a v e i m p o r t a n t i m p l i c a t i o n s f o r t h e s e c u -
r i t y , p e r f o r m a n c e , a c c u r a c y , c o s t a n d o t h e r a s p e c t s o f t h e e v e n t u a l s y s t e m . T h e
s i g n i c a n c e o f t h e s e n o n - f u n c t i o n a l r e q u i r e m e n t s ( o r s o f t w a r e q u a l i t y a t t r i b u t e s )
a r e w i d e l y r e c o g n i z e d . A t t a i n i n g s o f t w a r e q u a l i t y a t t r i b u t e s c a n b e a s c r u c i a l
t o t h e s u c c e s s o f t h e s y s t e m a s p r o v i d i n g t h e f u n c t i o n a l i t y o f t h e s y s t e m . F o r
e x a m p l e , i n a c c u r a t e c r e d i t a c c o u n t i n f o r m a t i o n c a n l e a d t o m o n e t a r y l o s s a n d
d a m a g e t o t h e r e p u t a t i o n o f a n a n c i a l i n s t i t u t i o n , w h i l e p o o r r e s p o n s e t i m e
c o u l d l e a d t o p o o r m o r a l e a n d e v e n t u a l l y l o s s o f c u s t o m e r s .
M o s t c o n v e n t i o n a l a p p r o a c h e s t o s y s t e m d e s i g n a r e d r i v e n b y f u n c t i o n a l
r e q u i r e m e n t s . D e v e l o p e r s f o c u s t h e i r e o r t s p r i m a r i l y o n a c h i e v i n g t h e d e s i r e d
1 5
-
7/27/2019 Non-functional requirements in software engineering
2/31
1 6 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
f u n c t i o n a l i t y o f t h e s y s t e m { c a l c u l a t i n g a c c o u n t i n t e r e s t , i s s u i n g m o n t h l y s t a t e -
m e n t s , e t c . A l t h o u g h d e c i s i o n s a b o u t h o w t o a c h i e v e f u n c t i o n a l i t y a r e m a d e
a l o n g t h e w a y , u s u a l l y w i t h n o n - f u n c t i o n a l r e q u i r e m e n t s ( s u c h a s c o s t a n d p e r -
f o r m a n c e ) i n m i n d , t h e s e c o n s i d e r a t i o n s m a y n o t b e s y s t e m a t i c , a n d m a y o f t e n
n o t b e d o c u m e n t e d . F u r t h e r m o r e , t h e s e s o f t w a r e q u a l i t y a t t r i b u t e s m a y o f -
t e n b e v i e w e d a s c o n s e q u e n c e s o f t h e d e c i s i o n s , b u t n o t s o m e t h i n g t h a t t h e
d e v e l o p e r c a n s t r i v e f o r i n a c o h e r e n t , w e l l t h o u g h t - o u t w a y .
N o t e t h a t i n t h i s s e c t i o n w e a r e n o t u s i n g t h e t e r m s \ d e s i g n " o r \ d e v e l -
o p m e n t " t o r e f e r t o a p a r t i c u l a r p h a s e o f d e v e l o p m e n t . R a t h e r , t h e y a r e u s e d
i n t h e b r o a d s e n s e o f t h e p r o c e s s o f d e v e l o p i n g a t a r g e t a r t i f a c t b y s t a r t i n g w i t h
a s o u r c e s p e c i c a t i o n a n d p r o d u c i n g c o n s t r a i n t s u p o n t h e t a r g e t a r t i f a c t . T h i s
c o u l d o c c u r a t v a r i o u s p h a s e s o f d e v e l o p m e n t ( e . g . , r e q u i r e m e n t s s p e c i c a t i o n ,
c o n c e p t u a l d e s i g n , o r i m p l e m e n t a t i o n ) .
2 . 1 U S I N G T H E N F R F R A M E W O R K
I n c o n t r a s t t o f u n c t i o n a l i t y - d r i v e n a p p r o a c h e s , t h e N F R F r a m e w o r k u s e s n o n -
f u n c t i o n a l r e q u i r e m e n t s s u c h a s s e c u r i t y , a c c u r a c y , p e r f o r m a n c e a n d c o s t t o
d r i v e t h e o v e r a l l d e s i g n p r o c e s s . T h e F r a m e w o r k a i m s t o p u t n o n - f u n c t i o n a l
r e q u i r e m e n t s f o r e m o s t i n t h e d e v e l o p e r ' s m i n d .
T h e r e a r e s e v e r a l m a j o r s t e p s i n t h e d e s i g n p r o c e s s :
a c q u i r i n g o r a c c e s s i n g k n o w l e d g e a b o u t :
{ t h e p a r t i c u l a r d o m a i n a n d t h e s y s t e m w h i c h i s b e i n g d e v e l o p e d ,
{ f u n c t i o n a l r e q u i r e m e n t s f o r t h e p a r t i c u l a r s y s t e m , a n d
{ p a r t i c u l a r k i n d s o f N F R s , a n d a s s o c i a t e d d e v e l o p m e n t t e c h n i q u e s ,
i d e n t i f y i n g p a r t i c u l a r N F R s f o r t h e d o m a i n ,
d e c o m p o s i n g N F R s ,
i d e n t i f y i n g \ o p e r a t i o n a l i z a t i o n s " ( p o s s i b l e d e s i g n a l t e r n a t i v e s f o r m e e t i n g
N F R s i n t h e t a r g e t s y s t e m ) ,
d e a l i n g w i t h :
{ a m b i g u i t i e s ,
{ t r a d e o s a n d p r i o r i t i e s , a n d
{ i n t e r d e p e n d e n c i e s a m o n g a m o n g N F R s a n d o p e r a t i o n a l i z a t i o n s ,
s e l e c t i n g o p e r a t i o n a l i z a t i o n s ,
s u p p o r t i n g d e c i s i o n s w i t h d e s i g n r a t i o n a l e , a n d
e v a l u a t i n g t h e i m p a c t o f d e c i s i o n s .
T h e s e a r e n o t n e c e s s a r i l y s e q u e n t i a l s t e p s , a n d o n e m a y a l s o n e e d t o i t e r a t e
o v e r t h e m m a n y t i m e s d u r i n g t h e d e s i g n p r o c e s s . A d e v e l o p e r m a y c h o o s e
-
7/27/2019 Non-functional requirements in software engineering
3/31
T H E N F R F R A M E W O R K I N A C T I O N 1 7
r e n e m e n t s , h a v i n g o p e r a t i o n a l i z a t i o n s i n m i n d t h u s t h e d e v e l o p m e n t p r o c e s s
m a y m o v e u p a n d d o w n , r a t h e r t h a n b e i n g s t r i c t l y t o p - d o w n .
I t w o u l d b e e x t r e m e l y h e l p f u l , i f a t e a c h s t e p i n t h e p r o c e s s , t h e d e v e l o p e r
c o u l d d r a w o n a v a i l a b l e k n o w l e d g e t h a t i s r e l e v a n t t o t h a t s t e p i n t h e p r o c e s s .
T h i s i s p r e c i s e l y w h a t t h e N F R F r a m e w o r k a i m s t o p r o v i d e . T h e F r a m e w o r k
o e r s a s t r u c t u r e f o r r e p r e s e n t i n g a n d r e c o r d i n g t h e d e s i g n a n d r e a s o n i n g p r o -
c e s s i n g r a p h s , c a l l e d s o f t g o a l i n t e r d e p e n d e n c y g r a p h s ( S I G s ) . T h e F r a m e w o r k
a l s o o e r s c a t a l o g u i n g o f k n o w l e d g e a b o u t N F R s a n d d e s i g n k n o w l e d g e , i n c l u d -
i n g d e v e l o p m e n t t e c h n i q u e s . B y p r o v i d i n g S I G s a n d d r a w i n g o n c a t a l o g u e s ,
t h e c o n t e x t u a l i n f o r m a t i o n a t e a c h s t e p c a n b e u s e d t o t r i g g e r a n d b r i n g f o r t h
p r e v i o u s l y - s t o r e d k n o w l e d g e t o h e l p t h e d e v e l o p e r c a r r y o u t t h a t s t e p .
S o f t g o a l I n t e r d e p e n d e n c y G r a p h s
T h e o p e r a t i o n o f t h e F r a m e w o r k c a n b e v i s u a l i z e d i n t e r m s o f t h e i n c r e m e n t a l
a n d i n t e r a c t i v e c o n s t r u c t i o n , e l a b o r a t i o n , a n a l y s i s , a n d r e v i s i o n o f a s o f t g o a l
i n t e r d e p e n d e n c y g r a p h ( S I G ) . T h e g r a p h r e c o r d s t h e d e v e l o p e r ' s c o n s i d e r a t i o n
o f s o f t g o a l s , a n d s h o w s t h e i n t e r d e p e n d e n c i e s a m o n g s o f t g o a l s .
M a j o r c o n c e p t s o f t h e F r a m e w o r k a p p e a r i n t h e g r a p h i c a l f o r m i n S I G s .
S o f t g o a l s , w h i c h a r e \ s o f t " i n n a t u r e , a r e s h o w n a s c l o u d s . M a i n r e q u i r e m e n t s
a r e s h o w n a s s o f t g o a l s a t t h e t o p o f a g r a p h . S o f t g o a l s a r e c o n n e c t e d b y i n t e r -
d e p e n d e n c y l i n k s , w h i c h a r e s h o w n a s l i n e s , o f t e n w i t h a r r o w h e a d s . S o f t g o a l s
h a v e a s s o c i a t e d l a b e l s ( v a l u e s r e p r e s e n t i n g t h e d e g r e e t o w h i c h a s o f t g o a l i s
a c h i e v e d ) w h i c h a r e u s e d t o s u p p o r t t h e r e a s o n i n g p r o c e s s d u r i n g d e s i g n . I n -
t e r d e p e n d e n c i e s s h o w r e n e m e n t s o f \ p a r e n t " s o f t g o a l s d o w n w a r d s i n t o o t h e r ,
m o r e s p e c i c , \ o s p r i n g " s o f t g o a l s . T h e y a l s o s h o w t h e c o n t r i b u t i o n ( i m p a c t )
o f o s p r i n g s o f t g o a l s u p w a r d s u p o n t h e m e e t i n g o f o t h e r ( p a r e n t ) s o f t g o a l s .
T o d e t e r m i n e w h e t h e r s o f t g o a l s a r e a c h i e v e d , a n e v a l u a t i o n p r o c e d u r e
( l a b e l l i n g a l g o r i t h m ) i s u s e d , w h i c h c o n s i d e r s l a b e l s a n d c o n t r i b u t i o n s , a n d ,
i m p o r t a n t l y , d e c i s i o n s b y t h e d e v e l o p e r .
I t i s i m p o r t a n t t o n o t e t h a t t h e d e v e l o p e r h a s c o n t r o l o v e r w h a t s o f t g o a l s
a r e s t a t e d , h o w t h e y a r e r e n e d , a n d t h e e x t e n t t o w h i c h t h e y a r e r e n e d .
T h e d e s i g n p r o c e s s a n d e v a l u a t i o n p r o c e d u r e a r e i n t e r a c t i v e . E v a l u a t i o n i s
a l s o \ s e m i - a u t o m a t i c , " i . e . , a s s i s t e d b y a p r o c e d u r e ( a l g o r i t h m ) , b u t w i t h t h e
d e v e l o p e r i n c o n t r o l .
C a t a l o g u i n g D e s i g n K n o w l e d g e
A v e r y i m p o r t a n t a s p e c t o f t h e F r a m e w o r k i s t h a t d e v e l o p e r s a r e a b l e t o d r a w
o n a n o r g a n i z e d b o d y o f d e s i g n k n o w l e d g e ( i n c l u d i n g d e v e l o p m e n t t e c h n i q u e s )
t h a t h a s b e e n a c c u m u l a t e d f r o m p r e v i o u s e x p e r i e n c e . T h i s t y p e o f k n o w l e d g e
c a n b e a r r a n g e d i n k n o w l e d g e c a t a l o g u e s
T h e r e a r e t h r e e k i n d s o f c a t a l o g u e s u s e d . O n e k i n d o f c a t a l o g u e r e p -
r e s e n t s k n o w l e d g e a b o u t t h e p a r t i c u l a r t y p e s N F R s b e i n g c o n s i d e r e d , s u c h
a s s e c u r i t y a n d p e r f o r m a n c e , a n d t h e i r a s s o c i a t e d c o n c e p t s a n d t e r m i n o l o g y .
A n o t h e r k i n d o f c a t a l o g u e i s u s e d t o s y s t e m a t i c a l l y o r g a n i z e d e v e l o p m e n t t e c h -
-
7/27/2019 Non-functional requirements in software engineering
4/31
1 8 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
n i q u e s ( m e t h o d s ) , w h i c h a r e i n t e n d e d t o h e l p m e e t r e q u i r e m e n t s , a n d a r e a v a i l -
a b l e t o d e v e l o p e r s . T h e t h i r d t y p e o f c a t a l o g u e s h o w s i m p l i c i t i n t e r d e p e n d e n -
c i e s ( c o r r e l a t i o n s , t r a d e o s ) a m o n g s o f t g o a l s .
T h e d e s i g n k n o w l e d g e i n c a t a l o g u e s m a y c o m e f r o m m a n y s o u r c e s . G e n -
e r a l k n o w l e d g e f o r v a r i o u s a r e a s ( e . g . , p e r f o r m a n c e , s e c u r i t y , u s a b i l i t y ) a r e t y p -
i c a l l y a v a i l a b l e i n t e x t b o o k s , d e v e l o p e r g u i d e s a n d h a n d b o o k s . M o r e s p e c i a l -
i z e d k n o w l e d g e m a y b e a c c u m u l a t e d b y s p e c i a l i s t s i n i n d u s t r y a n d a c a d e m i a , o r
w i t h i n a n o r g a n i z a t i o n . I n d i v i d u a l d e v e l o p e r s a n d t e a m s a l s o b u i l d u p k n o w l -
e d g e f r o m t h e i r e x p e r i e n c e s o v e r a n u m b e r o f p r o j e c t s t h a t c a n b e r e u s e d . B y
m a k i n g t h i s k n o w l e d g e a v a i l a b l e i n a s i n g l e d e s i g n f r a m e w o r k , d e v e l o p e r s c a n
d r a w o n a b r o a d r a n g e o f e x p e r t i s e , i n c l u d i n g t h o s e b e y o n d t h e i r o w n i m m e d i -
a t e a r e a s o f s p e c i a l i t y , a n d c a n a d a p t t h e m t o m e e t t h e n e e d s o f t h e i r p a r t i c u l a r
s i t u a t i o n s .
T h e s e c a t a l o g u e s , s u c h a s t h o s e o e r e d i n P a r t I I , p r o v i d e a v a l u a b l e
r e s o u r c e f o r u s e a n d r e - u s e d u r i n g d e v e l o p m e n t o f a v a r i e t y o f s y s t e m s . T h i s
w a s o u r e x p e r i e n c e i n t h e c a s e s t u d i e s o f P a r t I I I , w h e r e c a t a l o g u e d k n o w l e d g e
o f d o m a i n i n f o r m a t i o n a n d N F R s w a s u s e d t h r o u g h o u t t h e d e s i g n p r o c e s s . T h u s
o t h e r s t e p s i n t h e p r o c e s s c a n b e a i d e d b y g a t h e r i n g a n d c a t a l o g u i n g k n o w l e d g e
e a r l y i n t h e p r o c e s s .
N o w w e c o n s i d e r t h e v a r i o u s s t e p s o f t h e p r o c e s s o f u s i n g t h e F r a m e w o r k .
2 . 2 A C Q U I R I N G D O M A I N K N O W L E D G E
D u r i n g t h e p r o c e s s , t h e d e v e l o p e r w i l l a c q u i r e a n d u s e i n f o r m a t i o n a b o u t t h e
d o m a i n a n d t h e s y s t e m b e i n g d e v e l o p e d . T h i s i n c l u d e s i t e m s s u c h a s f u n c t i o n a l
r e q u i r e m e n t s , e x p e c t e d o r g a n i z a t i o n a l w o r k l o a d , a n d o r g a n i z a t i o n a l p r i o r i t i e s .
F o r a c r e d i t c a r d s y s t e m , f o r e x a m p l e , t h e f u n c t i o n a l r e q u i r e m e n t s i n -
c l u d e o p e r a t i o n s t o a u t h o r i z e p u r c h a s e s , u p d a t e a c c o u n t s a n d p r o d u c e s t a t e -
m e n t s . O r g a n i z a t i o n a l w o r k l o a d i n c l u d e s t h e n u m b e r o f c a r d h o l d e r s a n d m e r -
c h a n t s , a n d t h e e x p e c t e d d a i l y v o l u m e o f p u r c h a s e s . T h e c r e d i t c a r d o r g a n i -
z a t i o n w i l l h a v e s o m e p r i o r i t i e s , s u c h a s e m p h a s i z i n g t h e f a s t c a n c e l l a t i o n o f
s t o l e n c a r d s , a n d t h e p r o v i s i o n o f f a s t a u t h o r i z a t i o n .
O f c o u r s e t h e d e v e l o p e r w i l l n e e d t o a c q u i r e a s o u r c e s p e c i c a t i o n o f t h e
s y s t e m , b e f o r e m o v i n g t o w a r d s a t a r g e t . F o r e x a m p l e , t h e s o u r c e m i g h t b e a
s e t o f r e q u i r e m e n t s , a n d t h e t a r g e t m i g h t b e a c o n c e p t u a l d e s i g n . A s a n o t h e r
e x a m p l e , t h e d e v e l o p e r m i g h t s t a r t w i t h a c o n c e p t u a l d e s i g n a n d m o v e t o w a r d s
a n i m p l e m e n t a t i o n o f t h e s y s t e m .
T h e c a s e s t u d i e s o f P a r t I I I i n c l u d e d e s c r i p t i o n s o f t h e d o m a i n s s t u d i e d .
2 . 3 A C Q U I R I N G A N D C A T A L O G U I N G N F R K N O W L E D G E
T h e d e v e l o p e r w i l l b e d r a w i n g o n c a t a l o g u e s o f k n o w l e d g e o f N F R s a n d a s s o -
c i a t e d d e v e l o p m e n t t e c h n i q u e s .
T o p r o v i d e a t e r m i n o l o g y a n d c l a s s i c a t i o n o f N F R c o n c e p t s , N F R t y p e
c a t a l o g u e s a r e u s e d . F i g u r e 2 . 1 s h o w s a c a t a l o g u e o f N F R s . T h e N F R t y p e s
a r e a r r a n g e d i n a h i e r a r c h y . M o r e g e n e r a l N F R s a r e s h o w n a b o v e m o r e s p e c i c
-
7/27/2019 Non-functional requirements in software engineering
5/31
T H E N F R F R A M E W O R K I N A C T I O N 1 9
o n e s . F o r e x a m p l e , p e r f o r m a n c e h a s s u b - t y p e s t i m e a n d s p a c e , w h i c h i n t u r n
h a v e t h e i r o w n s u b - t y p e s . T h e N F R s s h o w n i n b o l d f a c e a r e c o n s i d e r e d i n d e t a i l
i n t h i s b o o k .
NFR Types
Cost User-Friendliness
Integrity
Accuracy Completeness
Time Space
Performance Security
AvailabilityConfidentiality
MainMemory
SecondaryStorage
ResponseTime
ProcessManagementTime
Throughput
NFR Type Catalogue
Informal Legend
IsA (sub-type) relationship
F i g u r e 2 . 1 . A c a t a l o g u e o f s o m e N F R T y p e s .
T h e N F R t y p e s p r o v i d e a t e r m i n o l o g y t o e x p r e s s r e q u i r e m e n t s . F o r
e x a m p l e , w e c a n s p e a k o f t h e s e c u r i t y o f a n a c c o u n t , o r t h e r e s p o n s e t i m e f o r
s a l e s a u t h o r i z a t i o n .
S t a n d a r d d e v e l o p m e n t t e c h n i q u e s , a l o n g w i t h m e t h o d s o f d e c o m p o s i n g
N F R s , a r e a l s o o r g a n i z e d i n t o m e t h o d c a t a l o g u e s . I n t e r d e p e n d e n c i e s a m o n g
N F R s ( f o r e x a m p l e , s t a t i n g t h a t a u d i t i n g h e l p s s e c u r i t y ) a r e a l s o o r g a n i z e d
i n t o c o r r e l a t i o n c a t a l o g u e s . W e w i l l g i v e e x a m p l e s o f m e t h o d s a n d c o r r e l a t i o n s
i n t h i s c h a p t e r , a n d w i l l d i s c u s s t h e s e t w o t y p e s o f c a t a l o g u e s i n m o r e d e t a i l i n
S e c t i o n 2 . 1 2 .
N o r m a l l y , s y s t e m d e v e l o p e r s c a n a c c e s s e x i s t i n g c a t a l o g u e s f r o m t h e s t a r t
o f d e v e l o p m e n t . T h e c a t a l o g u e s c a n b e e x t e n d e d d u r i n g d e v e l o p m e n t , t o d e a l
w i t h a d d i t i o n a l o r m o r e r e n e d c o n c e p t s o r d e v e l o p m e n t t e c h n i q u e s w h i c h s u b -
s e q u e n t l y n e e d t o b e a d d r e s s e d .
2 . 4 I D E N T I F Y I N G N F R s
I n u s i n g t h e N F R F r a m e w o r k , o n e c o n s t r u c t s a n i n i t i a l s o f t g o a l i n t e r d e p e n d e n c y
g r a p h b y i d e n t i f y i n g t h e m a i n n o n - f u n c t i o n a l r e q u i r e m e n t s t h a t t h e p a r t i c u l a r
-
7/27/2019 Non-functional requirements in software engineering
6/31
2 0 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
s y s t e m u n d e r d e v e l o p m e n t s h o u l d m e e t . I n t h e c r e d i t c a r d s y s t e m e x a m p l e ,
t h e s e m a y i n c l u d e s e c u r i t y o f a c c o u n t i n f o r m a t i o n , a n d g o o d p e r f o r m a n c e i n t h e
s t o r i n g a n d u p d a t i n g o f t h a t i n f o r m a t i o n . T h e s e n o n - f u n c t i o n a l r e q u i r e m e n t s
( N F R s ) a r e t h e n t r e a t e d a s s o f t g o a l s t o b e a c h i e v e d , i . e . , t h e y a r e g o a l s w h i c h
n e e d t o b e c l a r i e d , d i s a m b i g u a t e d , p r i o r i t i z e d , e l a b o r a t e d u p o n , e t c . T h i s
p a r t i c u l a r k i n d o f s o f t g o a l i s c a l l e d a n N F R s o f t g o a l . A s w e w i l l s o o n s e e , N F R
s o f t g o a l s a r e o n e o f t h r e e k i n d s o f s o f t g o a l s .
T h e d e v e l o p e r w i l l i d e n t i f y s p e c i c p o s s i b l e d e v e l o p m e n t t e c h n i q u e s .
F r o m a m o n g t h e m , t h e d e v e l o p e r w i l l c h o o s e s o l u t i o n s i n t h e t a r g e t s y s t e m
t h a t m e e t t h e s o u r c e r e q u i r e m e n t s s p e c i c a t i o n . T h u s t h e d e v e l o p e r b e g i n s b y
s y s t e m a t i c a l l y d e c o m p o s i n g t h e i n i t i a l N F R s o f t g o a l s i n t o m o r e s p e c i c s u b -
s o f t g o a l s ( o r s u b g o a l s )
L e t u s c o n s i d e r t h e r e q u i r e m e n t s t o \ m a i n t a i n c u s t o m e r a c c o u n t s w i t h
g o o d s e c u r i t y " a n d \ m a i n t a i n c u s t o m e r a c c o u n t s w i t h g o o d p e r f o r m a n c e . "
Secureaccounts
F Developer states top performance and security softgoals
NFR Tool displays relevant cataloguesof methods.
Informal SIG
Informal Legend
NFR Softgoal
Good Performancefor accounts
F i g u r e 2 . 2 . A n i n i t i a l S o f t g o a l I n t e r d e p e n d e n c y G r a p h w i t h N F R s o f t g o a l s r e p r e s e n t i n g
r e q u i r e m e n t s f o r p e r f o r m a n c e a n d s e c u r i t y o f c u s t o m e r a c c o u n t s .
W e a r e c o n s i d e r i n g t w o n o n - f u n c t i o n a l r e q u i r e m e n t s h e r e , o n e f o r g o o d
p e r f o r m a n c e f o r a c c o u n t s , t h e o t h e r f o r g o o d s e c u r i t y o f a c c o u n t s . T h e s e n o n -
f u n c t i o n a l r e q u i r e m e n t s a r e r e p r e s e n t e d a s N F R s o f t g o a l s G o o d P e r f o r m a n c e f o r
a c c o u n t s a n d S e c u r e a c c o u n t s . T h e N F R s o f t g o a l s a r e r e p r e s e n t e d b y c l o u d s ,
s h o w n i n t h e s o f t g o a l i n t e r d e p e n d e n c y g r a p h ( S I G ) o f F i g u r e 2 . 2 .
S o f t g o a l s h a v e a n N F R t y p e , w h i c h i n d i c a t e s t h e p a r t i c u l a r N F R , s u c h
a s s e c u r i t y o r p e r f o r m a n c e , a d d r e s s e d b y t h e s o f t g o a l . I n t h i s c h a p t e r , t h e N F R
t y p e s o f s o m e t o p - l e v e l s o f t g o a l s a r e u n d e r l i n e d i n g u r e s . S o f t g o a l s a l s o h a v e
a s u b j e c t m a t t e r o r t o p i c , h e r e , a c c o u n t s .
I n t h i s c h a p t e r , w e u s e a s y n t a x f o r S I G s w h i c h c o n v e y s t h e m a i n p o i n t s
b u t i s s o m e w h a t i n f o r m a l . H e r e t h e g u r e i s a n \ i n f o r m a l " s o f t g o a l i n t e r d e p e n -
-
7/27/2019 Non-functional requirements in software engineering
7/31
T H E N F R F R A M E W O R K I N A C T I O N 2 1
d e n c y g r a p h ( i n f o r m a l S I G ) . A m o r e p r e c i s e s y n t a x i s i n t r o d u c e d i n C h a p t e r s 3
a n d 4 , a n d i s u s e d i n t h e r e m a i n d e r o f t h e b o o k .
F i g u r e s i n t h i s b o o k h a v e a l o g o i n t h e t o p l e f t c o r n e r ( s u c h a s I n f o r m a l
S I G ) i n d i c a t i n g t h e k i n d o f g u r e . A l i s t o f t h e d i e r e n t k i n d s o f l o g o s f o r
g u r e s i s g i v e n i n F i g u r e 0 . 1 .
S o m e g u r e s a l s o h a v e l e g e n d s t o d e s c r i b e n e w s y m b o l s . A c o l l e c t e d
L e g e n d f o r F i g u r e s a p p e a r s a t t h e f r o n t o f t h i s b o o k .
F i g u r e s i n t h i s c h a p t e r a l s o h a v e a n i n f o r m a l d e s c r i p t i o n o f t h e p r o c e s s o f
d e v e l o p i n g S I G s . A d i a m o n d i n t r o d u c e s a n a c t i o n b y t h e d e v e l o p e r . A r i g h t -
a r r o w i n t r o d u c e s a r e s p o n s e t o t h e d e v e l o p e r , d o n e b y c o n s u l t i n g c a t a l o g u e s
a n d e x e c u t i n g a l g o r i t h m s ( p r o c e d u r e s ) .
R e s p o n d i n g t o a d e v e l o p e r ' s d e c i s i o n s , a l o n g w i t h t h e d r a w i n g o f S I G s ,
c a n b e p r o v i d e d b y a n i n t e r a c t i v e d e s i g n s u p p o r t t o o l , o r c a n b e d o n e \ b y
h a n d " b y t h e d e v e l o p e r u s i n g \ p e n c i l a n d p a p e r . " T h e r e s p o n s e s i n t h e g u r e s
o f t h i s c h a p t e r a r e s u g g e s t i v e o f h o w a t o o l , s u c h a s t h e \ N F R T o o l " C h u n g 9 3 a ,
9 4 c ] , c o u l d b e u s e d . I n t h i s b o o k , h o w e v e r , w e d o n o t a s s u m e t h a t a p a r t i c u l a r
m e t h o d i s u s e d t o d r a w g r a p h s o r r e s p o n d t o d e v e l o p e r s ' d e c i s i o n s . R a t h e r , t h e
p r e s e n t a t i o n b e l o w w i l l f o c u s o n t h e u s a g e o f t h e N F R F r a m e w o r k ' s c o n c e p t s .
T h i s i s d o n e t o o e r s o m e e v i d e n c e t h a t t h e F r a m e w o r k i s u s e f u l . H o w e v e r , w e
d o n o t m a k e a c l a i m a b o u t t h e e a s e o f h a n d l i n g l a r g e S I G s f o r l a r g e s y s t e m s
T h e f o l l o w i n g s t e p s o f u s i n g t h e N F R F r a m e w o r k c a n b e v i e w e d a s a n
a n a l y s i s o f r e q u i r e m e n t s , f o l l o w e d b y a s y n t h e s i s o f o p e r a t i o n a l i z a t i o n s t o m e e t
t h e r e q u i r e m e n t s . F i r s t , s o f t g o a l s a r e b r o k e n d o w n i n t o s m a l l e r s o f t g o a l s . W e
d e a l w i t h a m b i g u i t i e s , a n d a l s o c o n s i d e r d o m a i n i n f o r m a t i o n a n d p r i o r i t i e s .
T h r o u g h o u t t h e a n a l y s i s w e c o n s i d e r i n t e r d e p e n d e n c i e s a m o n g s o f t g o a l s . T h e n
w e s y n t h e s i z e s o l u t i o n s t o b u i l d q u a l i t y i n t o t h e s y s t e m b e i n g d e v e l o p e d . W e
c o n s i d e r p o s s i b l e a l t e r n a t i v e s f o r t h e t a r g e t s y s t e m , t h e n c h o o s e s o m e , a n d s t a t e
r e a s o n s f o r d e c i s i o n s . F i n a l l y w e s e e h o w w e l l t h e m a i n r e q u i r e m e n t s h a v e b e e n
m e t .
I n t e r e s t i n g l y , t h e N F R F r a m e w o r k i s a b l e t o d e a l w i t h d i e r e n t N F R s i n
o n e g r a p h a t t h e s a m e t i m e , e v e n w h e n t h e N F R s h a v e d i e r e n t n a t u r e s ( h e r e ,
p e r f o r m a n c e a n d s e c u r i t y ) . A s w e s h a l l s e e , t h e N F R F r a m e w o r k c a n d e a l w i t h
i n t e r a c t i o n s a m o n g t h e s e d i e r e n t N F R s .
2 . 5 D E C O M P O S I N G N F R S O F T G O A L S
I n d e c o m p o s i n g a n N F R s o f t g o a l , t h e d e v e l o p e r c a n c h o o s e t o d e c o m p o s e i t s
N F R t y p e o r i t s t o p i c . I n t h e e x a m p l e , t h e t w o s o f t g o a l s s h a r e t h e s a m e t o p i c ,
a c c o u n t s , b u t a d d r e s s d i e r e n t N F R s , p e r f o r m a n c e a n d s e c u r i t y .
N o w w e w i l l d e c o m p o s e t h e t w o N F R s o f t g o a l s o f t h e e x a m p l e , s t a r t i n g
w i t h t h e s e c u r i t y r e q u i r e m e n t .
T h e i n i t i a l s e c u r i t y r e q u i r e m e n t i s q u i t e b r o a d a n d a b s t r a c t . T o e e c -
t i v e l y d e a l w i t h s u c h a b r o a d r e q u i r e m e n t , t h e N F R s o f t g o a l m a y n e e d t o b e
b r o k e n d o w n i n t o s m a l l e r c o m p o n e n t s , s o t h a t e e c t i v e s o l u t i o n s c a n b e f o u n d .
-
7/27/2019 Non-functional requirements in software engineering
8/31
2 2 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
I n a d d i t i o n , t h e r e q u i r e m e n t m a y b e a m b i g u o u s . D i e r e n t p e o p l e m a y
h a v e d i e r e n t c o n c e p t i o n s o f w h a t \ s e c u r i t y " c o n s t i t u t e s i n t h e c o n t e x t o f c r e d i t
c a r d a c c o u n t i n f o r m a t i o n .
Secureaccounts
Availabilityof accounts
Confidentialityof accounts
Integrityof accounts
F Developer focusses on security and selects method
NFR Tool creates and links sub-goals.
Informal SIG
Informal Legend
AND contribution
F i g u r e 2 . 3 . D e c o m p o s i n g N F R s o f t g o a l s i n t o m o r e s p e c i c n o n - f u n c t i o n a l r e q u i r e m e n t s .
B y t r e a t i n g t h i s h i g h - l e v e l r e q u i r e m e n t a s a s o f t g o a l t o b e a c h i e v e d , w e
c a n d e c o m p o s e i t i n t o m o r e s p e c i c s u b g o a l s w h i c h t o g e t h e r \ s a t i s c e " ( s h o u l d
m e e t ) t h e h i g h e r - l e v e l s o f t g o a l . T h u s t h e S e c u r e a c c o u n t s N F R s o f t g o a l c a n b e
d e c o m p o s e d i n t o s u b - s o f t g o a l s f o r t h e
i n t e g r i t y ,
c o n d e n t i a l i t y , a n d
a v a i l a b i l i t y .
o f t h e a c c o u n t s . T h i s i s s h o w n i n F i g u r e 2 . 3 , w h i c h i s a n e x t e n s i o n ( d o w n w a r d s )
o f p a r t o f F i g u r e 2 . 2 . S u c h s e r i e s o f g u r e s a r e u s e d t h r o u g h o u t t h i s b o o k t o
s h o w t h e d e v e l o p m e n t o f S I G s , w h e r e o n e g u r e b u i l d s o n e a r l i e r o n e s .
I n t h e g r a p h i c a l n o t a t i o n , c l o u d s d e n o t e s o f t g o a l s a n d l i n e s r e p r e s e n t
i n t e r d e p e n d e n c i e s a m o n g s o f t g o a l s .
S o f t g o a l s c o n t r i b u t e , p o s i t i v e l y o r n e g a t i v e l y , t o f u l l l i n g o t h e r s o f t g o a l s .
T h e r e a r e d i e r e n t t y p e s o f c o n t r i b u t i o n s . W h e n a l l o f s e v e r a l s u b - s o f t g o a l s
a r e n e e d e d t o g e t h e r t o m e e t a h i g h e r s o f t g o a l , w e s a y i t i s a n A N D t y p e o f
c o n t r i b u t i o n . H e r e , w e s a y t h a t i f i n t e g r i t y , c o n d e n t i a l i t y a n d a v a i l a b i l i t y
-
7/27/2019 Non-functional requirements in software engineering
9/31
T H E N F R F R A M E W O R K I N A C T I O N 2 3
a r e a l l m e t , t h e n a s a g r o u p t h e i r c o n t r i b u t i o n w i l l b e t o a c h i e v e t h e s e c u r i t y
s o f t g o a l . T h i s i s a n A N D c o n t r i b u t i o n . I t i s s h o w n w i t h l i n e s g r o u p e d b y a n
a r c .
T y p i c a l l y , s o f t g o a l s a r e s h o w n a s b e i n g r e n e d d o w n w a r d s i n t o s u b -
s o f t g o a l s ( s u b g o a l s ) , a n d s u b g o a l s c o n t r i b u t e u p w a r d s t o p a r e n t s o f t g o a l s .
I t i s i n t e r e s t i n g t o n o t e t h a t s t e p s u s e d i n c o n s t r u c t i n g S I G s c a n d r a w o n
c a t a l o g u e s , s u c h a s t h e N F R T y p e c a t a l o g u e o f F i g u r e 2 . 1 . I n F i g u r e 2 . 3 , f o r e x -
a m p l e , a n e n t r y ( S e c u r i t y ) i n t h e t y p e c a t a l o g u e h a s s p e c i a l i z e d t y p e s ( I n t e g r i t y
C o n d e n t i a l i t y a n d A v a i l a b i l i t y ) . A n d i n t h e S I G w e s e e t h e s a m e p a t t e r n , w h e r e
i n t e r - c o n n e c t e d ( i n t e r d e p e n d e n t ) s o f t g o a l s h a v e t h e s e s a m e t y p e s .
I f p a t t e r n s a r e b e e x p e c t e d t o b e r e - u s e d w h e n b u i l d i n g S I G s , m e t h o d s
c a n b e d e n e d a n d e n t e r e d i n a c a t a l o g u e . H e r e , f o r e x a m p l e , a m e t h o d c a n
b e d e n e d w h i c h t a k e s a p a r e n t s o f t g o a l o f a p a r t i c u l a r t y p e , a n d p r o d u c e s
o s p r i n g s o f t g o a l s w h i c h h a v e s u b - t y p e s o f t h e p a r e n t ' s t y p e . T h i s S u b T y p e
m e t h o d i s u s e d i n t h e S I G .
Completeaccounts
Secureaccounts
Availabilityof accounts
Confidentialityof accounts
Integrityof accounts
Accurateaccounts
G Developer focusses on security and selects method
NFR Tool creates and links sub-goals.
F Further security refinement
Informal SIG
F i g u r e 2 . 4 . F u r t h e r d e c o m p o s i t i o n o f a s e c u r i t y s o f t g o a l .
T h e N F R s o f t g o a l t h a t a c c o u n t s w i l l h a v e i n t e g r i t y c a n b e f u r t h e r d e c o m -
p o s e d i n t o t h e s u b g o a l s t h a t a c c o u n t i n f o r m a t i o n b e c o m p l e t e , a n d a c c u r a t e .
T h i s i s s h o w n i n F i g u r e 2 . 4 . T h i s i s a n o t h e r a p p l i c a t i o n o f t h e S u b T y p e m e t h o d .
H e r e , i t c o n s i d e r s t h e s u b - t y p e s o f I n t e g r i t y f r o m t h e c a t a l o g u e o f F i g u r e 2 . 1 .
I n t h e d e s c r i p t i o n s a t t h e b o t t o m o f g u r e s i n t h i s c h a p t e r , s o l i d d i a -
m o n d s a n d r i g h t - a r r o w s r e p r e s e n t n e w a c t i o n s a n d r e s p o n s e s , w h i l e o u t l i n e d
-
7/27/2019 Non-functional requirements in software engineering
10/31
2 4 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
G Developer states top performance and security softgoals
NFR Tool displays relevant catalogues of methods.
G Developer focusses on security and selects method
NFR Tool creates and links sub-goals.
G Further security refinement
F Developer focusses on performance softgoal for accounts
NFR Tool displays catalogue of performance methods.
Secureaccounts
Completeaccounts
Availabilityof accounts
Confidentialityof accounts
Integrityof accounts
Accurateaccounts
Good Performancefor accounts
Informal SIG
F i g u r e 2 . 5 . C o n s i d e r i n g a p e r f o r m a n c e s o f t g o a l .
o n e s p r o v i d e c o n t e x t b y r e p e a t i n g a c t i o n s a n d r e s p o n s e s w h i c h w e r e s h o w n i n
e a r l i e r g u r e s .
R e c a l l t h a t w e s t a r t e d w i t h t w o m a i n N F R s , f o r s e c u r i t y a n d p e r f o r m a n c e
o f a c c o u n t s . F i g u r e 2 . 5 s h o w s t h e s e i n i t i a l N F R s f r o m F i g u r e 2 . 2 , a l o n g w i t h
t h e s e c u r i t y d e v e l o p m e n t o f F i g u r e 2 . 4 .
H a v i n g r e n e d t h e s e c u r i t y r e q u i r e m e n t , t h e d e v e l o p e r n o w f o c u s s e s o n
t h e p e r f o r m a n c e r e q u i r e m e n t .
T h e d e v e l o p e r d e c i d e s t o d e c o m p o s e t h e p e r f o r m a n c e s o f t g o a l w i t h r e -
s p e c t t o i t s N F R t y p e . T h i s r e s u l t s , i n F i g u r e 2 . 6 ( a n e x t e n s i o n o f F i g u r e 2 . 5 ) ,
i n t w o s u b g o a l s :
o n e f o r g o o d s p a c e p e r f o r m a n c e f o r a c c o u n t s , a n d
o n e f o r g o o d t i m e p e r f o r m a n c e f o r a c c o u n t s .
G o o d t i m e p e r f o r m a n c e h e r e m e a n s f a s t r e s p o n s e t i m e , a n d g o o d s p a c e p e r f o r -
m a n c e m e a n s u s i n g l i t t l e s p a c e . H e r e t h e s u b g o a l s m a k e a n A N D c o n t r i b u t i o n
t o t h e p e r f o r m a n c e s o f t g o a l .
-
7/27/2019 Non-functional requirements in software engineering
11/31
T H E N F R F R A M E W O R K I N A C T I O N 2 5
G Developer focusses on performance softgoal for accounts
NFR Tool displays catalogue of performance methods.
F Developer refines performance softgoal
Secureaccounts
Completeaccounts
Availabilityof accounts
Confidentialityof accounts
Integrityof accounts
Accurateaccounts
Good Performancefor accounts
Space foraccounts
Responsetime foraccounts
Informal SIG
F i g u r e 2 . 6 . D e c o m p o s i n g a p e r f o r m a n c e s o f t g o a l .
T h i s i s a n o t h e r u s e o f t h e S u b T y p e m e t h o d . I t d r a w s o n t h e s u b t y p e s o f
P e r f o r m a n c e i n t h e N F R t y p e c a t a l o g u e o f F i g u r e 2 . 1 .
A s w e l l a s t h e i r N F R t y p e , s o f t g o a l s c a n a l s o b e d e c o m p o s e d b y t h e i r
t o p i c . F o r e x a m p l e , a p e r f o r m a n c e s o f t g o a l f o r c r e d i t c a r d a c c o u n t s c o u l d b e
d e c o m p o s e d i n t o p e r f o r m a n c e s o f t g o a l s f o r g o l d a c c o u n t s a n d f o r r e g u l a r a c -
c o u n t s .
2 . 6 D E A L I N G W I T H P R I O R I T I E S
S o f t g o a l i n t e r d e p e n d e n c y g r a p h s c a n g r o w t o b e q u i t e l a r g e a n d c o m p l e x . H o w
c a n a d e v e l o p e r f o c u s o n w h a t i s i m p o r t a n t ?
O n e w a y i s t o i d e n t i f y p r i o r i t i e s . E x t r a a t t e n t i o n c a n t h e n b e p u t t o w a r d s
m e e t i n g t h e p r i o r i t y s o f t g o a l s .
P r i o r i t i e s c a n a r i s e f r o m c o n s i d e r a t i o n o f s e v e r a l f a c t o r s . T h e s e i n c l u d e
d o m a i n i n f o r m a t i o n s u c h a s o r g a n i z a t i o n a l p r i o r i t i e s ( e . g . , a b a n k m a y c o n s i d e r
s e c u r i t y v e r y i m p o r t a n t ) a n d o r g a n i z a t i o n a l w o r k l o a d ( e . g . , a c r e d i t c a r d s y s t e m
m a y h a v e a l a r g e n u m b e r o f s a l e s t o a u t h o r i z e e a c h d a y ) . I n a d d i t i o n , r e q u i r e -
m e n t s c a n b e i d e n t i e d a s p r i o r i t i e s d u r i n g v a r i o u s p h a s e s o f d e v e l o p m e n t .
-
7/27/2019 Non-functional requirements in software engineering
12/31
2 6 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
G Developer focusses on performance softgoal for accounts
NFR Tool displays catalogue of performance methods.
G Developer refines performance softgoal
F Developer identifies accurate accounts as a priority
Secureaccounts
Completeaccounts
Availabilityof accounts
Confidentiality
of accounts
Integrityof accounts
Accurateaccounts
Good Performancefor accounts
Space foraccounts
Responsetime foraccounts
Informal SIG
Accurateaccounts!
+
Informal Legend
Priority softgoal!
F i g u r e 2 . 7 . I d e n t i f y i n g a s o f t g o a l a s a p r i o r i t y .
S o m e p r i o r i t y s o f t g o a l s w i l l b e i d e n t i e d a s c r i t i c a l , a s t h e y a r e v i t a l t o
t h e s u c c e s s o f t h e s y s t e m o r o r g a n i z a t i o n . O t h e r s o f t g o a l s w i l l b e n o t e d a s
b e i n g d o m i n a n t , a s t h e y d e a l w i t h a s i g n i c a n t p o r t i o n o f t h e o r g a n i z a t i o n ' s
w o r k l o a d . P r i o r i t y s o f t g o a l s a r e i d e n t i e d b y a n e x c l a m a t i o n m a r k ( )
F i g u r e 2 . 7 i d e n t i e s A c c u r a t e a c c o u n t s a s b e i n g a p r i o r i t y s o f t g o a l . T h i s
i s s h o w n b y p r o d u c i n g a n o s p r i n g w i t h t h e s a m e t y p e a n d t o p i c , b u t n o t e d a s
a p r i o r i t y b y \ ! " .
T h e p r i o r i t y o s p r i n g c o n t r i b u t e s p o s i t i v e l y t o t h e p a r e n t , a n d t h i s i s
i n d i c a t e d b y \ + " . T h i s p o s i t i v e c o n t r i b u t i o n i s a n e x a m p l e o f a c o n t r i b u t i o n
t y p e , w h i c h s h o w s t h e i m p a c t o f o s p r i n g s o f t g o a l s u p o n t h e i r p a r e n t s o f t g o a l .
T h e r e a s o n s f o r p r i o r i t i z i n g a s o f t g o a l c a n b e n o t e d a s d e s i g n r a t i o n a l e ,
d i s c u s s e d i n S e c t i o n 2 . 9 b e l o w . N o w t h a t t h e p r i o r i t y i s i d e n t i e d , i t c a n b e
a n a l y z e d a n d d e a l t w i t h .
-
7/27/2019 Non-functional requirements in software engineering
13/31
T H E N F R F R A M E W O R K I N A C T I O N 2 7
F o r e x a m p l e , p r i o r i t i e s m a y b e u s e d t o m a k e a p p r o p r i a t e t r a d e o s a m o n g
s o f t g o a l s . A s a n e x a m p l e , f a s t a u t h o r i z a t i o n o f c r e d i t c a r d s a l e s m a y b e g i v e n
h i g h e r p r i o r i t y t h a n f a s t d e t e r m i n a t i o n o f t r a v e l b o n u s p o i n t s t o b e g i v e n t o
g o l d c a r d h o l d e r s . H e r e , t h e d e v e l o p e r m a y p e r f o r m t h e a u t h o r i z a t i o n b e f o r e
t h e b o n u s c a l c u l a t i o n .
K n o w l e d g e o f t r a d e o s c a n b e c a p t u r e d i n c a t a l o g u e s , a n d m a d e a v a i l a b l e
f o r r e - u s e i n d e a l i n g w i t h s o f t g o a l s y n e r g y a n d c o n i c t s . T h u s 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 , v a r i o u s t r a d e o c o n s i d e r a t i o n s c a n b e m a d e .
2 . 7 I D E N T I F Y I N G P O S S I B L E O P E R A T I O N A L I Z A T I O N S
W h i l e t h e r e n e m e n t p r o c e s s s o f a r p r o v i d e s m o r e s p e c i c i n t e r p r e t a t i o n s o f
w h a t t h e i n i t i a l N F R s o f \ s e c u r e " a n d \ g o o d p e r f o r m a n c e " m e a n , i t d o e s n o t
y e t p r o v i d e m e a n s f o r a c t u a l l y a c c o m p l i s h i n g s e c u r i t y a n d p e r f o r m a n c e f o r a c -
c o u n t s .
A t s o m e p o i n t , w h e n t h e n o n - f u n c t i o n a l r e q u i r e m e n t s h a v e b e e n s u -
c i e n t l y r e n e d , o n e w i l l b e a b l e t o i d e n t i f y p o s s i b l e d e v e l o p m e n t t e c h n i q u e s f o r
a c h i e v i n g t h e s e N F R s ( w h i c h a r e t r e a t e d a s N F R s o f t g o a l s ) a n d t h e n c h o o s e
s p e c i c s o l u t i o n s f o r t h e t a r g e t s y s t e m . T h e d e v e l o p m e n t t e c h n i q u e s c a n b e
v i e w e d a s m e t h o d s f o r a r r i v i n g a t t h e \ t a r g e t " o r \ d e s t i n a t i o n " o f t h e d e s i g n
p r o c e s s .
H o w e v e r , i t i s i m p o r t a n t t o n o t e t h a t t h e r e i s a \ g a p " b e t w e e n N F R
s o f t g o a l s a n d d e v e l o p m e n t t e c h n i q u e s . T o g e t t o t h e d e s t i n a t i o n , o n e m u s t
b r i d g e t h e g a p . T h i s i n v o l v e s p e r f o r m i n g a n a l y s i s , a n d d e a l i n g w i t h a n u m b e r
o f f a c t o r s . T h e s e i n c l u d e a m b i g u i t i e s , p r i o r i t i e s , t r a d e o s , a n d o t h e r d o m a i n
i n f o r m a t i o n s u c h a s t h e w o r k l o a d o f t h e o r g a n i z a t i o n . T h e s e f a c t o r s w i l l h a v e
t o b e a d d r e s s e d a t v a r i o u s s t e p s i n t h e p r o c e s s .
W e s h o w h o w d e v e l o p m e n t t e c h n i q u e s a r e i d e n t i e d h e r e , a n d h o w t h e y
a r e s e l e c t e d i n S e c t i o n 2 . 1 0 .
L e t u s c o n s i d e r t h e c h a l l e n g e o f p r o v i d i n g g o o d R e s p o n s e t i m e f o r a c -
c o u n t s . O n e p o s s i b l e a l t e r n a t i v e i s t o u s e i n d e x i n g ( F i g u r e 2 . 8 ) . I n t h i s c a s e ,
U s e i n d e x i n g i s a d e v e l o p m e n t t e c h n i q u e t h a t c a n b e i m p l e m e n t e d . I t i s a c a n -
d i d a t e f o r t h e t a s k o f m e e t i n g t h e r e s p o n s e - t i m e N F R . B u t i t i s n o l o n g e r a
n o n - f u n c t i o n a l r e q u i r e m e n t . T h i s i s c o n t r a s t e d w i t h R e s p o n s e t i m e , w h i c h i s
s t i l l a s o f t w a r e q u a l i t y a t t r i b u t e , i . e . , a n o n - f u n c t i o n a l r e q u i r e m e n t , s i n c e i t i s
n o t s o m e t h i n g t h a t c a n b e i m p l e m e n t e d d i r e c t l y .
W e c a l l t h e d e v e l o p m e n t t e c h n i q u e s o p e r a t i o n a l i z a t i o n s o f t h e N F R s o f t -
g o a l s .
W e s a y t h a t i n d e x i n g o p e r a t i o n a l i z e s r e s p o n s e t i m e . W e a l s o s a y t h a t
t h e r e s p o n s e t i m e N F R i s o p e r a t i o n a l i z e d b y i n d e x i n g .
O p e r a t i o n a l i z i n g s o f t g o a l s a r e d r a w n a s t h i c k ( d a r k ) c l o u d s , a n d a r e a n -
o t h e r k i n d o f s o f t g o a l .
N o t e t h a t o p e r a t i o n a l i z a t i o n s a r e n o t l i m i t e d t o o p e r a t i o n s a n d f u n c t i o n s .
I n s t e a d , o p e r a t i o n a l i z a t i o n s c a n c o r r e s p o n d t o d a t a , o p e r a t i o n s a n d c o n s t r a i n t s
i n t h e t a r g e t s y s t e m .
-
7/27/2019 Non-functional requirements in software engineering
14/31
2 8 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
G Developer identifies accurate accounts as a priority
F Developer focusses on response time, confidentiality and security
NFR Assistant displays catalogue of possible techniques
and trade-offs.
F Developer selects possible techniques
NFR Assistant creates and links techniques.
Informal SIG
Informal Legend
+Operationalization OR contribution Positivecontribution
Secureaccounts
Authorizeaccess toaccountinformation Authenticate
user access
Identifyusers
Validate accessagainst eligibility rules
Use
P.I.N.
CompareSignature
RequireadditionalID
Completeaccounts
Availability
of accountsConfidentialityof accounts
Integrity
of accounts
Accurateaccounts
Good Performancefor accounts
Space foraccounts
Responsetime foraccounts
Useindexing
Use uncompressedformat
+
+
+
Accurateaccounts!
+
F i g u r e 2 . 8 . I d e n t i f y i n g p o s s i b l e o p e r a t i o n a l i z a t i o n s f o r N F R s o f t g o a l s .
-
7/27/2019 Non-functional requirements in software engineering
15/31
T H E N F R F R A M E W O R K I N A C T I O N 2 9
L i k e o t h e r s o f t g o a l s , o p e r a t i o n a l i z i n g s o f t g o a l s m a k e a c o n t r i b u t i o n , p o s -
i t i v e o r n e g a t i v e , t o w a r d s p a r e n t s o f t g o a l s . H e r e , t h e u s e o f i n d e x i n g h e l p s m e e t
t h e N F R s o f t g o a l f o r g o o d r e s p o n s e t i m e . T h i s p o s i t i v e c o n t r i b u t i o n i s s h o w n
b y \ + " i n F i g u r e 2 . 8 . T h e r e a r e s e v e r a l c o n t r i b u t i o n t y p e s . E a r l i e r , w e s a w t h e
A N D c o n t r i b u t i o n t y p e .
I n a d d i t i o n , t h e u s e o f a n u n c o m p r e s s e d f o r m a t m a k e s a p o s i t i v e c o n -
t r i b u t i o n t o w a r d s m e e t i n g t h e r e s p o n s e t i m e r e q u i r e m e n t . H o w e v e r , a s w e w i l l
s e e l a t e r , i t h a s a n e g a t i v e i m p a c t o n s p a c e p e r f o r m a n c e .
N o t e t h a t w e h a v e n o t y e t c h o s e n w h i c h o p e r a t i o n a l i z a t i o n s w i l l b e u s e d
i n t h e t a r g e t s y s t e m . W h a t w e c a n s a y n o w i s t h a t t h e u s e o f e i t h e r i n d e x i n g
o r a n u n c o m p r e s s e d f o r m a t , o r b o t h , w i l l m a k e a p o s i t i v e c o n t r i b u t i o n t o w a r d s
a c h i e v i n g g o o d r e s p o n s e t i m e .
L e t u s n o w c o n s i d e r h o w t o m e e t t h e s e c u r i t y r e q u i r e m e n t , p a r t i c u l a r l y
C o n d e n t i a l i t y o f a c c o u n t s . O n e d e v e l o p m e n t t e c h n i q u e i s t o a l l o w o n l y a u t h o -
r i z e d a c c e s s t o a c c o u n t i n f o r m a t i o n . A u t h o r i z e a c c e s s t o a c c o u n t i n f o r m a t i o n i s
a n o p e r a t i o n a l i z i n g s o f t g o a l w h i c h m a k e s a p o s i t i v e c o n t r i b u t i o n t o c o n d e n -
t i a l i t y .
T h e o p e r a t i o n a l i z a t i o n s c a n b e d r a w n f r o m c a t a l o g u e s o f d e v e l o p m e n t
t e c h n i q u e s , b a s e d o n e x p e r t i s e i n s e c u r i t y , p e r f o r m a n c e , a n d i n f o r m a t i o n s y s t e m
d e v e l o p m e n t . C a t a l o g u e s c a n a i d t h e s e a r c h f o r p o s s i b l e o p e r a t i o n a l i z a t i o n s .
T h e t r a n s i t i o n f r o m N F R s o f t g o a l s t o o p e r a t i o n a l i z i n g s o f t g o a l s i s a c r u -
c i a l s t e p i n t h e p r o c e s s , b e c a u s e N F R s n e e d t o b e c o n v e r t e d i n t o s o m e t h i n g
t h a t c a n b e i m p l e m e n t e d . H o w e v e r , o n e m a y n o t b e a b l e t o c o n v e r t i n i t i a l
r e q u i r e m e n t s i n t o a c o n c r e t e o p e r a t i o n a l i z a t i o n i n o n e s t e p , i . e . , t h e i n i t i a l o p -
e r a t i o n a l i z a t i o n ( d e v e l o p m e n t t e c h n i q u e ) m a y n o t b e s p e c i c e n o u g h . O f t e n ,
t h e r e n e e d s t o b e f u r t h e r r e n e m e n t s a n d e l a b o r a t i o n s . F u r t h e r m o r e , t h e r e
c a n b e d i e r e n t w a y s f o r r e n i n g o r e l a b o r a t i n g t h e s e g e n e r a l o p e r a t i o n a l i z -
i n g s o f t g o a l s , i . e . , o n e n e e d s t o c o n t i n u e t o i d e n t i f y o t h e r p o s s i b l e d e v e l o p m e n t
t e c h n i q u e s a n d c h o o s e a m o n g t h e m . I n t h e N F R F r a m e w o r k , w e c o n t i n u e t o
t r e a t t h e s e o p e r a t i o n a l i z i n g s o f t g o a l s { b o t h g e n e r a l o n e s a s w e l l a s i n c r e a s i n g l y
s p e c i a l i z e d a n d s p e c i c o n e s { a s s o f t g o a l s t o b e a d d r e s s e d . T h i s a l l o w s u s t o
u s e t h e s a m e s y s t e m a t i c f r a m e w o r k t o d e c o m p o s e o p e r a t i o n a l i z i n g s o f t g o a l s
i n t o m o r e s p e c i c o n e s .
F o r e x a m p l e , t h e o p e r a t i o n a l i z i n g s o f t g o a l A u t h o r i z e a c c e s s t o a c c o u n t
i n f o r m a t i o n c a n b e d e t a i l e d ( f u r t h e r o p e r a t i o n a l i z e d ) i n t e r m s o f a c o m b i n a t i o n
o f
i d e n t i f y i n g u s e r s ,
a u t h e n t i c a t i n g u s e r a c c e s s , a n d
v a l i d a t i n g a c c e s s a g a i n s t e l i g i b i l i t y r u l e s .
T h e A N D c o n t r i b u t i o n j o i n i n g o p e r a t i o n a l i z i n g s o f t g o a l s m e a n s t h a t a l l
t h r e e o s p r i n g h a v e t o b e a c h i e v e d , i n o r d e r t o a c h i e v e t h e p a r e n t s o f t g o a l ,
A u t h o r i z e a c c e s s t o a c c o u n t i n f o r m a t i o n . I f a n y o n e i s n o t a c h i e v e d , t h e p a r e n t
s o f t g o a l w i l l n o t b e a c h i e v e d .
-
7/27/2019 Non-functional requirements in software engineering
16/31
3 0 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
I n t u r n , a u t h e n t i c a t i n g u s e r a c c e s s c a n b e d e c o m p o s e d i n t o a n y o n e o f
s e v e r a l o p t i o n s : u s i n g a p e r s o n a l i d e n t i c a t i o n n u m b e r ( P I N c o d e ) , c o m p a r i n g
s i g n a t u r e s , o r r e q u i r i n g a d d i t i o n a l I D . H e r e , t h e c o n t r i b u t i o n t y p e i s O R , s i n c e
a n y o n e o f t h e o s p r i n g c a n b e u s e d t o m e e t t h e p a r e n t . T h a t i s , A u t h e n t i c a t i o n
c a n b e a c c o m p l i s h e d b y u s i n g a P I N c o d e , b y c o m p a r i n g s i g n a t u r e s , o r b y
r e q u i r i n g a d d i t i o n a l i d e n t i c a t i o n .
C a t a l o g u e s a l s o s h o w p o s s i b l e d e c o m p o s i t i o n s o f o p e r a t i o n a l i z a t i o n s i n t o
m o r e s p e c i a l i z e d o p e r a t i o n a l i z a t i o n s . T h e c a t a l o g u e s a l s o s h o w t h e c o n t r i b u -
t i o n s o f s p e c i a l i z e d o p e r a t i o n a l i z a t i o n s t o w a r d s t h e i r p a r e n t s .
A N D a n d O R c o n t r i b u t i o n s a r e d r a w n w i t h a r c s , a n d t h e d i r e c t i o n o f
c o n t r i b u t i o n i s t o w a r d s t h e a r c s . H o w e v e r t h e o t h e r c o n t r i b u t i o n t y p e s ( s u c h
a s \ + " i n t h e g u r e ) a r e d r a w n w i t h a r r o w h e a d s o n t h e l i n e s , s h o w i n g t h e
d i r e c t i o n o f c o n t r i b u t i o n s t o w a r d p a r e n t s o f t g o a l s . N o t e t h a t t h e d i r e c t i o n o f t h e
a r r o w s i s t y p i c a l l y t h e o p p o s i t e o f t h e s e q u e n c e i n w h i c h s o f t g o a l s a r e g e n e r a t e d .
C o n t r i b u t i o n t y p e s a e c t h o w t h e g r a p h i s e v a l u a t e d , a n d a r e e x p l a i n e d i n f u l l
i n C h a p t e r 3 .
W e u s e t h e t e r m d e c o m p o s i t i o n w h e n t h e p a r e n t a n d o s p r i n g h a v e t h e
s a m e k i n d s o f s o f t g o a l s . W e h a v e a l r e a d s e e n d e c o m p o s i t i o n o f N F R s o f t g o a l s
t o o t h e r N F R s o f t g o a l s , a s w e l l a s d e c o m p o s i t i o n s o f o p e r a t i o n a l i z i n g s o f t g o a l s
i n t o o t h e r o p e r a t i o n a l i z i n g s o f t g o a l s .
2 . 8 D E A L I N G W I T H I M P L I C I T I N T E R D E P E N D E N C I E S A M O N G
S O F T G O A L S
A t e a c h s t e p i n t h e p r o c e s s , w h e n w e m a k e c h o i c e s i n o r d e r t o a c h i e v e a p a r -
t i c u l a r n o n - f u n c t i o n a l r e q u i r e m e n t ( s a y , s e c u r i t y o f a c c o u n t i n f o r m a t i o n ) , i t i s
v e r y l i k e l y t h a t s o m e o t h e r n o n - f u n c t i o n a l r e q u i r e m e n t s ( e . g . , u s e r - f r i e n d l y a c -
c e s s , d e a l i n g w i t h e a s e o f u s e o f t h e i n t e r f a c e t o a s y s t e m ) m a y b e a e c t e d ,
e i t h e r p o s i t i v e l y o r n e g a t i v e l y , a t t h e s a m e t i m e . T h e s e i n t e r a c t i o n s a r e v e r y
i m p o r t a n t b e c a u s e t h e y h a v e a n i m p a c t o n t h e d e c i s i o n p r o c e s s f o r a c h i e v i n g
t h e o t h e r N F R s .
T h e s e i n t e r a c t i o n s i n c l u d e p o s i t i v e a n d n e g a t i v e c o n t r i b u t i o n s . T h e s e
d i e r e n t i n t e r a c t i o n s c a n b e d e a l t w i t h i n d i e r e n t w a y s .
W e h a v e a l r e a d y s e e n h o w d e v e l o p e r s c a n e x p l i c i t l y s t a t e i n t e r d e p e n d e n -
c i e s a m o n g s o f t g o a l s , b y u s i n g r e n e m e n t s . W e c a l l t h e s e e x p l i c i t i n t e r d e p e n -
d e n c i e s . T h e y a r e s h o w n a s s o l i d l i n e s i n g u r e s .
N o w w e c o n s i d e r i n t e r d e p e n d e n c i e s w h i c h a r e d e t e c t e d b y c o m p a r i n g a
p o r t i o n o f a S I G w i t h a c a t a l o g u e o f r e l a t i o n s h i p s a m o n g s o f t g o a l s . T h e s e
i m p l i c i t i n t e r d e p e n d e n c i e s ( c o r r e l a t i o n s a m o n g s o f t g o a l s ) a r e s h o w n a s d a s h e d
l i n e s i n g u r e s .
F i g u r e 2 . 9 s h o w s s o m e c o r r e l a t i o n s ( i m p l i c i t i n t e r d e p e n d e n c i e s ) a m o n g
s o f t g o a l s . T h e s e i n c l u d e p o s i t i v e a n d n e g a t i v e c o n t r i b u t i o n s .
U s i n g a n u n c o m p r e s s e d f o r m a t i s n e g a t i v e ( s h o w n a s \ { " ) f o r s p a c e ( b e -
c a u s e c o m p r e s s e d f o r m a t s a r e m o r e s p a c e - e c i e n t ) , b u t p o s i t i v e ( \ + " ) f o r r e -
s p o n s e t i m e ( b e c a u s e w e d o n ' t n e e d t o u n c o m p r e s s t h e d a t a b e f o r e p r o c e s s i n g
i t ) . T h e p o s i t i v e c o n t r i b u t i o n w a s s t a t e d e x p l i c i t l y . N o w t h e n e g a t i v e p a r t o f
-
7/27/2019 Non-functional requirements in software engineering
17/31
T H E N F R F R A M E W O R K I N A C T I O N 3 1
Secureaccounts
Authorizeaccess toaccountinformation Authenticate
user access
Identifyusers
Validate accessagainst eligibility rules
Use
P.I.N.
CompareSignature
RequireadditionalID
Completeaccounts
Availability
of accountsConfidentialityof accounts
Integrity
of accounts
Accurateaccounts
Good Performancefor accounts
Space foraccounts
Responsetime foraccounts
Useindexing
+
Use uncompressedformat
Assistant automatically detects Accuracy-Confidentialitysynergy (+).
Assistant detects negative (-) impact of Validation onResponse time. Assistant detects negative (-) impact of Uncompressed
format on Space.
Informal SIG
+
+
+
+ Detected positive contribution Detected negative contribution
Informal Legend
Accurateaccounts!
+
F i g u r e 2 . 9 . D e t e c t i n g i m p l i c i t i n t e r d e p e n d e n c i e s a m o n g e x i s t i n g s o f t g o a l s .
-
7/27/2019 Non-functional requirements in software engineering
18/31
3 2 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
t h i s t i m e - s p a c e t r a d e o i s d e t e c t e d u s i n g a c o r r e l a t i o n . B y s h o w i n g p o s i t i v e
a n d n e g a t i v e c o n t r i b u t i o n s , c o r r e l a t i o n s a r e o n e w a y o f r e c o r d i n g t r a d e o s .
Assistant automatically detects Accuracy-Confidentialitysynergy (+).
Assistant detects negative () impact of Validation onResponse time.
Assistant detects negative () impact of Uncompressedformat on Space.
Assistant warns against possible omission ofUser-friendliness based on correlation rules
Secureaccounts
Authorizeaccess toaccountinformation
Authenticateuser access
Identifyusers
Validate accessagainst eligibility rules
UseP.I.N.
CompareSignature
RequireadditionalID
Completeaccounts
Availabilityof accounts
Confidentialityof accounts
Integrityof accounts
Accurateaccounts
User-friendlyaccess to accounts
Good Performancefor accounts
Space foraccounts
Responsetime foraccounts
Useindexing
Use uncompressedformat
Informal SIG
+
+
+
+
Accurateaccounts!
+
F i g u r e 2 . 1 0 . D e t e c t i n g i m p l i c i t i n t e r d e p e n d e n c i e s a m o n g e x i s t i n g a n d o t h e r s o f t g o a l s .
A s a n o t h e r e x a m p l e , V a l i d a t e a c c e s s a g a i n s t e l i g i b i l i t y r u l e s i s o n e c o m -
p o n e n t o f A u t h o r i z e a c c e s s t o a c c o u n t i n f o r m a t i o n , w h i c h o p e r a t i o n a l i z e s t h e
C o n d e n t i a l i t y o f a c c o u n t s N F R s o f t g o a l . H o w e v e r , b e s i d e s c o n t r i b u t i n g t o c o n -
-
7/27/2019 Non-functional requirements in software engineering
19/31
T H E N F R F R A M E W O R K I N A C T I O N 3 3
d e n t i a l i t y , v a l i d a t i o n a l s o h a p p e n s t o h a v e a p o s i t i v e e e c t o n t h e a c c u r a c y o f
a c c o u n t s , s i n c e i l l - i n t e n t i o n e d u s e r s c a n b e d e n i e d a c c e s s a n d p r e v e n t e d f r o m
c o m m i t t i n g f o r g e r y . O n t h e o t h e r h a n d , V a l i d a t e a c c e s s a g a i n s t e l i g i b i l i t y r u l e s
h a s a n e g a t i v e c o n t r i b u t i o n t o R e s p o n s e t i m e f o r a c c o u n t s , s i n c e v a l i d a t i o n i n -
d u c e s e x t r a o v e r h e a d .
I m p l i c i t i n t e r d e p e n d e n c i e s c a n b e d e t e c t e d a s t h e g r a p h i s b e i n g d e v e l -
o p e d . T h i s i s d o n e b y c o n s u l t i n g ( \ b y h a n d , " o r w i t h t o o l s u p p o r t ) c a t a l o g u e s
o f p o s i t i v e a n d n e g a t i v e i n t e r d e p e n d e n c i e s a m o n g s o f t g o a l s . T h e s e c o r r e l a t i o n
c a t a l o g u e s , a r e d i s c u s s e d b e l o w i n S e c t i o n 2 . 1 2 .
F i g u r e 2 . 9 a d d e d i n t e r d e p e n d e n c y l i n k s f o r c o r r e l a t i o n s . N o w w e c a n
c o n s i d e r c o r r e l a t i o n s w h i c h a d d s o f t g o a l s .
T h e e x a m i n a t i o n o f c o r r e l a t i o n c a t a l o g u e s m a y a l s o l e a d t o t h e i d e n t i -
c a t i o n o f r e l a t e d N F R s w h i c h h a d n o t p r e v i o u s l y b e e n c o n s i d e r e d r e l e v a n t .
I n d e c o m p o s i n g A u t h e n t i c a t e u s e r a c c e s s , f o r e x a m p l e , o n e o f t h e a l t e r n a t i v e s
{ R e q u i r e a d d i t i o n a l I D { i s d e t e c t e d t o h a v e a n e g a t i v e i m p a c t o n U s e r - f r i e n d l y
a c c e s s t o a c c o u n t s . A l t h o u g h w e h a d n o t b e e n c o n s i d e r i n g i t i n F i g u r e 2 . 9 , n o t e
t h a t t h e N F R s o f t g o a l U s e r - f r i e n d l y a c c e s s t o a c c o u n t s n o w a p p e a r s i n t h e S I G
o f F i g u r e 2 . 1 0 a s p a r t o f a c o r r e l a t i o n .
T h u s c o r r e l a t i o n s c a n a d d s o f t g o a l s ( F i g u r e 2 . 1 0 ) , a s w e l l a s i n t e r d e p e n -
d e n c i e s ( F i g u r e 2 . 9 ) t o s o f t g o a l i n t e r d e p e n d e n c y g r a p h s .
2 . 9 R E C O R D I N G D E S I G N R A T I O N A L E
A n i m p o r t a n t p r e m i s e o f t h e F r a m e w o r k i s t h a t d e s i g n d e c i s i o n s s h o u l d b e s u p -
p o r t e d b y w e l l - j u s t i e d a r g u m e n t s o r d e s i g n r a t i o n a l e . R e a s o n s c a n b e s t a t e d
f o r m a k i n g r e n e m e n t s , f o r s e l e c t i n g a n a l t e r n a t i v e f o r t h e t a r g e t s y s t e m , e t c .
T h e F r a m e w o r k e x t e n d s t h e g o a l - o r i e n t e d a p p r o a c h t o t h e t r e a t m e n t o f a r g u -
m e n t s .
L e t u s c o n s i d e r t w o e x a m p l e s . F i r s t , w e c a n s t a t e t h e r e a s o n f o r a p r i o r i -
t i z a t i o n , h e r e o f A c c u r a t e a c c o u n t s . T o s u p p o r t t h i s p r i o r i t i z a t i o n , i n F i g u r e 2 . 1 1
w e w r i t e C l a i m \ A c c u r a c y i s v i t a l . "
W e c a l l t h i s a c l a i m s o f t g o a l ( o r c l a i m ) . C l a i m s o f t g o a l s a r e t h e t h i r d
k i n d o f s o f t g o a l . E a r l i e r w e s a w N F R s o f t g o a l s a n d o p e r a t i o n a l i z i n g s o f t g o a l s .
H e r e t h e c l a i m i s a t t a c h e d t o a n i n t e r d e p e n d e n c y l i n k , w h i c h c o n n e c t s
t h e p r i o r i t i z e d s o f t g o a l ! A c c u r a t e a c c o u n t s t o i t s p a r e n t , A c c u r a t e a c c o u n t s
N o t e t h a t w e u s e t h e t e r m c l a i m s o f t g o a l t o r e f e r t o t h e s t a t e m e n t i t s e l f .
W h e n t h e s t a t e m e n t i s u s e d t o a r g u e f o r o r a g a i n s t s o m e t h i n g , t h a t c o n s t i t u t e s
a n a r g u m e n t , i . e . , t h e a r g u m e n t r e f e r s t o t h e r e l a t i o n s h i p b e t w e e n t h e c l a i m
a n d t h e t h i n g a r g u e d a b o u t . C l a i m s o f t g o a l s a r e r e p r e s e n t e d a s d a s h e d c l o u d s
i n t h e s o f t g o a l i n t e r d e p e n d e n c y g r a p h . T h e i r i n t e r d e p e n d e n c y l i n k s r e p r e s e n t
t h e a r g u m e n t s .
A s a s e c o n d u s e o f c l a i m s , w e c a n r a t i o n a l i z e t r a d e o s . H e r e , t h e s p e -
c i a l i z e d o p e r a t i o n a l i z a t i o n V a l i d a t e a c c e s s a g a i n s t e l i g i b i l i t y r u l e s h e l p s t o a c h i e v e
t h e m o r e g e n e r a l o p e r a t i o n a l i z a t i o n , A u t h o r i z e a c c e s s t o a c c o u n t i n f o r m a t i o n
-
7/27/2019 Non-functional requirements in software engineering
20/31
3 4 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
F Developer examines priorities trade-offs
F Developer provides justifications
NFR Assistant displays the developers arguments.
Secureaccounts
Authorizeaccess toaccountinformation
Authenticateuser access
Identifyusers
Validate accessagainst eligibility rules
UseP.I.N.
Compare
Signature RequireadditionalID
Completeaccounts
Availabilityof accountsConfidentiality
of accounts
Integrityof accounts
Accurateaccounts
User-friendlyaccess to accounts
Good Performancefor accounts
Space foraccounts Response
time foraccounts
Useindexing
Claim
"Optimized validation will nothurt response time much."
Use uncompressedformat
Informal SIG
+
+
+
Claim
Informal Legend
+
Accurateaccounts!
+Claim
"Accuracyis vital"
F i g u r e 2 . 1 1 . R e c o r d i n g d e s i g n r a t i o n a l e .
A t t h e s a m e t i m e , i t h a s g e n e r a t e d s o m e c o r r e l a t i o n s . I t h a s a p o s i t i v e
i m p a c t o n t h e s o f t g o a l f o r a c c u r a c y o f a c c o u n t s , w h i c h i s a p r i o r i t y . H o w e v e r , i t
a l s o h a s a n e g a t i v e i m p a c t o n t h e s o f t g o a l f o r g o o d r e s p o n s e t i m e f o r a c c o u n t s .
I n t h i s c a s e , t h e d e v e l o p e r w e i g h s t h e t r a d e o a n d f e e l s t h a t t h e V a l i d a t e
a c c e s s a g a i n s t e l i g i b i l i t y r u l e s o p e r a t i o n a l i z i n g s o f t g o a l i s s t i l l w o r t h c o n s i d e r i n g ,
-
7/27/2019 Non-functional requirements in software engineering
21/31
T H E N F R F R A M E W O R K I N A C T I O N 3 5
d e s p i t e i t s n e g a t i v e c o n t r i b u t i o n t o R e s p o n s e t i m e f o r a c c o u n t s ( F i g u r e 2 . 1 1 ) .
I n f a c t , t h i s o p e r a t i o n a l i z i n g s o f t g o a l w i l l b e c h o s e n i n t h e n e x t s e c t i o n .
T o s u p p o r t t h i s p o s i t i o n , t h e d e v e l o p e r i n t r o d u c e s t h e c l a i m : C l a i m
\ O p t i m i z e d v a l i d a t i o n w i l l n o t h u r t r e s p o n s e t i m e m u c h . " ] T h e c l a i m n o t e s t h a t
o p t i m i z a t i o n o f \ V a l i d a t e a c c e s s a g a i n s t e l i g i b i l i t y r u l e s " w i l l m i t i g a t e i t s d e g r a -
d a t i o n o f R e s p o n s e t i m e f o r a c c o u n t s
R a t i o n a l e c a n d r a w o n d o m a i n i n f o r m a t i o n , s u c h a s o r g a n i z a t i o n a l p r i -
o r i t i e s a n d o r g a n i z a t i o n a l w o r k l o a d ( e . g . , t h e n u m b e r o f c r e d i t c a r d s a l e s p e r
d a y ) , a s w e l l a s d e v e l o p m e n t e x p e r t i s e .
N o t e t h a t a s t h e s e f a c t o r s c h a n g e , t h e r e a s o n s a n d d e c i s i o n s m a y c h a n g e .
F o r e x a m p l e , i f t h e v o l u m e o f d a i l y s a l e s r i s e s d r a m a t i c a l l y , t h e n p r i o r i t i e s m a y
c h a n g e . T h e s e c o u l d b e r e e c t e d i n t h e r a t i o n a l e , a n d d i e r e n t o p e r a t i o n a l -
i z a t i o n s c o u l d b e s e l e c t e d , w h i c h c o u l d h a v e a n i m p a c t o n m e e t i n g t h e t o p
s o f t g o a l s .
C l a i m s a r e t r e a t e d a s s o f t g o a l s r e l a t e d b y i n t e r d e p e n d e n c i e s a n d a s s o c i -
a t e d c o n t r i b u t i o n s , i n t h e s a m e w a y t h a t N F R s a n d t h e i r o p e r a t i o n a l i z a t i o n s
a r e . C l a i m s m a k e c o n t r i b u t i o n s , p o s i t i v e o r n e g a t i v e , t o o t h e r s o f t g o a l s . S u c h
c o n t r i b u t i o n s a r e n o t s h o w n i n t h e g u r e s o f t h i s c h a p t e r , b u t w i l l b e d i s c u s s e d
i n t h e n e x t c h a p t e r .
2 . 1 0 S E L E C T I N G A M O N G A L T E R N A T I V E S
T h e r e n e m e n t p r o c e s s c o n t i n u e s u n t i l t h e d e v e l o p e r c o n s i d e r s t h a t t h e p o s s i -
b l e s o l u t i o n s f o r t h e t a r g e t s y s t e m a r e s u c i e n t l y d e t a i l e d , a n d t h a t n o o t h e r
a l t e r n a t i v e s n e e d b e c o n s i d e r e d .
A l o n g t h e w a y , t h e d e v e l o p e r h a s c o n s i d e r e d N F R s , d o m a i n i n f o r m a t i o n ,
a n d a d d r e s s e d a m b i g u i t i e s , p r i o r i t i e s a n d t r a d e o s . T h e d e v e l o p e r h a s t h e n
c o n s i d e r e d p o s s i b l e o p e r a t i o n a l i z a t i o n s , d e s i g n r a t i o n a l e , a n d i n t e r d e p e n d e n c i e s
a m o n g s o f t g o a l s , u s i n g t h e e x p e r t i s e f r o m t h e d e v e l o p e r a n d f r o m c a t a l o g u e s .
O f c o u r s e , e a r l y d e c i s i o n s n e e d t o b e c o n s i d e r e d a n d r e c o n s i d e r e d w h e n m a k i n g
l a t e r d e c i s i o n s . A l l t h i s i n f o r m a t i o n i s r e c o r d e d i n t h e g r a p h , a n d i s a v a i l a b l e
t o h e l p t h e d e v e l o p e r s e l e c t a m o n g a l t e r n a t i v e s .
T h u s , d e v e l o p e r s a r e a i d e d i n t h e i r d e c i s i o n - m a k i n g , b y r e f e r r i n g t o t h e
g r a p h s , w h i c h h a v e a h i s t o r y o f t h e d e s i g n p r o c e s s .
I n e x p a n d i n g t h e s o f t g o a l i n t e r d e p e n d e n c y g r a p h , t h e d e v e l o p e r i s e l a b o -
r a t i n g o n t h e p o s s i b l e s u b p a r t s a n d a l t e r n a t i v e s t h a t o n e w o u l d l i k e t o c o n s i d e r
a s m e a n s f o r a c h i e v i n g t h e i n i t i a l h i g h - l e v e l s o f t g o a l s . T h e g r a p h t h u s r e p r e -
s e n t s a d e s i g n s p a c e o v e r w h i c h d e s i g n d e c i s i o n s a r e t o b e m a d e .
A s s o f t g o a l s a r e b e i n g r e n e d , t h e d e v e l o p e r w i l l e v e n t u a l l y r e a c h s o m e
s o f t g o a l s w h i c h a r e s u c i e n t l y d e t a i l e d . T h e d e v e l o p e r c a n a c c e p t o r r e j e c t
t h e m , a s p a r t o f t h e t a r g e t s y s t e m .
N o w i t i s t i m e t o c h o o s e f r o m a m o n g t h e p o s s i b l e o p e r a t i o n a l i z a t i o n s ,
i n o r d e r t o p r o d u c e a t a r g e t s y s t e m . I n a d d i t i o n , a p p r o p r i a t e d e s i g n r a t i o n a l e
s h o u l d b e s e l e c t e d .
-
7/27/2019 Non-functional requirements in software engineering
22/31
3 6 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
Secureaccounts
Authorizeaccess toaccountinformation
Authenticateuser access
Identifyusers
Validate accessagainst eligibility rules
UseP.I.N.
Compare
Signature RequireadditionalID
Completeaccounts
Availabilityof accounts
Confidentialityof accounts
Integrityof accounts
Accurateaccounts
User-friendlyaccess to accounts
Good Performancefor accounts
Space foraccounts
Responsetime foraccounts
Useindexing
Use uncompressedformat
4
4
4
4
4
8
4
Informal SIG
+
+
+
F Developer makes decisions
Informal Legend
8
Chosen operationalization or claim
Rejected operationalization or claim
4
Claim
"Optimized validation will nothurt response time much."
+
Accurateaccounts!
+Claim
"Accuracyis vital"
4
F i g u r e 2 . 1 2 . S e l e c t i n g a m o n g a l t e r n a t i v e s .
T h e r e a r e c h o i c e s o f o p e r a t i o n a l i z i n g s o f t g o a l s . O f t h e m a n y t a r g e t a l -
t e r n a t i v e s i n t h e g r a p h ( F i g u r e 2 . 1 2 ) , s o m e a r e c h o s e n ( s e l e c t e d o r \ s a t i s c e d , "
i n d i c a t e d b y \
p
" ) a n d o t h e r s a r e r e j e c t e d ( d e n i e d , i n d i c a t e d b y \ " )
H a v i n g i d e n t i e d t h r e e p o s s i b l e w a y s f o r a u t h e n t i c a t i n g u s e r a c c e s s , t h e
d e v e l o p e r d e c i d e s t h a t t h e C o m p a r e S i g n a t u r e o p e r a t i o n a l i z a t i o n i s a c c e p t a b l e .
C h o s e n s o l u t i o n s a r e r e p r e s e n t e d i n t h e g r a p h i c a l n o t a t i o n a s a c h e c k - m a r k
( \
p
" ) i n s i d e t h e n o d e ( F i g u r e 2 . 1 2 ) . O n t h e o t h e r h a n d , r e j e c t e d c a n d i d a t e s ,
s u c h a s R e q u i r e a d d i t i o n a l I D , a r e s h o w n a s \ "
-
7/27/2019 Non-functional requirements in software engineering
23/31
T H E N F R F R A M E W O R K I N A C T I O N 3 7
T o a i d c o n d e n t i a l i t y , I d e n t i f y u s e r s a n d V a l i d a t e a c c e s s a g a i n s t e l i g i b i l i t y
r u l e s a r e a l s o s e l e c t e d . T o a i d r e s p o n s e t i m e , i n d e x i n g a n d a n u n c o m p r e s s e d
f o r m a t a r e c h o s e n . N o t e t h a t a d e c i s i o n n e e d n o t b e m a d e f o r e v e r y o p e r a -
t i o n a l i z i n g s o f t g o a l . T h i s i s t h e c a s e f o r U s e P . I . N , w h i c h i s l e f t b l a n k .
A s i s t h e c a s e f o r o p e r a t i o n a l i z i n g s o f t g o a l s , c l a i m s o f t g o a l s ( c l a i m s ) a r e
a l s o e i t h e r a c c e p t e d ( s a t i s c e d ) o r r e j e c t e d ( d e n i e d ) . T h e c l a i m f o r p r i o r i t i z i n g
a c c u r a c y i s a c c e p t e d , h e n c e a c h e c k - m a r k ( \
p
" ) i s p l a c e d i n t h e C l a i m \ A c c u r a c y
i s v i t a l . " ] c l a i m s o f t g o a l . L i k e w i s e , t h e c l a i m C l a i m \ O p t i m i z e d v a l i d a t i o n w i l l n o t
h u r t r e s p o n s e t i m e m u c h . " ] i s a c c e p t e d .
N o w w e t u r n t o t h e i m p a c t o f t h e s e d e c i s i o n s o n t o p r e q u i r e m e n t s .
2 . 1 1 E V A L U A T I N G T H E I M P A C T O F D E C I S I O N S
T h e e v a l u a t i o n o f s o f t g o a l s a n d i n t e r d e p e n d e n c i e s d e t e r m i n e s t h e i m p a c t o f
d e c i s i o n s . T h i s i n d i c a t e s w h e t h e r h i g h - l e v e l s o f t g o a l s a r e m e t .
T o d e t e r m i n e t h e i m p a c t o f d e c i s i o n s , b o t h c u r r e n t a n d p r e v i o u s d e c i s i o n s
a r e c o n s i d e r e d . P r e v i o u s c o n s i d e r a t i o n s a n d d e c i s i o n s a r e a l r e a d y r e e c t e d i n
t h e g r a p h , a s s o f t g o a l s a n d i n t e r d e p e n d e n c i e s .
T o r e e c t t h e n a t u r e o f d e s i g n r e a s o n i n g , t h e e v a l u a t i o n a n d p r o p a g a t i o n
o f d e s i g n d e c i s i o n s f o c u s s e s o n t h e q u e s t i o n o f w h e t h e r a c h o s e n a l t e r n a t i v e
i s \ g o o d e n o u g h , " i . e . , w h e t h e r i t m e e t s a s o f t g o a l s u c i e n t l y . T h i s s t y l e
o f r e a s o n i n g i s a p p r o p r i a t e f o r d e a l i n g w i t h n o n - f u n c t i o n a l r e q u i r e m e n t s s i n c e
m e e t i n g t h e s e r e q u i r e m e n t s i s o f t e n a m a t t e r o f d e g r e e , n o t a b i n a r y t r u e -
f a l s e d e c i s i o n . T h e N F R F r a m e w o r k b u i l d s o n t h e n o t i o n o f s a t i s c i n g , w h i c h
w a s u s e d b y H e r b e r t S i m o n S i m o n 8 1 ] t o r e f e r t o n d i n g s o l u t i o n s t h a t a r e
s u c i e n t l y g o o d , e v e n i f t h e y m a y n o t b e o p t i m a l . T o e m p h a s i z e t h e d i e r e n c e
b e t w e e n t h i s s t y l e o f g o a l - o r i e n t e d r e a s o n i n g f r o m t h e m o r e c o n v e n t i o n a l , b i n a r y
l o g i c - b a s e d , g o a l - o r i e n t e d r e a s o n i n g ( e . g . , N i l s s o n 7 1 ] ) , w e u s e t h e t e r m s o f t g o a l
t o r e f e r t o t h e k i n d o f g o a l t h a t r e q u i r e s s a t i s c i n g .
T h e e v a l u a t i o n p r o c e s s c a n b e v i e w e d a s w o r k i n g b o t t o m - u p , s t a r t i n g
w i t h d e c i s i o n s , w h i c h a r e o f t e n l e a v e s o f t h e g r a p h , a n d o f t e n a t i t s b o t t o m .
T h e n t h e e v a l u a t i o n p r o c e d u r e ( o r l a b e l l i n g a l g o r i t h m ) w o r k s t o w a r d s t h e t o p
o f t h e g r a p h , d e t e r m i n i n g t h e i m p a c t o n h i g h e r - l e v e l m a i n s o f t g o a l s . T h e s e t o p
s o f t g o a l s r e e c t o v e r a l l n o n - f u n c t i o n a l r e q u i r e m e n t s a s s t a t e d b y t h e d e v e l o p e r
a n d p e o p l e i n t h e o r g a n i z a t i o n f o r w h i c h t h e s y s t e m i s b e i n g d e v e l o p e d .
I n t h e N F R F r a m e w o r k , t h e e v a l u a t i o n o f s o f t g o a l s i s r e p r e s e n t e d b y
a s s i g n i n g l a b e l s ( s u c h a s \
p
" a n d \ " ) t o t h e c l o u d s ( s o f t g o a l s ) i n t h e g r a p h .
L a b e l s m a y b e a s s i g n e d b y t h e d e v e l o p e r , o r c o m p u t e d f r o m c o n t r i b u t i o n s f r o m
o t h e r n o d e s .
R o u g h l y s p e a k i n g , w h e n t h e r e i s a s i n g l e o s p r i n g , a p o s i t i v e c o n t r i b u t i o n
\ p r o p a g a t e s " t h e o s p r i n g ' s l a b e l t o t h e p a r e n t . T h u s a s a t i s c e d o s p r i n g
r e s u l t s i n a s a t i s c e d p a r e n t , a n d a d e n i e d o s p r i n g r e s u l t s i n a d e n i e d p a r e n t .
O n t h e o t h e r h a n d , a n e g a t i v e c o n t r i b u t i o n w i l l t a k e t h e o s p r i n g ' s l a b e l
a n d \ i n v e r t " i t f o r t h e p a r e n t ' s l a b e l . T h a t i s , a s a t i s c e d o s p r i n g l e a d s t o a
d e n i e d p a r e n t , a n d a d e n i e d o s p r i n g l e a d s t o a ( s o m e w h a t ) s a t i s c e d p a r e n t .
-
7/27/2019 Non-functional requirements in software engineering
24/31
3 8 N O N - F U N C T I O N A L R E Q U I R E M E N T S I N S O F T W A R E E N G I N E E R I N G
G Developer makes decisions
NFR Assistant evaluates the satisfaction of softgoals.
4Informal Legend
8
Satisficed softgoal
Denied softgoal
Secureaccounts
Authorizeaccess toaccountinformation
Authenticateuser access
Identifyusers
Validate accessagainst eligibility rules
UseP.I.N.
Compare
Signature RequireadditionalID
Completeaccounts
Availabilityof accounts
Confidentialityof accounts
Integrityof accounts
Accurateaccounts
User-friendlyaccess to accounts
Good Performancefor accounts
Space foraccounts
Responsetime foraccounts
Useindexing
Use uncompressedformat
4
44
44
8
4
Informal SIG
+
+
+
4
Claim
"Optimized validation will nothurt response time much."
+
Accurateaccounts!
+Claim
"Accuracyis vital"
4
4
4
4
4
4
4
8
F i g u r e 2 . 1 3 . E v a l u a t i n g t h e i m p a c t o f d e c i s i o n s .
T h i s i s t h e c a s e i n t h e l o w e r l e f t o f F i g u r e 2 . 1 3 . T h e o p e r a t i o n a l i z i n g s o f t -
g o a l U s e u n c o m p r e s s e d f o r m a t m a k e s a n e g a t i v e c o n t r i b u t i o n t o w a r d s t h e N F R
s o f t g o a l S p a c e f o r a c c o u n t s . I n a d d i t i o n , U s e u n c o m p r e s s e d f o r m a t i s s a t i s c e d
( t h e l a b e l i s s h o w n a s \
p
" ) . W h e n t h e s a t i s c e d l a b e l a n d n e g a t i v e c o n t r i b u t i o n
a r e c o n s i d e r e d , t h e r e s u l t i s t h a t S p a c e f o r a c c o u n t s i s d e n i e d ( \ " )
-
7/27/2019 Non-functional requirements in software engineering
25/31
T H E N F R F R A M E W O R K I N A C T I O N 3 9
N o t e t h a t i n F i g u r e 2 . 1 2 , \
p
" i n d i c a t e d \ l e a f " o p e r a t i o n a l i z a t i o n s o r
c l a i m s w h i c h w e r e s e l e c t e d d i r e c t l y b y t h e d e v e l o p e r . N o w i n F i g u r e 2 . 1 3 ( a n d
t h e r e m a i n d e r o f t h i s b o o k ) , i t s m e a n i n g i s m a d e m o r e g e n e r a l . I t i n d i c a t e s
s o f t g o a l s w h i c h a r e d e t e r m i n e d t o t o b e s a t i s c e d t h i s i s d e t e r m i n e d b y t h e
d e v e l o p e r , o r b y t h e e v a l u a t i o n p r o c e d u r e . L i k e w i s e \ " r e p r e s e n t e d r e j e c t e d
o p e r a t i o n a l i z a t i o n s o r c l a i m s , b u t n o w m o r e g e n e r a l l y i n d i c a t e s d e n i e d s o f t g o a l s .
S u p p o s e a s o f t g o a l r e c e i v e s c o n t r i b u t i o n s f r o m m o r e t h a n o n e o s p r i n g .
T h e n t h e c o n t r i b u t i o n o f e a c h o s p r i n g t o w a r d t h e p a r e n t i s d e t e r m i n e d , u s i n g
t h e a b o v e a p p r o a c h . T h e i n d i v i d u a l r e s u l t s a r e t h e n c o m b i n e d .
F o r e x a m p l e , R e s p o n s e t i m e f o r a c c o u n t s h a s t h r e e o s p r i n g . U s e c o m -
p r e s s e d f o r m a t i s s a t i s c e d a n d m a k e s a p o s i t i v e c o n t r i b u t i o n , h e n c e i t s i n d i v i d -
u a l r e s u l t w o u l d b e t o s a t i s c e t h e p a r e n t . T h e s a m e i s t r u e f o r U s e i n d e x i n g I f
t h e s e t w o w e r e t h e o n l y o s p r i n g , t h e c o m b i n a t i o n o f t h e i r i n d i v i d u a l p o s i t i v e
r e s u l t s w o u l d l e a d t o s a t i s c i n g t h e p a r e n t . H o w e v e r , V a l i d a t e a c c e s s a g a i n s t
e l i g i b i l i t y r u l e s i s s a t i s c e d a n d m a k e s a s o m e w h a t n e g a t i v e c o n t r i b u t i o n t o r e -
s p o n s e t i m e .
T h e d e v e l o p e r c o m b i n e s t h e r e s u l t s | t w o s a t i s c e d a n d o n e d e n i e d
| a n d s e e s t h e r e i s a c o n i c t . W h a t v a l u e s h o u l d b e a s s i g n e d t o t h e p a r e n t
s o f t g o a l ? T h e d e v e l o p e r c o u l d a s s i g n v a r i o u s v a l u e s | s a t i s c e d , d e n i e d , o r
s o m e t h i n g i n b e t w e e n . H e r e , t h e d e v e l o p e r n o t e s t h a t c l a i m t h a t o p t i m i z e d
v a l i d a t i o n w i l l n o t h u r t r e s p o n s e t i m e m u c h , a n d l a b e l s R e s p o n s e t i m e f o r a c -
c o u n t s a s s a t i s c e d .
U s i n g t h e r u l e f o r s a t i s c e d s o f t g o a l s a n d p o s i t i v e c o n t r i b u t i o n l i n k s ,
! A c c u r a t e a c c o u n t s i s n o t e d a s b e i n g s a t i s c e d , a n d s o i s A c c u r a t e a c c o u n t s .
I t i s i n t e r e s t i n g t o n o t e t h a t t h e e v a l u a t i o n p r o c e d u r e w o r k s t h e s a m e
w a y , w h e t h e r t h e i n t e r d e p e n d e n c y l i n k w a s e x p l i c i t l y s t a t e d b y t h e d e v e l o p e r ,
o r i m p l i c i t l y d e t e c t e d .
L e t u s c o n t i n u e a t t h e b o t t o m r i g h t o f F i g u r e 2 . 1 3 . R e q u i r i n g a d d i t i o n a l
i d e n t i c a t i o n i s n o t c h o s e n f o r a u t h e n t i c a t i n g a c c e s s . T h i s h e l p s s a t i s c e t h e
r e q u i r e m e n t f o r u s e r - f r i e n d l y a c c e s s t o a c c o u n t s .
C o m p a r e S i g n a t u r e a n d i t s s i b l i n g s p a r t i c i p a t e i n a n O R c o n t r i b u t i o n t o
t h e i r p a r e n t , A u t h e n t i c a t e u s e r a c c e s s . T h i s m e a n s t h a t i f a n y o f t h e o s p r i n g
i s a c c e p t a b l e , t h e p a r e n t w i l l b e a c c e p t a b l e . C o m p a r e S i g n a t u r e w a s c h o s e n , s o
t h e o p e r a t i o n a l i z i n g s o f t g o a l A u t h e n t i c a t e u s e r a c c e s s c a n t h u s b e a u t o m a t i c a l l y
e v a l u a t e d t o b e s a t i s c e d ( \
p
" )
E a r l i e r , t h e s o f t g o a l s I d e n t i f y u s e r s a n d V a l i d a t e a c c e s s a g a i n s t e l i g i b i l i t y
r u l e s w e r e s e l e c t e d , h e n c e s a t i s c e d . S i n c e t h e y a n d A u t h e n t i c a t e u s e r a c c e s s
a r e a l l s a t i s c e d , t h e n a c h e c k m a r k c a n b e p r o p a g a t e d \ u p w a r d s " a l o n g t h e
A N D c o n t r i b u t i o n t o t h e A u t h o r i z e a c c e s s t o a c c o u n t i n f o r m a t i o n s o f t g o a l . T h e n
C o n d e n t i a l i t y o f a c c o u n t s i s s a t i s c e d .
L e t u s t a k e s t o c k o f h o w w e l l t h e t a r g e t s y s t e m w o u l d m e e t m a i n n o n -
f u n c t i o n a l r e q u i r e m e n t s . A c c u r a c y , c o n d e n t i a l i t y , r e s p o n s e t i m e a n d u s e r -
f r i e n d l y a c c e s s r e q u i r e m e n t s h a v e b e e n s a t i s c e d . T h e s p a c e r e q u i r e m e n t h a s
b e e n d e n i e d . F o r o t h e r r e q u i r e m e n t s , s u c h a s p e r f o r m a n c e , i n t e g r i t y a n d s e c u -
r i t y , w e h a v e n o t i n d i c a t e d i f t h e y a r e s a t i s c e d o r d e n i e d . T o o b t a i n a n s w e r s