Early Error Detection

  • Frank RoginEmail author
  • Rolf Drechsler


At an early stage errors and coding flaws in a system model can be efficiently detected by deduction techniques that are presented in this chapter. Figure 3.1 illustrates the necessary preconditions to apply these techniques in the proposed flow. Besides the syntactical correctness of a design description, the smallest design unit, i.e. a module, shall be available. So, a single method or function can be already analyzed. However, the expressiveness of analysis results is limited due to incompletely described functionality. Since a simulatable description is not yet available, Static Analysis methods are used to check particular correctness aspects of the system model. In general, hypotheses are deduced from the program code to the concrete simulation run.


  1. PC95.
    C. Potter and T. Cory. CAST Tools: An Evaluation and Comparison. Bloor Research Group, 1995.Google Scholar
  2. WM96.
    R. Wilhelm and D. Maurer. Übersetzerbau. Theorie, Konstruktion, Generierung. Springer, 2. überarbeitete und erweiterte Auflage, 1996.Google Scholar
  3. Mor98.
    R. Morgan. Building an Optimizing Compiler. Digital Press, 1998.Google Scholar
  4. Muc97.
    S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997.Google Scholar
  5. Joh97.
    R.E. Johnson. Frameworks = (components + patterns). In Communications of the ACM, 40(10):39–42, 1997.CrossRefGoogle Scholar
  6. HR06.
    M. Holzer and M. Rupp. Static Code Analysis of Functional Descriptions in SystemC. In IEEE International Workshop on Electronic Design, Test and Applications, pp. 243–248, 2006.Google Scholar
  7. ABS03.
    G. Agosta, F. Bruschi, and D. Sciuto. Static analysis of transaction-level models. In Conference on Design Automation, pp. 448–453, 2003.Google Scholar
  8. SBR02.
    A. Siebenborn, O. Bringmann, and W. Rosenstiel. Worst-case Performance Analysis of Parallel, Communicating Software Processes. In International Workshop on Hardware/Software Codesign, pp. 37–42, 2002.Google Scholar
  9. BKS08.
    N. Blanc, D. Kroening, and N. Sharygina. Scoot: A Tool for the Analysis of SystemC Models. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 467–470, 2008.Google Scholar
  10. AB+07.
    A. Aiken, S. Bugrara, I. Dillig, T. Dillig, B. Hackett, and P. Hawkins. An Overview of the Saturn Project. In Workshop on Program Analysis for Software Tools and Engineering, pp. 43–48, 2007.Google Scholar
  11. LW+05.
    M.S. Lam, J. Whaley, V.B. Livshits, M.C. Martin, D. Avots, M. Carbin, and C. Unkel. Context-Sensitive Program Analysis as Database Queries. In Symposium on Principles of Database Systems, pp. 1–12, 2005.Google Scholar
  12. Ull89.
    J.D. Ullmann. Principles of Database and Knowledge-Base Systems. Computer Science Press, Rockville, MD, 2nd Edition, 1989.Google Scholar
  13. BNL05.
    D. Beyer, A. Noack, and C. Lewerentz. Efficient Relational Calculation for Software Analysis. IEEE Transactions on Software Engineering, 31(2):137–149, 2005.CrossRefGoogle Scholar
  14. BR02.
    T. Ball and S.K. Rajamani. The SLAM Project: Debugging System Software via Static Analysis. In Symposium on Principles of Programming Languages, pp. 1–3, 2002. Google Scholar
  15. God97.
    J.S. Foster, T. Terauchi, and A. Aiken. Flow-Sensitive Type Qualifiers. In Conference on Programming Language Design and Implementation, pp. 1–12, 2002.Google Scholar
  16. HCXE02.
    S. Hallem, B. Chelf, Y. Xie, and D. Engler. A System and Language for Building System-Specific, Static Analyses. In Conference on Programming Language Design and Implementation, pp. 69–82, 2002.Google Scholar
  17. DLS02.
    D. Große and R. Drechsler. Formal Verification of LTL Formulas for SystemC Designs. In IEEE International Symposium on Circuits and Systems, pp. 245–248, 2003.Google Scholar
  18. Det96.
    D.L. Detlefs. An overview of the extended static checking system. In Formal Methods in Software Practice, pp. 1–9, 1996.Google Scholar
  19. FTA02.
    R. Fechete, G. Kienesberger, and J. Blieberger. A Framework for CFG-Based Static Program Analysis of Ada Programs. In Ada-Europe International Conference on Reliable Software Technologies, pp. 130–143, June 2008.Google Scholar
  20. XR08.
    G. Xu and A. Rountev. AJANA: A General Framework for Source-Code-Level Interprocedural Dataflow Analysis of AspectJ Software. In Conference on Aspect-Oriented Software Development, pp. 36–47, 2008.Google Scholar
  21. HR08.
    C. Haufe and F. Rogin. Ad-Hoc Translations to Close Verilog Semantics Gap. In IEEE Workshop on Design and Diagnostics of Electronic Circuits and Systems, pp. 195–200, 2008.Google Scholar
  22. RFSH05.
    F. Rogin, E. Fehlauer, A. Schneider, and J. Haase. Automatische Generierung von Dokumentationen für VHDL-AMS-Modellbibliotheken. In ASIM Workshop, 2005, Slides [Online], Scholar
  23. Mar98.
    F. Martin. PAG - An Efficient Program Analyzer Generator. International Journal on Software Tools for Technology Transfer, 2(1):46–67, 1998.zbMATHCrossRefGoogle Scholar
  24. CoWare.
    CoWare Inc. Platform Architect Homepage. [Online], accessed July 2008.
  25. Summit.
    Summit Design, Inc. Vista Design Environment for SystemC Homepage. [Online] accessed August 2008.
  26. Actis.
    Actis Design. AccurateC: Static C++ Code Analysis for SystemC. Actis Design, Portland, 2008.Google Scholar
  27. LMB92.
    J. Levine, T. Mason, and D. Brown. Lex and Yacc: UNIX Programming Tools (A Nutshell Handbook). O’Reilly Media, 1992.Google Scholar
  28. Don92.
    C. Donnelly. Bison: The Yacc - Compatible Parser Generator. Free Software Foundation, 1992.Google Scholar
  29. Parr07.
    T. Parr. The Definitive ANTLR Reference: Building Domain-Specific Languages. Pragmatic Programmers, 2007.Google Scholar
  30. GHJV95.
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.Google Scholar
  31. Rapp08.
    C.W. Rapp. SMC Programmer’s Manual. [Online], accessed June 2008.
  32. NW+04.
    N. Nagappan, L. Williams, J. Hudepohl, W. Snipes, and M. Vouk. Preliminary Results On Using Static Analysis Tools For Software Inspection. In International Symposium on Software Reliability Engineering, pp. 429–439, 2004.Google Scholar
  33. NB05.
    N. Nagappan and T. Ball. Static Analysis Tools as Early Indicators of Pre-Release Defect Density. In International Conference on Software Engineering, pp. 580–586, 2005.Google Scholar
  34. ZW+06.
    J. Zheng, L. Williams, N. Nagappan, W. Snipes, J.P. Hudepohl, and M.A. Vouk, On the Value of Static Analysis for Fault Detection in Software. IEEE Transactions on Software Engineering, 32(4):240–253, 2006.CrossRefGoogle Scholar
  35. Wil01.
    E.D. Willink. Meta-Compilation for C++. PhD Thesis, Computer Science Research Group, University of Surrey, 2001.Google Scholar
  36. Rog02.
    F. Rogin. Konzeption und Prototyp-Implementierung eines Parser-basierten Analysesystems für Spezifikationen in e-Code. Diplomarbeit, BTU Cottbus, 2002. Google Scholar
  37. Shu02.
    F. Shull et al. What We Have Learned About Fighting Defects. In IEEE International Symposium on Software Metrics, pp. 249–258, 2002.Google Scholar
  38. ASU03.
    A.V. Aho, R. Sethi, and J.D. Ullman. Compilers. Addison-Wesley Longman, 2003.Google Scholar
  39. RH06.
    V.P. Ranganath, and J. Hatcliff. An Overview of the Indus Framework for Analysis and Slicing of Concurrent Java Software. In International Workshop on Source Code Analysis and Manipulation, pp. 3–7, 2006.Google Scholar
  40. BHJM07.
    D. Beyer, T.A. Henzinger, R. Jhala, and R. Majumdar. The Software Model Checker Blast: Applications to Software Engineering. International Journal on Software Tools for Technology Transfer, 9(5–6):505–525, 2007.CrossRefGoogle Scholar
  41. FKB08.
    C. Flanagan and S.N. Freund. Detecting Race Conditions in Large Programs. In Workshop on Program Analysis for Software Tools and Engineering, pp. 90–96, 2001.Google Scholar

Copyright information

© Springer Science+Business Media B.V. 2010

Authors and Affiliations

  1. 1.Institutsteil EntwurfsautomatisierungFraunhofer - Institut für Integrierte SchaltungenDresdenGermany
  2. 2.Universität Bremen AG RechnerarchitekturBremenGermany

Personalised recommendations