Abstract
Named constants are used heavily in operating systems code, both as
internal flags and in interactions with devices. Decision making within an
operating system thus critically depends on the correct usage of these
values. Nevertheless, compilers for the languages typically used in
implementing operating systems provide little support for checking the
usage of named constants. This affects correctness, when a constant is
used in a context where its value is meaningless, and software maintenance,
when a constant has the right value for its usage context but the wrong
name.
We propose a hybrid program-analysis and data-mining based approach
to identify the uses of named constants and to identify anomalies in
these uses. We have applied our approach to a recent version of the Linux
kernel and have found a number of bugs affecting both correctness and
software maintenance. Many of these bugs have been validated by the Linux
developers.
internal flags and in interactions with devices. Decision making within an
operating system thus critically depends on the correct usage of these
values. Nevertheless, compilers for the languages typically used in
implementing operating systems provide little support for checking the
usage of named constants. This affects correctness, when a constant is
used in a context where its value is meaningless, and software maintenance,
when a constant has the right value for its usage context but the wrong
name.
We propose a hybrid program-analysis and data-mining based approach
to identify the uses of named constants and to identify anomalies in
these uses. We have applied our approach to a recent version of the Linux
kernel and have found a number of bugs affecting both correctness and
software maintenance. Many of these bugs have been validated by the Linux
developers.
Originalsprog | Engelsk |
---|---|
Titel | ASE'10 : Proceedings of the IEEE/ACM International conference on Automated Software Engineering |
Antal sider | 10 |
Forlag | Association for Computing Machinery |
Publikationsdato | 2010 |
Sider | 103-112 |
ISBN (Trykt) | 978-1-4503-0116-9 |
DOI | |
Status | Udgivet - 2010 |
Begivenhed | 25th IEEE/ACM International Conference on Automated Software Engineering - Antwerp, Belgien Varighed: 20 sep. 2010 → 24 sep. 2010 Konferencens nummer: 25 |
Konference
Konference | 25th IEEE/ACM International Conference on Automated Software Engineering |
---|---|
Nummer | 25 |
Land/Område | Belgien |
By | Antwerp |
Periode | 20/09/2010 → 24/09/2010 |