140 likes | 289 Views
Applications of Build Time View. Xinyi Dong, Michael Godfrey Software Architecture Group University of Waterloo. BTV and BTV Toolkit. BTV Build-time architecture view, which captures the structural and behavioral properties that are apparent only at system build time. BTV Toolkit
E N D
Applications of Build Time View Xinyi Dong, Michael Godfrey Software Architecture Group University of Waterloo
BTV and BTV Toolkit • BTV • Build-time architecture view, which captures the structural and behavioral properties that are apparent only at system build time. • BTV Toolkit • A toolkit to extract and visualize BTV.
An Example of BTV goal target depend-on invoke directory
Applications of BTV • Detecting build-time variation points • Studying system changes
Detecting Build-time Variation Points • Background • Software variants • Variation points • A variation point is the location in a software asset where the variation will occur.
Detecting Build-time Variation Points • Knowledge of variation points can help us understand and maintain software system. • Variation points are not represented explicitly. • Open-source systems have many build-time variation points.
Detecting Build-time Variation Points • Our approach • Compare BTVs of different instantiations of variants • Case study • Linux file system
Detecting Build-time Variation Points sub_dirs: dummy $(subdir-list)
Detecting Build-time Variation Points modules: $(ALL_MOBJS) dummy \ $(patsubst %,_modsubdir_%,$(MOD_DIRS))
Studying Software Changes • Most BTV targets represent files. • Most BTV changes are caused by changes of software systems. • Our approach • Compare the BTVs of adjacent versions • Case study • PostgreSQL
NA targets NB targets Version A Version B N targets N Similarity(A, B) = (NA + NB) / 2 Studying Software Changes
Studying Software Changes Similarity version
Studying Software Changes # of make processes # of Changed make processes # of Added/Rmd make processes version Changes in user’s frontend # of make processes # of Changed make processes # of Added/Rmd make processes version Changes in backend server
Conclusion • BTV is a file-level architecture view. • Our approach of using BTV in both applications is • Lightweight • Flexible • At coarse level