non-functional requirements in software engineering

Upload: tranvanteo

Post on 14-Apr-2018

239 views

Category:

Documents


0 download

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