Published May 29, 2023 | Version v1
Dataset Open

COMPREHENSIBILITY OF SOURCE CODE WITH FEATURE DEPENDENCY IN CONFIGURABLE SYSTEMS

Contributors

  • 1. Federal University of Bahia
  • 2. Federal University of Alagoas

Description

Conditional compilation is often used to implement variability in configurable systems. This technique relies on \#ifdefs to delimit feature code. Previous studies have shown that #ifdefs may hinder code comprehensibility. However, those studies did not explicitly take feature dependencies into account. Feature dependency occurs when different features refer to the same program element, such as a variable. Comprehensibility may be even more affected in the presence of feature dependency, as the developer must reason about different scenarios affecting the same variable. Our goal is to understand how feature dependency affects the comprehensibility of configurable system source code. We conducted four complementary empirical studies. In Study 1, forty-six developers responded to an online experiment. They executed tasks in which they had to analyze programs containing #ifdefs with and without feature dependency. However, feature dependencies may be of different types depending on the scope of the shared variable. In Study 1, we were not concerned with different types of dependency. Thus, in Study 2, we carried out an experiment in which 30 developers debugged programs with different types of feature dependency. Each program included a different type of feature dependency: global, intraprocedural or interprocedural. We used an eye-tracking device to record developers' gaze movements while they debugged programs. However, feature dependencies do not differ from each other only in terms of types. They can also present differences in terms of number of dependent variables and degree of variability, among others. To address those characteristics, we complemented Study 1 and 2 by means of Studies 3 and 4. In Study 3, we executed a controlled experiment with 12 participants who analyzed programs with different numbers of dependent variables and number of uses of dependent variables. In Study 4, we carried out an experiment in which 12 developers analyzed programs with different degrees of variability. Our results show that: (i) analyzing programs containing \#ifdefs and feature dependency required more time than programs containing \#ifdefs but without feature dependency, (ii) debugging programs with \#ifdefs and global or interprocedural dependency required more time and higher visual effort than programs with intraprocedural dependency, (iii) the higher the number of dependent variables the more difficult it was to understand programs with feature dependency, and (iv) the degree of variability did not affect the comprehensibility of programs with feature dependency. In summary, our studies showed that #ifdefs affected comprehensibility of configurable systems in different degrees depending on the presence or not of feature dependency, on the type of feature dependency, and on the number of dependent variables.

Notes

Thesis

Files

A_I.png

Files (8.9 MB)

