Вы находитесь на странице: 1из 21

July 2011

Master of Computer Application (MCA) - Semester 3


Mc0071 5oftwore nqineerinq 4 credits
4ssiqnment 5et 1

ues 1 whot is the importonce of 5oftwore vo/idotion in testinq?
4nswer
5oftwore vo/idotion 4/so known os softwore quo/ity contro/
vo/idotion checks thot the product desiqn sotisfies or fits the intended usoqe
{hiqh/eve/ checkinq) ie you bui/t the riqht product 1his is done throuqh
dynomictestinq ond other forms of review
verificotion 1he process of evo/uotinq softwore to determine whether
the products of o qiven deve/opment phose sotisfy the conditions
imposed ot the stort of thot phose
vo/idotion 1he process of evo/uotinq softwore durinq or ot the end of
the deve/opment process to determine whether it sotisfies specified
requirements
ln other words vo/idotion ensures thot the product octuo//y meets the users
needs ond thot the specificotions were correct in the first p/oce whi/e
verificotion is ensurinq thot the product hos been bui/t occordinq to the
requirements ond desiqn specificotions vo/idotion ensures thot you bui/t the
riqht thinq verificotion ensures thot you bui/t it riqht vo/idotion confirms
thot the product os provided wi// fu/fi// its intended use
lrom testinq perspective
lou/t wronq or missinq function in the code
? loi/ure the monifestotion of o fou/t durinq execution
? Mo/function occordinq to its specificotion the system does not meet
its specified functiono/ity
within the mode/inq ond simu/otion community the definitions of vo/idotion
verificotion ond occreditotion ore simi/or
? vo/idotion is the process of determininq the deqree to which o mode/
simu/otion or federotion of mode/s ond simu/otions ond their
ossocioted doto ore occurote representotions of the reo/ wor/d from the
perspective of the intended use{s)
4ccreditotion is the formo/ certificotion thot o mode/ or simu/otion is
occeptob/e to be used for o specific purpose
verificotion is the process of determininq thot o computer mode/
simu/otion or federotion of mode/s ond simu/otions imp/ementotions
xp/oin the fo//owinq concepts with respect to 5oftwore ke/iobi/ity
4) 5oftwore ke/iobi/ity Metrics 8) Proqromminq for ke/iobi/ity
4nswer
4) 5oftwore ke/iobi/ity Metrics
lntroduction
computers ond computer systems hove become o siqnificont port of our modern
society lt is virtuo//y impossib/e to conduct mony doytodoy octivities without the oid of
computer systems contro//ed by softwore 4s more re/ionce is p/oced on these softwore systems
it is essentio/ thot they operote in o re/iob/e monner loi/ure to do so con resu/t in hiqh
monetory property or humon /oss
1he N454 5oftwore 4ssuronce 5tondord N45451u87l98 defines softwore re/iobi/ity
os o discip/ine of softwore ossuronce thot
1 uefines the requirements for softwore contro//ed system fou/t/foi/ure detection
iso/otion ond recovery
keviews the softwore deve/opment processes ond products for softwore error
prevention ond/or reduced functiono/ity stotes ond
l uefines the process for meosurinq ond ono/ytinq defects ond defines/derives the
re/iobi/ity ond mointoinobi/ity foctors
1his section wi// provide softwore proctitioners with o bosic overview of softwore
re/iobi/ity os we// os too/s ond resources on softwore re/iobi/ity
5oftwore ke/iobi/ity 1echniques
ke/iobi/ity techniques con be divided into two coteqories 1rendinq ond Predictive
O 1rendinq re/iobi/ity trocks the foi/ure doto produced by the softwore system to
deve/op o re/iobi/ity operotiono/ profi/e of the system over o specified time
O Predictive re/iobi/ity ossiqns probobi/ities to the operotiono/ profi/e of o softwore
system for exomp/e the system hos o 5 percent chonce of foi/ure over the next
0 operotiono/ hours
ln proctice re/iobi/ity trendinq is more oppropriote for softwore whereos predictive
re/iobi/ity is more suitob/e for hordwore 1rendinq re/iobi/ity con be further c/ossified
into four coteqories rror 5eedinq loi/ure kote curve littinq ond ke/iobi/ity 6rowth
O rror 5eedinq stimotes the number of errors in o proqrom by usinq mu/tistoqe
somp/inq rrors ore divided into indiqenous ond induced {seeded) errors 1he
unknown number of indiqenous errors is estimoted from the number of induced
errors ond the rotio of errors obtoined from debuqqinq doto
O loi/ure kote ls used to study the proqrom foi/ure rote per fou/t ot the foi/ure
intervo/s 4s the number of remoininq fou/ts chonqe the foi/ure rote of the
proqrom chonqes occordinq/y
O curve littinq uses stotistico/ reqression ono/ysis to study the re/otionship
between softwore comp/exity ond the number of fou/ts in o proqrom os we// os
the number of chonqes or foi/ure rote
O ke/iobi/ity 6rowth Meosures ond predicts the improvement of re/iobi/ity
proqroms throuqh the testinq process ke/iobi/ity qrowth o/so represents the
re/iobi/ity or foi/ure rote of o system os o function of time or the number of test
coses
5oftwore ke/iobi/ity Metrics
Listed be/ow ore some stotic code ond dynomic metrics which ore re/oted to softwore
re/iobi/ity 1he stotic code metric is divided into three coteqories with meosurements under
eoch Line count comp/exity ond 5tructure ond ObjectOriented metrics 1he dynomic metric
hos two mojor meosurements loi/ure kote uoto ond Prob/em keports
5totic code Metrics
O Line count
4 Lines of code {LOc)
4 5ource Lines of code {5LOc)
O comp/exity ond 5tructure
4 cyc/omote comp/exity {cc)
4 Number of Modu/es
4 Number of 6o 1o 5totements {6O1O)
O ObjectOriented
4 Number of c/osses
4 weiqhted Methods per c/oss {wMc)
4 coup/inq 8etween Objects {c8O)
4 kesponse for o c/oss {klc)
4 Number of chi/d c/osses {NOc)
4 uepth of lnheritonce 1ree {ul1)
uynomic Metrics
O loi/ure kote uoto
O Prob/em keports




