Anda di halaman 1dari 108

HEICA

Program understanding *
Program understanding
Prof. Robertas Damaeviius robertas.damaseviius!"tu.#t
Prof. $%tautas &tui"%s
'aunas (niversit% of )e*no#og%
HEICA
Program understanding *
Content
+ Program om,re*ension - understanding
+ Ro#e of ,rogram understanding in maintenane
Program om,re*ension. *a##enges/ fators/
te*ni0ues
Program om,re*ension 1ognitive2 mode#s
3oft4are ins,etion
HEICA
Program understanding *
Content
+ Program om,re*ension - understanding
+ Ro#e of ,rogram understanding in maintenane
+ Program om,re*ension. *a##enges/ fators/
te*ni0ues
+ Program om,re*ension 1ognitive2 mode#s
+ 3oft4are ins,etion
HEICA
Program
Com,re*ension
*
Program
Program
om,re*ension
om,re*ension
+ Program om,re*ension is t*e stud% of *o4
soft4are engineers understand ,rograms.
+ Program om,re*ension is needed for.
Debugging
Code ins,etion
)est ase design
Re5doumentation
Design reover%
Code revisions
HEICA
Program
Com,re*ension
*
Program
Program
om,re*ension
om,re*ension
,roess
,roess
+ (se of e6isting "no4#edge to a0uire ne4 "no4#edge about a ,rogram
+ E6isting "no4#edge.
Programming #anguages
Com,uting environment
Programming ,rini,#es
Ar*itetura# mode#s
Possib#e a#gorit*ms and so#ution a,,roa*es
Domain5s,eifi information
An% ,revious "no4#edge about t*e ode
+ 7e4 "no4#edge.
Code funtiona#it%
Ar*iteture
A#gorit*m im,#ementation detai#s
Contro# f#o4
Data f#o4
HEICA
Program understanding *
Aims of ,rogram understanding
+ (#timate ,ur,ose of om,re*ending ,rograms is
to be ab#e suessfu##% to im,#ement re0uested
*anges.
+ )*is entai#s a0uiring information about ertain
as,ets of t*e soft4are s%stem su* as
,rob#em domain/
e6eution effet/
ause5effet re#ation/
,rodut environment/
re#ation and deision5su,,ort features of t*e soft4are
HEICA
Program understanding *
Program understanding 182
+ Prior to im,#ementing *ange/ it is essentia# to understand
39 as a 4*o#e and t*e ,rograms affeted b% t*e *ange
in ,artiu#ar
+ During maintenane/ t*is invo#ves.
*aving a genera# "no4#edge of 4*at t*e soft4are s%stem
does and *o4 it re#ates to its environment:
identif%ing 4*ere in t*e s%stem *anges are to be
effeted: and
*aving an in5de,t* "no4#edge of *o4 t*e ,arts to be
orreted or modified 4or"
HEICA
Program understanding *
Program understanding 1;2
+ Program understanding onsumes a signifiant
,ro,ortion of maintenane effort and resoures
He4#ett Pa"ard estimates reading ode osts <;==
mi##ion a %ear
Ha#f of t*e tota# effort on *ange is used u, in
understanding
+ Cost inreases in t*e event of
a ,rogrammer maintaining ,rograms 4ritten b%
someone e#se
inaurate/ out5of5date or even non5e6istent
doumentation
deterioration in ,rogram struture due to 0ui" fi6es
HEICA
Program understanding *
Program om,re*ension mode#
HEICA
Program understanding *
Com,re*ension ,roess
+ Com,re*ension is a transformation from t*e
,rogramming domain to t*e ,rob#em domain
invo#ving t*e reonstrution of
"no4#edge about t*ese domains 1in#uding an%
intermediate domains2 and
t*e re#ations*i, bet4een t*em.
HEICA
Program understanding *
Information re0uired for ,rogram
om,re*ension 182
+ 'no4#edge of Prob#em domain
He#,s t*e management team in se#eting a,,ro,riate resoures i.e.
e6,ertise s"i##s/ a#gorit*ms/ too#s/ te*ni0ues
+ E6eution effet
Abstrat #eve# re,resentation of t*e s%stem?s be*avior for a s,eifi
set of in,uts.
Pur,ose is to verif% 4*et*er or not t*e re0uested *ange is
im,#emented and e6,eted outomes are a*ieved.
HEICA
Program understanding *
Information re0uired for ,rogram
om,re*ension 1;2
+ Cause5effet re#ations*i,
Pur,ose is to find out t*e effets of intended *ange on ot*er ,arts of
s%stem/ it a#so *e#,s in ,rediting ,otentia# ri,,#e effets.
)o find out t*e nature of de,endenies in a s%stem/ beause 4*et*er
t*e *ange is sma## or #arge t*e de,endenies a#4a%s ,rodue
man% diffiu#ties and errors
+ Produt5environment re#ations*i,
Pur,ose is to find out a## t*e e6terna# fators 1business ru#es/
government regu#ations/ o,erating ,#atform2 t*at ou#d *ave affet
on a s%stem
+ Deision su,,ort features
@eatures 1om,#e6it%/ maintainabi#it%2 t*at *e#, to ma"e deisions
about a#ternative ana#%sis/ budgeting and resoure a##oations
HEICA
Program understanding *
Program om,re*ension strategies
+ )o,5do4n
Aa,,ing from ,rogramming domain to ,rob#em domain
+ Bottom5u,
Reognition of reurring ,atterns in ode to ,rodue
*ig*5#eve# semanti strutures
+ C,,ortunisti
)o,5do4nand bottom5do4n met*ods are used as
neessar%
information is assimi#ated
HEICA
Program understanding *
)o,5do4n om,re*ension
HEICA
Program understanding *
Bottom5u, om,re*ension ,roess
HEICA
Program understanding *
Bottom5u, om,re*ension
+ Programmer suessive#% reognises ,atterns in
t*e ,rogram
+ )*ese are iterative#% grou,ed into *ig*5#eve#/
semantia##% more meaningfu# strutures
+ Hig*5#eve# strutures are *un"ed toget*er into
even bigger strutures in a re,etitive bottom5u,
fas*ion unti# t*e ,rogram is understood
HEICA
Program understanding *
Eva#uation
+ )*e main 4ea"nesses of bot* t*e to,5do4n and
bottom5u, om,re*ension strategies are.
fai#ure to ta"e into onsideration t*e ontribution t*at
ot*er fators su* as t*e avai#ab#e su,,ort too#s ma"e
to understanding: and
t*e fat t*at t*e ,roess of understanding a ,rogram
rare#% ta"es ,#ae in su* a 4e##5defined fas*ion as
t*ese mode#s ,ortra%.
+ Programmers tend to ta"e advantage of an%
#ues t*e% ome aross in an o,,ortunisti 4a%
HEICA
Program understanding *
C,,ortunisti mode#
+ Com,re*ension de,ends on t*ree "e% and
om,#ementar% features.
'no4#edge base. t*e e6,ertise and ba"ground
"no4#edge t*at t*e maintainer brings to t*e
understanding tas".
Aenta# mode#. t*e ,rogrammerDs urrent understanding
of t*e target ,rogram
Assimi#ation ,roess. ,roedure used to obtain
information from various soures su* as soure ode
and s%stem doumentation
HEICA
Program understanding *
)a6onom% of ,rogram om,re*ension
fators
HEICA
Program understanding *
Content
+ Program om,re*ension - understanding
+ Ro#e of ,rogram understanding in
maintenane
+ Program om,re*ension. *a##enges/ fators/
te*ni0ues
+ Program om,re*ension 1ognitive2 mode#s
+ 3oft4are ins,etion
HEICA
Program understanding *
Aaintenane E (nderstanding
+ Program and s%stem om,re*ension are vita# and
e6,ensive ,arts of soft4are maintenane ,roess
+ F)*ere is no *ig*50ua#it% substitute for e6,eriene
4*en it omes to understanding and maintaining
a s%stem/ as e6isting met*ods and too#s are not
effetive enoug* and doumentation tends to be
unre#iab#eG*
* 3urve%. C. )HortHis and P.J. Ka%Le##/ ME6,ert Aaintainers? 3trategies and
7eeds 4*en (nderstanding 3oft4are. A Nua#itative Em,iria# 3tud%M/
Pro. IEEE Ot* Asia5Paifi 3oft4are Engineering Conf. 1AP3EC
;==82/ IEEE Com,. 3o. Press/ ;==8/ ,,. ;O85;OP.
HEICA
Program understanding *
Aaintenane
Aaintenane
,raties
,raties
and
and
re0uirements
re0uirements
re#ated
re#ated
to
to
understanding
understanding
+ )o fai#itate ,rogram om,re*ension s%stem re,resentations
1overvie4s/ abstrations/ diagrams/ modu#e interre#ations*i,s2 must
be to be derived 1semi52automatia##%
+ Hig* #eve# abstrations of subs%stems 4it* re#ated funtiona#it% and
interre#ations*i,s/ must be visua#ised/ reorded and referened for
future use
+ 3tandardised information of team member ommuniations
regarding a soft4are s%stem must be a,tured and stored
+ Ca,turing "no4#edge regarding ,ast modifiations b% e6trating
information from omments and re#ating t*is to "no4n funtiona#it%
of ode emerges to be of great im,ortane
+ Partia# ,rogram om,re*ension *as to be ba#aned against t*e ris"
of fai#ure in om,#eting a maintenane tas"
HEICA
Program understanding *
Aaintenane tas"s E ativities
re0uiring understanding
3oure. Program (nderstanding. A 3urve%/ A. von Aa%r*auser and A. A. $ans
)e*nia# Re,ort C35QR58;=/ 8QQR.
HEICA
Program understanding *
)a6onom% of om,onents for
,rogram om,re*ension
3oure. 3oft4are Com,re*ension S Integrating Program Ana#%sis and 3oft4are
$isua#iLation/ 9e#f KTo4e Aorgan Erisson Jonas Kundberg )*omas Panas
HEICA
Program understanding *
Content
+ Program om,re*ension - understanding
+ Ro#e of ,rogram understanding in maintenane
+ Program om,re*ension. *a##enges/ fators/
te*ni0ues
+ Program om,re*ension 1ognitive2 mode#s
+ 3oft4are ins,etion
HEICA
Program understanding *
Com,re*ension *a##enges 182
+ 3tu,id use of *ig* inte##igene 1)ri"% Code2
ver% *ard to understand b% ot*er ,erson/ 4*i* #ater on auses
,rob#ems in om,re*ension
+ Different ,rogramming 3t%#es
#arge soft4are ,rogram is o54ritten b% a grou, of ,rogrammers
*aving different ,rogramming s"i## and e6,eriene.
In resu#t t*e deve#o,ed ,rodut *ave a ombination of
,rogramming st%#es fo##o4ed.
)*ese sorts of ,rograms are ver% diffiu#t to understand
HEICA
Program understanding *
Com,re*ension *a##enges 1U2
+ Poor 7aming onvention
use of meaning#ess/ inonsistent and ,oor naming onventions ma% be a
*eav% burden or soure of #a" of om,re*ension
name s*ou#d a#so *ave t*e abi#it% to define t*e one,t #ear#%.
+ Ka" of Domain 4ords in 3oft4are $oabu#ar%
(se of domain 4ords in soure ode/ doumentation and user manua#s is
onsidered a good ,ratie
good deve#o,er usua##% tr% to embed t*is domain information in identifiers
and omments beause in ase of unavai#abi#it% of suffiient
doumentation it is ver% *e#,fu# in im,roving t*e ode understandabi#it%.
+ Conf#it on 3oft4are $oabu#ar%
om,re*ension of ,rogram identifier de,ends u,on t*eir abi#it% to desribe
t*e domain one,t
4rong se#etion of desri,tive terms orres,onding to domain one,t
1misone,tion2 is *urd#e in om,re*ension
HEICA
Program understanding *
Com,re*ension *a##enges 1U2
+ Program re,resentation
+ Vrou,ing re#ated statements and modu#es mig*t smoot*er t*e
om,re*ension.
+ Vood visua# #a%out ma"es t*e ode more understandab#e and
modifiab#e in t*e absene of aut*or.
+ Insuffiient omments
+ #a" of omments are t*e maHor auses to inrease maintenane
ost and redue t*e om,re*ension.
+ Dee,5nesting - Dee,5In*eritane tree
+ (ndue usage of dee,5nesting is one of t*e maHor auses in ma"ing
ode om,re*ension unmanageab#e
+ @e4 ,eo,#e an understand dee,5nesting 4*i* goes more t*an U
#eve#s
HEICA
Program understanding *
Com,re*ension *a##enges 1R2
+ Cone,t #oation
in ase of a #arge om,#e6 ,rogram it is neit*er ,ossib#e nor ost effetive 4a%
to read a## t*e ode from t*e srat*.
maintainer most#% use t*e re#ated 0ueries to find t*e desired ,art of t*e ode
Differene bet4een natura# #anguage desri,tion of *ange re0uest and
,rogram voabu#ar% for its im,#ementation is *indrane
+ Code du,#iation 1Fbad sme##s in odeG2
4riting t*e ode from t*e beginning is ver% *ard as om,ared to ode
du,#iation but soft4are *aving t*at ,rob#em is often onsidered bad
,rogrammers fee# it easier and more re#iab#e to use ,retested ode
ma"es maintenane and evo#ution more diffiu#t and e6,ensive.
+ Identifiation of dead ode
one of t*e maHor ,rob#ems in understanding ode.
HEICA
Program
Com,re*ension
*
Com,re*ension
Com,re*ension
te*ni0ues
te*ni0ues
+ Reading b% ste,54ise abstration
Determine t*e funtion of ritia# subroutines/ 4or" t*roug* t*e ,rogram
*ierar*% unti# t*e funtion of t*e ,rogram is determined.
+ C*e"#ist5based reading
Readers are given a *e"#ist to fous t*eir attention on ,artiu#ar issues
4it*in t*e doument.
Different readers 4ere given different *e"#ists/ t*erefore ea* reader
4ou#d onentrate on different as,ets of t*e doument.
+ Defet5based reading
Defets are ategoriLed and *arateriLed 1e.g./ data t%,e inonsisten%/
inorret funtiona#it%/ missing funtiona#it%/ et.2
A set of ste,s 1a senario2 is t*en deve#o,ed for ea* defet #ass to guide
t*e reader to find t*ose defets.
+ Pers,etive5based reading
3imi#ar to defet5based reading/ but instead of different defet #asses/
readers *ave different ro#es 1tester/ designer and user2 to guide t*em in
reading.
HEICA
Program understanding *
@ators im,roving
understandabi#it% 182
+ E6,ertise
9e## grounded "no4#edge of ,rob#em domain/ ,rob#em so#ving and
,rogramming #anguages ma"e t*e ,rogram om,re*ension easier
+ 3%nta6 *ig*#ig*ting
ommon#% used to *ig*#ig*t different ode onstruts b% using
different o#ors and fonts for different identifiers
ma% be used 4it* ombination of ot*er strategies to im,rove t*e
one,t-onern #oation te*ni0ues.
+ Cross referening
,rovide t*e #in"age bet4een identifier?s definition and its use at
different ,#aes in t*e soure ode
ross referening su,,ort bet4een ode segments 4ritten in different
#anguages an ma"e t*e understandabi#it% of ode easier
HEICA
Program understanding *
@ators im,roving
understandabi#it% 1;2
+ Ca## gra,*s
re,resent inter ,roedura# ommuniation in a soure ode.
3tati a## gra,*s s*o4 t*e ,otentia# a##s
d%nami a## gra,*s s*o4 t*e a##s t*at an our on a ,artiu#ar
e6eution of a ,rogram
+ Comments and Annotations
virtua##% added omments t*at origina##% don?t e6ist in t*e ode
don?t re0uire 4rite aess to add t*em in soure ode.
Annotation *e#,s t*e maintainer to om,re*end t*e ode easi#%.
,rogrammers an add as man% omments as t*e% 4ant 4it*out
f#ooding t*e ode
HEICA
Program understanding *
@ators im,roving
understandabi#it% 1U2
+ Program 3#iing
effetive te*ni0ue for narro4ing do4n t*e onentration on t*e res,onsib#e ,art of
t*e ,rogram
used in finding t*e ause5effet re#ations*i,.
ma"es it easier in finding t*e ause of t*e error b% s#iing do4n t*e ,rogram in sma##
re#ated ,iees.
+ Ri,,#e Ana#%sis
to #oate t*at ,art of ode t*at mig*t be affeted b% im,#ementing a ertain *ange.
W for4ard ,rogram s#iing
*e#,fu# in finding t*e e6tent and nature of de,endenies among different ode
segments
+ Program Deom,osition
brea" do4n #arge ,rogram into signifiant sma## modu#es easier to om,re*end
HEICA
Program
Com,re*ension
*
Com,re*ension
Com,re*ension
efetiveness
efetiveness
+ Aside from t*e issue of *o4 om,re*ension
ours/ om,re*ension ,erformane and
effetiveness are affeted b% man% fators.
Aaintainer *arateristis
Program *arateristis
)as" *arateristis
HEICA
Program
Com,re*ension
*
Aaintainer
Aaintainer
*arateristis
*arateristis
+ @ami#iarit% 4it* ode base
+ A,,#iation domain "no4#edge
+ Programming #anguage "no4#edge
Programming e6,ertise
)oo# e6,ertise
Individua# differenes
HEICA
Program
Com,re*ension
*
Program
Program
*arateristis
*arateristis
+ A,,#iation domain
+ Programming domain
+ Nua#it% of ,rob#em to be understood
+ Program siLe and om,#e6it%
Avai#abi#it% and aura% of doumentation
HEICA
Program
Com,re*ension
*
)as"
)as"
*arateristis
*arateristis
+ )as" t%,e
E6,erimenta#. rea##/ modifiation
Perfetive/ orretive/ ada,tive/ reuse/ e6tension.
+ )as" siLe and om,#e6it%
+ )ime onstraints
+ Environmenta# fators
HEICA
Program understanding *
Content
+ Program om,re*ension - understanding
+ Ro#e of ,rogram understanding in maintenane
+ Program om,re*ension. *a##enges/ fators/
te*ni0ues
+ Program om,re*ension 1ognitive2 mode#s
+ 3oft4are ins,etion
HEICA
Program
Com,re*ension
*
Aode#s
Aode#s
+ Aenta# mode#s
Interna# 4or"ing re,resentation of t*e soft4are under
onsideration.
+ Cognitive mode#s
)*eories of t*e ,roesses b% 4*i* soft4are engineers
arrive at a menta# mode#.
Program
Aenta# Aode# CognitiveAod
e#
HEICA
Program understanding *
Aenta# mode#s
+ Program om,re*ension is a ,roess t*at uses
e6isting "no4#edge to a0uire ne4 "no4#edge
t*at u#timate#% meets t*e goa#s of a ode
ognition tas".
+ In t*e ,roess 4e referene bot* e6isting and
ne4#% a0uired "no4#edge to bui#d a menta#
mode# of *o4 t*e soft4are 4or"s
HEICA
Program
Com,re*ension
*
Aenta#
Aenta#
mode#s
mode#s
+ 3tati e#ements
)e6t struture "no4#edge
Airostruture
C*un"s 1marostruture2
P#ans 1obHets2
H%,ot*eses
+ D%nami e#ements
3trategies 1*un"ing and ross5referening2
+ 3u,,orting e#ements
Beaons
Ru#es of disourse
HEICA
Program understanding *
E#ements of menta# mode#s. stati
+ 3truture "no4#edge in#udes t*e ,rogram te6t and its struture.
Is bui#t t*roug* e6,eriene and is stored in #ong5term memor%.
+ C*un"s are "no4#edge strutures onsisting of various #eve#s of
abstrations of te6t strutures.
orres,ond to ontro#5f#o4 organiLation of t*e ,rogram te6t.
+ P#ans are e#ements of "no4#edge t*at su,,ort t*e deve#o,ment and
va#idation of e6,etations/ inter,retations/ inferening/ and "ee, t*e
attention of t*e om,re*ender
in#ude ausa# "no4#edge about t*e information f#o4 and re#ations*i,s bet4een ,arts
of ,rograms.
+ Programming ,#ans an be *ig*5#eve#/ #o4 #eve#/ or intermediate #eve#
,rogramming one,ts.
In#udes ro#es for data obHets/ o,erations/ tests/ ot*er ,#ans/ and onstraints
+ Domain ,#ans inor,orate a## "no4#edge about t*e ,rob#em area
e6e,t for ode and #o45#eve# a#gorit*ms.
HEICA
Program
Com,re*ension
*
)e6t
)e6t
struture
struture
+ )*e ,rogram te6t and its struture
Contro# struture. iterations/ se0uenes/ onditiona#
onstruts
$ariab#e definitions
Ca##ing *ierar*ies
Parameter definitions
+ Airostruture S atua# ,rogram statements and
t*eir re#ations*i,s.
HEICA
Program
Com,re*ension
*
C*un"s
C*un"s
+ Aarostruture
+ Contain various #eve#s of te6t struture
abstrations
+ Identified b% a desri,tive #abe#.
Can be om,osed into *ig*er #eve# *un"s.
HEICA
Program
Com,re*ension
*
P#ans
P#ans
1obHets2
1obHets2
+ 'no4#edge e#ements for deve#o,ing and va#idating
e6,etations/ inter,retations/ and inferenes.
+ In#ude ausa# "no4#edge about information f#o4 and
re#ations*i,s bet4een ,arts of a ,rogram.
+ Programming ,#ans
Based on ,rogramming one,ts.
Ko4 #eve#. iteration and onditiona# ode segments.
Intermediate #eve#. sear*ing/ sorting/ summing a#gorit*ms: #in"ed
#ists and trees.
Hig* #eve#
+ Domain ,#ans
A## "no4#edge about t*e ,rob#em area.
E6am,#es. ,rob#em domain obHets/ s%stem environment/ domain5
s,eifi so#utions and ar*itetures.
HEICA
Program understanding *
E#ements of menta# mode#s.
d%nami
+ 3trateg% guides t*e se0uene of ations 4*i#e fo##o4ing a ,#an to
rea* a ,artiu#ar goa#
reading and understanding ever% sing#e #ine of ode 4*i#e bui#ding a menta#
re,resentation at *ig*er #eve#s of abstration.
+ (nderstanding me*anisms t*at ,rodue information
C*un"ing reates ne4 *ig*er5#eve#5abstration strutures from *un"s of #o4er5#eve#
strutures.
Cross5referening re#ates different #eve#s of abstration/ b% ma,,ing ,rogram ,arts
to funtiona# desri,tions.
+ Ations #assif% ,rogrammer ativities/ bot* im,#iit and e6,#iit
during maintenane tas"
+ E,isodes are om,osed of se0uenes of ations and aggregate to
form *ig*er5#eve# ,roesses
+ Proesses/ e,isodes/ ations/ and strategies are t*e d%nami
om,onents of menta# mode# onstrution
HEICA
Program
Com,re*ension
*
3trategies
3trategies
+ Vuide t*e se0uene of ations 4*i#e fo##o4ing a
,#an to rea* a goa#.
+ Aat* ,rogramming ,#ans to ode.
3*a##o4 reasoning S do not ,erform in5de,t* ana#%sis:
sto, u,on reognition of fami#iar idioms and
,rogramming ,#ans.
Dee, reasoning S ,erform detai#ed ana#%sis.
+ Ae*anisms for understanding
C*un"ing
Cross5referening
HEICA
Program
Com,re*ension
*
Cross5referening
Cross5referening
+ Aa, ,rogram ,arts to funtiona# desri,tions
tem, W a:
a W b:
b W tem,:
for 1iW=: iXsiLe: iYY2
if 1arra%[i\WWtarget2
return true:
s4a,
se0uentia# sear*
HEICA
Program
Com,re*ension
*
3u,,orting
3u,,orting
e#ements
e#ements
+ Beaons
Cues t*at inde6 into e6isting "no4#edge.
A s4a, routine an be a beaon
for a sorting funtion.
E6,eriened ,rogrammers reogniLe beaons mu*
faster t*an novie ,rogrammers.
(sed ommon#% in to,5do4n om,re*ension.
+ Ru#es of disourse
Ru#es t*at s,eif% ,rogramming onventions.
E6am,#es. oding standards/
a#gorit*m im,#ementations/
e6,eted use of data strutures.
HEICA
Program
Com,re*ension
*
Cognitive
Cognitive
mode#s
mode#s
+ Ketovs"%
+ 3*neiderman and Aa%er
+ Broo"s
+ 3o#o4a%/ Ade#son and E*r#i*
+ Pennington
+ Aa%r*auser and $ans 1Integrated meta5mode#2
HEICA
Program
Com,re*ension
*
Ketovs"%
Ketovs"%
mode#
mode#
HEICA
Program understanding *
Ketovs"% mode#
+ )*ree main om,onents. "no4#edge base/ menta# mode#
1interna# re,resentation2/ and assimi#ation ,roess.
+ Aaintainer ,rodues a menta# re,resentation b%
ombining e6isting "no4#edge t*roug* a assimi#ation
,roess of e6terna# re,resentation of t*e soft4are
+ )*e "no4#edge base ontains ,rogramming e6,ertise/
,rob#em5domain "no4#edge/ ru#es of disourse/ ,#ans/
and goa#s.
+ )*e menta# mode# *as t*ree #a%ers. a s,eifiation/ an
im,#ementation/ and an annotation #a%er.
HEICA
*
+ 3,eifiation #a%er 5 *ig*est abstration #eve#
om,#ete#% *arateriLes t*e ,rogram goa#s.
+ Im,#ementation #a%er ontains #o4est #eve#
abstration/ 4it* data strutures and funtions
+ Annotation #a%er #in" ea* goa# in t*e s,eifiation
#a%er to its rea#iLation in t*e im,#ementation #a%er.
+ )*e assimi#ation ,roess ours eit*er to,5do4n or
bottom5u, in t*e 4a% t*e% t*in" %ie#ds t*e *ig*est
return in "no4#edge gain.
Ketovs"% mode#
HEICA
Program
Com,re*ension
*
3*neiderman
3*neiderman
mode#
mode#
HEICA
Program understanding *
3*neiderman
3*neiderman
mode#
mode#
+ Pro,osed in 8QPQ t*at ,rogram om,re*ension
is based on t4o forms of ,rogramming
"no4#edge S s%ntati and semanti 1genera#
and tas" re#ated semanti "no4#edge2
+ Desribes t*e ,rogram om,re*ension ,roess
t*at transform t*e ,rogram in s*ort5term
memor% into interna# semanti "no4#edge via
a *un"ing ,roess
HEICA
3*neiderman
3*neiderman
mode#
mode#
*
+ Com,re*ension mode# reodes t*e ,rogram in s*ort5
term memor% into an interna# semanti re,resentation
via a *un"ing ,roess.
+ )*ese interna# semantis ontain different #eve#s of
,rogram abstration.
+ At t*e to, are *ig*5#eve# one,ts su* as ,rogram
goa#s. )*e #o4est #eve#s ontain detai#s su* as t*e
a#gorit*ms used to a*ieve ,rogram goa#s.
HEICA
3*neiderman
3*neiderman
mode#
mode#
*
+ Kong5term memor%/ a "no4#edge base 4it* semanti and
s%ntati "no4#edge/ assists during interna# semantis
onstrution.
+ 3%ntati "no4#edge is ,rogramming #anguage
de,endent/ 4*i#e semanti "no4#edge onerns genera#
,rogramming "no4#edge inde,endent of an% s,eifi
,rogramming #anguage.
+ Ki"e 4or"ing memor%/ semanti "no4#edge in #ong5term
memor% is #a%ered and inor,orates *ig*5#eve# one,ts
and #o45#eve# detai#s.
+ Program understanding is diretiona#. It starts 4it* t*e
,rogram ode and ontinues unti# t*e ,rob#em statement
is reonstruted.
HEICA
Program
Com,re*ension
*
Broo"s
Broo"s
mode#
mode#
HEICA
Program understanding *
Broo"s mode#
+ Desribes ,rogram om,re*ension as deve#o,er?s
reonstrution of domain "no4#edge
+ Program om,re*ension is om,#ete 4*en a om,#ete set of
ma,,ings an be made from t*e to, #eve# domain 1,rob#em
domain2 to t*e bottom #eve# domain 1,rogramming domain2.
+ Domain "no4#edge em,*asiLes t*e funtion of information
ontained in t*e soft4are
+ Deve#o,ers om,re*end t*e ,rogram b% rereating
ma,,ings from t*e ,rob#em domain or rea#54or#d ,rob#ems/
to t*e ,rogramming domain t*roug* severa# intermediate
"no4#edge domains.
+ Intermediate domains are used to derease t*e ga,
bet4een ,rob#em and ,rogramming domain.
HEICA
Broo"s mode#
*
+ @our different "no4#edge domains to rea* t*e
,rogramming domain. inventories/ aounting/
mat*ematis/ and ,rogramming #anguages.
+ 'no4#edge 4it*in ea* domain in#udes detai#s about
domain obHets/ t*e o,erations a##o4ed on t*em/ and t*e
order in 4*i* o,erations are a##o4ed
+ Inter5domain "no4#edge desribes t*e re#ations*i,s
bet4een obHets in different but #ose#% re#ated domains
HEICA
Broo"s mode#
*
+ )*e menta# mode# is bui#t t*roug* a to,5do4n
,roess t*at suessive#% refines *%,ot*eses
+ A ognitive ,roess verifies t*at interna#
re,resentations ref#et "no4#edge ontained in
e6terna# re,resentations su* as ode/ design
douments/ or re0uirements s,eifiations.
+ Beaons are t*e main ve*i#e for t*is
verifiation/ 4*i* is a#so *%,ot*esis driven.
HEICA
Program understanding *
Program beaons
+ )*e information re0uired for *%,ot*esis
generation and refinement is manifested in "e%
features.
+ Interna# features and
+ E6terna# features
+ to t*e ,rogram S
"no4n as beaons 4*i* serve as t%,ia# indiators of
t*e ,resene of a ,artiu#ar struture or o,eration
HEICA
Program understanding *
Program beaons 182
+ Interna# to t*e ,rogram te6t
+ 8. Pro#ogue omments/ in#uding data and variab#e
ditionaries
+ ;. $ariab#e/ struture/ ,roedure and #abe# names
+ U. De#arations or data divisions
+ R. Inter#ine omments
+ ]. Indentation or ,rett%5,rinting
+ ^. 3ubroutine or modu#e struture
+ P. I-C formats/ *eaders/ and devie or *anne#
assignments
HEICA
Program understanding *
Program beaons 1;2
+ E6terna# to t*e ,rogram
+ 8. (sersD manua#s
+ ;. Program #ogi manua#s
+ U. @#o4*arts
+ R. Cross5referene #istings
+ ]. Pub#is*ed desri,tions of a#gorit*ms or
te*ni0ues
HEICA
Program
Com,re*ension
*
3o#o4a%
3o#o4a%
mode#
mode#
HEICA
Program understanding *
3o#o4a% mode#
+ Deve#o,er onstruts a *ierar*% of goa#s and
,#ans to,5do4n based on ru#es
+ )*e mode# suggests deom,osing t*e ode into
fami#iar e#ements t*at 4i## be t*e foundation for
t*e interna# re,resentation of t*e s%stem
+ (ses t*ree t%,es of ,#ans. strategi/ tatia#/ and
im,#ementation.
+ 3trategi ,#ans desribe a g#oba# strateg% used
in a ,rogram or a#gorit*m and s,eif% #anguage
inde,endent ations.
HEICA
3o#o4a%
3o#o4a%
mode#
mode#
*
+ )atia# ,#ans are #oa# strategies for so#ving a
,rob#em: t*ese ,#ans ontain #anguage5inde,endent
s,eifiations of a#gorit*ms.
+ Im,#ementation ,#ans are #anguage de,endent and
are used to im,#ement tatia# ,#ans: t*e% ontain
atua# ode fragments.
+ A menta# mode# is onstruted to,5do4n.
+ It ontains a *ierar*% of goa#s and ,#ans.
+ Ru#es of disourse and beaons *e#, deom,ose
goa#s into ,#ans and ,#ans into #o4er #eve# ,#ans.
HEICA
3o#o4a%
3o#o4a%
mode#
mode#
*
+ )*e triang#es re,resent "no4#edge 1,rogramming
,#ans or ru#es of disourse2. @or e6am,#e/ a subset
of t*e ru#es of disourse mig*t in#ude t*e fo##o4ing.
+ variab#es u,dated same 4a% as initia#iLed/
+ no dead ode/
+ a test for a ondition means t*at t*e ondition must be
,otentia##% true/
+ donDt do doub#e dut% 4it* ode in a non5obvious 4a%/ and
+ an If is used 4*en a statement bod% is guaranteed to
e6eute on#% one: a 9*i#e is used 4*en t*e statement ma%
need to be e6euted re,eated#%.
HEICA
3o#o4a%
3o#o4a%
mode#
mode#
*
+ )*e diamond re,resents t*e understanding ,roess.
+ )*e retang#es i##ustrate interna# or e6terna# ,rogram
re,resentations.
+ E6terna# re,resentations in#ude douments su* as
re0uirements or design douments: ode: user/
referene/ or maintenane manua#s: and ot*er
mise##aneous re#ated douments.
+ Interna# re,resentations in#ude ,#ans and s*emas.
+ )*e understanding ,roess mat*es e6terna#
re,resentations to ,rogramming ,#ans using ru#es of
disourse to se#et ,#ans/ b% setting e6,etations.
HEICA
Program
Com,re*ension
*
Pennington
Pennington
mode#
mode#
HEICA
Program understanding *
Pennington
Pennington
mode#
mode#
+ Deve#o,ers bui#d a ,rogram and situation mode#
bottom5u, from t*e e#ementar% b#o"s soure
ode
+ Program mode# re,resents a ontro#5f#o4
abstration of t*e ode t*at identifies t*e
e#ementar% b#o"s of ode ontro# in t*e ode.
+ 3ituation mode# re,resents t*e ,rob#em domain
or rea# 4or#d
+ )*e ,rogram mode# is usua##% deve#o,ed before
t*e situation mode#.
HEICA
Pennington
Pennington
mode#
mode#
+ )*e ,rogram mode# is reated buttom5u, via t*e
*un"ing of mirostrutures into marostrutures and
via ross5referening.
+ Programming ,#an "no4#edge/ onsisting of
,rogramming one,ts/ e6,#oits e6isting "no4#edge
during t*e understanding tas" and infers ne4 ,#ans
for storage in #ong5term memor%.
+ A situation mode# is bui#t b% ross5referening and
*un"ing.
+ Beaons an invo"e a ,artiu#ar s*ema 1for
e6am,#e/ a s4a, o,eration auses t*e ,rogrammer
to rea## sorting funtions2. Code statements and t*eir
interre#ations*i,s form t*e mirostruture.
*
HEICA
Pennington
Pennington
mode#
mode#
+ )*e mode# re0uires "no4#edge of rea#54or#d domains/
su* as generi o,erating s%stem struture and
funtiona#it% for t*e o,erating s%stem domain.
+ Domain ,#an "no4#edge is used to menta##% re,resent
t*e ode in terms of rea#54or#d obHets/ organiLed as a
funtiona# *ierar*%.
+ Ko4er order ,#an "no4#edge an be *un"ed into
*ig*er order ,#an "no4#edge.
*
HEICA
Program
Com,re*ension
*
von
von
Aa%r*auser
Aa%r*auser
and
and
$ans
$ans
mode#
mode#
HEICA
Program understanding *
von
von
Aa%r*auser
Aa%r*auser
and
and
$ans
$ans
mode#
mode#
+ Aeta mode# onsisting of four main
+ om,onents.
to,5do4n mode#/
situation mode#/ ,rogram mode#/ and
"no4#edge base
+ 'no4#edge base is t*e foundation to bui#d t*e
t*ree former mode#s t*roug* om,re*ension
,roess
HEICA
von
von
Aa%r*auser
Aa%r*auser
and
and
$ans
$ans
mode#
mode#
+ )*e integrated ode om,re*ension mode# *as four
maHor om,onents. t*e to,5do4n/ situation/ and ,rogram
mode#s and t*e "no4#edge base.
+ )*e first t*ree ref#et om,re*ension ,roesses. )*e
fourt* is needed to suessfu##% bui#d t*e ot*er t*ree.
+ Ea* om,onent is invo#ved in t*e interna#
re,resentation of t*e ,rogram 1or s*ort5term memor%2
and a strateg% to bui#d t*is interna# re,resentation.
+ )*e "no4#edge base furnis*es t*e ,roess 4it*
information re#ated to t*e om,re*ension tas" and stores
an% ne4 and inferred "no4#edge.
*
HEICA
von
von
Aa%r*auser
Aa%r*auser
and
and
$ans
$ans
mode#
mode#
+ @or #arge s%stems/ a ombination of a,,roa*es to
under standing beomes neessar%.
+ )*erefore/ t*e integrated mode# ombines t*e to,5do4n
understanding of 3o#o4a%/ Ade#son/ and E*r#i* 4it* t*e
bottom5u, understanding of Pennington.
+ 7evert*e#ess/ e6,eriments s*o4 t*at ,rogrammers
s4it* bet4een a## t*ree om,re*ension mode#
+ An% of t*e t*ree sub mode#s ma% beome ative at an%
time during t*e om,re*ension ,roess.
+ @or e6am,#e/ during ,rogram mode# onstrution/ a
,rogrammer mig*t reogniLe a beaon indiating a
ommon tas" su* as sorting.
*
HEICA
von
von
Aa%r*auser
Aa%r*auser
and
and
$ans
$ans
mode#
mode#
+ )*is #eads to t*e *%,ot*esis t*at t*e ode sorts
somet*ing/ ausing a Hum, to t*e to,5do4n mode#.
+ )*e ,rogrammer t*en generates sub goa#s and sear*es
t*e ode for #ues to su,,ort t*ese sub goa#s.
+ If t*e ,rogrammer finds a setion of unreogniLed ode
during t*is sear*/ *e ma% return to ,rogram mode#
bui#ding.
+ 3trutures bui#t b% an% one mode# om,onent are
aessib#e b% t*e ot*er t4o/ but ea* mode# om,onent
*as its o4n ,referred "no4#edge t%,es.
*
HEICA
Program understanding *
Content
+ Program om,re*ension - understanding
+ Ro#e of ,rogram understanding in maintenane
+ Program om,re*ension. *a##enges/ fators/
te*ni0ues
+ Program om,re*ension 1ognitive2 mode#s
+ Program understanding strategies
+ 3oft4are ins,etion
HEICA
Program understanding *
3oft4are ins,etion
+ Cne of most effetive 0ua#it% assurane
te*ni0ues in soft4are engineering.
+ )*e ,rimar% goa# of an ins,etion is to detet
defets before t*e testing ,*ase begins
Contributes to im,rove t*e overa## 0ua#it% of
soft4are 4it* t*e oro##ar% budget and time
benefits
HEICA
Program understanding *
3oft4are ins,etion ta6onom%
HEICA
Program understanding *
Dimensions of ins,etion 182
+ )*e goa# of te*nia# dimension is to
*arateriLe different ins,etion met*ods to
identif% simi#arities and differenes among t*em.
+ Ea* ins,etion a,,roa* needs to be
*arateriLed in more detai# aording to t*e
ativities ,erformed 1,roess2/
t*e ins,eted soft4are ,rodut 1,rodut2/
t*e different team ro#es as 4e## as overa## o,tima# siLe
and se#etion 1team ro#es/ siLe/ and se#etion2/
and t*e te*ni0ue a,,#ied to detet defets in t*e
soft4are ,rodut 1reading te*ni0ue2.
HEICA
Program understanding *
)e*nia# dimension
HEICA
Program understanding *
)e*nia# dimension 5 Ativities
+ P#anning/
+ Cvervie4/
+ Defet Detetion/
+ Defet Co##etion/
+ Defet Corretion/ and
@o##o45u,.
HEICA
Program understanding *
)e*nia# dimension 5 P#anning
+ )*e obHetive of ,#anning ,*ase is to organiLe a
,artiu#ar ins,etion 4*en materia#s to be
ins,eted ,ass entr% riteria/ e.g. 4*en soure
ode suessfu##% om,i#es 4it*out s%nta6 errors
)*e overvie4 ,*ase onsists of a first meeting in
4*i* t*e aut*or e6,#ains t*e ins,eted ,rodut
to ot*er ins,etion ,artii,ants. )*e main goa# of
t*e overvie4 ,*ase is to ma"e t*e ins,eted
,rodut more #uid and/ t*erefore/ easier to
understand and ins,et for ,artii,ants.
HEICA
Program understanding *
)e*nia# dimension S Defet
+ Defet detetion ,*ase 5 ore of an ins,etion.
+ )*e main goa# of t*e defet detetion ,*ase is to
srutiniLe a soft4are artifat to e#iit defets.
+ Defet o##etion
Defets deteted b% ea* ins,etion ,artii,ant must be
o##eted and doumented.
Deision must be made 4*et*er a defet is rea##% a
defet.
HEICA
Program understanding *
)e*nia# dimension S orretion
+ )*roug*out t*e defet orretion ,*ase/
t*e aut*or re4or"s and reso#ves defets found or
rationa#iLes t*eir e6istene
+ )*e obHetive of t*e fo##o45u, ,*ase is to *e"
4*et*er t*e aut*or *as reso#ved a## defets.
one of t*e ins,etion ,artii,ants verifies t*e defet
reso#ution
HEICA
Program understanding *
Produt dimension
HEICA
Program understanding *
Reading te*ni0ue
+ A series of ste,s or ,roedures 4*ose ,ur,ose
is for an ins,etor to a0uire a dee,
understanding of t*e ins,eted soft4are ,rodut
+ Ad *o reading 5 a soft4are ,rodut is sim,#%
given to ins,etors 4it*out an% diretion or
guide#ines on *o4 to ,roeed t*roug* it and
4*at to #oo" for.
+ C*e"#ist5based reading S stronger su,,ort in
t*e form of 0uestions t*at ins,etors are to
ans4er 4*i#e reading t*e doument
HEICA
Program understanding *
Reading te*ni0ues
+ Reading b% 3te,4ise Abstration
re0uires an ins,etor to read a se0uene of statements in t*e
ode and
to abstrat t*e funtion t*ese statements om,ute.
An ins,etor re,eats t*is ,roedure unti# t*e fina# funtion of t*e
ins,eted ode artifat *as been abstrated and an be
om,ared 4it* t*e s,eifiation.
+ Ative Design Revie4s/
assign #ear res,onsibi#ities to ins,etors of a team and
re0uire to ta"e ative ro#e in an ins,etion of design artifats.
re0uired to ma"e assertions about ,arts of t*e design artifat
rat*er t*an sim,#% ,oint out defets.
HEICA
Program understanding *
Reading te*ni0ues
+ 3enario5based reading
+ (se senarios t*at ,rovide ustom guidane for
ins,etors on *o4 to detet defets.
+ A senario ma% be a set of 0uestions or a more
detai#ed desri,tion for an ins,etor on *o4 to
,erform t*e doument revie4.
+ Prini,a##%/ a senario #imits t*e attention of an
ins,etor to t*e detetion of ,artiu#ar defets as
defined b% t*e ustom guidane.
HEICA
Program understanding *
Reading te*ni0ues
+ Defet5based Reading
+ Different ins,etors fous on different defet
#asses 4*i#e srutiniLing a re0uirements
douments
@or ea* defet #ass/ t*ere is a senario
onsisting of a set of 0uestions an ins,etor *as
to ans4er 4*i#e reading.
Ans4ering t*e 0uestions *e#,s an ins,etor
,rimari#% detet defets of t*at ,artiu#ar #ass.
HEICA
Program understanding *
Reading te*ni0ues
+ Pers,etive5based reading te*ni0ue. soft4are ,rodut
s*ou#d be ins,eted from t*e ,ers,etive of different
sta"e*o#ders
+ Rationa#e
no sing#e mono#it*i definition of soft4are 0ua#it%/ and
#itt#e genera# agreement about *o4 to define an% of t*e "e% 0ua#it%
,ro,erties/ su* as orretness/ maintainabi#it%/ or testabi#it%.
+ )*erefore/ ins,etors of an ins,etion team *ave to
*e" soft4are 0ua#it% as 4e## as t*e soft4are 0ua#it%
fators of a soft4are artifat from different ,ers,etives.
HEICA
Program understanding *
Dimensions of ins,etion 1;2
+ )*e manageria# dimension ,rovides information
on t*e effets ins,etions *ave on a ,roHet
+ Aanagers are most often interested in t*e 4a%
ins,etions inf#uene
,roHet effort 1effort2/
,roHet duration 1duration2/ and
,rodut 0ua#it% 10ua#it%2.
+ Aa%*ave ot*er effets a manager mig*t be
interested in/ su* as t*eir ontribution to team
bui#ding or eduation in a ,artiu#ar ,roHet
HEICA
Program understanding *
Dimensions of ins,etion 1U2
+ )*e organiLationa# dimension *arateriLes t*e
effets ins,etions *ave on t*e 4*o#e
organiLation and vie versa.
+ 3ubdimensions.
,roHet struture
team
environment
+ )*ese subdimensions ,rovide im,ortant
information on t*e onte6t in 4*i* ins,etions
ta"e ,#ae.
HEICA
Program understanding *
Dimensions of ins,etion 1R2
+ )*e assessment dimension in#udes
0ua#itative 10ua#itative assessment2 and
0uantitative assessment 10uantitative assessment2 of
ins,etions.
+ )*is dimension a##o4s one to ma"e a
om,arison of ost-benefit ratios in a given
situation to determine t*e eonomis for a
soft4are ins,etion im,#ementation.
HEICA
Program understanding *
Dimensions of ins,etion 1]2
+ @ina##%/ t*e too# dimension desribes *o4
ins,etions an be su,,orted 4it* too#s.
,ur,ose of t*e various too#s 1,ur,ose2
*o4 t*e% su,,ort a given ins,etion a,,roa*
1su,,orted ins,etion a,,roa*2.
HEICA
Program understanding *
Ins,etion ro#es
+ CrganiLer.
+ Aoderator.
+ Ins,etor.
+ Reader-Presenter.
+ Aut*or.
+ Reorder.
+ Co##etor.
HEICA
Program understanding *
Ins,etion ro#es
+ CrganiLer. ,#ans a## ins,etion ativities 4it*in a ,roHet
+ Aoderator. ensures t*at
ins,etion ,roedures are fo##o4ed
team members ,erform t*eir res,onsibi#ities for ea* ,*ase
moderates t*e ins,etion meeting
+ Ins,etor. res,onsib#e for deteting defets in t*e target
soft4are ,rodut
HEICA
Program understanding *
Ins,etion ro#es
+ Reader-Presenter. in ins,etion meeting/ #eads t*e team
t*roug* t*e materia# in a om,#ete and #ogia# fas*ion.
+ Aut*or. deve#o,s t*e ins,eted ,rodut and is
res,onsib#e for t*e orretion of defets during re4or".
+ Reorder. res,onsib#e for #ogging a## defets in an
ins,etion defet #ist during t*e ins,etion meeting.
+ Co##etor. onso#idates t*e defets found b% t*e
ins,etors if t*ere is no ins,etion meeting.
HEICA
Program understanding *
Veneri mode# of ins,etion
HEICA
Program understanding *
Ins,etion 0ua#it% mode#
HEICA
Program understanding *
Ins,etion 0ua#it% fators
+ Inreasing t*e number of ins,etors is e6,eted to inrease t*e
number of defets deteted in an ins,etion. Ho4ever/ t*ere 4i## be
a ei#ing effet after 4*i* adding an additiona# ins,etor does not
neessari#% ,a% off in more deteted defets.
+ (sing ver% e6,eriened ins,etors is e6,eted to inrease t*e
number of deteted defets in an ins,etion.
+ 3,ending more effort for defet detetion is e6,eted to inrease t*e
number of defets deteted in an ins,etion.
+ )*e diffiu#t% of a ,rodut is re#ated to t*e defet5,roneness. )*is
means t*at a more diffiu#t soft4are ,rodut ontains more defets.
+
+ )*e #arger t*e siLe of an ins,eted ,rodut/ t*e more defets are
deteted in an ins,etion
+ )*e *ig*er t*e initia# 0ua#it% of t*e ins,eted doument/ t*e #o4er
t*e number of deteted defets.
HEICA
Program understanding *
Ins,etion effort
HEICA
Program understanding *
Ins,etion effort
+ Inreasing t*e number of ,eo,#e inreases
ins,etion effort.
+ )*e more e6,eriened t*e ins,etors/ t*e #ess
effort t*e% onsume for defet detetion and/
t*us/ for t*e overa## ins,etion.
)*e more diffiu#t 1e.g./ om,#e62 a ,rodut/ t*e
more effort is re0uired for ins,eting it.
)*e #arger t*e siLe of t*e ins,eted ,rodut/ t*e
more effort is re0uired for its ins,etion.
HEICA
Program understanding *
3ummar%. a0uired "no4#edge
+ Program om,re*ension E maintenane
+ Program om,re*ension mode#s based on
om,re*ension ,roesses
3oft4are ins,etion
HEICA
Program understanding *
Kiterature
+ Penn% Vrubb/ Armstrong A. )a"ang. 3oft4are
Aaintenane. Cone,ts and Pratie. 9or#d 3ientifi
Pub#is*ing Com,an%: ; ed./ ;==U.
+ Diomidis 3,ine##is. Code Nua#it%. )*e C,en 3oure
Pers,etive. Addison 9es#e% Professiona#/ ;==^.
+ Bi## B#unden. 3oft4are E6orism. A Handboo" for
Debugging and C,timiLing Kega% Code. A,ress/ ;==U.
+ 3tan JarLabe"/ Effetive soft4are maintenane and
evo#ution . a reuse based a,,roa*. )a%#or E @ranis
Vrou,/ ;==P.
+ C#iver Kaitenberger/ Jean5Aar DeBaud/ An
enom,assing #ife %#e entri surve% of soft4are
ins,etion/ Journa# of 3%stems and 3oft4are/ ]=182/
;===/ ]5U8.
HEICA
Program
Com,re*ension
*
Additiona#
Additiona#
referenes
referenes
+ $on Aa%r*auser/ A. and $ans/ A. A. Program
Com,re*ension During 3oft4are Aaintenane and
Evo#ution/ IEEE Com,uter/8QQ]. 1#eture notes2
+ 3usan E##iott 3im. Resear* in Program
Com,re*ension 1(C Irvine #eture notes2.
+ Jonat*an Aa#eti. Program Com,re*ension E )*e
Ps%*o#og% of Programming 1'ent 3tate (niversit%
#eture notes2.
+ Ri*ard (,*ur*. Program Com,re*ension. @rom
3oft4are Proess Resoure Co##etion. (Aass S
Dartmout*/ 8QQ^.