Assignment: TB (Compulsory) PART A I. Fill up the blanks using suitable or! or phrase in the "olloing senten#es: 1) Software is a set of INSTRUCTINS R C!"UTER "R#R$!S t%at w%en e&ecuted 'ro(ide desired function and 'erfor)ance* +) Software is a 'rocess and "R,UCT* -) T%e INCRE!ENT$. !,E. )et%od is a/so 0nown as t%e iterati(e en%ance)ent )ode/* 4) $n e&terna/ entit1 is re'resented using E2TERN$. ,ESI#N INTER3$CE in a ,3,* 4) T%e software re5uire)ents dea/ wit% t%e RE6UIRE!ENTS of t%e 'ro'osed s1ste)* 7) T%e wea0est cou'/ing t%at is )ost desirab/e is ,$T$ CU".IN#* 8) T%e t%ree i)'ortant /e(e/s of abstraction are "9:SIC$. .E;E.< .#IC$. .E;E. = ;IE> .E;E. * ?) "*,*.* stands for "R#R$! ,ESI#N .$N#U$#E* @) BR>SIN# T.S %e/'s to (iew t%e source code* 1A) E2ECUT$B.E C,E too/s %e/' in code creation< debugging and testing* 11) T%e two 0inds of 'rogra) docu)entation are INTERN$. $N, E2TERN$. 1+) Esti)ation )a0es use of an i)'ortant a''roac% ,EC!"SITIN* 1-) "ERT stands for "R#R$! E;$.U$TIN $N, RE;IE> TEC9NI6UE* II. $rite brie" ansers to the "olloing %uestions: &) 'e"ine the terms risk mitigation( risk monitoring. $ns: Ris0 )itigation refers to a(oiding ris0s b1 de(e/o'ing a strateg1 for reducing t%e turn o(er t%ereb1 ado'ting a 'roacti(e a''roac% to ris0s* Ris0 )onitoring refers to )onitoring t%e facts t%at )a1 'ro(ide an indication of w%et%er t%e ris0 is beco)ing )ore or /ess /i0e/1* )) *ame the important approa#hes use! in program !ebugging. $ns: T%ere are t%ree debugging a''roac%es co))on/1 used - It occurs as a conse5uence of successfu/ testing* - >%en a test can unco(ers an error< t%en debugging< a 'rocess t%at resu/ts in t%e re)o(a/ of errors occur* - ,ebugging 'rocess begins wit% t%e e&ecution of test cases* +) $hat are spe#i"i#ation languages, -i.e an e/ample. $ns: s'ecification /anguages 'ossess )an1 desired 5ua/ities of an SRS* Un/i0e for)a/ /anguages of SRS )ust be e&act< wit%out a)biguit1< and 'recise because t%e design s'ecification< state)ent of wor0< and ot%er 'roject docu)ents are w%at dri(e t%e de(e/o')ent of t%e fina/ 'roduct* E&a)'/e:- Structured Eng/is%< Regu/ar E&'ression* PART B &. a) $hat is so"tare, 0ist out the important #hara#teristi#s o" so"tare. $ns: Software is a set of instructions of co)'uter 'rogra)s t%at w%en e&ecuted 'ro(ide desired function and 'erfor)ance* It is bot% a 'rocess and a 'roduct* To gain an understanding of software< it is i)'ortant to e&a)ine t%e c%aracteristics of software< w%ic% differ considerab/1 fro) t%ose of %ardware* Software C%aracteristic 1)* Software is de(e/o'ed or engineered< it is not )anufactured* Un/i0e %ardware< software is /ogica/ rat%er t%an '%1sica/* It %as to be designed we// before 'roducing it* In s'ite of a(ai/abi/it1 of )an1 auto)ated software de(e/o')ent too/s< it is t%e s0i// of t%e indi(idua/< creati(it1 of t%e de(e/o'ers and 'ro'er )anage)ent b1 t%e 'roject )anager t%at counts for a good software 'roduct* +)* Software does not Bwear outC* T%e %ardware co)'onents start deteriorating D t%e1 are subjected to en(iron)enta/ )a/adies suc% as dust< (ibration< te)'erature etc* and at so)e 'oint of ti)e t%e1 tend to brea0down* T%e defected co)'onents can t%en be traced and re'/aced* -) !ost software is custo)-bui/t< rat%er t%an being asse)b/ed fro) e&isting co)'onents !ost of t%e engineered 'roducts are first designed before t%e1 are )anufactured* ,esigning inc/udes identif1ing (arious co)'onents for t%e 'roduct before t%e1 are actua//1 asse)b/ed* 9ere se(era/ 'eo'/e can wor0 inde'endent/1 on t%ese co)'onents t%us )a0ing t%e )anufacturing s1ste) %ig%/1 f/e&ib/e* In software < brea0ing a 'rogra) into )odu/es is a difficu/t tas0< since eac% )odu/e is %ig%/1 inter/in0ed wit% ot%er )odu/es* b) 1/plain the ater"all mo!el o" so"tare pro#ess. $hat are its limitations, Ans: It is t%e si)'/est and t%e wide/1 used 'rocess )ode/ for software de(e/o')ent* 9ere t%e '%ases in(o/(ed in t%e software de(e/o')ent are organiEed in a /inear order* In a t1'ica/ waterfa// )ode/< a 'roject begins wit% t%e feasibi/it1 ana/1sis* on successfu//1 de)onstrating t%e feasibi/it1 of a 'roject< t%e re5uire)ents ana/1sis and 'roject '/anning begins* T%e design starts after co)'/eting t%e re5uire)ents ana/1sis and coding starts after co)'/eting t%e design '%ase* T%e /i)itations of waterfa// )ode/ are: T%e )ode/ states t%at t%e entire set of re5uire)ents s%ou/d be froEen before de(e/o')ent begins* T%is is 'ossib/e for s)a// 'rojects< but is difficu/t for /arge 'rojects w%ere t%e e&act re5uire)ents )a1 not be 0nown in ad(ance* T%e waterfa// )ode/ re5uires for)a/ docu)ents after eac% '%ase* T%is is not 'ossib/e in #UI-based a''/ications w%ere t%e docu)entation wi// be (er1 e&tensi(e* T%e custo)er sees t%e software on/1 at t%e end of t%e de(e/o')ent '%ase* $s a resu/t< t%e custo)er cannot suggest an1 c%anges unti/ t%e 'roduct is de/i(ered* ). a) 'es#ribe the three generi# .ies o" so"tare engineering. $ns: T%e software engineering as suc% can be categoriEed in to t%ree generic '%ases< regard/ess of a''/ication area< 'roject siEe or co)'/e&it1* T%e t%ree generic '%ases of software engineering are:- T%e definition '%ase T%e de(e/o')ent '%ase T%e )aintenance '%ase T%e definition '%ase de(e/o'er atte)'ts to identif1 w%at infor)ation is to be 'rocessed< w%at function and 'erfor)ance are desired< w%at s1ste) be%a(ior can be e&'ected< w%at interfaces are to be estab/is%ed< w%at design constraints e&ists< and w%at (a/idation criteria are re5uired to define a successfu/ s1ste)* T%e de(e/o')ent '%ase atte)'ts to define %ow data are to be structured< %ow function is to be i)'/e)ented as a software arc%itecture< %ow 'roduces are to be i)'/e)ented< %ow design wi// be trans/ated< into a 'rogra))ing /anguage< %ow testing wi// be 'erfor)ed* T%e )aintenance '%ase focus on c%ange t%at is associated wit% t%e software* Correction: - it is /i0e/1 t%at are custo)ers wi// find errors or defects in t%e software in s'ite of 5ua/it1 assurance acti(ities* $da'tations: D $s ti)e 'rogress< it is /i0e/1 t%at t%e origina/ en(iron)ent for w%ic% t%e software was de(e/o'ed is /i0e/1 to c%ange* En%ance)ent: D as software is used< t%e custo)er wi// recogniEe t%e need for additiona/ functiona/ re5uire)ents t%at wi// benefit %i)* "re(ention: D co)'uter software deteriorates due to c%ange* So< 're(enti(e )aintenance< often ca//ed software reengineering )ust be conducted in order to )a0e c%anges to t%e co)'uter software )ore easi/1* b) 0ist out the important #hara#teristi#s o" goo! 2R2. $ns: $ good SRS s%ou/d be: Co)'/ete Consistent $ccurate !odifiab/e Ran0ed Testab/e Traceab/e Una)biguous ;a/id +. a) -i.e the outline stru#ture o" 2R2. $ns: T%e out/ine of SRS structure is: Introduction 1*1 "ur'ose 1*+ ,ocu)ent con(entions 1*- Intended audience 1*4 $dditiona/ infor)ation 3or)atted: Bu//ets and Nu)bering 1*4 Contact infor)ationFSRS tea) )e)bers 1*7 References (era// ,escri'tion +*1 "roduct 'ers'ecti(e +*+ "roduct functions +*- User c/asses and c%aracteristics +*4 'erating en(iron)ent +*4 User en(iron)ent +*7 ,esignFi)'/e)entation constraints +*8 $ssu)'tions and de'endencies E&terna/ Interface Re5uire)ents -*1 User interfaces -*+ 9ardware interfaces -*- Software interfaces -*4 Co))unication 'rotoco/s and interfaces S1ste) 3eatures 4*1 S1ste) feature $ 4*1*1 ,escri'tion and 'riorit1 4*1*+ $ctionFresu/t 4*1*- 3unctiona/ re5uire)ents 4*+ S1ste) feature B t%er Nonfunctiona/ Re5uire)ents 4*1 "erfor)ance re5uire)ents 4*+ Safet1 re5uire)ents 4*- Securit1 re5uire)ents 4*4 Software 5ua/it1 attributes 4*4 "roject docu)entation 4*7 User docu)entation b) $hy is !esign an important phase in so"tare !e.elopment li"e #y#le, 'es#ribe !esign pro#ess. $ns: ,esign is an i)'ortant '%ase in t%e software de(e/o')ent /ife c1c/e because it bridges t%e re5uire)ents s'ecification and t%e fina/ so/ution for satisf1ing t%e re5uire)ents* T%e software design is an acti(it1 w%ic% is after t%e re5uire)ents ana/1sis acti(it1* T%is '%ase begins w%en t%e re5uire)ents docu)ent for t%e s1ste) to de(e/o' is a(ai/ab/e* ,esign is an i)'ortant '%ase in t%e software de(e/o')ent /ife c1c/e< it bridges t%e re5uire)ents s'ecification and t%e fina/ so/ution for satisf1ing t%e re5uire)ents* T%e design 'rocess for t%e software %as two /e(e/s:- 1* S1ste) design or to'-/e(e/ design +* ,etai/ed design or /ogic design S1ste) design Using t%is< t%e )odu/es t%at are needed for t%e s1ste) are decided< t%e s'ecifications of t%ese )odu/es and %ow t%ese )odu/es need to be connected are a/so decided* ,etai/ed design using t%is< t%e interna/ design of t%e )odu/es are decided or %ow t%e s'ecifications of t%e )odu/es can be satisfied are decided* T%is t1'e of design essentia//1 e&'ands t%e s1ste) design to contain )ore detai/ed descri'tion of t%e 'rocessing /ogic and data structures so t%at t%e designs is sufficient/1 co)'/ete for coding* 3. 4utline programming gui!elines ith regar! to: i) Control stru#tures $ns: !an1 of t%e contro/ structures for a 'rogra) co)'onent are gi(en b1 t%e arc%itecture and design of a s1ste)* $nd t%e gi(en design is trans/ated in to code* In case of so)e arc%itecture< suc% as i)'/icit in(ocation and object-oriented design< contro/ is based on t%e s1ste) states and c%anges in (ariab/es* ii) Algorithms $ns: T%e 'rogra) design often s'ecifies a c/ass of a/gorit%)s to be used in coding* 3or e&a)'/e< t%e design )a1 te// t%e 'rogra))er to use binar1 searc% tec%ni5ue* E(en t%oug%< a 'rogra))er %as /ot of f/e&ibi/it1 in con(erting t%e a/gorit%) to code< it de'ends on t%e constraints of t%e i)'/e)entation /anguage and %ardware* iii) 'ata stru#tures $ns: ,ata structures can inf/uence t%e organiEation and f/ow of a 'rogra)* In so)e cases< it can e(en inf/uence t%e c%oice of 'rogra))ing /anguage* 3or e&a)'/e< .IS" is a /anguage for /ist 'rocessing* It is so designed t%at it contains structures t%at )a0e it )uc% easier for %and/ing /ists t%an ot%er /anguages* An! i.) -eneral gui!elines $ns: T%ere are se(era/ strategies t%at are usefu/ in 'reser(ing t%e design 5ua/it1 of a 'rogra):- .oca/iEation in'ut and out'ut :- t%ose 'arts of a 'rogra) t%at read in'ut or generate out'ut are %ig%/1 s'ecia/iEed and )ust ref/ect c%aracteristics of t%e under/1ing %ardware and software * "seudo-code can be used for transfor)ing t%e design to code t%roug% a c%osen 'rogra))ing /anguage* Re(ise t%e design and rewrite t%e code unti/ one is co)'/ete/1 satisfied wit% t%e resu/t* Reuse code co)'onents if 'ossib/e* 5. a) $hat is so"tare testing , 'es#ribe the to ays o" testing any engineere! so"tare pro!u#t. $ns: Software testing is t%e 'rocess of testing t%e functiona/it1 and correctness of software b1 running it* T%e two wa1s of testing an1 engineered software 'roduct:- 1) >%ite-Bo& Testing +) B/ac0-Bo& testing B/ac0-bo& testing It is a/so 0nown as functiona/ testing* Gnowing t%e s'ecified function t%at t%e 'roduct %as been designed to 'erfor)< tests can be conducted to de)onstrate t%at eac% function is fu//1 o'erationa/ E&a)'/e: - Boundar1 (a/ue ana/1sis* >%ite Bo& Testing It is a/so 0nown as structura/ testing* Gnowing t%e interna/ wor0ing of 'roduct< test can be conducted to ensure t%at a// interna/ o'erations 'erfor) according to s'ecification t%at a// interna/ co)'onents %a(e been ade5uate/1* E2$!".E: - basic 'at% testing* b) $hat is the !i""eren#e beteen .eri"i#ation an! .ali!ation, $ns: ;erification is a set of acti(ities t%at ensures t%at t%e software correct/1 i)'/e)ents a s'ecified function w%i/e ;a/idation is a set of acti(ities t%at ensures t%at t%e software t%at %as been bui/t< is traceab/e to t%e custo)er re5uire)ents* 6. a) 'es#ribe the !i""erent kin!s o" so"tare !e.elopment team stru#ture. $ns: T%e different 0inds of software de(e/o')ent tea) structure are: ,e)ocratic decentra/iEed tea) Contro//ed centra/iEed tea) Contro//ed decentra/iEed tea) ,e)ocratic decentra/iEed tea) It consists of ten or few nu)ber of 'rogra))ers* T%e goa/s of t%e grou' are set b1 consensus E(er1 )e)ber is considered for ta0ing )ajor decision #rou' /eaders%i' rotates a)ong grou' )e)ber Contro//ed centra/iEed tea) It consists of a c%ief 'rogra))er< w%o is res'onsib/e for a// t%e )ajor tec%nica/ decisions of t%e 'roject* 9e a/so does )ost of t%e design acti(ities and a//ocates coding 'art to eac% and e(er1 )e)ber of t%e tea)* Under %i)< %e %as a bac0u' 'rogra))er< 'rogra) /ibrarian< and 'rogra))ers T%e bac0u' 'rogra))er %e/'s t%e c%ief in )a0ing decisions and ta0es o(er t%e ro/e of c%ief in absence of t%e c%ief 'rogra))er* T%e 'rogra) /ibrarian is res'onsib/e for )aintaining t%e docu)ents and ot%er co))unication re/ated wor0* Contro//ed decentra/iEed tea) It co)bines t%e strengt% of t%e de)ocratic and c%ief 'rogra))er tea)s It consists of a 'roject /eader w%o %as a grou' of senior 'rogra))ers under %i) and a grou' of junior 'rogra))ers under a senior 'rogra))er* T%e co))unication between t%e senior and junior 'rogra))ers are /i0e ego-/ess tea)< T%is structure is best suited for e(er1 si)'/e 'rojects or researc%-t1'e wor0s* b) $hat is C4C474 mo!el, 1/plain the basi# C4C474 mo!el. $ns: T%e CC! )ode/ 'redicts t%e effort and duration of a 'roject based on in'uts re/ating to t%e siEe of t%e resu/ting s1ste) and a nu)ber of Bcost dri(ersC t%at affect 'roducti(it1* T9E B$SIC CC! !,E. Basic CC! )ode/ esti)ates t%e software de(e/o')ent effort using on/1 a sing/e 'redictor (ariab/e and t%ree software de(e/o')ent )odes* Basic CC! is good for 5uic0< ear/1< roug%< order of )agnitude esti)ates of software costs< but its accurac1 is necessari/1 /i)ited because of its /ac0 of factors w%ic% %a(e a significant inf/uence on software costs* T%e basic e5uation for t%e CC! )ode/ is about t%e effort esti)ate in 'ersons D)ont% re5uired de(e/o' a 'roject and t%e G.C< t%e nu)ber of de/i(ered /ines of code for t%e 'roject* 8. a) 'e"ine the terms: %uality( %uality assuran#e an! %uality #ontrol. $ns: 9:A0IT;: < Software 5ua/it1 is confor)ance to t%e e&'/icit/1 stated functiona/ and 'erfor)ance re5uire)ents< e&'/icit/1 docu)ented de(e/o')ent standards< and i)'/icit c%aracteristics t%at are e&'ected of a// 'rofessiona//1 de(e/o'ed software* 9:A0IT; A22:RA*C1: < 6ua/it1 assurance is an auditing and re'orting function of )anage)ent* 9:A0IT; C4*TR40: < 6ua/it1 contro/ consists of a series of acti(ities /i0e ins'ections< re(iews< and tests< w%ic% are carried out during t%e entire /ife c1c/e of software< so t%at eac% wor0 'roduct )eets t%e re5uire)ents< '/aced u'on it* b) 7ention the ob=e#ti.es o" "ormal te#hni#al re.ie. $ns: T%is is a software 5ua/it1 assurance acti(it1 t%at is 'erfor)ed b1 software engineers* BHECTI;ES To detect t%e errors in functions< /ogic or i)'/e)entation found in software* To (erif1 t%at t%e software under re(iew )eets its re5uire)ents* To ensure t%at t%e software %as been re'resented according to 'redefined standards To ac%ie(e software wit% consistent 5ua/it1 and on ti)e To )a0e 'rojects )ore )anageab/e* It acts as a training ground for junior engineers to obser(e different a''roac%es to software ana/1sis< design< i)'/e)entation 3TR inc/udes wa/0t%roug%s< ins'ections< round-robin re(iews* >. $rite short notes on: a) 2o"tare engineering $ns: Software engineering is a disci'/ine* It uses t%e e&isting too/s and )et%ods of software de(e/o')ent and s1ste)atiEes t%e entire 'rocess of software de(e/o')ent* T%ere are a nu)ber of for)a/ definitions for software engineering< gi(en b1 e&'erts in t%e fie/d* 9owe(er for t%e 'ur'ose of understanding< we s%a// see so)e of t%e)* BT%e a''/ication of a s1ste)atic< disci'/ined< 5uantifiab/e a''roac% to t%e de(e/o')ent< o'eration< and )aintenance of software< t%at is< t%e a''/ication of engineering to software B* b) The spiral mo!el o" so"tare pro#ess $ns: T%e acti(ities in t%is )ode/ can be organiEed /i0e a s'ira/ t%at %as )an1 c1c/es* T1'ica//1 t%e inner c1c/es re'resent t%e ear/1 '%ase of re5uire)ent ana/1sis a/ong wit% t%e 'rotot1'ing and t%e outer s'ira/s re'resent t%e c/assic software /ifec1c/e* T%is )ode/ %as been di(ided into four 5uadrants< eac% 5uadrant re'resenting a )ajor acti(it1 /i0e '/anning< ris0 ana/1sis engineering and custo)er e(a/uation* T%e software 'rocess c1c/e begins wit% t%e '/anning acti(it1 re'resented b1 t%e first 5uadrant of t%is )ode/* Eac% c1c/e %ere begins wit% t%e identification of objecti(es for t%at c1c/e< t%e a/ternati(es and constraints associated wit% t%at objecti(e* #) Programming tools. $ns: "rogra))ing too/s is used to reduce ti)e s'ent on t%e de(e/o')ent of 'rogra)s* T%e too/s w%ic% used in 'rogra))ing too/s 1) source-code too/s - editing too/s< t%ese re/ate to t%e editing of source code - browsing too/s< %e/'s to (iew t%e source code T%e source-code beautifiers and te)'/ates not on/1 )a0es a 'rogra) /oo0 consistent but a/so standardiEe indentation st1/es< a/ign (ariab/e dec/arations and for)at co))ents* +) E&ecutab/e code too/s: Too/s t%at are re5uired for wor0ing wit% e&ecutab/e codes* it %e/'s in code creation< debugging and testing -) code creation %as four )ajor too/s w%ic% %e/' t%e de(e/o'er in con(erting t%e source code into e&ecutab/e code : 4) ,ebugging too/s %e/' in debugging t%e code* 4) Testing too/s %e/' in tracing t%e code errors*