Title: Applications of Build Time View
1Applications of Build Time View
- Xinyi Dong, Michael Godfrey
- Software Architecture Group
- University of Waterloo
2BTV 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.
3An Example of BTV
goal
target
depend-on
invoke
directory
4Applications of BTV
- Detecting build-time variation points
- Studying system changes
5Detecting Build-time Variation Points
- Background
- Software variants
- Variation points
- A variation point is the location in a software
asset where the variation will occur.
6Detecting 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.
7Detecting Build-time Variation Points
- Our approach
- Compare BTVs of different instantiations of
variants - Case study
- Linux file system
8Detecting Build-time Variation Points
sub_dirs dummy (subdir-list)
9Detecting Build-time Variation Points
modules (ALL_MOBJS) dummy \ (patsubst
,_modsubdir_,(MOD_DIRS))
10Studying 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
11Studying Software Changes
12Studying Software Changes
Similarity
version
13Studying Software Changes
of make processes
of Changed make processes of Added/Rmd make
processes
version
Changes in users frontend
of make processes
of Changed make processes of Added/Rmd make
processes
version
Changes in backend server
14Conclusion
- BTV is a file-level architecture view.
- Our approach of using BTV in both applications is
- Lightweight
- Flexible
- At coarse level