Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Optimization of program invariants

Published: 11 February 2014 Publication History

Abstract

Program invariants can be detected using both static and dynamic approaches. Dynamic methods that complement static methods will be more useful and effective in analyzing software artifacts. Existing dynamic invariant detection techniques detect both relevant and irrelevant invariants due to the presence of relevant and irrelevant/unused variables in the program. Therefore, the speed and efficiency of the techniques are affected. Also, displaying properties about irrelevant variables distracts the user from concentrating on properties of relevant variables. Moreover, these irrelevant invariants do not contribute to the correctness of the program. Therefore, there is a need to overcome the above deficiencies. This is done in three phases in this paper. In the first phase, only the relevant variables are considered by ignoring irrelevant variables. In the second phase, relevant variables are classified into two different types as design variables and non-design variables by using proposed metrics. These metrics are validated analytically against Weyuker's principles. Similarly, relevant invariants are categorized into three types as design invariants, non-design invariants and hybrid invariants in the third phase. For this purpose a set of rules are proposed. This process enormously improves the speed and efficiency of dynamic invariant detection techniques. Also, it drastically reduces the effort that is required to validate program correctness.

References

[1]
M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. Dynamically discovering likely program invariants to support program evolution. IEEE TSE, 27(2):1--25, Feb. 2001.
[2]
M. Vaziri and G. Holzmann. Automatic detection of invariants in Spin. In SPIN 1998, Nov. 1998.
[3]
N. Bjùrner, A. Browne, and Z. Manna, Automatic Generation of Invariants and Intermediate Assertions, Theoretical Computer Science, vol. 173, no. 1, pp. 49--87, Feb. 1997.
[4]
Ramakrishnan R. and D.J.Ram, Modeling Design Versions, VL DB'96, Proceedings of 22th International conference on very large databases,September 3-6, 1996, Mumbai (Bombay), India (vijayaraman T.M, A.P. Buchmann, C. Mohan and N. L. Sarda, eds.), pp. 556--566, Morgan Kauf mann, 1996.
[5]
S. Hangal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering, pages 291--301, New York, NY, USA, 2002. ACM Press.
[6]
B. Pytlik, M. Renieris, S. Krishnamurthi, and S. P. Reiss. Automated fault localization using potential invariants. In AADEBUG'2003, Fifth International Workshop on Automated and Algorithmic Debugging, pages 273--276, Ghent, Belgium, September 8--10, 2003.
[7]
Karine Arnout, and Raphaël Simon. "The .NET Contract Wizard: Adding Design by Contractto languages other than Eiffel". TOOLS 39 (39th International Conference and Exhibition on Technology of Object Oriented Oriented Languages and Systems). IEEE Computer Society, July 2001, p14--23.
[8]
Henkel and A. Diwan. Discovering algebraic specifications from java classes. In L. Cardelli, editor, ECOOP 2003 Object Oriented Programming, 17th European Conference, Darmstadt, July 2003. Springer.
[9]
Sciore E., Versioning and Configuration Management in an Object-Oriented Data Model, The VLDB Journal, vol. 3, no. 1, pp. 77--106. 1994.
[10]
Srinath S., R. Ramakrishnan, and D.J. Ram, A Generic model for Sematics--based versioning in Projects, IEEE Transactions on Systems, Man, and Cybernetic, Part A, vol.30, no. 2, pp. 108--123, 2000.
[11]
Ananda Rao A. Automation of Software Version Management Using Metrics, Ph.D thesis, Dept. of Computer Science and Engineering, IIT Madras, Chennai, 2006.
[12]
Bandi R.K., V.K. Vaishnavi, and D.E. Turk, Predicting Maintenance Performance Using Oject- Oriented Design Complexity Metrics, IEEE Trans. Softw. Eng., vol. 29, no.1, pp 77--87,2003.
[13]
Abbott D, A Design Complexity Metric for Object-Oriented Development, Master's thesis, Dept. of computer science, Clemson University,1993.
[14]
Chen J-Y and Lu J-F, A New Metric for Object-Oriented Design, Information and Software Technology, pp. 232--240, April 1993.
[15]
Weyuker E.J., Evaluating Software Complexity Measures, IEEE Trans. Softw. Eng., vol.14, no. 9,pp. 1357--1365, 1988.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 39, Issue 1
January 2014
193 pages
ISSN:0163-5948
DOI:10.1145/2557833
  • Editor:
  • Will Tracz
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 February 2014
Published in SIGSOFT Volume 39, Issue 1

Check for updates

Author Tags

  1. design invariants
  2. design variables
  3. dynamic analysis
  4. execution trace
  5. hybrid invariants
  6. non-design invariants
  7. non-design variables
  8. program invariants

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 64
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media