skip to main content
10.1145/1134285.1134320acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Discovering faults in idiom-based exception handling

Published: 28 May 2006 Publication History

Abstract

In this paper, we analyse the exception handling mechanism of a state-of-the-art industrial embedded software system. Like many systems implemented in classic programming languages, our subject system uses the popular return-code idiom for dealing with exceptions. Our goal is to evaluate the fault-proneness of this idiom, and we therefore present a characterisation of the idiom, a fault model accompanied by an analysis tool, and empirical data. Our findings show that the idiom is indeed fault prone, but that a simple solution can lead to significant improvements.

References

[1]
E. N. Adams. Optimizing preventive service of software products. IBM Journal of Research and Development, 28(1):2--14, 1984.
[2]
T. Ball and S. K. Rajamani. The slam project: debugging system software via static analysis. In Conference Record of POPL 2002: The 29th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1--3. ACM, January 2002.
[3]
B. W. Boehm. Software Engineering Economics. Prentice-Hall, 1981.
[4]
M. Bruntink, A. van Deursen, and T. Tourwé. Isolating Idiomatic Crosscutting Concerns. In Proceedings of the International Conference on Software Maintenance, pages 37--46. IEEE Computer Society, 2005.
[5]
M. Bruntink, A. van Deursen, R. van Engelen, and T. Tourwé. An evaluation of clone detection techniques for identifying crosscutting concerns. In Proceedings of the IEEE International Conference on Software Maintenance, pages 200--209. IEEE Computer Society, 2004.
[6]
M. Bush. Improving software quality: the use of formal inspections at the jpl. In Proceedings of the International Conference on Software Engineering, pages 196--199. IEEE Computer Society, 1990.
[7]
W. R. Bush, J. D. Pincus, and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Softw., Pract. Exper., 30(7):775--802, 2000.
[8]
H. Chen and D. Wagner. Mops: an infrastructure for examining security properties of software. In ACM Conference on Computer and Communications Security, pages 235--244. ACM, November 2002.
[9]
F. Christian. Exception handling and tolerance of software faults, chapter 4, pages 81--107. John Wiley & Sons, 1995.
[10]
M. Das, S. Lerner, and M. Seigle. Esp: Path-sensitive program verification in polynomial time. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 57--68. ACM, May 2002.
[11]
M. Dyer. The cleanroom approach to quality software development. In Proceedings of the 18th International Computer Measurement Group Conference, pages 1201--1212. Computer Measurement Group, 1992.
[12]
D. R. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In 4th Symposium on Operating System Design and Implementation, pages 1--16. USENIX Association, 2000.
[13]
N. E. Fenton and S. L. Pfleeger. Software Metrics: A rigorous and Practical Approach. PWS Publishing Company, second edition, 1997.
[14]
C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for java. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 234--245. ACM, 2002.
[15]
C. Fu, A. Milanova, B. G. Ryder, and D. G. Wonnacott. Robustness testing of java server applications. IEEE Transactions on Software Engineering, 31(4):292 -- 311, 2005.
[16]
N. H. Gehani. Exceptional C or C with exceptions. Software Practice and Experience, 22(10):827--848, 1992.
[17]
S. Johnson. Lint, a C Program Checker. Technical Report 65, Bell Laboratories, Dec. 1977.
[18]
J. Lang and D. B. Stewart. A study of the applicability of existing exception-handling techniques to component-based real-time software technology. ACM Transactions on Programming Languages and Systems, 20(2):274 -- 301, 1998.
[19]
P. A. Lee. Exception handling in C programs. Software Practice and Experience, 13(5):389--405, 1983.
[20]
J.-L. Lions. Ariane 5 flight 501 failure. Technical report, ESA/CNES, 1996.
[21]
M. Lippert and C. V. Lopes. A study on exception detecton and handling using aspect-oriented programming. In Proceedings of the International Conference on Software Engineering, pages 418 -- 427. IEEE Computer Society, 2000.
[22]
B. Littlewood. Dependability assessment of software-based systems: state of the art. In Proceedings of the International Conference on Software Engineering, pages 6--7. ACM Press, 2005.
[23]
M. Musuvathi, D. Y. W. Park, A. Chou, D. R. Engler, and D. L. Dill. CMC: A pragmatic approach to model checking real code. In 5th Symposium on Operating System Design and Implementation. USENIX Association, 2002.
[24]
S. Paul and A. Prakash. A Framework for Source Code Search using Program Patterns. IEEE Transactions on Software Engineering, 20(6):463--475, 1994.
[25]
E. S. Roberts. Implementing exceptions in C. Technical Report 40, Digital Systems Research Center, 1989.
[26]
M. Robillard and G. C. Murphy. Regaining control of exception handling. Technical Report TR-99-14, Department of Computer Science, University of British Columbia, 1999.
[27]
M. P. Robillard and G. Murphy. Static analysis to support the evolution of exception structure in object-oriented systems. ACM Transactions on Software Engineering and Methodology, 12(2):191--221, 2003.
[28]
S. Sinha and M. J. Harrold. Criteria for testing exception-handling constructs in java programs. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society, 1999.
[29]
T. Tourwé and T. Mens. Identifying Refactoring Opportunities Using Logic Meta Programming. In Proceedings of the European Conference on Software Maintenance and Reengineering, pages 91--100. IEEE Computer Society, 2003.
[30]
W. N. Toy. Fault-tolerant design of local ess processors. In Proceedings of IEEE, pages 1126--1145. IEEE Computer Society, 1982.
[31]
E. van Emden and L. Moonen. Java quality assurance by detecting code smells. In Proceedings of the Working Conference on Reverse Engineering, pages 97--106. IEEE Computer Society, 2002.
[32]
H. Winroth. Exception handling in ANSI C. Technical Report ISRN KTH NA/P-93/15-SE, Department of Numerical Analysis and Computing Science, Royal Institute of Technology, Stockholm, Sweden, 1993.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '06: Proceedings of the 28th international conference on Software engineering
May 2006
1110 pages
ISBN:1595933751
DOI:10.1145/1134285
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 May 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. exception handling
  2. fault model
  3. program analysis

Qualifiers

  • Article

Conference

ICSE06
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media