Software Engineering II - CS605 Handouts

download Software Engineering II - CS605 Handouts

of 179

Transcript of Software Engineering II - CS605 Handouts

  • 8/12/2019 Software Engineering II - CS605 Handouts

    1/179

    CS605Software Engineering-II

  • 8/12/2019 Software Engineering II - CS605 Handouts

    2/179

    CS605 Software Engineering-II VU

    Table of ContentTable of Content...................................................................................................................2Lecture No. 1........................................................................................................................4

    Lecture No. 2......................................................................................................................12Lecture No. 3......................................................................................................................14Lecture No. 4......................................................................................................................1Lecture No. 5......................................................................................................................23Lecture No. 6......................................................................................................................2!Lecture No. !......................................................................................................................32Lecture No. ......................................................................................................................35Lecture No. ".....................................................................................................................3!Lecture No. 10....................................................................................................................41Lecture No. 11....................................................................................................................46Lecture No. 12....................................................................................................................65

    #ea$ure$% #etric$ an& In&icator$......................................................................................65#etric$ for $oftware 'ualit(...............................................................................................66Lecture No. 13....................................................................................................................6!Lecture No. 14....................................................................................................................!1)a$eline..............................................................................................................................!2#etric$ for $*all organi+ation$..........................................................................................!2Lecture No. 15....................................................................................................................!5Lecture No. 16....................................................................................................................!Lecture No. 1!....................................................................................................................0Lecture No. 1....................................................................................................................4Lecture No. 1"....................................................................................................................5

    Lecture No. 20....................................................................................................................Lecture No. 21...................................................................................................................."2Lecture No. 22...................................................................................................................."5Lecture No. 23....................................................................................................................""Lecture No. 24..................................................................................................................100Lecture No. 25..................................................................................................................102Lecture No. 26..................................................................................................................104Lecture No. 2!..................................................................................................................106Lecture No. 2..................................................................................................................10"Lecture No. 2"..................................................................................................................112Lecture No. 30..................................................................................................................114

    Lecture No. 31..................................................................................................................11!Lecture No. 32..................................................................................................................11Lecture No. 33..................................................................................................................11"Lecture No. 34..................................................................................................................122,elea$e Nu*bering..........................................................................................................122Internal ,elea$e Nu*bering.............................................................................................122Lecture No. 35..................................................................................................................125Lecture No. 36..................................................................................................................12Lecture No. 3!..................................................................................................................133Lecture No. 3..................................................................................................................135Lecture No. 3"..................................................................................................................13Lecture No. 40..................................................................................................................141

    Co( ,ig/t irtual nier$it( of ai$tan

  • 8/12/2019 Software Engineering II - CS605 Handouts

    3/179

    CS605 Software Engineering-II VU

    Lecture No. 41..................................................................................................................142Lecture No. 42..................................................................................................................143Lecture No. 43..................................................................................................................154Lecture No. 44..................................................................................................................16"Lecture No. 45..................................................................................................................1!3

    Co( ,ig/t irtual nier$it( of ai$tan 3

  • 8/12/2019 Software Engineering II - CS605 Handouts

    4/179

    CS605 Software Engineering-II VU

    Lecture No. 1

    Introduction to Software Engineering

    T/i$ cour$e i$ a continuation of t/e fir$t cour$e on Software Engineering. In or&er to $ett/e contet of our &i$cu$$ion% let u$ fir$t loo at $o*e of t/e &efinition$ of $oftwareengineering.

    Software Engineering i$ t/e $et of roce$$e$ an& tool$ to &eelo $oftware. SoftwareEngineering is the combination of all the tools, techniques, and processes that used in

    software production. T/erefore Software Engineering enco*a$$e$ all t/o$e t/ing$ t/atare u$e& in $oftware ro&uction lie

    rogra**ing Language

    rogra**ing Language 7e$ign Software 7e$ign Tec/ni'ue$

    Tool$

    Te$ting

    #aintenance

    7eelo*ent etc.

    So all t/o$e t/ing t/at are relate& to $oftware are al$o relate& to $oftware engineering.

    So*e of (ou *ig/t /ae t/oug/t t/at /ow rogra**ing language &e$ign coul& be relate&to $oftware engineering. If (ou loo *ore clo$el( at t/e $oftware engineering &efinition$&e$cribe& aboe t/en (ou will &efinitel( $ee t/at $oftware engineering i$ relate& to allt/o$e t/ing$ t/at are /elful in $oftware &eelo*ent. So i$ t/e ca$e wit/ rogra**inglanguage &e$ign. rogra**ing language &e$ign i$ one of t/e *a8or $ucce$$e$ in la$t fift((ear$. T/e &e$ign of 9&a language wa$ con$i&ere& a$ t/e con$i&erable effort in $oftwareengineering.

    T/e$e &a($ ob8ect-oriente& rogra**ing i$ wi&el( being u$e&. If rogra**ing language$will not $uort ob8ect-orientation t/en it will be er( &ifficult to i*le*ent ob8ect-oriente& &e$ign u$ing ob8ect-oriente& rincile$. 9ll t/e$e effort$ *a&e t/e ba$i$ of

    $oftware engineering.

    ell-Engineered Software

    Let:$ tal $o*et/ing about w/at i$ well-engineere& $oftware. ;ell-engineere& $oftware i$one t/at /a$ t/e following c/aracteri$tic$.

    It i$ reliable

    It /a$ goo& u$er-interface

    It /a$ accetable erfor*ance

    It i$ of goo& 'ualit( It i$ co$t-effectie

    Co( ,ig/t irtual nier$it( of ai$tan 4

  • 8/12/2019 Software Engineering II - CS605 Handouts

    5/179

    CS605 Software Engineering-II VU

    Eer( co*an( can buil& $oftware wit/ unli*ite& re$ource$ but well-engineere& $oftwarei$ one t/at confor*$ to all c/aracteri$tic$ li$te& aboe.

    Software /a$ er( clo$e relation$/i wit/ econo*ic$. ;/en eer we tal about

    engineering $($te*$ we alwa($ fir$t anal(+e w/et/er t/i$ i$ econo*icall( fea$ible or not.T/erefore (ou /ae to engineer all t/e actiitie$ of $oftware &eelo*ent w/ile eeingit$ econo*ical fea$ibilit( intact.

    T/e *a8or c/allenge$ for a $oftware engineer i$ t/at /e /a$ to buil& $oftware wit/inli*ite& ti*e an& bu&get in a co$t-effectie wa( an& wit/ goo& 'ualit(

    T/erefore well-engineere& $oftware /a$ t/e following c/aracteri$tic$.

    roi&e$ t/e re'uire& functionalit(

    #aintainable

    ,eliable

    Efficient

    $er-frien&l(

    Co$t-effectie

    )ut *o$t of t/e ti*e$ $oftware engineer$ en&$ u in conflict a*ong all t/e$e goal$. It i$al$o a big c/allenge for a $oftware engineer to re$ole all t/e$e conflict$.

    T!e "alancing #ct$

    Software Engineering i$ actuall( t/e balancing act.

  • 8/12/2019 Software Engineering II - CS605 Handouts

    6/179

    CS605 Software Engineering-II VU

    Software Engineer$ alwa($ confront wit/ t/e c/allenge to *ae a goo& balance of allt/e$e ting$ &een&ing on t/e re'uire*ent$ of t/e articular $oftware $($te* at /an&. >e$/oul& anal(+e /ow *uc/ weig/t $/oul& all t/e$e t/ing$ get $uc/ t/at it will /aeaccetable 'ualit(% accetable erfor*ance an& will /ae accetable u$er-interface.

    In $o*e $oftware t/e efficienc( i$ *ore i*ortant an& &e$irable. =or ea*le if we talabout a crui$e *i$$ile or a nuclear reactor controller t/at are &roe& b( t/e $oftware$($te*$ t/en erfor*ance an& reliabilit( i$ far *ore i*ortant t/an t/e co$t-effectiene$$an& u$er-frien&line$$. In t/e$e ca$e$ if (our $oftware &oe$ not react wit/in a certaina*ount of ti*e t/en it *a( re$ult in t/e &i$a$ter lie C/ernob(l acci&ent.

    T/erefore $oftware &eelo*ent i$ a roce$$ of balancing a*ong &ifferent c/aracteri$tic$of $oftware &e$cribe& in t/e reiou$ $ection. 9n& it i$ an art to co*e u wit/ $uc/ a goo&

    balance an& t/at art can be learne& fro* eerience.

    Law of di'ini%!ing return%In or&er to un&er$tan& t/i$ concet let$ tae a loo at an ea*le. #o$t of (ou /aenotice& t/at if (ou &i$$ole $ugar in a gla$$ of water t/en t/e $weetne$$ of water willincrea$e gra&uall(. )ut at a certain leel of $aturation no *ore $ugar will &i$$ole& intowater. T/erefore at t/at oint of $aturation t/e $weetne$$ of water will not increa$e een if(ou a&& *ore $ugar into it.

    T/e law of &i*ini$/ing act &e$cribe$ t/e $a*e /eno*enon. Si*ilar i$ t/e ca$e wit/$oftware engineering. ;/eneer (ou erfor* an( ta$ lie i*roing t/e efficienc( oft/e $($te*% tr( to i*roe it$ 'ualit( or u$er frien&line$$ t/en all t/e$e t/ing$ inole$ an

    ele*ent of co$t. If t/e 'ualit( of (our $($te* i$ not accetable t/en wit/ t/e ine$t*ent oflittle *one( it coul& be i*roe& to a /ig/er &egree. )ut after reac/ing at a certain leelof 'ualit( t/e return on ine$t*ent on t/e $($te*:$ 'ualit( will beco*e re&uce&. #eaningt/at t/e return on ine$t*ent on 'ualit( of $oftware will be le$$ t/an t/e effort or *one(we ine$t. T/erefore% in *o$t of t/e ca$e$% after reac/ing at a rea$onable leel of 'ualit(we &o not tr( to i*roe t/e 'ualit( of $oftware an( furt/er. T/i$ /eno*enon i$ $/ownin t/e figure below.

    benefit

    cost

    benefit

    cost

    Software "ac(ground

    Co( ,ig/t irtual nier$it( of ai$tan 6

  • 8/12/2019 Software Engineering II - CS605 Handouts

    7/179

    CS605 Software Engineering-II VU

    Caer ?one$ a renounce& ractitioner an& re$earc/er in t/e file& of Software Engineering%/a& *a&e i**en$e re$earc/ in $oftware tea* ro&uctiit(% $oftware 'ualit(% $oftwareco$t factor$ an& ot/er fiel&$ relate to $oftware engineering. >e *a&e a co*an( na*e&Software ro&uctiit( ,e$earc/ in w/ic/ t/e( anal(+e& *an( ro8ect$ an& ubli$/e& t/e

    re$ult$ in t/e for* of boo$. Let:$ loo at t/e $u**ar( of t/e$e re$ult$.

    >e &ii&e& $oftware relate& actiitie$ into about twent(-fie &ifferent categorie$ li$te& int/e table below. T/e( /ae anal(+e& aroun& 10000 $oftware ro8ect$ to co*e u wit/$uc/ a categori+ation. )ut /ere to cut &own t/e &i$cu$$ion we will onl( &e$cribe nine oft/e* t/at are li$te& below.

    ro8ect #anage*ent

    ,e'uire*ent Engineering

    7e$ign

    Co&ing Te$ting

    Software @ualit( 9$$urance

    Software Configuration #anage*ent

    Software Integration an&

    ,e$t of t/e actiitie$

    Ane t/ing to note /ere i$ t/at (ou cannot $a( t/at an(one of t/e$e actiitie$ i$ &o*inanta*ong ot/er$ in ter*$ of effort utte& into it. >ere t/e oint t/at we want to e*/a$i+e i$t/at% t/oug/ co&ing i$ er( i*ortant but it i$ not *ore t/an 13-14B of t/e w/ole effort of

    $oftware &eelo*ent.

    =re& )roo i$ a renowne& $oftware engineer /e wrote a great boo relate& to $oftwareengineering na*e& D9 #(t/ical #an #ont/. >e co*bine& all /i$ article$ in t/i$ boo.>ere we will &i$cu$$ one of /i$ article$ na*e& DNo Siler )ullet w/ic/ /e inclu&e& int/e boo.

    #n e)cer*t fro'DNo Siler )ullet F =re& )roo$Of all the monsters that fill the nightmares of our folklore, none terrify more than

    werewolves, because they transform unexpectedly from the familiar into horrors.

    For these we seek bullets of silver that can magically lay them to rest. he

    familiar software pro!ect has something of this character "at least as seen by thenon#technical manager$, usually innocent and straight forward, but capable of

    becoming a monster of missed schedules, blown budgets, and flawed pro!ects. So

    we hear desperate cries for a silver bullet, something to make software costs drop

    as rapidly as computer hardware costs do. Scepticism is not pessimism, however.

    %lthough we see no startling breakthroughs, and indeed, such to be inconsistent

    with the nature of the software, many encouraging innovations are under way. %

    disciplined, consistent effort to develop, propagate and exploit them should

    indeed yield an order of magnitude improvement. here is no royal road, but

    there is a road. he first step towards the management of disease was

    replacement of demon theories and humours theories by the germ theory. he

    very first step, the beginning of hope, in itself dashed all hopes of magicalsolutions. &t told workers that progress would be made stepwise, at great effort,

    Co( ,ig/t irtual nier$it( of ai$tan 7

  • 8/12/2019 Software Engineering II - CS605 Handouts

    8/179

    CS605 Software Engineering-II VU

    and that a persistent, unremitting care would have to be paid to a discipline of

    cleanliness. So it is with software engineering today.

    So% accor&ing to =re& )roo% in t/e e(e of an un$o/i$ticate& *anager $oftware i$ lie agiant. So*eti*e$ it reeal$ a$ an un$c/e&ule& &ela( an& $o*eti*e$ it $/ow$ u in t/e

    for* of co$t oerrun. To ill t/i$ giant t/e *anager$ loo for *agical $olution$. )utunfortunatel( *agic i$ not a realit(. ;e &o not /ae an( *agic to &efeat t/i$ giant. T/erei$ onl( one $olution an& t/at i$ to follow a &i$ciline& aroac/ to buil& $oftware. ;e can&efeat t/e giant na*e& $oftware b( u$ing &i$ciline& an& engineere& aroac/ towar&$$oftware &eelo*ent.

    T/erefore% Software Engineering is nothing but a disciplined and systematic approach tosoftware development.

    Now we will loo at $o*e of t/e actiitie$ inole& in t/e cour$e of $oftware

    &eelo*ent. T/e actiitie$ inole& in $oftware &eelo*ent can broa&l( be &ii&e&into two *a8or categorie$ fir$t i$ con$truction an& $econ& i$ *anage*ent.

    Software +e,elo*'ent

    T/e con$truction actiitie$ are t/o$e t/at are &irectl( relate& to t/e con$truction or&eelo*ent of t/e $oftware. ;/ile t/e *anage*ent actiitie$ are t/o$e t/at co*le*entt/e roce$$ of con$truction in or&er to erfor* con$truction actiitie$ $*oot/l( an&effectiel(. 9 greater &etail of t/e actiitie$ inole& in t/e con$truction an& *anage*entcategorie$ i$ re$ente& below.

    Con%truction

    T/e con$truction actiitie$ are t/o$e t/at &irectl( relate& to t/e &eelo*ent of $oftware%e.g. gat/ering t/e re'uire*ent$ of t/e $oftware% &eelo &e$ign% i*le*ent an& te$t t/e$oftware etc. So*e of t/e *a8or con$truction actiitie$ are li$te& below.

    ,e'uire*ent Gat/ering

    7e$ign 7eelo*ent

    Co&ing

    Te$ting

    anage'ent

    #anage*ent actiitie$ are in& of u*brella actiitie$ t/at are u$e& to $*oot/l( an&$ucce$$full( erfor* t/e con$truction actiitie$ e.g. ro8ect lanning% $oftware 'ualit(a$$urance etc. So*e of t/e *a8or *anage*ent actiitie$ are li$te& below.

    ro8ect lanning an& #anage*ent

    Configuration #anage*ent

    Software @ualit( 9$$urance

    In$tallation an& Training

    Co( ,ig/t irtual nier$it( of ai$tan 8

  • 8/12/2019 Software Engineering II - CS605 Handouts

    9/179

    CS605 Software Engineering-II VU

    =igure17eelo*ent 9ctiitie$

    9$ we /ae $ai& earlier t/at *anage*ent actiitie$ are in& of u*brella actiitie$ t/at$urroun& t/e con$truction actiitie$ $o t/at t/e con$truction roce$$ *a( rocee&$*oot/l(. T/i$ fact i$ e*at/i+e& in t/e =igure1. T/e figure $/ow$ t/at con$truction i$$urroun&e& b( *anage*ent actiitie$. T/at i$% certain roce$$e$ an& rule$ goern allcon$truction actiitie$. T/e$e roce$$e$ an& rule$ are relate& to t/e *anage*ent of t/econ$truction actiitie$ an& not t/e con$truction it$elf.

    # Software Engineering ra'ewor(

    T/e $oftware &eelo*ent organi+ation *u$t /ae $ecial focu$ on 'ualit( w/ileerfor*ing t/e $oftware engineering actiitie$. )a$e& on t/i$ co**it*ent to 'ualit( b(t/e organi+ation% a $oftware engineering fra*ewor i$ roo$e& t/at i$ $/own in =igure 2.T/e *a8or co*onent$ of t/i$ fra*ewor are &e$cribe& below.

    @ualit( =ocu$9$ we /ae $ai& earlier% t/e gien fra*ewor i$ ba$e& on t/e organi+ationalco**it*ent to 'ualit(. T/e 'ualit( focu$ &e*an&$ t/at roce$$e$ be &efine& for rationalan& ti*el( &eelo*ent of $oftware. 9n& 'ualit( $/oul& be e*/a$i+e& w/ile eecutingt/e$e roce$$e$.

    roce$$e$: T/e roce$$e$ are $et of e( roce$$ area$ H9$J for effectiel( *anage an&&elier 'ualit( $oftware in a co$t effectie *anner. T/e roce$$e$ &efine t/e ta$$ to be

    erfor*e& an& t/e or&er in w/ic/ t/e( are to be erfor*e&. Eer( ta$ /a$ $o*e&elierable$ an& eer( &elierable $/oul& be &eliere& at a articular *ile$tone.

    #et/o&$#et/o&$ roi&e t/e tec/nical D/ow-to:$ to carr(out t/e$e ta$$. T/ere coul& be*ore t/an one tec/ni'ue to erfor* a ta$ an& &ifferent tec/ni'ue$ coul& be u$e& in&ifferent $ituation$.

    Tool$ Tool$ roi&e auto*ate& or $e*i-auto*ate& $uort for $oftware roce$$e$%

    *et/o&$% an& 'ualit( control.

    Co( ,ig/t irtual nier$it( of ai$tan 9

    Management

    Construction

    Project Planning and ManagementConfiguration ManagementQuality Assurance

    Installation and Training

    RequirementsDesignCodingTestingMaintenance

  • 8/12/2019 Software Engineering II - CS605 Handouts

    10/179

    CS605 Software Engineering-II VU

    =igure 2

    Software Engineering =ra*ewor

    Software +e,elo*'ent Loo*

    Let:$ now loo at $oftware engineering actiitie$ fro* a &ifferent er$ectie. Software

    &eelo*ent actiitie$ coul& be erfor*e& in a c(clic an& t/at c(cle i$ calle& $oftware&eelo*ent loo w/ic/ i$ $/own in =igure3. T/e *a8or $tage$ of $oftware &eelo*entloo are &e$cribe& below.

    roble* 7efinition In t/i$ $tage we &eter*ine w/at i$ t/e roble* again$t w/ic/ we aregoing to &eelo $oftware. >ere we tr( to co*letel( co*re/en& t/e i$$ue$ an&re'uire*ent$ of t/e $oftware $($te* to buil&.

    Tec/nical 7eelo*ent: In t/i$ $tage we tr( to fin& t/e $olution of t/e roble* on tec/nicalgroun&$ an& ba$e our actual i*le*entation on it. T/i$ i$ t/e $tage w/ere a new $($te* i$actuall( &eeloe& t/at $ole$ t/e roble* &efine& in t/e fir$t $tage.

    Solution Integration: If t/ere are alrea&( &eeloe& $($te*H$J aailable wit/ w/ic/ our new$($te* /a$ to interact t/en t/o$e $($te*$ $/oul& al$o be t/e art of our new $($te*. 9llt/o$e ei$ting $($te*H$J integrate wit/ our new $($te* at t/i$ $tage.

    Statu$ @uo:9fter going t/roug/ t/e reiou$ t/ree $tage$ $ucce$$full(% w/en we actuall(&elo(e& t/e new $($te* at t/e u$er $ite t/en t/at $ituation i$ calle& $tatu$ 'uo. )ut oncewe get new re'uire*ent$ t/en we nee& to c/ange t/e $tatu$ 'uo.

    9fter getting new re'uire*ent$ we erfor* all t/e $te$ in t/e $oftware &eelo*ent looagain. T/e $oftware &eeloe& t/roug/ t/i$ roce$$ /a$ t/e roert( t/at t/i$ coul& be

    eole& an& integrate& ea$il( wit/ t/e ei$ting $($te*$.

    Co( ,ig/t irtual nier$it( of ai$tan 10

    Method

    Process

    Quality Focus

    Task et

    TOOLS

  • 8/12/2019 Software Engineering II - CS605 Handouts

    11/179

    CS605 Software Engineering-II VU

    =igure3Software 7eelo*ent Loo

    /,er,iew of t!e cour%e content%

    In t/e fir$t cour$e we $tu&ie& t/e tec/nical roce$$e$ of $oftware &eelo*ent to buil&in&u$trial $trengt/ $oftware. T/at inclu&e$ re'uire*ent gat/ering an& anal($i$% $oftware&e$ign% co&ing% te$ting% an& &ebugging. In t/i$ cour$e our focu$ will be on t/e $econ& artof Software Engineering% t/at i$% t/e actiitie$ relate& to *anaging t/e tec/nical&eelo*ent. T/i$ cour$e will t/erefore inclu&e t/e following toic$

    1. Software &eelo*ent roce$$2. Software roce$$ *o&el$

    3. ro8ect #anage*ent Concet$4. Software ro8ect lanning5. ,i$ 9nal($i$ an& #anage*ent6. ro8ect Sc/e&ule$ an& Tracing!. Software @ualit( 9$$urance. Software Configuration #anage*ent". Software roce$$ an& ro8ect #etric$10. ,e'uire*ent Engineering roce$$e$11. erification an& ali&ation12. roce$$ I*roe*ent13. Legac( S($te*$

    14. Software C/ange15. Software ,e-engineering

    Co( ,ig/t irtual nier$it( of ai$tan 11

    tatus Quo

    Pro!lemDefinition

    Technical

    De"elo#ment

    olutionIntegration

  • 8/12/2019 Software Engineering II - CS605 Handouts

    12/179

    CS605 Software Engineering-II VU

    Lecture No.

    Software roce%%

    9 $oftware roce$$ i$ a roa& *a t/at /el$ (ou create a ti*el(% /ig/ 'ualit( re$ult. It i$t/e wa( we ro&uce $oftware an& it roi&e$ $tabilit( an& control. Eac/ roce$$ &efine$certain &elierable$ nown a$ t/e wor ro&uct$. T/e$e inclu&e rogra*$% &ocu*ent$%an& &ata ro&uce& a$ a con$e'uence of t/e $oftware engineering actiitie$.

    roce%% aturit2 and C

    T/e Software Engineering In$titute HSEIJ /a$ &eeloe& a fra*ewor to 8u&ge t/e roce$$*aturit( leel of an organi+ation. T/i$ fra*ewor i$ nown a$ t/e Caabilit( #aturit(#o&el HC##J. T/i$ fra*ewor /a$ 5 &ifferent leel$ an& an organi+ation i$ lace& intoone of t/e$e 5 leel$. T/e following figure $/ow$ t/e C## fra*ewor.

    T/e$e leel$ are briefl( &e$cribe& a$ follow$

    1. Leel 1 F Initial T/e $oftware roce$$ i$ c/aracteri+e& a$ a& /oc an& occa$ionall(een c/aotic. =ew roce$$e$ are &efine&% an& $ucce$$ &een&$ uon in&ii&ualeffort. )( &efault eer( organi+ation woul& be at leel 1.

    2. Leel 2 F ,eeatable )a$ic ro8ect *anage*ent roce$$e$ are e$tabli$/e& totrac co$t% $c/e&ule% an& functionalit(. T/e nece$$ar( ro8ect &i$ciline i$ in laceto reeat earlier $ucce$$e$ on ro8ect$ wit/ $i*ilar alication$.

    3. Leel 3 F 7efine& T/e $oftware roce$$ for bot/ *anage*ent an& engineering

    actiitie$ i$ &ocu*ente&% $tan&ar&i+e&% an& integrate& into an organi+ational$oftware roce$$. 9ll ro8ect$ u$e a &ocu*ente& an& aroe& er$ion of t/eorgani+ation:$ roce$$ for &eeloing an& $uorting $oftware.

    4. Leel 4 F #anage& 7etaile& *ea$ure$ for $oftware roce$$ an& ro&uct 'ualit(are controlle&. )ot/ t/e $oftware roce$$ an& ro&uct$ are 'uantitatiel(un&er$too& an& controlle& u$ing &etaile& *ea$ure$.

    5. Leel 5 F Ati*i+ing Continuou$ roce$$ i*roe*ent i$ enable& b( 'ualitatiefee&bac fro* t/e roce$$ an& fro* te$ting innoatie i&ea$ an& tec/nologie$.

    SEI /a$ a$$ociate& e( roce$$ area$ wit/ eac/ *aturit( leel. T/e 9$ &e$cribe t/o$e$oftware engineering function$ t/at *u$t be re$ent to $ati$f( goo& ractice at a articular

    leel. Eac/ 9 i$ &e$cribe& b( i&entif(ing t/e following c/aracteri$tic$

    Co( ,ig/t irtual nier$it( of ai$tan 1

  • 8/12/2019 Software Engineering II - CS605 Handouts

    13/179

    CS605 Software Engineering-II VU

    1. Goal$ t/e oerall ob8ectie$ t/at t/e 9 *u$t ac/iee.2. Co**it*ent$ re'uire*ent$ i*o$e& on t/e organi+ation t/at *u$t be *et to

    ac/iee t/e goal$ or roi&e roof of intent to co*l( wit/ t/e goal$.3. 9bilitie$ t/o$e t/ing$ t/at *u$t be in lace F organi+ationall( an& tec/nicall( F to

    enable t/e organi+ation to *eet t/e co**it*ent$.

    4. 9ctiitie$ t/e $ecific ta$$ re'uire& to ac/iee t/e 9 function5. #et/o&$ for *onitoring i*le*entation t/e *anner in w/ic/ t/e actiitie$ are

    *onitore& a$ t/e( are ut into lace.6. #et/o&$ for erif(ing i*le*entation t/e *anner in w/ic/ roer ractice for

    t/e 9 can be erifie&.

    Eac/ of t/e 9 i$ &efine& b( a $et of ractice$ t/at contribute to $ati$f(ing it$ goal$. T/ee( ractice$ are olicie$% roce&ure$% an& actiitie$ t/at *u$t occur before a e( roce$$area /a$ been full( in$titute&.

    T/e following table $u**ari+e$ t/e 9$ &efine& for eac/ leel.

    Leel 9$1 No 9 i$ &efine& a$ organi+ation$ at t/i$ leel follow a&-/oc

    roce$$e$2 K Software Configuration #anage*ent

    K Software @ualit( 9$$uranceK Software $ubcontract #anage*entK Software ro8ect tracing an& oer$ig/tK Software ro8ect lanningK ,e'uire*ent *anage*ent

    3 K eer reiew$K Inter-grou coor&inationK Software ro&uct EngineeringK Integrate& $oftware *anage*entK Training rogra*K Argani+ation roce$$ *anage*entK Argani+ation roce$$ focu$

    4 K Software 'ualit( *anage*entK @uantitatie roce$$ *anage*ent

    5 K roce$$ c/ange *anage*entK Tec/nolog( c/ange *anage*ent

    K 7efect reention

    Co( ,ig/t irtual nier$it( of ai$tan 13

  • 8/12/2019 Software Engineering II - CS605 Handouts

    14/179

    CS605 Software Engineering-II VU

    Lecture No. 3

    Software Lifec2cle odel%

    ,ecalling fro* our fir$t cour$e% a $oftware $($te* a$$e$ t/roug/ t/e following /a$e$

    1. i$ion F focu$ on why2. 7efinition F focu$ on what3. 7eelo*ent F focu$ on how4. #aintenance F focu$ on change

    7uring t/e$e /a$e$% a nu*ber of actiitie$ are erfor*e&. 9 lifec(cle *o&el i$ a$erie$ of $te$ t/roug/ w/ic/ t/e ro&uct rogre$$e$. T/e$e inclu&e re'uire*ent$

    /a$e% $ecification /a$e% &e$ign /a$e% i*le*entation /a$e% integration /a$e%

    *aintenance /a$e% an& retire*ent. Software 7eelo*ent Lifec(cle #o&el$ &eictt/e wa( (ou organi+e (our actiitie$.

    T/ere are a nu*ber of Software 7eelo*ent Lifec(cle #o&el$% eac/ /aing it$$trengt/$ an& weane$$e$ an& $uitable in &ifferent $ituation$ an& ro8ect t(e$. T/eli$t of *o&el$ inclu&e$ t/e following

    $ )uil&-an&-fi *o&el$ ;aterfall *o&el$ ,ai& rotot(ing *o&el$ Incre*ental *o&el$ Etre*e rogra**ing$ S(nc/roni+e-an&-$tabili+e *o&el$ Siral *o&el$ Ab8ect-oriente& life-c(cle *o&el$

    In t/e following $ection$ we $/all $tu&( t/e$e *o&el$ in &etail an& &i$cu$$ t/eir$trengt/$ an& weane$$e$.

    "uild and i) odel

    T/i$ *o&el i$ &eicte& in t/e following &iagra*

    Co( ,ig/t irtual nier$it( of ai$tan 14

  • 8/12/2019 Software Engineering II - CS605 Handouts

    15/179

    CS605 Software Engineering-II VU

    It i$ unfortunate t/at *an( ro&uct$ are &eeloe& u$ing w/at i$ nown a$ t/e buil&-an&-fi *o&el. In t/i$ *o&el t/e ro&uct i$ con$tructe& wit/out $ecification or an( atte*t at&e$ign. T/e &eeloer$ $i*l( buil& a ro&uct t/at i$ rewore& a$ *an( ti*e$ a$nece$$ar( to $ati$f( t/e client. T/i$ *o&el *a( wor for $*all ro8ect$ but i$ totall(

    un$ati$factor( for ro&uct$ of an( rea$onable $i+e. T/e co$t of buil&-an& fi i$ actuall( fargreater t/an t/e co$t of roerl( $ecifie& an& carefull( &e$igne& ro&uct.#aintenance of t/e ro&uct can be etre*el( in t/e ab$ence of an( &ocu*entation.

    aterfall odel

    T/e fir$t ubli$/e& *o&el of t/e $oftware &eelo*ent roce$$ wa$ &erie& fro* ot/erengineering roce$$e$. )ecau$e of t/e ca$ca&e fro* one /a$e to anot/er% t/i$ *o&el i$nown a$ t/e waterfall *o&el. T/i$ *o&el i$ al$o nown a$ linear $e'uential *o&el. T/i$*o&el i$ &eicte& in t/e following &iagra*.

    T/e rincial $tage$ of t/e *o&el *a &irectl( onto fun&a*ental &eelo*ent actiitie$.

    It $ugge$t$ a $($te*atic% $e'uential aroac/ to $oftware &eelo*ent t/at begin$ at t/e$($te* leel an& rogre$$e$ t/roug/ t/e anal($i$% &e$ign% co&ing% te$ting% an&*aintenance.

    In t/e literature% eole /ae i&entifie& fro* 5 to $tage$ of $oftware &eelo*ent.

    T/e fie $tage$ aboe are a$ follow$1. ,e'uire*ent 9nal($i$ an& 7efinition ;/at - T/e $($te*$ $erice$% con$traint$

    an& goal$ are e$tabli$/e& b( con$ultation wit/ $($te* u$er$. T/e( are t/en &efine&in &etail an& $ere a$ a $($te* $ecification.

    2. S($te* an& Software 7e$ign >ow F T/e $($te* &e$ign roce$$ artition$ t/ere'uire*ent$ to eit/er /ar&ware of $oftware $($te*$. It e$tabli$/e$ an& oerall$($te* arc/itecture. Software &e$ign inole$ fun&a*ental $($te* ab$traction$

    an& t/eir relation$/i$.

    Co( ,ig/t irtual nier$it( of ai$tan 15

  • 8/12/2019 Software Engineering II - CS605 Handouts

    16/179

    CS605 Software Engineering-II VU

    3. I*le*entation an& nit Te$ting - >ow F 7uring t/i$ $tage t/e $oftware &e$igni$ reali+e& a$ a $et of rogra*$ or rogra* unit$. nit te$ting inole$ erif(ingt/at eac/ unit *eet$ it$ $ecification$.

    4. Integration an& $($te* te$ting T/e in&ii&ual rogra* unit or rogra*$ areintegrate& an& te$te& a$ a co*lete $($te* to en$ure t/at t/e $oftware

    re'uire*ent$ /ae been *et. 9fter te$ting% t/e $oftware $($te* i$ &eliere& to t/ecu$to*er.

    5. Aeration an& #aintenance Nor*all( t/i$ i$ t/e longe$t /a$e of t/e $oftware lifec(cle. T/e $($te* i$ in$talle& an& ut into ractical u$e. #aintenance inole$correcting error$ w/ic/ were not &i$coere& in earlier $tage$ of t/e life-c(cle%i*roing t/e i*le*entation of $($te* unit$ an& en/ancing t/e $($te*:$$erice$ a$ new re'uire*ent$ are &i$coere&.

    In rincile% t/e re$ult of eac/ /a$e i$ one or *ore &ocu*ent$ w/ic/ are aroe&. No/a$e i$ co*lete until t/e &ocu*entation for t/at /a$e /a$ been co*lete& an& ro&uct$of t/at /a$e /ae been aroe&. T/e following /a$e $/oul& not $tart until t/e reiou$

    /a$e /a$ fini$/e&.

    ,eal ro8ect$ rarel( follow t/e $e'uential flow t/at t/e *o&el roo$e$. In general t/e$e/a$e$ oerla an& fee& infor*ation to eac/ ot/er. >ence t/ere $/oul& be an ele*ent ofiteration an& fee&bac. 9 *i$tae caug/t an( $tage $/oul& be referre& bac to t/e $ourcean& all t/e $ub$e'uent $tage$ nee& to be rei$ite& an& corre$on&ing &ocu*ent$ $/oul& beu&ate& accor&ingl(. T/i$ fee&bac at/ i$ $/own in t/e following &iagra*.

    )ecau$e of t/e co$t$ of ro&ucing an& aroing &ocu*ent$% iteration$ are co$tl( an&re'uire $ignificant rewor.

    T/e ;aterfall #o&el i$ a &ocu*entation-&rien *o&el. It t/erefore generate$ co*letean& co*re/en$ie &ocu*entation an& /ence *ae$ t/e *aintenance ta$ *uc/ ea$ier. It/oweer $uffer$ fro* t/e fact t/at t/e client fee&bac i$ receie& w/en t/e ro&uct i$finall( &eliere& an& /ence an( error$ in t/e re'uire*ent $ecification are not &i$coere&until t/e ro&uct i$ $ent to t/e client after co*letion. T/i$ t/erefore /a$ *a8or ti*e an&co$t relate& con$e'uence$.

    Co( ,ig/t irtual nier$it( of ai$tan 16

  • 8/12/2019 Software Engineering II - CS605 Handouts

    17/179

    CS605 Software Engineering-II VU

    4a*id rotot2*ing odel

    T/e ,ai& rotot(ing #o&el i$ u$e& to oerco*e i$$ue$ relate& to un&er$tan&ing an&caturing of u$er re'uire*ent$. In t/i$ *o&el a *oc-u alication i$ create& Drai&l(to $olicit fee&bac fro* t/e u$er. Ance t/e u$er re'uire*ent$ are cature& in t/e

    rotot(e to t/e $ati$faction of t/e u$er% a roer re'uire*ent $ecification &ocu*ent i$&eeloe& an& t/e ro&uct i$ &eeloe& fro* $cratc/.

    9n e$$ential a$ect of rai& rotot(e i$ e*be&&e& in t/e wor& Drai&. T/e &eeloer$/oul& en&eaour to con$truct t/e rotot(e a$ 'uicl( a$ o$$ible to $ee&u t/e$oftware &eelo*ent roce$$. It *u$t alwa($ be et in *in& t/at t/e $ole uro$e of t/erai& rotot(e i$ to cature t/e client:$ nee&$ once t/i$ /a$ been &eter*ine&% t/e rai&

    rotot(e i$ effectiel( &i$car&e&. =or t/i$ rea$on% t/e internal $tructure of t/e rai&rotot(e i$ not releant.

    Integrating t!e aterfall and 4a*id rotot2*ing odel%7e$ite t/e *an( $ucce$$e$ of t/e waterfall *o&el% it /a$ a *a8or &rawbac in t/at t/e&eliere& ro&uct *a( not fulfil t/e client:$ nee&$. Ane $olution to t/i$ i$ to co*binerai& rotot(ing wit/ t/e waterfall *o&el. In t/i$ aroac/% rai& rotot(ing can beu$e& a$ a re'uire*ent gat/ering tec/ni'ue w/ic/ woul& t/en be followe& b( t/e actiitie$

    erfor*e& in t/e waterfall *o&el.

    Co( ,ig/t irtual nier$it( of ai$tan 17

  • 8/12/2019 Software Engineering II - CS605 Handouts

    18/179

    CS605 Software Engineering-II VU

    Lecture No.

    Incre'ental odel%

    9$ &i$cu$$e& aboe% t/e *a8or &rawbac$ of t/e waterfall *o&el are &ue to t/e fact t/att/e entire ro&uct i$ &eeloe& an& &eliere& to t/e client in one acage. T/i$ re$ult$ in&ela(e& fee&bac fro* t/e client. )ecau$e of t/e long ela$e& ti*e% a /uge newine$t*ent of ti*e an& *one( *a( be re'uire& to fi an( error$ of o*i$$ion orco**i$$ion or to acco**o&ate an( new re'uire*ent$ croing u &uring t/i$ erio&.T/i$ *a( ren&er t/e ro&uct a$ unu$able. Incre*ental *o&el *a( be u$e& to oerco*et/e$e i$$ue$.

    In t/e incre*ental *o&el$% a$ oo$e& to t/e waterfall *o&el% t/e ro&uct i$ artitione&into $*aller iece$ w/ic/ are t/en built an& &eliere& to t/e client in incre*ent$ at regular

    interal$. Since eac/ iece i$ *uc/ $*aller t/an t/e w/ole% it can be built an& $ent to t/eclient 'uicl(. T/i$ re$ult$ in 'uic fee&bac fro* t/e client an& an( re'uire*ent relate&error$ or c/ange$ can be incororate& at a *uc/ le$$er co$t. It i$ t/erefore le$$ trau*atica$ co*are& to t/e waterfall *o&el. It al$o re'uire& $*aller caital outla( an& (iel& a

    rai& return on ine$t*ent. >oweer% t/i$ *o&el nee&$ an& oen arc/itecture to allowintegration of $ub$e'uent buil&$ to (iel& t/e bigger ro&uct. 9 nu*ber of ariation$ areu$e& in ob8ect-oriente& life c(cle *o&el$.

    T/ere are two fun&a*ental aroac/e$ to t/e incre*ental &eelo*ent. In t/e fir$t ca$e%t/e re'uire*ent$% $ecification$% an& arc/itectural &e$ign for t/e w/ole ro&uct areco*lete& before i*le*entation of t/e ariou$ buil&$ co**ence$.

    Co( ,ig/t irtual nier$it( of ai$tan 18

  • 8/12/2019 Software Engineering II - CS605 Handouts

    19/179

  • 8/12/2019 Software Engineering II - CS605 Handouts

    20/179

    CS605 Software Engineering-II VU

    S*iral odelT/i$ *o&el wa$ &eeloe& b( )arr( )oe/*. T/e *ain i&ea of t/i$ *o&el i$ to aert ri$a$ t/ere i$ alwa($ an ele*ent of ri$ in &eelo*ent of $oftware. =or ea*le% e(

    er$onnel *a( re$ign at a critical 8uncture% t/e *anufacturer of t/e $oftware &eelo*ent*a( go banrut% etc.

    In it$ $i*lifie& for*% t/e Siral #o&el i$ ;aterfall *o&el lu$ ri$ anal($i$. In t/i$ ca$eeac/ $tage i$ rece&e& b( i&entification of alternatie$ an& ri$ anal($i$ an& i$ t/enfollowe& b( ealuation an& lanning for t/e net /a$e. If ri$$ cannot be re$ole&%

    ro8ect i$ i**e&iatel( ter*inate&. T/i$ i$ &eicte& in t/e following &iagra*.

    9$ can be $een% a Siral #o&el /a$ two &i*en$ion$. ,a&ial &i*en$ion rere$ent$ t/ecu*ulatie co$t to &ate an& t/e angular &i*en$ion rere$ent$ t/e rogre$$ t/roug/ t/e$iral. Eac/ /a$e begin$ b( &eter*ining ob8ectie$ of t/at /a$e an& at eac/ /a$e a new

    roce$$ *o&el *a( be followe&.

    Co( ,ig/t irtual nier$it( of ai$tan 0

    ,i$ 9nal($i$

    erif(

    Ra#id Prototy#e

    #ecification

    Design

    Im#lementation

  • 8/12/2019 Software Engineering II - CS605 Handouts

    21/179

    CS605 Software Engineering-II VU

    9 full er$ion of t/e Siral #o&el i$ $/own below

    T/e *ain $trengt/ of t/e Siral #o&el co*e$ fro* t/e fact t/at it i$ er( $en$itie to t/eri$. )ecau$e of t/e $iral nature of &eelo*ent it i$ ea$( to 8u&ge /ow *uc/ to te$t an&t/ere i$ no &i$tinction between &eelo*ent an& *aintenance. It /oweer can onl( beu$e& for large-$cale $oftware &eelo*ent an& t/at too for internal Hin-/ou$eJ $oftware

    onl(.

    Co( ,ig/t irtual nier$it( of ai$tan 1

  • 8/12/2019 Software Engineering II - CS605 Handouts

    22/179

    CS605 Software Engineering-II VU

    Co( ,ig/t irtual nier$it( of ai$tan

    Plan %e&tPhase

    Determineo!jecti"es'alternati"es'constraints

    Identify andresol"e risks

    De"elo#and "erifyne&t(le"el#roduct

  • 8/12/2019 Software Engineering II - CS605 Handouts

    23/179

    CS605 Software Engineering-II VU

    Lecture No. 5

    /b9ect-/riented Lifec2cle odel%

    Ab8ect-oriente& lifec(cle *o&el$ areciate t/e nee& for iteration wit/in an& between/a$e$. T/ere are a nu*ber of t/e$e *o&el$. 9ll of t/e$e *o&el$ incororate $o*e for*of iteration% aralleli$*% an& incre*ental &eelo*ent.

    e:tre'e rogra''ing

    It i$ a $o*ew/at controer$ial new aroac/. In t/i$ aroac/ u$er re'uire*ent$ arecature& t/roug/ $torie$ w/ic/ are t/e $cenario$ re$enting t/e feature$ nee&e& b( t/eclient E$ti*ate for &uration an& co$t of eac/ $tor( i$ t/en carrie& out. Storie$ for t/e net

    buil& are $electe&. T/en eac/ buil& i$ &ii&e& into ta$$. Te$t ca$e$ for ta$ are &rawn ufir$t before an& &eelo*ent an& continuou$ te$ting i$ erfor*e& t/roug/out t/e&eelo*ent roce$$.

    Ane er( i*ortant feature of eMtre*e rogra**ing i$ t/e concet of air rogra**ing.In t/i$% a tea* of two &eeloer$ &eelo t/e $oftware% woring in tea* a$ a air to t/eetent t/at t/e( een $/are a $ingle co*uter.

    In eMtere*e rogra**ing *o&el% co*uter$ are ut in center of large roo* line& wit/

    cubicle$ an& client rere$entatie i$ alwa($ re$ent. Ane er( i*ortant re$trictioni*o$e& in t/e *o&el i$ t/at no tea* i$ allowe& to wor oerti*e for 2 $ucce$$ie wee$.

    M /a$ /a& $o*e $ucce$$e$. It i$ goo& w/en re'uire*ent$ are ague or c/anging an& t/eoerall $coe of t/e ro8ect i$ li*ite&. It i$ /oweer too $oon to ealuate M.

    ountain odel

    =ountain *o&el i$ anot/er ob8ect-oriente& lifec(cle *o&el. T/i$ i$ &eicte& in t/efollowing &iagra*.

    Co( ,ig/t irtual nier$it( of ai$tan 3

    Architecturals#ike

    )ser stories

    ReleasePlanning

    #ike

    Iteration Acce#tancetest

    mall release

  • 8/12/2019 Software Engineering II - CS605 Handouts

    24/179

    CS605 Software Engineering-II VU

    In t/i$ *o&el t/e circle$ rere$enting t/e ariou$ /a$e$ oerla% elicitl( rere$entingan oerla between actiitie$. T/e arrow$ wit/in a /a$e rere$ent iteration wit/in t/e

    /a$e. T/e *aintenance c(cle i$ $*aller% to $(*boli+e re&uce& *aintenance effort w/ent/e ob8ect oriente& ara&ig* i$ u$e&.

    4ational Unified roce%% 4U7

    ,ational nifie& roce$$ i$ er( clo$el( a$$ociate& wit/ #L an& rutc/en:$arc/itectural *o&el.

    In t/i$ *o&el a $oftware ro&uct i$ &e$igne& an& built in a $ucce$$ion of incre*entaliteration$. It incororate$ earl( te$ting an& ali&ation of &e$ign i&ea$ an& earl( ri$*itigation. T/e /ori+ontal &i*en$ion rere$ent$ t/e dynamic aspectof t/e roce$$. T/i$inclu&e$ c(cle$% /a$e$% iteration$% an& *ile$tone$. T/e ertical &i*en$ion rere$ent$ t/e

    static aspect of t/e roce$$ &e$cribe& in ter*$ of roce$$ co*onent$ w/ic/ inclu&e

    actiitie$% &i$ciline$% artifact$% an& role$. T/e roce$$ e*/a$i+e$ t/at &uring&eelo*ent% all actiitie$ are erfor*e& in arallel% /oweer% an& at a gien ti*e oneactiit( *a( /ae *ore e*/a$i$ t/an t/e ot/er.

    T/e following figure &eicting , i$ taen fro* rutc/en:$ aer.

    Co( ,ig/t irtual nier$it( of ai$tan 4

    Requirement

    *!ject(oriented analysis

    *!ject(oriented design

    Im#lementation

    Im#lementation andintegration

    Further de"elo#ment

    *#erations

    Maintenance

  • 8/12/2019 Software Engineering II - CS605 Handouts

    25/179

    CS605 Software Engineering-II VU

    Co'*ari%on of Lifec2cle odel%

    9$ &i$cu$$e& aboe% eac/ lifec(cle *o&el /a$ $o*e $trengt/$ an& weane$$e$. T/e$e are$u**ari+e& in t/e following table

    T/e criteria to be u$e& for &eci&ing on a *o&el inclu&e t/e organi+ation% it$ *anage*ent%$ill$ of t/e e*lo(ee$% an& t/e nature of t/e ro&uct. No $ingle *o&el *a( fulfill t/enee&$ in a gien $ituation. It *a( t/erefore be be$t to &ei$e a lifec(cle *o&el tune& to(our own nee&$ b( creating a D#i-an&-*atc/ life-c(cle *o&el.

    ;ualit2 #%%urance and +ocu'entation

    It *a( be note& t/at t/ere i$ no $earate @9 or &ocu*entation /a$e. @9 i$ an actiit(

    erfor*e& t/roug/out $oftware ro&uction. It inole$ erification an& ali&ation.

    Co( ,ig/t irtual nier$it( of ai$tan 5

  • 8/12/2019 Software Engineering II - CS605 Handouts

    26/179

    CS605 Software Engineering-II VU

    erification i$ erfor*e& at t/e en& of eac/ /a$e w/erea$ ali&ation i$ erfor*e& before&eliering t/e ro&uct to t/e client.

    Si*ilarl(% eer( /a$e *u$t be full( &ocu*ente& before $tarting t/e net /a$e. It i$i*ortant to note t/at o$tone& &ocu*entation *a( neer be co*lete& a$ t/e

    re$on$ible in&ii&ual *a( leae. 7ocu*entation i$ i*ortant a$ t/e ro&uct i$ con$tantl(c/angingwe nee& t/e &ocu*entation to &o t/i$. T/e &e$ign Hfor ea*leJ will be*o&ifie& &uring &eelo*ent% but t/e original &e$igner$ *a( not be aailable to&ocu*ent it.

    T/e following table $/ow$ t/e @9 an& &ocu*entation actiitie$ a$$ociate& wit/ eac/$tage.

    /a$e 7ocu*ent$ @9

    ,e'uire*ent7efinition

    $ ,ai& rotot(e% or$ ,e'uire*ent$ &ocu*ent

    $ ,ai& rotot(e$ ,eiew$

    =unctionalSecification

    $ Secification &ocu*ent H$ecification$J$ Software ro&uct #anage*ent lan

    $ Traceabilit($ =S ,eiew$ C/ec t/e S#

    7e$ign $ 9rc/itectural 7e$ign$ 7etaile& 7e$ign

    $ Traceabilit($ ,eiew

    Co&ing $ Source co&e$ Te$t ca$e$

    $ Traceabilit($ ,eiew$ Te$ting

    Integration $ Source co&e$ Te$t ca$e$

    $ Integration te$ting$ 9ccetance te$ting

    #aintenance $ C/ange recor&$ ,egre$$ion te$t ca$e$

    $ ,egre$$ion te$ting

    Co( ,ig/t irtual nier$it( of ai$tan 6

  • 8/12/2019 Software Engineering II - CS605 Handouts

    27/179

    CS605 Software Engineering-II VU

    Lecture No. 6

    Software ro9ect anage'ent Conce*t%

    Software ro8ect *anage*ent i$ a er( i*ortant actiit( for $ucce$$ful ro8ect$. In fact%in an organi+ation at C## Leel ba$ic ro8ect *anage*ent roce$$e$ are e$tabli$/e& totrac co$t% $c/e&ule% an& functionalit(. T/at i$% it i$ c/aracteri+e& b( ba$ic ro8ect*anage*ent ractice$. It al$o i*lie$ t/at wit/out ro8ect *anage*ent not *uc/ can beac/iee&. Caer$ ?one$% in /i$ boo on Software )e$t ractice$% note$ t/at% for t/e

    ro8ect$ t/e( /ae anal(+e&% goo& ro8ect *anage*ent wa$ a$$ociate& wit/ 100B of t/e$ucce$$ful ro8ect an& ba& ro8ect *anage*ent wa$ a$$ociate& wit/ 100B of t/eun$ucce$$ful ro8ect$. T/erefore% un&er$tan&ing of goo& ro8ect *anage*ent rincile$an& ractice$ i$ e$$ential for all ro8ect *anager$ an& $oftware engineer$.

    Software ro8ect *anage*ent inole$ t/at lanning% organi+ation% *onitoring% an&

    control of t/e eole an& t/e roce$$e$.

    Software ro9ect anage'ent< actor% t!at influence re%ult%

    T/e fir$t $te towar&$ better ro8ect *anage*ent i$ t/e co*re/en$ion of t/e factor$ t/atinfluence re$ult$ of a ro8ect. 9*ong t/e$e% t/e *o$t i*ortant factor$ are

    + ro8ect $i+e9$ t/e ro8ect $i+e increa$e$% t/e co*leit( of t/e roble* al$o increa$e$ an& t/ereforeit$ *anage*ent al$o beco*e$ *ore &ifficult.

    + 7elier( &ea&line7elier( &ea&line &irectl( influence$ t/e re$ource$ an& 'ualit(. ;it/ a reali$tic &ea&line%c/ance$ of &eliering t/e ro&uct wit/ /ig/ 'ualit( an& rea$onable re$ource$ increa$etre*en&ou$l( a$ co*are& to an unreali$tic &ea&line. So a ro8ect *anager /a$ to fir$t&eter*ine a reali$tic an& rea$onable &ea&line an& t/en *onitor t/e ro8ect rogre$$ an&en$ure ti*el( &elier(.

    + )u&get$ an& co$t$9 ro8ect *anager i$ re$on$ible for en$uring &elier( of t/e ro8ect wit/in t/e allocate&

    bu&get an& $c/e&ule. 9 goo& e$ti*ate of bu&get% co$t an& $c/e&ule i$ e$$ential for an(

    $ucce$$ful ro8ect. It i$ t/erefore i*eratie t/at t/e ro8ect *anager un&er$tan& an&learn$ t/e tec/ni'ue$ an& rincile nee&e& to &eelo t/e$e e$ti*ate$.

    + 9lication &o*ain9lication &o*ain al$o la($ an i*ortant role in t/e $ucce$$ of a ro8ect. T/e c/ance$of $ucce$$ of a ro8ect in a well-nown alication &o*ain woul& be *uc/ better t/an ofa ro8ect in a relatiel( unnown &o*ain. T/e ro8ect *anager t/u$ nee&$ to i*le*ent*ea$ure$ to /an&le unfore$een roble*$ t/at *a( ari$e &uring t/e ro8ect lifec(cle.+ Tec/nolog( to be i*le*ente&Tec/nolog( al$o la($ a er( $ignificant role in t/e $ucce$$ or failure of a ro8ect. Ane

    t/e one /an&% a new D$tate-of-t/e-art tec/nolog( *a( increa$e t/e ro&uctiit( of t/etea* an& 'ualit( of t/e ro&uct. An t/e ot/er /an&% it *a( roe to be un$table an& /ence

    Co( ,ig/t irtual nier$it( of ai$tan 7

  • 8/12/2019 Software Engineering II - CS605 Handouts

    28/179

  • 8/12/2019 Software Engineering II - CS605 Handouts

    29/179

    CS605 Software Engineering-II VU

    3. unreali$tic &ea&line4. an /one$t un&ere$ti*ate of effort5. re&ictable an&Oor unre&ictable ri$$6. tec/nical &ifficultie$!. *i$co**unication a*ong ro8ect $taff

    . failure in ro8ect *anage*ent

    T/e fir$t two oint$ relate to goo& re'uire*ent engineering ractice$. n$table u$erre'uire*ent$ an& continuou$ re'uire*ent cree /a$ been i&entifie& a$ t/e to *o$t rea$onfor ro8ect failure. 9*biguou$ an& inco*lete re'uire*ent$ lea& to un&e$irable ro&uctt/at i$ re8ecte& b( t/e u$er.

    9$ &i$cu$$e& earlier% &elier( &ea&line &irectl( influence$ t/e re$ource$ an& 'ualit(. ;it/a reali$tic &ea&line% c/ance$ of &eliering t/e ro&uct wit/ /ig/ 'ualit( an& rea$onablere$ource$ increa$e tre*en&ou$l( a$ co*are& to an unreali$tic &ea&line. 9n unreali$tic&ea&line coul& be enforce& b( t/e *anage*ent or t/e client or it coul& be &ue to error in

    e$ti*ation. In bot/ t/e$e ca$e$ it often re$ult$ in &i$a$ter for t/e ro8ect.

    9 ro8ect *anager w/o i$ not reare& an& wit/out a contingenc( lan for all $ort$ ofre&ictable an& unre&ictable ri$$ woul& ut t/e ro8ect in 8eoar&( if $uc/ a ri$ $/oul&/aen. ,i$ a$$e$$*ent an& anticiation of tec/nical an& ot/er &ifficultie$ allow$ t/e

    ro8ect *anager to coe wit/ t/e$e $ituation$.

    #i$co**unication a*ong t/e ro8ect $taff i$ anot/er er( i*ortant rea$on for ro8ectfailure. Lac of roer coor&ination an& co**unication in a ro8ect re$ult$ in wa$tage ofre$ource$ an& c/ao$.

    T!e anage'ent S*ectru'

    Effectie ro8ect *anage*ent focu$e$ on four a$ect$ of t/e ro8ect nown a$ t/e 4 :$.T/e$e are eole% ro&uct% roce$$% an& ro8ect.

    eo*leSoftware &eelo*ent i$ a /ig/l( eole inten$ie actiit(. In t/i$ bu$ine$$% t/e $oftwarefactor( co*ri$e$ of t/e eole woring t/ere. >ence taing care of t/e fir$t % t/at i$

    eole% $/oul& tae t/e /ig/e$t riorit( on a ro8ect *anager:$ agen&a.

    roductT/e ro&uct i$ t/e outco*e of t/e ro8ect. It inclu&e$ all in&$ of t/e $oftware $($te*$.

    No *eaningful lanning for a ro8ect can be carrie&-out until all t/e &i*en$ion$ of t/ero&uct inclu&ing it$ functional a$ well a$ non-functional re'uire*ent$ are un&er$too&an& all tec/nical an& *anage*ent con$traint$ are i&entifie&.

    roce%%Ance t/e ro&uct ob8ectie$ an& $coe /ae been &eter*ine&% a roer $oftware&eelo*ent roce$$ an& lifec(cle *o&el *u$t be c/o$en to i&entif( t/e re'uire& wor

    ro&uct$ an& &efine t/e *ile$tone$ in or&er to en$ure $trea*line& &eelo*ent actiitie$.

    It inclu&e$ t/e $et of all t/e fra*ewor actiitie$ an& $oftware engineering ta$$ to get t/e8ob &one.

    Co( ,ig/t irtual nier$it( of ai$tan 9

  • 8/12/2019 Software Engineering II - CS605 Handouts

    30/179

    CS605 Software Engineering-II VU

    ro9ect9 ro8ect co*ri$e$ of all wor t/e re'uire& to *ae t/e ro&uct a realit(. In or&er toaoi& failure% a ro8ect *anager an& $oftware engineer i$ re'uire& to buil& t/e $oftware

    ro&uct in a controlle& an& organi+e& fa$/ion an& run it lie ot/er ro8ect$ foun& in *oreconcrete &o*ain$.

    ;e now &i$cu$$ t/e$e 4 in *ore &etail.

    eo*le

    In a $tu&( ubli$/e& b( IEEE% t/e ro8ect tea* wa$ i&entifie& b( t/e $enior eecutie$ a$t/e *o$t i*ortant contributor to a $ucce$$ful $oftware ro8ect. >oweer% unfortunatel(%

    eole are often taen for grante& an& &o no get t/e attention an& focu$ t/e( &e$ere.T/ere are a nu*ber of la(er$ t/at articiate in $oftware roce$$ an& influence t/eoutco*e of t/e ro8ect. T/e$e inclu&e $enior *anager$% ro8ect Htec/nicalJ *anager$%

    ractitioner$% cu$to*er$% an& en&-u$er$. Senior *anager$ &efine t/e bu$ine$$ i$ionw/erea$ t/e ro8ect *anager$ lan% *otiate% organi+e an& control t/e ractitioner$ w/owor to &eelo t/e $oftware ro&uct. To be effectie% t/e ro8ect tea* *u$t be organi+e&to u$e eac/ in&ii&ual to t/e be$t of /i$O/er abilitie$. T/i$ 8ob i$ carrie& out b( t/e tea*lea&er.

    Tea' Leaderro8ect *anage*ent i$ a eole inten$ie actiit(. It nee&$ t/e rig/t *i of eole $ill$.T/erefore% co*etent ractitioner$ often *ae oor tea* lea&er$.

    Lea&er$ $/oul& al( a roble* $oling *anage*ent $t(le. T/at i$% a ro8ect *anager

    $/oul& concentrate on un&er$tan&ing t/e roble* to be $ole&% *anaging t/e flow ofi&ea$% an& at t/e $a*e ti*e% letting eer(one on t/e tea* now t/at 'ualit( count$ an&t/at it will not be co*ro*i$e&.#AI *o&el of lea&er$/i &eeloe& b( ;einberg $ugge$t t/at a lea&er$/i nee&$#otiation% Argani+ation% an& Innoation.

    oti,ation i$ t/e abilit( to encourage tec/nical eole to ro&uce to t/eir be$t./rgani8ationi$ t/e abilit( to *ol& t/e ei$ting roce$$e$ Hor inent new one$J t/at willenable t/e initial concet to be tran$late& into a final ro&uct% an& Idea or Inno,ationi$t/e abilit( to encourage eole to create an& feel creatie.

    It i$ $ugge$te& t/at $ucce$$ful ro8ect *anager$ al( a roble* $oling *anage*ent$t(le. T/i$ inole$ &eeloing an un&er$tan&ing of t/e roble* an& *otiating t/e tea*to generate i&ea$ to $ole t/e roble*.

    E&ge*on $ugge$t$ t/at t/e following c/aracteri$tic$ are nee&e& to beco*e an effectiero8ect *anager

    $ roble* Soling+ S/oul& be able to &iagno$e tec/nical an& organi+ational i$$ue$ an& be willing

    to c/ange &irection if nee&e&.

    $ #anagerial I&entit(+ #u$t /ae t/e confi&ence to tae control w/en nece$$ar(

    Co( ,ig/t irtual nier$it( of ai$tan 30

  • 8/12/2019 Software Engineering II - CS605 Handouts

    31/179

    CS605 Software Engineering-II VU

    $ 9c/iee*ent+ ,ewar& initiatie Hcontrolle& ri$ taingJ an& acco*li$/*ent

    $ Influence an& tea* buil&ing+ #u$t re*ain un&er control in /ig/ $tre$$ con&ition$. S/oul& be able to rea&

    $ignal$ an& a&&re$$ eole$: nee&$.

    7e#arco $a($ t/at a goo& lea&er o$$e$$e$ t/e following four c/aracteri$tic$+ >eart t/e lea&er $/oul& /ae a big /eart.+ No$e t/e lea&er $/oul& /ae goo& no$e to $ot t/e trouble an& ba& $*ell in t/e

    ro8ect.+ Gut t/e lea&er $/oul& /ae t/e abilit( to *ae 'uic &eci$ion$ on gut feeling.+ Soul t/e lea&er $/oul& be t/e $oul of t/e tea*.

    If anal(+e& clo$el(% all t/e$e re$earc/er$ $ee* to $a( e$$entiall( t/e $a*e t/ing an& t/e(actuall( co*le*ent eac/ ot/er:$ oint of iew.

    Co( ,ig/t irtual nier$it( of ai$tan 31

  • 8/12/2019 Software Engineering II - CS605 Handouts

    32/179

    CS605 Software Engineering-II VU

    Lecture No. >

    T!e Software Tea'

    T/ere are *an( o$$ible organi+ational $tructure$. In or&er to i&entif( t/e *o$t $uitable$tructure% t/e following factor$ *u$t be con$i&ere&

    $ t/e &ifficult( of t/e roble* to be $ole&$ t/e $i+e of t/e re$ultant rogra*H$J in line$ of co&e or function oint$$ t/e ti*e t/at t/e tea* will $ta( toget/er Htea* lifeti*eJ$ t/e &egree to w/ic/ t/e roble* can be *o&ulari+e&$ t/e re'uire& 'ualit( an& reliabilit( of t/e $($te* to be built$ t/e rigi&it( of t/e &elier( &ate$ t/e &egree of $ociabilit( Hco**unicationJ re'uire& for t/e ro8ect

    Con$tantine $ugge$t$ t/at tea*$ coul& be organi+e& in t/e following generic $tructuralara&ig*$

    $ clo%ed *aradig'$tructure$ a tea* along a tra&itional /ierarc/( of aut/orit($ rando' *aradig'$tructure$ a tea* loo$el( an& &een&$ on in&ii&ual initiatie of

    t/e tea* *e*ber$$ o*en *aradig'atte*t$ to $tructure a tea* in a *anner t/at ac/iee$ $o*e of t/e

    control$ a$$ociate& wit/ t/e clo$e& ara&ig* but al$o *uc/ of t/e innoation t/atoccur$ w/en u$ing t/e ran&o* ara&ig*

    $ %2nc!ronou% *aradig'relie$ on t/e natural co*art*entali+ation of a roble*an& organi+e$ tea* *e*ber$ to wor on iece$ of t/e roble* wit/ little actieco**unication a*ong t/e*$ele$

    #antei $ugge$t$ t/e following t/ree generic tea* organi+ation$$ 7e*ocratic &ecentrali+e& H77JIn t/i$ organi+ation t/ere i$ no er*anent lea&er an& ta$ coor&inator$ are aointe& for$/ort &uration. 7eci$ion$ on roble*$ an& aroac/ are *a&e b( grou con$en$u$ an&co**unication a*ong tea* i$ /ori+ontal.

    $ Controlle& &ecentrali+e& HC7J

    In C7% t/ere i$ a &efine& lea&er w/o coor&inate$ $ecific ta$$. >oweer% roble*$oling re*ain$ a grou actiit( an& co**unication a*ong $ubgrou$ an& in&ii&ual$ i$/ori+ontal. ertical co**unication along t/e control /ierarc/( al$o occur$.

    $ Controlle& centrali+e& HCCJIn a Controlle& Centrali+e& $tructure% to leel roble* $oling an& internal tea*coor&ination are *anage& b( t/e tea* lea&er an& co**unication between t/e lea&er an&tea* *e*ber$ i$ ertical.

    Centrali+e& $tructure$ co*lete ta$$ fa$ter an& are *o$t u$eful for /an&ling $i*leroble*$. An t/e ot/er /an&% &ecentrali+e& tea*$ generate *ore an& better $olution$ t/an

    in&ii&ual$ an& are *o$t u$eful for co*le roble*$=or t/e tea* *orale oint of iew% 77 i$ better.

    Co( ,ig/t irtual nier$it( of ai$tan 3

  • 8/12/2019 Software Engineering II - CS605 Handouts

    33/179

    CS605 Software Engineering-II VU

    Coordination and Co''unication I%%ue%

    Lac of coor&ination re$ult$ in confu$ion an& uncertaint(. An t/e ot/er /an&%erfor*ance i$ iner$el( roortional to t/e a*ount of co**unication an& /ence too

    *uc/ co**unication an& coor&ination i$ al$o not /ealt/( for t/e ro8ect. er( largero8ect$ are be$t a&&re$$e& wit/ CC or C7 w/en $ub-grouing can be ea$il(acco**o&ate&.

    raul an& Steeter categori+e t/e ro8ect coor&ination tec/ni'ue$ a$ follow$

    $ =or*al% i*er$onal aroac/e$In t/e$e aroac/e$% coor&ination i$ ac/iee& t/roug/ i*er$onal an& for*al *ec/ani$*$uc/ a$ SE &ocu*ent$% tec/nical *e*o$% $c/e&ule$% error tracing reort$.$ =or*al% interer$onal roce&ure$In t/i$ ca$e% t/e aroac/e$ are interer$onal an& for*al. T/e$e inclu&e @9 actiitie$%&e$ign an& co&e reiew$% an& $tatu$ *eeting$.$ Infor*al% interer$onal roce&ure$T/i$ aroac/ e*lo($ infor*al interer$onal roce&ure$ an& inclu&e$ grou *eeting$an& collocating &ifferent grou$ toget/er.$ Electronic co**unication inclu&e$ e*ail$ an& bulletin boar&$.$ Interer$onal networing inclu&e$ infor*al &i$cu$$ion$ wit/ grou *e*ber$

    T/e effectiene$$ of t/e$e aroac/e$ /a$ been $u**ari+e& in t/e following &iagra*

    Tec/ni'ue$ t/at fall aboe t/e regre$$ion line (iel& *ore alue to u$e ratio a$ co*are&to t/e one$ below t/e line.

    T!e roduct< +efining t!e roble'

    Co( ,ig/t irtual nier$it( of ai$tan 33

  • 8/12/2019 Software Engineering II - CS605 Handouts

    34/179

    CS605 Software Engineering-II VU

    In or&er to &eelo an e$ti*ate an& lan for t/e ro8ect% t/e $coe of t/e roble* *u$t bee$tabli$/e&. T/i$ inclu&e$ contet% infor*ation ob8ectie$% an& function an& erfor*ancere'uire*ent$. T/e e$ti*ate an& lan i$ t/en &eeloe& b( &eco*o$ing t/e roble* an&e$tabli$/ing a functional artitioning.

    T!e roce%%

    T/e net $te i$ to &eci&e w/ic/ roce$$ *o&el to ic. T/e ro8ect *anager /a$ to looat t/e c/aracteri$tic$ of t/e ro&uct to be built an& t/e ro8ect eniron*ent. =or ea*le$%for a relatiel( $*all ro8ect t/at i$ $i*ilar to a$t effort$% &egree of uncertaint( i$*ini*i+e& an& /ence ;aterfall or linear $e'uential *o&el coul& be u$e&. =or tig/tti*eline$% /eail( co*art*entali+e&% an& nown &o*ain% ,97 *o&el woul& be *ore$uitable. ro8ect$ wit/ large functionalit(% 'uic turn aroun& ti*e are be$t &eeloe&incre*entall( an& for a ro8ect in w/ic/ re'uire*ent$ are uncertain% rotot(ing *o&elwill be *ore $uitable.

    Co( ,ig/t irtual nier$it( of ai$tan 34

  • 8/12/2019 Software Engineering II - CS605 Handouts

    35/179

    CS605 Software Engineering-II VU

    Lecture No. ?

    T!e ro9ect anage'ent

    9$ &i$cu$$e& earlier% a ro8ect *anager *u$t un&er$tan& w/at can go wrong an& /ow to&o it rig/t. ,eel /a$ &efine& a 5 $te roce$$ to i*roe t/e c/ance$ of $ucce$$. T/e$eare

    + Start on t/e rig/t foot t/i$ i$ acco*li$/e& b( utting in t/e re'uire& effort toun&er$tan& t/e roble*% $et reali$tic ob8ectie$% buil& t/e rig/t tea*% an& roi&e t/enee&e& infra$tructure.

    + #aintain *o*entu* *an( ro8ect$% after $tarting on t/e rig/t% loo$e focu$ an&*o*entu*. T/e initial *o*entu* *u$t be *aintaine& till t/e er( en&.

    + Trac rogre$$ no lanning i$ u$eful if t/e rogre$$ i$ not trace&. Tracing en$ure$ti*el( &elier( an& re*e&ial action% if nee&e&% in a $uitable *anner.

    + #ae $*art &eci$ion$+ Con&uct a o$t*orte* anal($i$ in or&er to learn fro* t/e *i$tae$ an& i*roe t/e

    roce$$ continuou$l(% a ro8ect o$t*orte* *u$t be con&ucte&.

    5@@ rinci*le

    )arr( )oe/* /a$ $ugge$te& a $($te*atic aroac/ to ro8ect *anage*ent. It i$ nown a$t/e ;;;;;>> rincile. It co*ri$e$ of ! 'ue$tion$. =in&ing t/e an$wer$ to t/e$e !'ue$tion$ i$ e$$entiall( all a ro8ect *anager /a$ to &o. T/e$e are$ @Ai$ t/e $($te* being &eeloe&

    $ @#Twill be &one$ )( @EN$ @/i$ re$on$ible for a function$ @E4Et/e( are organi+ationall( locate&$ @/will t/e 8ob be &one tec/nicall( an& *anageriall($ @/ UC@ of eac/ re$ource He.g.% eole% $oftware% tool$% &ataba$eJ will be

    nee&e&

    )oe/*:$ ;5>> rincile i$ alicable% regar&le$$ of t/e $i+e an& co*leit( of t/ero8ect an& roi&e ecellent lanning outline.

    Critical ractice%

    T/e 9irlie Council /a$ &eeloe& a li$t of critical $ucce$$ ractice$ t/at *u$t be re$entfor $ucce$$ful ro8ect *anage*ent. T/e$e are$ =or*al ri$ anal($i$$ E*irical co$t an& $c/e&ule e$ti*ation$ #etric$-ba$e& ro8ect *anage*ent$ Earne& alue tracing$ 7efect tracing again$t 'ualit( target$$ eole aware ro8ect *anage*ent

    Co( ,ig/t irtual nier$it( of ai$tan 35

  • 8/12/2019 Software Engineering II - CS605 Handouts

    36/179

    CS605 Software Engineering-II VU

    =in&ing t/e $olution to t/e$e ractice$ i$ t/e e( to $ucce$$ful ro8ect$. ;e:ll t/erefore$en& a con$i&erable a*ount of ti*e in elaborating t/e$e ractice$.

    Co( ,ig/t irtual nier$it( of ai$tan 36

  • 8/12/2019 Software Engineering II - CS605 Handouts

    37/179

    CS605 Software Engineering-II VU

    Lecture No. B

    Software Si8e E%ti'ation

    T/e $i+e of t/e $oftware nee&$ to be e$ti*ate& to figure out t/e ti*e nee&e& in ter*$ ofcalen&ar an& *an *ont/$ a$ well a$ t/e nu*ber an& t(e of re$ource$ re'uire& carr(ingout t/e 8ob. T/e ti*e an& re$ource$ e$ti*ation eentuall( la($ a $ignificant role in&eter*ining t/e co$t of t/e ro8ect.

    #o$t organi+ation$ u$e t/eir reiou$ eerience to e$ti*ate t/e $i+e an& /ence t/ere$ource an& ti*e re'uire*ent$ for t/e ro8ect. If not 'uantifie&% t/i$ e$ti*ate i$$ub8ectie an& i$ a$ goo& a$ t/e er$on w/o i$ con&ucting t/i$ eerci$e. 9t ti*e$ t/i$*ae$ it /ig/l( contentiou$. It i$ t/erefore i*eratie for a goern*ent organi+ation toa&ot an e$ti*ation *ec/ani$* t/at i$

    1. Ab8ectie in nature.2. It $/oul& be an accetable $tan&ar& wit/ wi&e $rea& u$e an& accetance leel.3. It $/oul& $ere a$ a $ingle (ar&$tic to *ea$ure an& *ae co*ari$on$.4. #u$t be ba$e& uon a &elierable t/at i$ *eaningful to t/e inten&e& au&ience.5. It $/oul& be in&een&ent of t/e tool an& tec/nolog( u$e& for t/e &eeloing t/e

    $oftware.

    9 nu*ber of tec/ni'ue$ an& tool$ can be u$e& in e$ti*ating t/e $i+e of t/e $oftware.T/e$e inclu&e

    1. Line$ of co&e HLACJ2. Nu*ber of ob8ect$3. Nu*ber of GI$4. Nu*ber of &ocu*ent age$5. =unctional oint$ H=J

    Co'*ari%on of L/C and #

    Aut of t/e$e 5% t/e two *o$t wi&el( u$e& *etric$ for t/e *ea$ure*ent of $oftware $i+e are= an& LAC. LAC *etric $uffer fro* t/e following $/ortco*ing$

    1. T/ere are a nu*ber of 'ue$tion$ regar&ing t/e &efinition for line$ of co&e. T/e$e

    inclu&ea. ;/et/er to count /($ical line or logical line$b. ;/at t(e of line$ $/oul& be counte& =or ea*le% $/oul& t/e co**ent$%

    &ata &efinition$% an& blan line$ be counte& or not2. LAC i$ /eail( &een&ent uon t/e in&ii&ual rogra**ing $t(le.3. It i$ &een&ent uon t/e tec/nolog( an& /ence it i$ &ifficult to co*are

    alication$ &eeloe& in two &ifferent language$. T/i$ i$ true for een $ee*ingl(er( clo$e language$ lie in CPP an& ?aa.

    4. If a *iture of language$ an& tool$ i$ u$e& t/en t/e co*ari$on i$ een *ore&ifficult. =or ea*le% it i$ not o$$ible to co*are a ro8ect t/at &elier$ a100%000-line *iture of 9$$e*bl(% CPP% S@L an& i$ual )a$ic to one t/at

    &elier$ 100%000 line$ of CA)AL.

    Co( ,ig/t irtual nier$it( of ai$tan 37

  • 8/12/2019 Software Engineering II - CS605 Handouts

    38/179

    CS605 Software Engineering-II VU

    = *ea$ure$ t/e $i+e of t/e functionalit( roi&e& b( t/e $oftware. T/e functionall( i$*ea$ure& a$ a function of t/e &ata an& t/e oeration$ erfor*e& on t/at &ata. T/e*ea$ure i$ in&een&ent of t/e tool an& tec/nolog( u$e& an& /ence roi&e$ a con$i$tent*ea$ure for co*ari$on between ariou$ organi+ation$ an& ro8ect$.

    T/e bigge$t a&antage of = oer LAC i$ t/at LAC can be counte& onl( 9=TE, t/e co&e/a$ been &eeloe& w/ile = can be counte& een at t/e re'uire*ent /a$e an& /ence can

    be u$e& for lanning an& e$ti*ation w/ile t/e LAC cannot be u$e& for t/i$ uro$e.

    9not/er *a8or &i$tinction between t/e = an& LAC i$ t/at t/e LAC *ea$ure$ t/ealication fro* a &eeloerQ$ er$ectie w/ile t/e = i$ a *ea$ure of t/e $i+e of t/efunctionalit( fro* t/e u$erQ$ er$ectie. T/e u$erQ$ iew% a$ &efine& b( I=G% i$ a$follow$

    9 user viewi$ a &e$crition of t/e bu$ine$$ function$ an& i$ aroe& b( t/e

    u$er. It rere$ent$ a for*al &e$crition of t/e u$er:$ bu$ine$$ nee&$ in t/eu$er:$ language. It can ar( in /($ical for* He.g.% catalog of tran$action$%

    roo$al$% re'uire*ent$ &ocu*ent% eternal $ecification$% &etaile&$ecification$% u$er /an&booJ. 7eeloer$ tran$late t/e u$er infor*ation intoinfor*ation tec/nolog( language in or&er to roi&e a $olution. =unction ointcount$ t/e alication $i+e fro* t/e u$er:$ oint of iew. It i$ acco*li$/e&u$ing t/e infor*ation in a language t/at i$ co**on to bot/ u$erH$J an&&eeloer$.

    T/erefore% =unction oint 9nal($i$ *ea$ure$ t/e $i+e of t/e functionalit(&eliere& an& u$e& b( t/e en& u$er a$ oo$e& to t/e olu*e of t/e artifact$ an&co&e.

    Co( ,ig/t irtual nier$it( of ai$tan 38

  • 8/12/2019 Software Engineering II - CS605 Handouts

    39/179

    CS605 Software Engineering-II VU

    T!e arado) of 4e,er%ed roducti,it2 for @ig!-Le,el Language%Con$i&er t/e following ea*leIn t/i$ ea*le% it i$ a$$u*e& t/at t/e $a*e functionalit( i$ i*le*ente& in 9$$e*bl( an&9&a. 9$ co&ing in 9$$e*bl( i$ *uc/ *ore &ifficult an& ti*e con$u*ing a$ co*are& to9&a% it tae$ *ore ti*e an& it i$ al$o lengt/(. )ecau$e t/ere i$ a /uge &ifference in t/eco&e $i+e in ter*$ of Line$ of Co&e% t/e co$t er line in ca$e of 9$$e*bl( i$ *uc/ le$$ a$co*are& to 9&a. >ence co&ing in 9$$e*bl( aear$ to be *ore co$t effectie t/an 9&a

    w/ile in realit( it i$ not. T/i$ i$ a ara&oR

    unction oint #nal2%i% - # "rief @i%tor2 and U%age

    In t/e *i& !0Q$% I)# felt t/e nee& to e$tabli$/ a *ore effectie an& better *ea$ure of$($te* $i+e to re&ict t/e &elier( of $oftware. It co**i$$ione& 9llan 9lbrec/t to lea&t/i$ effort. 9$ a re$ult /e &eeloe& t/i$ aroac/ w/ic/ to&a( nown a$ t/e =unctionoint 9nal($i$. 9fter $eeral (ear$ of internal u$e% 9lbrec/t intro&uce& t/e *et/o&olog(at a 8ointO$/are conference. =ro* 1"!" to 1"4 continue& $tati$tical anal($i$ wa$

    erfor*e& on t/e *et/o& an& refine*ent$ were *a&e. 9t t/at oint% a non-rofitorgani+ation b( t/e na*e of International =unction oint $er Grou HI=GJ wa$for*e& w/ic/ for*all( too onto it$elf t/e role of refining an& &efining t/e countingrule$. T/e re$ult i$ t/e function oint *et/o&olog( t/at we u$e to&a(.

    Since 1"!"% w/en 9lbrec/t ubli$/e& /i$ fir$t aer on =% it$ oularit( an& u$e /a$been increa$ing con$i$tentl( an& to&a( it i$ being u$e& a$ a &e facto $tan&ar& for $oftware*ea$ure*ent. =ollowing i$ a $/ort li$t of organi+ation$ u$ing = for e$ti*ation

    1. IEEE reco**en&$ it for u$e in ro&uctiit( *ea$ure*ent an& reorting.2. Seeral goern*ent$ inclu&ing % Cana&a% an& >ong ong /ae been u$ing it

    an& it /a$ been reco**en&e& to t/e$e goern*ent$ t/at all ublic $ector ro8ect

    u$e = a$ a $tan&ar& for t/e *ea$ure*ent of t/e $oftware $i+e.

    Co( ,ig/t irtual nier$it( of ai$tan 39

    Assem!ler

    ,ersion Ada ,ersion Difference

    ource Code i-e .//'/// 01'/// (21'///Acti"ity ( in #erson months

    Requirements ./ ./ /

    Design 01 01 /

    Coding .// 0/ (3/

    Documentation .1 .1 /

    Integration and Testing 01 .1 (./

    Management 01 .1 (./

    Total 4ffort 0// .// (.//

    Total Cost 5.'///'/// 51//'/// (51//'///

    Cost Per 6ine 5./ 50/ 5./

    6ines Per Person(Month 1// 01/ (01/

  • 8/12/2019 Software Engineering II - CS605 Handouts

    40/179

    CS605 Software Engineering-II VU

    3. Goern*ent of t/e 9u$tralian $tate ictoria /a$ been u$ing = $ince 1""! for*anaging an& out$ourcing ro8ect$ to t/e tune of S 50 #illion eer( (ear.

    4. In t/e S $eeral large goern*ent &eart*ent$ inclu&ing I,S /ae a&ote& =anal($i$ a$ a $tan&ar& for out$ourcing% *ea$ure*ent% an& control of $oftware

    ro8ect$.

    5. 9 nu*ber of big organi+ation$ inclu&ing 7igital Cororation an& I)# /ae beenu$ing = for t/eir internal u$e for t/e la$t *an( (ear$.

    $age of = inclu&e$ Effort Scoe E$ti*ation

    ro8ect lanning

    7eter*ine t/e i*act of a&&itional or c/ange& re'uire*ent$

    ,e$ource lanningO9llocation

    )enc/*aring an& target $etting

    Contract Negotiation$

    =ollowing i$ a li$t of $o*e of t/e = ba$e& *etric$ u$e& for t/e$e uro$e$ Si+e F =unction oint$

    7efect$ F er =unction oint

    Effort F Staff-#ont/$

    ro&uctiit( F =unction oint$ er Staff-#ont/

    7uration F Sc/e&ule HCalen&arJ #ont/$

    Ti*e Efficienc( F =unction oint$ er #ont/

    Co$t F er =unction

    Co( ,ig/t irtual nier$it( of ai$tan 40

  • 8/12/2019 Software Engineering II - CS605 Handouts

    41/179

    CS605 Software Engineering-II VU

    Lecture No. 10

    unction oint Counting roce%%

    T/e following &iagra* &eict$ t/e function oint counting roce$$.

    T/e$e $te$ are elaborate& in t/e following $ub$ection$. T/e ter*$ an& &efinition$ are t/eone$ u$e& b( I=G an& /ae been taen &irectl( fro* t/e I=G =unction ointCounting ractice$ #anual HC#J ,elea$e 4.1. T/e following can t/erefore be treate& a$an abri&ge& er$ion of t/e I=G C# ,elea$e 4.1.

    +eter'ining t!e t2*e of count9 =unction oint count *a( be &ii&e& into t/e following t(e$1. +e,elo*'ent Count 9 &eelo*ent function oint count inclu&e$ all function$

    i*acte& Hbuilt or cu$to*i+e&J b( t/e ro8ect actiitie$.2. En!ance'ent Count 9n en/ance*ent function oint count inclu&e$ all t/e

    function$ being a&&e&% c/ange& an& &elete&. T/e boun&ar( of t/e alicationH$Ji*acte& re*ain$ t/e $a*e. T/e functionalit( of t/e alicationH$J reflect$ t/e i*actof t/e function$ being a&&e&% c/ange& or &elete&.

    3. #**lication Count 9n alication function oint count *a( inclu&e% &een&ing on

    t/e uro$e He.g.% roi&e a acage a$ t/e $oftware $olutionJaJ onl( t/e function$ being u$e& b( t/e u$er

    Co( ,ig/t irtual nier$it( of ai$tan 41

    7eter*ine t/e t(e ofcount

    En/ance*ent7eelo*ent9lication

    7efine t/e alicationboun&ar(

    Count Tran$actional

    =unction$

    EIEAE@

    Count 7ata

    =unction$

    IL=EI=

    Calculate alue

    9&8u$t*ent =actor

    H9=J

    Contribution of 1

    general %2%te'

    c!aracteri%tic%

    Calculate na&8u$te& =Count H=J

    Tran$actional =unction$ P 7ata =unction$

    Calculate 9&8u$te&

    = Count

    = 9=

  • 8/12/2019 Software Engineering II - CS605 Handouts

    42/179

    CS605 Software Engineering-II VU

    bJ all t/e function$ &eliere&cJ T/e alication boun&ar( of t/e two count$ i$ t/e $a*e an& i$ in&een&ent of t/e

    scope.

    +efining t!e #**lication "oundar2

    T/e alication boun&ar( i$ ba$icall( t/e $($te* contet &iagra* an& &eter*ine$ t/e$coe of t/e count. It in&icate$ t/e bor&er between t/e $oftware being *ea$ure& an& t/eu$er. It i$ t/e concetual interface between t/e Uinternal: alication an& t/e Ueternal:u$er worl&. It &een&$ uon t/e u$er:$ eternal iew of t/e $($te* an& i$ in&een&ent oft/e tool an& tec/nolog( u$e& to acco*li$/ t/e ta$.

    T/e o$ition of t/e alication boun&ar( i$ i*ortant becau$e it i*act$ t/e re$ult of t/efunction oint count. T/e alication boun&ar( a$$i$t$ in i&entif(ing t/e &ata entering t/ealication t/at will be inclu&e& in t/e $coe of t/e count.

    Count +ata unction%

    Count of t/e &ata function$ i$ contribution of t/e &ata *aniulate& an& u$e& b( t/ealication towar&$ t/e final function oint count. T/e &ata i$ &ii&e& into two categorie$t/e&nternal 'ogical Files HIL=J an& t/e External &nterface Files HEI=J. T/e$e an& t/erelate& concet$ are &efine& an& elaine& a$ follow$.

    Internal Logical ile% IL7

    9n internal logical file HIL=J i$ a u$er i&entifiable grou of logicall( relate& &ata or

    control infor*ation *aintaine& wit/in t/e boun&ar( of t/e alication. T/e ri*ar( intentof an IL= i$ to /ol& &ata *aintaine& t/roug/ one or *ore ele*entar( roce$$e$ of t/ealication being counte&.

    E)ternal Interface ile%

    9n eternal interface file HEI=J i$ a u$er i&entifiable grou of logicall( relate& &ata orcontrol infor*ation reference& b( t/e alication% but *aintaine& wit/in t/e boun&ar( ofanot/er alication. T/e ri*ar( intent of an EI= i$ to /ol& &ata reference& t/roug/ oneor *ore ele*entar( roce$$e$ wit/in t/e boun&ar( of t/e alication counte&. T/i$ *ean$an EI= counte& for an alication *u$t be in an IL= in anot/er alication.

    +ifference between IL% and EI%

    T/e ri*ar( &ifference between an internal logical file an& an eternal interface file i$t/at an EI= i% not *aintaine& b( t/e alication being counte&% w/ile an IL= i$.

    +efinition% for E'bedded Ter'%

    T/e following aragra/$ furt/er &efine IL=$ an& EI=$ b( &efining e*be&&e& ter*$wit/in t/e &efinition$.

    Control Infor'ation

    Co( ,ig/t irtual nier$it( of ai$tan 4

  • 8/12/2019 Software Engineering II - CS605 Handouts

    43/179

    CS605 Software Engineering-II VU

    (ontrol &nformation i$ &ata t/at influence$ an ele*entar( roce$$ of t/e alication beingcounte&. It $ecifie$ w/at% w/en% or /ow &ata i$ to be roce$$e&. =or ea*le% $o*eone int/e a(roll &eart*ent e$tabli$/e$ a(*ent c(cle$ to $c/e&ule w/en t/e e*lo(ee$ foreac/ location are to be ai&. T/e a(*ent c(cle% or $c/e&ule% contain$ ti*ing infor*ationt/at affect$ w/en t/e ele*entar( roce$$ of a(ing e*lo(ee$ occur$.

    U%er Identifiable

    T/e ter* user identifiable refer$ to &efine& re'uire*ent$ for roce$$e$ an&Oor grou$ of&ata t/at are agree& uon% an& un&er$too& b(% bot/ t/e u$erH$J an& $oftware &eeloerH$J.=or ea*le% u$er$ an& $oftware &eeloer$ agree t/at a >u*an ,e$ource$ 9licationwill *aintain an& $tore E*lo(ee infor*ation in t/e alication.

    aintained

    T/e ter* maintained i$ t/e abilit( to *o&if( &ata t/roug/ an ele*entar( roce$$.Ea*le$ inclu&e% but are not li*ite& to% a&&% c/ange% &elete% oulate% rei$e% u&ate%a$$ign% an& create.

    Ele'entar2 roce%%

    9n elementary process i$ t/e $*alle$t unit of actiit( t/at i$ *eaningful to t/e u$erH$J. =orea*le% a u$er re'uire$ t/e abilit( to a&& a new e*lo(ee to t/e alication. T/e u$er&efinition of e*lo(ee inclu&e$ $alar( an& &een&ent infor*ation. =ro* t/e u$er

    er$ectie% t/e $*alle$t unit of actiit( i$ to a&& a new e*lo(ee. 9&&ing one of t/eiece$ of infor*ation% $uc/ a$ $alar( or &een&ent% i$ not an actiit( t/at woul& 'ualif( a$

    an ele*entar( roce$$. T/e elementary process *u$t be $elf-containe& an& leae t/ebu$ine$$ of t/e alication being counte& in a con$i$tent $tate. =or ea*le% t/e u$erre'uire*ent$ to a&& an e*lo(ee inclu&e $etting u $alar( an& &een&ent infor*ation. Ifall t/e e*lo(ee infor*ation i$ not a&&e&% an e*lo(ee /a$ not (et been create&. 9&&ing$o*e of t/e infor*ation alone leae$ t/e bu$ine$$ of a&&ing an e*lo(ee in anincon$i$tent $tate. If bot/ t/e e*lo(ee $alar( an& &een&ent infor*ation i$ a&&e&% t/i$unit of actiit( i$ co*lete& an& t/e bu$ine$$ i$ left in a con$i$tent $tate.

    ILEI Counting 4ule%

    T/i$ $ection &efine$ t/e rule$ t/at al( w/en counting internal logical file$ an& eternalinterface file$.

    Su''ar2 of Counting rocedure%

    T/e IL= an& EI= counting roce&ure$ inclu&e t/e following two actiitie$1J I&entif( t/e IL=$ an& EI=$.2J 7eter*ine t/e IL= or EI= co*leit( an& t/eir contribution to t/e una&8u$te& function

    oint count. IL= an& EI= counting rule$ are u$e& for eac/ actiit(.

    T/ere are two t(e$ of rule$

    VWI&entification rule$VWCo*leit( an& contribution rule$

    Co( ,ig/t irtual nier$it( of ai$tan 43

  • 8/12/2019 Software Engineering II - CS605 Handouts

    44/179

    CS605 Software Engineering-II VU

    T/e following li$t outline$ /ow t/e rule$ are re$ente&VWIL= i&entification rule$VWEI= i&entification rule$VWCo*leit( an& contribution rule$% w/ic/ inclu&e

    VW7ata ele*ent t(e$ H7ET$JVW,ecor& ele*ent t(e$ H,ET$J

    IL Identification 4ule%

    To i&entif( IL=$% loo for grou$ of &ata or control infor*ation t/at $ati$f( t/e &efinitionof an IL=. 9ll of t/e following counting rule$ *u$t al( for t/e infor*ation to becounte& a$ an IL=. T/e grou of &ata or control infor*ation i$ logical an& u$er i&entifiable.

    T/e grou of &ata i$ *aintaine& t/roug/ an ele*entar( roce$$ wit/in t/e alication

    boun&ar( being counte&.

    EI Identification 4ule%

    To i&entif( EI=$% loo for grou$ of &ata or control infor*ation t/at $ati$f( t/e &efinitionof an EI=. 9ll of t/e following counting rule$ *u$t al( for t/e infor*ation to becounte& a$ an EI=.

    T/e grou of &ata or control infor*ation i$ logical an& u$er i&entifiable.

    T/e grou of &ata i$ reference& b(% an& eternal to% t/e alication being counte&.

    T/e grou of &ata i% not 'aintainedb( t/e alication being counte&. T/e grou of &ata i$ *aintaine& in an IL= of anot/er alication.

    Co'*le)it2 and Contribution +efinition% and 4ule%

    T/e nu*ber of IL=$% EI=$% an& t/eir relatie functional co*leit( &eter*ine t/econtribution of t/e &ata function$ to t/e una&8u$te& function oint count. 9$$ign eac/i&entifie& IL= an& EI= a functional co*leit( ba$e& on t/e nu*ber of &ata ele*ent t(e$H7ET$J an& recor& ele*ent t(e$ H,ET$J a$$ociate& wit/ t/e IL= or EI=. T/i$ $ection&efine$ 7ET$ an& ,ET$ an& inclu&e$ t/e counting rule$ for eac/.

    +ET +efinition

    9 data element type i$ a uni'ue u$er recogni+able% non-reeate& fiel&.

    +ET 4ule%

    T/e following rule$ al( w/en counting 7ET$1. Count a 7ET for eac/ uni'ue u$er recogni+able% non-reeate& fiel& *aintaine& in or

    retriee& fro* t/e IL= or EI= t/roug/ t/e eecution of an ele*entar( roce$$. =orea*le

    9n account nu*ber t/at i$ $tore& in *ultile fiel&$ i$ counte& a$ one 7ET.

    Co( ,ig/t irtual nier$it( of ai$tan 44

  • 8/12/2019 Software Engineering II - CS605 Handouts

    45/179

    CS605 Software Engineering-II VU

    9 before or after i*age for a grou of 10 fiel&$ *aintaine& for au&it uro$e$woul& count a$ one 7ET for t/e before i*age Hall 10 fiel&$J an& a$ one 7ET fort/e after i*age Hall 10 fiel&$J for a total of 2 7ET$.

    T/e re$ultH$J of a calculation fro* an ele*entar( roce$$% $uc/ a$ calculate& $ale$ta alue for a cu$to*er or&er *aintaine& on an IL= i$ counte& a$ one 7ET on t/e

    cu$to*er or&er IL=. 9cce$$ing t/e rice of an ite* w/ic/ i$ $ae& to a billing file or fiel&$ $uc/ a$ a

    ti*e $ta* if re'uire& b( t/e u$erH$J are counte& a$ 7ET$. If an e*lo(ee nu*ber w/ic/ aear$ twice in an IL= or EI= a$ H1J t/e e( of t/e

    e*lo(ee recor& an& H2J a foreign e( in t/e &een&ent recor&% count t/e 7ETonl( once.

    ;it/in an IL= or EI=% count one 7ET for t/e 12 #ont/l( )u&get 9*ount fiel&$.Count one a&&itional fiel& to i&entif( t/e alicable *ont/. =or Ea*le

    2. ;/en two alication$ *aintain an&Oor reference t/e $a*e IL=OEI=% but eac/*aintain$Oreference$ $earate 7ET$% count onl( t/e 7ET$ being u$e& b( eac/

    alication to $i+e t/e IL=OEI=. =or Ea*le 9lication 9 *a( $ecificall( i&entif( an& u$e an a&&re$$ a$ $treet a&&re$$% cit(%

    $tate an& +i co&e. 9lication ) *a( $ee t/e a&&re$$ a$ one bloc of &ata wit/outregar& to in&ii&ual co*onent$. 9lication 9 woul& count four 7ET$9lication ) woul& count one 7ET.

    9lication M *aintain$ an&Oor reference$ an IL= t/at contain$ a SSN% Na*e%Street Na*e% #ail Sto% Cit(% State% an& Xi. 9lication X *aintain$ an&Oorreference$ t/e Na*e% Cit(% an& State. 9lication M woul& count $een 7ET$9lication X woul& count t/ree 7ET$.

    3. Count a 7ET for eac/ iece of &ata re'uire& b( t/e u$er to e$tabli$/ a relation$/iwit/ anot/er IL= or EI=. In an >, alication% an e*lo(eeQ$ infor*ation i$ *aintaine& on an IL=. T/e

    e*lo(ee:$ 8ob na*e i$ inclu&e& a$ art of t/e e*lo(eeQ$ infor*ation. T/i$ 7ETi$ counte& becau$e it i$ re'uire& to relate an e*lo(ee to a 8ob t/at ei$t$ in t/eorgani+ation. T/i$ t(e of &ata ele*ent i$ referre& to a$ aforeign key.

    In an ob8ect oriente& HAAJ alication% t/e u$er re'uire$ an a$$ociation betweenob8ect cla$$e$% w/ic/ /ae been i&entifie& a$ $earate IL=$. Location na*e i$ a7ET in t/e Location EI=. T/e location na*e i$ re'uire& w/en roce$$inge*lo(ee infor*ation con$e'uentl(% it i$ al$o counte& a$ a 7ET wit/in t/eE*lo(ee IL=.

    Co( ,ig/t irtual nier$it( of ai$tan 45

  • 8/12/2019 Software Engineering II - CS605 Handouts

    46/179

    CS605 Software Engineering-II VU

    Lecture No. 11

    unction oint Counting roce%% cont.7

    4ET +efinition

    9 record element type H,ETJ i$ a u$er recogni+able $ubgrou of &ata ele*ent$ wit/in anIL= or EI=. T/ere are two t(e$ of $ubgrou$ Ational

    #an&ator(Optional subgroups are t/o$e t/at t/e u$er /a$ t/e otion of u$ing one or none of t/e$ubgrou$ &uring an ele*entar( roce$$ t/at a&&$ or create$ an in$tance of t/e &ata.

    )andatory subgroups are $ubgrou$ w/ere t/e u$er *u$t u$e at lea$t one. =or ea*le% in

    a >u*an ,e$ource$ 9lication% infor*ation for an e*lo(ee i$ a&&e& b( entering $o*egeneral infor*ation. In a&&ition to t/e general infor*ation% t/e e*lo(ee i$ a $alarie& or/ourl( e*lo(ee. T/e u$er /a$ &eter*ine& t/at an e*lo(ee *u$t be eit/er $alarie& or/ourl(. Eit/er t(e can /ae infor*ation about &een&ent$. =or t/i$ ea*le% t/ere aret/ree $ubgrou$ or ,ET$ a$ $/own below Salarie& e*lo(ee H*an&ator(J inclu&e$ general infor*ation

    >ourl( e*lo(ee H*an&ator(J inclu&e$ general infor*ation

    7een&ent HotionalJ

    4ET 4ule%One of t/e following rule$ alie$ w/en counting ,ET$ Count a ,ET for eac/ otional or *an&ator( $ubgrou of t/e IL= or EI=.

    Or

    If t/ere are no $ubgrou$% count t/e IL= or EI= a$ one ,ET.

    @int% to @el* wit! CountingT/e following /int$ *a( /el (ou al( t/e IL= an& EI= counting rule$.Caution< T/e$e /int$ are not rule$ an& $/oul& not be u$e& a$ rule$.1. I$ t/e &ata a logical grou t/at $uort$ $ecific u$er re'uire*ent$

    aJ 9n alication can u$e an IL= or EI= in *ultile roce$$e$% but t/e IL= or EI= i$counte& onl( once.

    bJ 9 logical file cannot be counte& a$ bot/ an IL= an& EI= for t/e $a*e alication.If t/e &ata grou $ati$fie$ bot/ rule$% count a$ an IL=.

    cJ If a grou of &ata wa$ not counte& a$ an IL= or EI= it$elf% count it$ &ata ele*ent$a$ 7ET$ for t/e IL= or EI=% w/ic/ inclu&e$ t/at grou of &ata.

    &J 7o not a$$u*e t/at one /($ical file% table or ob8ect cla$$ e'ual$ one logical filew/en i