Top Banner

of 31

Non-functional requirements in software engineering

Apr 14, 2018

Download

Documents

tranvanteo
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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