Name Size Download all
md5:6dea32d2813b4c1e746d628577856a23
29.2 kB Preview Download
md5:aeef3babc9d56b5adbcbbe3198a81b7f
26.9 kB Preview Download
md5:eab8b9a0c8a99a7ada929f4a86f0521c
31.4 kB Preview Download
md5:3731a4e61886f6f81f782338a5b79e36
28.4 kB Preview Download
md5:ceb91b35ad681e54d2aa363d086e93bc
33.9 kB Preview Download
md5:27610cb05c5c0ccea8a7170c5a25da41
31.0 kB Preview Download
md5:c9dc15c3ce46e6e3692eaf72be48e6bb
2.8 kB Preview Download
md5:5c2913dbd71654de8a1e34e9989c1459
1.9 kB Preview Download
md5:f9b36d25d06f6770d6a8a9f92caf59cf
145 Bytes Preview Download
md5:cca2bf217c447171ec451d0bde37cbcd
1.6 MB Preview Download
md5:d01a387164bab98c8b951ff56aae7d0a
1.8 MB Preview Download
md5:0d41e5d13ac810c75a1ea92193e720d4
32.5 kB Preview Download
md5:cdb59f6c3c2d88e58bb0cc6becc292c1
30.5 kB Preview Download
md5:96ffc4a0474cbec5792300e39e493ccc
34.7 kB Preview Download
md5:8a42d88ea077243720ab3f93a9585bbc
32.8 kB Preview Download
md5:6bcc1e5ab0e5c966f2dfaf52813b01ad
45.5 kB Preview Download
md5:fc8e97262118cf6073f8921c823543a9
43.2 kB Preview Download
md5:e8f232a882e12a7c83632cabc2bf8391
23.6 kB Preview Download
md5:e470826fe42428acea694cf11bad7d6c
18.6 kB Preview Download
md5:1ea218b97f975c66e65675a0a3a0ef75
27.9 kB Preview Download
md5:7cebcd4f2abd42c68d7342b824c5d7ad
22.7 kB Preview Download
md5:a8d1c653a1dd450dcdc0df8360fab15c
29.4 kB Preview Download
md5:e20700ad336220072aec43fcc11283d2
24.3 kB Preview Download
md5:54596899a7d51a2f2498d33b11c20be9
4.0 kB Download
md5:107c90282d5df4e3e67ad0a262d88c37
4.1 kB Download
md5:04d31f357b8598ff800cc62b54795dc3
4.1 kB Download
md5:84dba08f52b6429f0f89b56036cb8099
183.2 kB Preview Download
md5:ee27c4f573b6f986fbbd2175faf32d55
182.4 kB Preview Download
md5:0b521d084b9d5aaaa7b20ab7ec34c63f
122 Bytes Preview Download
md5:c3473df1df3b6f7fcfb0ed2bf09a46bd
95 Bytes Download
md5:3de6bd8caca6a7bcc1829aa8fb3c04cb
25.7 kB Preview Download
md5:4c6f438d8e3694e808ac6d9da18570ca
24.2 kB Preview Download
md5:190c2014038300475be119db4232d747
27.4 kB Preview Download
md5:2b268fa075d87063ff5d3be3a5fb71cd
26.4 kB Preview Download
md5:d9e2603fa2e3098a40dfc17c8be22e24
39.8 kB Preview Download
md5:dc10097332b0ef46ced3c7e856b74c07
35.7 kB Preview Download
md5:df5b46b2373b3dd127bcb0b3d5a2b555
27.8 kB Preview Download
md5:394c220b8475e527176826ac3f89c2b7
20.0 kB Preview Download
md5:a538930d83df7d481272e14cf0a3f882
30.9 kB Preview Download
md5:02531129df7fe257acff6408808f8e7b
24.4 kB Preview Download
md5:269d3b1723fe046a512830140ef1499f
40.8 kB Preview Download
md5:ab883b95517b505954ffd773850e609b
36.6 kB Preview Download
md5:1e97497a856f06cf1281e8ac66958ddf
23.5 kB Preview Download
md5:f8ea5be9d069abea68b21f5ceb64f567
14.8 kB Preview Download
md5:50204e2d81a692193c44af3bb25c4a33
25.9 kB Preview Download
md5:766c5568f66e963da97e08f5081c4274
17.2 kB Preview Download
md5:4a0ccdc977f6931742b6f5d1eb17d976
27.1 kB Preview Download
md5:6890ec3d94919623282f6632097b1391
18.8 kB Preview Download
md5:f8a509d481e3b185a9e6638e1ba62820
2.9 kB Preview Download
md5:f82e800889deb4b8abf1c29a910dc4bc
2.0 kB Preview Download
md5:e7e2db9f97928cf7a993131f4de83e56
2.1 kB Preview Download
md5:7f2939fdd117269f50f86c20643505e0
7.1 kB Preview Download
md5:ebd92bc53d0ff7c7f5684b8a3fad7965
7.1 kB Preview Download
md5:d3abee77740592a9bbd1f7f49f85b799
4.1 kB Download
md5:4289d8bf87203a47269fd2dc5522e4ab
90.3 kB Preview Download
md5:44006513f3e6a964983d7ef9b6d5406f
84.1 kB Preview Download
md5:9aca1fc8b8189170e0b6dbc3f45065a8
2.8 kB Preview Download
md5:eb1bfab97870f190a3809d16e632e716
1.9 kB Preview Download
md5:4b3592db00157d0b0feeff3aef51ce27
217 Bytes Preview Download
md5:54a005dde92c3c69801b0ee0fa634645
6.3 kB Preview Download
md5:673206efadc0d94234edaafaf0fd605b
69.2 kB Preview Download
md5:fa5f55b24531df1afcc939623fe0f590
76.3 kB Preview Download
md5:ecf136eeffed19f212fdce694e4b3f10
72.0 kB Preview Download
md5:d50b8309d2292f9392faf8f3ccbadcdf
80.7 kB Preview Download
md5:32db29537bd1604250a4401a831bd0e4
86.7 kB Preview Download
md5:9c9bdb561e7dde493821251dcc9e1607
88.5 kB Preview Download
md5:2dd8404d294c638375ceac2b64a17afa
1.5 MB Preview Download
md5:33398ee130e465175d645a33dfa279c5
1.6 MB Preview Download
md5:cca4d1359ce6d1127ab59af15166fd93
200.4 kB Preview Download
md5:69dfddb131ac3e5ae38b613f272e4659
180.8 kB Preview Download
md5:fddf3b82e7574c0cfd4ddc937a49e634
3.8 kB Download
md5:2201bc43323143931fd3e6f9be22a5b8
2.6 kB Preview Download
md5:1d6c12abcbb4b8be6c2303958dfb2631
2.0 kB Preview Download
md5:20f9ac0c6d08bdd9f6a32f734c1208cb
2.1 kB Preview Download
md5:2becac298112d74b05b31cae1fb20290
16.8 kB Preview Download