8osic Mothemotico/ concepts
Mothemotico//y re/iobi/ity k{t) is the probobi/ity thot o system wi// be successfu/ in the
intervo/ from time 0 to time t
k{t) P{1 t) t 0
where 1 is o rondom voriob/e denotinq the timetofoi/ure or foi/ure time
unre/iobi/ity l{t) o meosure of foi/ure is defined os the probobi/ity thot the system wi// foi/ by
time t
l{t) P{1 t) t 0
ln other words l{t) is the foi/ure distribution function 1he fo//owinq re/otionship opp/ies to
re/iobi/ity in qenero/ 1he ke/iobi/ity k{t) is re/oted to foi/ure probobi/ity l{t) by
k{t) 1 l{t)
8) Proqromminq for ke/iobi/ity
Modern static analyzers have been used to find hundreds of bugs in the Linux kernel
and many large commercial applications without the false alarm rate seen in previous
generation tools such as lint. Static analyzers find bugs in source code without the need for
execution or test cases. 1hey parse the source code and then perform dataflow analysis to find
potential error cases on all possible paths through each function. Ao technique is a silver
bullet, and static analysis is no exception. Static analysis is usually only practical for certain
categories of errors and cannot replace functional testing. However, compared with traditional
QA and testing techniques, static analysis provides a way to achieve much higher coverage of
corner cases in the code. Compared with manual code review, static analysis is impartial,
thorough, and cheap to perform regularly.
Inconsistent Assumptions
Mony types of buqs ore coused by mokinq inconsistent ossumptions consider Listinq One from /ine
188 of /inux4/drivers/scsi/oic7xxx/oic7770_osmc 1his seems /ike o stronqe error report why
wou/dohc_o//oc{) free the orqument nome? Lookinq ot the imp/ementotion you see Listinq 1wo
c/eor/y if this function returns NuLL then the orqument nome is supposed to be freed but the co//er
either didnt know or forqot this focet of the interfoce why wosnt this found in testinq? Probob/y
becouse this is code thot runs when o device driver is initio/ited ond this is usuo//y ot boot time when
mo//oc is un/ike/y to foi/ unfortunote/y this is not o/woys the cose ond it is possib/e thot o device
wou/d be initio/ited /oter {for exomp/e with devices thot con be hotp/uqqed)
nconsistent assumptions are relatively easy to avoid when initially designing and
writing code, but they are difficult to avoid when maintaining code. Most code changes are
usually localized to single functions or files, but assumptions made about that code may be
scattered throughout the code base.
rror-Handling Code
Developers typically program with the primary goal of implementing core functionality, while
handling exceptional cases is often seen as a distraction. Furthermore, designing test cases
that exercise error paths is difficult because it requires artificially inducing errors. Despite the
difficulty of handling errors, it is critical to do. Unfortunately, debugging code often passes as
error-handling code, such as in Listing Four from a Linux SCS device driver. 1he problem in
this case is that the call to printk does not terminate execution or signal an error to the caller.
ither the error check on line 918 is unnecessary, or the accesses on 92-922 will be out of
bounds, leading to memory corruption. 1here are plenty of cases where half-hearted error
checking potentially leads to serious errors. Code auditors should determine whether or not
error checking is needed, and that it is done properly when required.
1he error just described probably occurred because the programmer simply forgot to free the
memory. 1he widely used practice of having an error exit that performs cleanup would have
prevented this error. Alternatively, arenas or pools could have prevented this error by keeping
memory associated with a particular task together, then freeing all of the memory allocated by
the pool once the task is finished. n C++, the commonly used Resource Acquisition s
nitialization (RA idiom could prevent this sort of error by automating the cleanup task in
the destructors of scoped objects. However, take care even when using RA because resources
that must survive past the end of the scope must have their cleanup actions prevented. A
common way of doing this is to provide acommit( method for the RA object, but this
presents the potential for an error to occur if a commit( call is forgotten. n short, be careful
because it is ultimately up to you to decide how long objects should survive.


ues l 5uqqest six reosons why softwore re/iobi/ity is importont usinq on exomp/e exp/oin the
difficu/ties of describinq whot softwore re/iobi/ity meons
4nswer
1he need for a means to objectively determine software reliability comes from the desire to
apply the techniques of contemporary engineering fields to the development of software. 1hat
desire is a result of the common observation, by both lay-persons and specialists, that
computer software does not work the way it ought to. n other words, software is seen to
exhibit undesirable behaviour, up to and including outright failure, with consequences for the
data which is processed, the machinery on which the software runs, and by extension the
people and materials which those machines might negatively affect. 1he more critical the
application of the software to economic and production processes, or to life-sustaining
systems, the more important is the need to assess the software's reliability.
Regardless of the criticality of any single software application, it is also more and more
frequently observed that software has penetrated deeply into most every aspect of modern life
through the technology we use. t is only expected that this infiltration will continue, along
with an accompanying dependency on the software by the systems which maintain our society.
As software becomes more and more crucial to the operation of the systems on which we
depend, the argument goes, it only follows that the software should offer a concomitant level
of dependability. n other words, the software should behave in the way it is intended, or even
better, in the way it should.
4 softwore quo/ity foctor is o nonfunctiono/ requirement for o softwore proqrom which is not co//ed
up by the customers controct but neverthe/ess is o desirob/e requirement which enhonces the quo/ity
of the softwore proqrom Note thot none of these foctors ore binory thot is they ore not "either you
hove it or you dont" troits kother they ore chorocteristics thot one seeks to moximite in ones
softwore to optimite its quo/ity 5o rother thon oskinq whether o softwore product "hos" foctor x osk
insteod the deqree to which it does {or does not)
5ome softwore quo/ity foctors ore /isted here
understondobi/ity
c/ority of purpose 1his qoes further thon just o stotement of purpose o// of the desiqn ond user
documentotion must be c/eor/y written so thot it is eosi/y understondob/e 1his is obvious/y subjective
in thot the user context must be token into occount for instonce if the softwore product is to be used
by softwore enqineers it is not required to be understondob/e to the /oymon



comp/eteness
Presence of o// constituent ports with eoch port fu//y deve/oped 1his meons thot if the code
co//s o subroutine from on externo/ /ibrory the softwore pockoqe must provide reference to thot
/ibrory ond o// required porometers must be possed 4// required input doto must o/so be ovoi/ob/e
conciseness
Minimitotion of excessive or redundont informotion or processinq 1his is importont where
memory copocity is /imited ond it is qenero//y considered qood proctice to keep /ines of code to o
minimum lt con be improved by rep/ocinq repeoted functiono/ity by one subroutine or function which
ochieves thot functiono/ity lt o/so opp/ies to documents
Portobi/ity
consistency
uniformity in nototion symbo/oqy oppeoronce ond termino/oqy within itse/f
Mointoinobi/ity
Propensity to foci/itote updotes to sotisfy new requirements 1hus the softwore product thot is
mointoinob/e shou/d be we//documented shou/d not be comp/ex ond shou/d hove spore copocity for
memory storoqe ond processor uti/itotion ond other resources
1estobi/ity
uisposition to support occeptonce criterio ond evo/uotion of performonce 5uch o
chorocteristic must be bui/tin durinq the desiqn phose if the product is to be eosi/y testob/e o comp/ex
desiqn /eods to poor testobi/ity
usobi/ity
convenience ond proctico/ity of use 1his is offected by such thinqs os the humoncomputer
interfoce 1he component of the softwore thot hos most impoct on this is the user interfoce {ul) which
for best usobi/ity is usuo//y qrophico/ {ie o 6ul)
ke/iobi/ity
4bi/ity to be expected to perform its intended functions sotisfoctori/y 1his imp/ies o time
foctor in thot o re/iob/e product is expected to perform correct/y over o period of time lt o/so
encomposses environmento/ considerotions in thot the product is required to perform correct/y in
whotever conditions it finds itse/f {sometimes termed robustness)
fficiency
lu/fi//ment of purpose without woste of resources such os memory spoce ond processor
uti/itotion network bondwidth time etc


5ecurity
4bi/ity to protect doto oqoinst unouthorited occess ond to withstond mo/icious or inodvertent
interference with its operotions 8esides the presence of oppropriote security mechonisms such os
outhenticotion occess contro/ ond encryption security o/so imp/ies resi/ience in the foce of mo/icious
inte//iqent ond odoptive ottockers
1ime xomp/e
1here ore two mojor differences between hordwore ond softwore curves One difference is thot in the
/ost phose softwore does not hove on increosinq foi/ure rote os hordwore does ln this phose
softwore is opproochinq obso/escence there ore no motivotion for ony upqrodes or chonqes to the
softwore 1herefore the foi/ure rote wi// not chonqe 1he second difference is thot in the usefu//ife
phose softwore wi// experience o drostic increose in foi/ure rote eoch time on upqrode is mode 1he
foi/ure rote /eve/s off qroduo//y port/y becouse of the defects found ond fixed ofter the upqrodes





















"ues. 4- What are the essential skills and traits necessary for effective project
managers in successfully handling projects?
4nswer
1he 5uccessfu/ Project Monoqer
4 successfu/ project monoqer knows how to brinq toqether the definition ond contro/ e/ements
ond operote them efficient/y 1hot meons you wi// need to opp/y the /eodership ski//s you o/reody opp/y
in runninq o deportment ond proctice the orqonitotiono/ obi/ities you need to constont/y /ook to the
future
ln other words if youre o quo/ified deportment monoqer you o/reody possess the ski//s ond ottributes
for succeedinq os o project monoqer 1he criterio by which you wi// be se/ected wi// be simi/or
chonces ore the project youre ossiqned wi// hove o direct re/otionship to the ski//s you need just to do
your job lor exomp/e
Orqonitotiono/ ond /eodership experience 4n executive seekinq o quo/ified project monoqer
usuo//y seeks someone who hos o/reody demonstroted the obi/ity to orqonite work ond to /eod others
ne or she ossumes thot you wi// succeed in o comp/icoted /onqterm project primori/y becouse you
hove o/reody demonstroted the required ski//s ond experience
contoct with needed resources lor projects thot invo/ve o /ot of coordinotion between
deportments divisions or subsidiories top monoqement wi// /ook for o project monoqer who o/reody
communicotes outside of o sinq/e deportment lf you hove the contocts required for o project it wi//
noturo//y be ossumed thot you ore suited to run o project ocross deportmento/ /ines
4bi/ity to coordinote o diverse resource poo/ 8y itse/f contoct outside of your deportment moy
not be enouqh You must o/so be ob/e to work with o voriety of peop/e ond deportments even when
their bockqrounds ond discip/ines ore dissimi/or lor exomp/e os o copob/e project monoqer you must
be ob/e to de/eqote ond monitor work not on/y in oreos fomi/ior to your own deportment but in oreos
thot ore o/ien to your bockqround
communicotion ond proceduro/ ski//s 4n effective project monoqer wi// be ob/e to convey ond
receive informotion to ond from o number of teom members even when porticu/or points of view ore
different from his own lor exomp/e o strict/y odministrotive monoqer shou/d understond the
priorities of o so/es deportment or o customer service monoqer moy need to understond whot
motivotes o production crew
1hese project monoqement quo/ificotions reod /ike o /ist of evo/uotion points for every
deportment monoqer lf you think of the process of runninq your deportment os o project of its own
then you o/reody understond whot its /ike to orqonite o projectthe difference of course beinq thot
the project tokes p/oce in o finite time period whereos your deportmento/ tosks ore onqoinq 1hus
every successfu/ monoqer shou/d be reody to tock/e o project provided it is re/oted to his or her ski//s
resources ond experience
"ues. 5:- Which are the four phases of development according to Rational
Unified Process?
4nswer
1he kotiono/ unified Process is o 5oftwore nqineerinq Process lt provides o discip/ined
opprooch to ossiqninq tosks ond responsibi/ities within o deve/opment orqonitotion lts qoo/ is to
ensure the production of hiqhquo/ity softwore thot meets the needs of its endusers within o
predictob/e schedu/e ond budqet
1he kotiono/ unified Process is o process product deve/oped ond mointoined by kotiono/
5oftwore 1he deve/opment teom for the kotiono/ unified Process ore workinq c/ose/y with customers
portners kotiono/es product qroups os we// os kotiono/es consu/tont orqonitotion to ensure thot the
process is continuous/y updoted ond improved upon to ref/ect recent experiences ond evo/vinq ond
proven best proctices 1he kotiono/ unified Process enhonces teom productivity by providinq every
teom member with eosy occess to o know/edqe bose with quide/ines temp/otes ond too/ mentors for
o// critico/ deve/opment octivities 8y hovinq o// teom members occessinq the some know/edqe bose
no motter if you work with requirements desiqn test project monoqement or confiqurotion
monoqement we ensure thot o// teom members shore o common /onquoqe process ond view of how
to deve/op softwore
1he kotiono/ unified Process octivities creote ond mointoin mode/s kother thon focusinq on
the production of /orqe omount of poper documents the unified Process emphosites the deve/opment
ond mointenonce of mode/ssemontico//y rich representotions of the softwore system under
deve/opment
1he kotiono/ unified Process is o quide for how to effective/y use the unified Mode/inq
Lonquoqe {uML) 1he uML is on industrystondord /onquoqe thot o//ows us to c/eor/y communicote
requirements orchitectures ond desiqns 1he uML wos oriqino//y creoted by kotiono/ 5oftwore ond is
now mointoined by the stondords orqonitotion Object Monoqement 6roup {OM6)
ffective uep/oyment of 8est Proctices
1he kotiono/ unified Process describes how to effective/y dep/oy commercio//y proven
opprooches to softwore deve/opment for softwore deve/opment teoms 1hese ore co//ed "best
proctices" not so much becouse you con precise/y quontify their vo/ue but rother becouse they ore
observed to be common/y used in industry by successfu/ orqonitotions 1he kotiono/ unified Process
provides eoch teom member with the quide/ines temp/otes ond too/ mentors necessory for the entire
teom to toke fu// odvontoqe of omonq others the fo//owinq best proctices
1 ueve/op softwore iterotive/y
Monoqe requirements
l use componentbosed orchitectures kotiono/ unified Process 8est Proctices for 5oftwore
deve/opment 1eoms
4 visuo//y mode/ softwore
5 verify softwore quo/ity
contro/ chonqes to softwore
ueve/op 5oftwore lterotive/y
6iven todoys sophisticoted softwore systems it is not possib/e to sequentio//y first define the
entire prob/em desiqn the entire so/ution bui/d the softwore ond then test the product ot the end 4n
iterotive opprooch is required thot o//ows on increosinq understondinq of the prob/em throuqh
successive refinements ond to incremento//y qrow on effective so/ution over mu/tip/e iterotions 1he
kotiono/ unified Process supports on iterotive opprooch to deve/opment thot oddresses the hiqhest
risk items ot every stoqe in the /ifecyc/e siqnificont/y reducinq o projects risk profi/e 1his iterotive
opprooch he/ps you ottock risk throuqh demonstrob/e proqress frequent executob/e re/eoses thot
enob/e continuous end user invo/vement ond feedbock 8ecouse eoch iterotion ends with on
executob/e re/eose the deve/opment teom stoys focused on producinq resu/ts ond frequent stotus
checks he/p ensure thot the project stoys on schedu/e 4n iterotive opprooch o/so mokes it eosier to
occommodote toctico/ chonqes in requirements feotures or schedu/e
Monoqe kequirements
components ore nontrivio/ modu/es subsystems thot fu/fi// o c/eor function 1he kotiono/ unified
Process provides o systemotic opprooch to defininq on orchitecture usinq new ond existinq
components 1hese ore ossemb/ed in o we//defined orchitecture either od hoc or in o component
infrostructure such os the lnternet cOk84 ond cOM for which on industry of reusob/e components is
emerqinq
visuo//y Mode/ 5oftwore
Poor opp/icotion performonce ond poor re/iobi/ity ore common foctors which dromotico//y
inhibit the occeptobi/ity of todoys softwore opp/icotions nence quo/ity shou/d be reviewed with
respect to the requirements bosed on re/iobi/ity functiono/ity opp/icotion performonce ond system
performonce 1he
kotiono/ unified Process ossists you in the p/onninq desiqn imp/ementotion execution ond
evo/uotion of these test types uo/ity ossessment is bui/t into the process in o// octivities invo/vinq o//
porticiponts usinq objective meosurements ond criterio ond not treoted os on ofterthouqht or o
seporote octivity performed by o seporote qroup
contro/ chonqes to 5oftwore
1he kotiono/ unified Process product consists of
- 4 webenob/ed seorchob/e know/edqe bose providinq o// teom members with quide/ines temp/otes
ond too/ mentors for o// critico/ deve/opment octivities 1he know/edqe bose con further be broken
down to
- xtensive quide/ines for o// teom members ond o// portions of the softwore /ifecyc/e
6uidonce is provided for both the hiqh/eve/ thouqht process os we// os for the more tedious doyto
doy octivities 1he quidonce is pub/ished in n1ML form for eosy p/otformindependent occess on your
desktop
- 1oo/ mentors providinq hondson quidonce for too/s coverinq the fu// /ifecyc/e 1he too/
mentors ore pub/ished in n1ML form for eosy p/otformindependent occess on your desktop 5ee
section
lnteqrotion with 1oo/s for more detoi/s
- kotiono/ kose exomp/es ond temp/otes providinq quidonce for how to structure the
informotion in kotiono/ kose when fo//owinq the kotiono/ unified Process {kotiono/ kose is kotiono/s
too/ for visuo/ mode/inq)
- 5ou4 temp/otes more thon 10 5ou4 temp/otes thot he/ps outomote softwore
documentotion {5ou4 is kotiono/es uocument 4utomotion 1oo/)
- Microsoft word temp/otes more thon l0 word temp/otes ossistinq documentotion in o//
workf/ows ond o// portions of the /ifecyc/e
- Microsoft Project P/ons
Mony monoqers find it difficu/t to creote project p/ons thot ref/ects on iterotive deve/opment
opprooch Our temp/otes jump stort the creotion of project p/ons for iterotive deve/opment occordinq
to the kotiono/ unified Process


July 2011
Master of Computer Application (MCA) - Semester 3
Mc0071 5oftwore nqineerinq 4 credits
4ssiqnment 5et

1 xp/oin the fo//owinq with respect to confiqurotion Monoqement
4) chonqe Monoqement
chonqe monoqement is o systemotic opprooch to deo/inq with chonqe both from the perspective of
on orqonitotion ond on the individuo/ /eve/
4 somewhot ombiquous term chonqe monoqement hos ot /eost three different ospects inc/udinq
odoptinq to chonqe contro//inq chonqe ond effectinq chonqe 4 prooctive opprooch to deo/inq with
chonqe is ot the core of o// three ospects lor on orqonitotion chonqe monoqement meons defininq
ond imp/ementinq procedures ond/or techno/oqies to deo/ with chonqes in the business environment
ond to profit from chonqinq opportunities
l15M chonqe monoqement is not typico//y responsib/e for overseeinq chonqes thot occur within
dep/oyment or deve/opment projects which ore typico//y de/eqoted to o chonqe monoqement process
dictoted by the project monoqement methodo/oqy odopted for the project nowever c/ose /ioison
between deve/opment project monoqers ond the chonqe Monoqer is expected ond the project
monoqer moy be required to uti/ite chonqe Monoqement for items within the production or test
environments thot ore required for testinq or re/eose
8) version ond ke/eose Monoqement
1he release management process is a relatively new but rapidly growing discipline within
software engineering of managing software releases.
As software systems, software development processes, and resources become more distributed,
they invariably become more specialized and complex. Furthermore, software products
(especially web applications are typically in an ongoing cycle of development, testing, and
release. Add to this an evolution and growing complexity of the platforms on which these
systems run, and it becomes clear there are a lot of moving pieces that must fit together
seamlessly to guarantee the success and long-term value of a product or project.
1he need therefore exists for dedicated resources to oversee the integration and flow of
development, testing, deployment, and support of these systems. Although project managers
have done this in the past, they generally are more concerned with high-level, "grand design"
aspects of a project or application, and so often do not have time to oversee some of the more
technical or day-to-day aspects. Release managers (aka "RMs" address this need. 1hey must
have a general knowledge of every aspect of the software development process, various
applicable operating systems and software application or platforms, as well as various
business functions and perspectives.
A release manager is:
O loci/itotor serves os o /ioison between voryinq business units to quorontee smooth ond time/y
de/ivery of softwore products or updotes
O 6otekeeper "ho/ds the keys" to production systems/opp/icotions ond tokes responsibi/ity for
their imp/ementotions
O 4rchitect he/ps to identify creote ond/or imp/ement processes or products to efficient/y
monoqe the re/eose of code
O 5erver opp/icotion support enqineer he/p troub/eshoot prob/ems with on opp/icotion
{o/thouqh not typico//y ot o code /eve/)
O coordinotor uti/ited to coordinote disporote source trees projects teoms ond components
Some of the challenges facing a software release manager include the management of:
O 5oftwore defects
O lssues
O kisks
O 5oftwore chonqe requests
O New deve/opment requests {odditiono/ feotures ond functions)
O uep/oyment ond pockoqinq
O New deve/opment tosks














uiscuss the contro/ mode/s in detoi/s
Ans.
Control models:
1he models for structuring a system are concerned with how a system is decomposed into sub-
systems. 1o work as a system, sub-systems must be controlled so that their services are
delivered to the right place at the right time. Structural models do not (and should not include
control information. Rather, the architect should organize the sub-systems according to some
control model, which supplements the structure model is used. Control models at the
architectural level are concerned with the control flow between sub-systems.
1wo general approaches to control can be identified:
(1 Centralized control: One sub-system has overall responsibility for control and starts and
stops other sub-systems. t may also devolve control to another sub-system but will expect to
have this control responsibility returned to it.
(2 vent-based control: Rather than control information being embedded in a sub-system,
each sub-system can respond to externally generated events. 1hese events might come from
other sub-systems or from the environment of the system.
Control models supplement structural models. All the above structural models may be
implemented using either centralized or event-based control.
Centralized control
n a centralized control model, one sub-system is designated as the system controller and has
responsibility for managing the execution of other sub-systems.

shows an illustration of a centralized management model of control for a concurrent system.
1his model is often used in :soft' real-time systems, which do not have very tight time
constraints. 1he central controller manages the execution of a set of processes associated with
sensors and actuators.
vent-driven systems
n centralized control models, control decisions are usually determined by the values of some
system state variables. By contrast, event-driven control models are driven by externally
generated events.
1he distinction between an event and a simple input is that the timing of the event is outside
the control of the process which handless that event.
A sub-system may need to access state information to handle these events but this state
information does not usually determine the flow of control.
1here are two event-driven control models:
(1 Broadcast models: n these models, an event is, in principle, broadcast to all sub-systems.
Any sub-system, which is designed to handle that event, responds to it.
(2 nterrupt-driven models: 1hese are exclusively used in real-time systems where an
interrupt handler detects external interrupts. 1hey are then passed to some other component
for processing.
Broadcast models are effective in integrating sub-systems distributed across different
computers on a network. nterrupt-driven models are used in real-time systems with stringent
timing requirements.
1he advantage of this approach to control is that it allows very fast responses to events to be
implemented. ts disadvantages are that it is complex to program and difficult to validate.











l usinq exomp/es describe how doto f/ow dioqrom moy be used to document o system
desiqn whot ore the odvontoqes of usinq this type of desiqn mode/?
4ns
Data-flow design is concerned with designing a sequence of functional transformations that
convert system inputs into the required. 1he design is represented as data-flow diagrams.
1hese diagrams illustrate how data flows through a system and how the output is derived from
the input through a sequence of functional transformations.
Data-flow diagrams are a useful and intuitive way of describing a system. 1hey are normally
understandable without special training, especially if control information is excluded. 1hey
show end-to-end processing that is, the flow of processing from when data enters the system to
where it leaves the system can be traced.
Data-flow design is an integral part of a number of design methods and most CAS tools
support data-flow diagram creation. Different methods may use different icons to represent
data-flow diagram entities but their meanings are similar. 1he notation which use is based on
the following symbols:
Rounded rectangles represent functions, which transform inputs to outputs. 1he
transformation name indicates its function.
Rectangles represent data stores. Again, they should be given a descriptive name.
Circles represent user interactions with the system which provide input or receive output.
Arrows show the direction of data flow. 1heir name describes the data flowing along that
path.
1he keywords :and' and :or'. 1hese have their usual meanings as in Boolean expressions.
1hey are used to link data flows when more than one data flow may be input or output from a
transformation.






4 uescribe the c/ossic lnvo/id ossumptions with respect to 4ssessment of Process Life cyc/e
Mode/s
Ans. Classic nvalid Assumptions
Four unspoken assumptions that have played an important role in the history of software
development are considered next.
First Assumption: nternal or xternal Drivers
1he first unspoken assumption is that software problems are primarily driven by internal
software factors. Cranted this supposition, the focus of problem solving will necessarily be
narrowed to the software context, thereby reducing the role of people, money, knowledge, etc.
in terms of their potential to influence the solution of problems. xcluding the people factor
reduces the impact of disciplines such as management (people as managers marketing
(people as customers and psychology (people as perceivers. xcluding the money factor
reduces the impact of disciplines such as economics (software in terms of business value cost
and benefit financial management (software in terms of risk and return and portfolio
management (software in terms of options and alternatives. xcluding the knowledge factor
reduces the impact of engineering social studies politics language arts communication
sciences mathematics statistics and application area knowledge (accounting,
manufacturing, World Wide Web, government, etc.
t has even been argued that the entire discipline of software engineering emerged as a
reaction against this assumption and represented an attempt to view software development
from a broader perspective. xamples range from the emergence of requirements engineering
to the spiral model to human-computer interaction (HC. Aonetheless, these developments
still viewed non-software-focused factors such as ancillary or external drivers and failed to
place software development in a comprehensive, interdisciplinary context. Because software
development problems are highly interdisciplinary in nature, they can only be understood
using interdisciplinary analysis and capabilities. n fact, no purely technical software
problems or products exist because every software product is a result of multiple factors
related to people, money, knowledge, etc., rather than only to technology.
Second Assumption: Software or Business Processes
A second significant unspoken assumption has been that the software development process is
independent of the business processes in organizations. 1his assumption implied that it was
possible to develop a successful software product independently of the business environment
or the business goals of a firm. 1his led most organizations and business firms to separate
software development work, people, architecture, and planning from business processes. 1his
separation not only isolated the software-related activities, but also led to different goals,
backgrounds, configurations, etc. for software as opposed to business processes. As a
consequence, software processes tended to be driven by their internal purposes, which were
limited to product functionality and not to product effectiveness.
1his narrow approach had various negative side effects on software development. For
example, the software process was allowed to be virtually business free. Once the product was
finalized, it was tested and validated only for functionality, as opposed to being verified for
conformity to stakeholder goals. As a result, even if the product did not effectively solve the
underlying business problems or create a quantifiable business value for the organization, it
could still pass its test. Because software development was not synchronized with the business
process, software problems could be "solved" without actually solving business problems.
1hird Assumption: Processes or Projects
A third unspoken assumption was that the software project was separate from the software
process. 1hus, a software process was understood as reflecting an area of computer science
concern, but a software project was understood as a business school interest. f one were a
computer science specialist, one would view a quality software product as the outcome of a
development process that involved the use of good algorithms, data base deign, and code. f
one were an MS specialist, one would view a successful software system as the result of
effective software economics and software management.
Fourth Assumption: Process Centered or Architecture Centered
1here are currently two broad approaches in software engineering one is process centered
and the other is architecture centered. n process-centered software engineering, the quality of
the product is seen as emerging from the quality of the process. 1his approach reflects the
concerns and interests of industrial engineering, management, and standardized or systematic
quality assurance approaches such as the Capability Maturity Model and SO. 1he viewpoint
is that obtaining quality in a product requires adopting and implementing a correct problem-
solving approach. f a product contains an error, one should be able to attribute and trace it to
an error that occurred somewhere during the application of the process by carefully
examining each phase or step in the process.
However, an architecture-centered approach has several drawbacks. n the first place, one
only arrives at the design phase after a systematic process. 1he act or product of design is not
just a model or design architecture or pattern, but a solution to a problem that must be at least
reasonably well defined. For example, establishing a functional design can be done by
defining architectural structure charts, which in turn are based on previously determined data
flow diagrams, after which a transformational or transitional method can be used to convert
the data flow diagrams into structure charts. 1he data flow diagrams are outcomes of
requirements analysis process based on a preliminary inspection of project feasibility.
Similarly, designing object-oriented architectures in UML requires first building use-case
scenarios and static object models prior to moving to the design phase.





5 uescribe the concept of 5oftwore techno/oqy os o /imited business too/ 5oftwore 1echno/oqy os o
Limited 8usiness 1oo/
Software technology enables business to solve problems more efficiently than otherwise
however, as with any tool, it has its limitations. Solving business problems involves many
considerations that transcend hardware or software capabilities thus, software solutions can
only become effective when they are placed in the context of a more general problem-solving
strategy. Software solutions should be seen as essential tools in problem solving that are to be
combined with other interdisciplinary tools and capabilities. 1his kind of interoperation can be
achieved by integrating such tools with the software development process. Additionally, the
software development process can also be used as a part of a larger problem-solving process
that analyzes business problems and designs and generates working solutions with maximum
business value. Some examples of this are discussed in the following sections.
People have different needs that change over time
Software technology is limited in its ability to recognize the application or cognitive stylistic
differences of individuals or to adapt to the variety of individual needs and requirements.
1hese differences among individuals have multiple causes and include:
Use of different cognitive styles when approaching problem solving
Jariations in background, experience, levels and kinds of education, and, even more broadly,
diversity in culture, values, attitudes, ethical standards, and religions
Different goals, ambitions, and risk-management strategies
Assorted levels of involvement and responsibilities in the business organization's process
A software system is designed once to work with the entire business environment all the time.
However, organizational needs are not stable and can change for many reasons - even over
short periods of time - due to changes in personnel, task requirements, educational or training
level, or experience. Designing a software system that can adjust, customize, or personalize to
such a diversity of needs and variety of cognitive styles in different organizations and
dispersed locations is an immense challenge. t entails building a customizable software
system and also necessitates a continuous development process to adapt to ongoing changes in
the nature of the environment.
Most Users Do not Understand Computer Languages
A software solution can only be considered relevant and effective after one has understood the
actual user problems. 1he people who write the source code for computer applications use
technical languages to express the solution and, in some cases, they do not thoroughly
investigate whether their final product reflects what users asked for. 1he final product is
expected to convert or transform the user's language and expectations in a way that realizes
the system's requirements. Otherwise, the system will be a failure in terms of meeting its stated
goals appropriately and will fail its validation and verification criteria.
n a utopian environment, end-users could become sufficiently knowledgeable in software
development environments and languages so that they could write their software to ensure
systems were designed with their own real needs in mind. Of course, by the very nature of the
division of expertise, this could rarely happen and so the distance in functional intention
between user languages and their translation into programming languages is often
considerable. 1his creates a barrier between software solutions reaching their intended market
and users and customers finding reliable solutions.
n many ways, the ideal scenario, in which one approached system design and development
from a user point of view, was one of the driving rationales behind the original development of
the software engineering discipline. Software engineering was intended as a problem-solving
framework that could bridge the gap between user languages (requirements and computer
languages (the final product or source code. n software engineering, the user's linguistic
formulation of a problem is first understood and then specified naturally, grammatically,
diagrammatically, mathematically, or even automatically then, it is translated into a
preliminary software architecture that can be coded in a programming language. 1hus, the
underlying objective in software engineering is that the development solutions be truly
reflective of user or customer needs.












. Describe the round-trip problem solving approach.
Round-1rip Problem-Solving Approach
1he software engineering process represents a round-trip framework for problem solving in a
business context in several senses.
1he software engineering process is a problem-solving process entailing that software
engineering should incorporate or utilize the problem-solving literature regardless of its
interdisciplinary sources.
1he value of software engineering derives from its success in solving business and human
problems. 1his entails establishing strong relationships between the software process and the
business metrics used to evaluate business processes in general.
1he software engineering process is a round-trip approach. t has a bidirectional character,
which frequently requires adopting forward and reverse engineering strategies to restructure
and reengi-neer information systems. t uses feedback control loops to ensure that
specifications are accurately maintained across multiple process phases reflective quality
assurance is a critical metric for the process in general.
1he nonterminating, continuing character of the software development process is necessary
to respond to ongoing changes in customer requirements and environmental pressures.

Вам также может понравиться