skip to main content
10.1145/1985793.1985799acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

A lightweight code analysis and its role in evaluation of a dependability case

Authors Info & Claims
Published:21 May 2011Publication History

ABSTRACT

A dependability case is an explicit, end-to-end argument, based on concrete evidence, that a system satisfies a critical property. We report on a case study constructing a dependability case for the control software of a medical device. The key novelty of our approach is a lightweight code analysis that generates a list of side conditions that correspond to assumptions to be discharged about the code and the environment in which it executes. This represents an unconventional trade-off between, at one extreme, more ambitious analyses that attempt to discharge all conditions automatically (but which cannot even in principle handle environmental assumptions), and at the other, flow- or context-insensitive analyses that require more user involvement. The results of the analysis suggested a variety of ways in which the dependability of the system might be improved.

References

  1. M. Barnett, R. DeLine, M. Fähndrich, B. J. 0002, K. R. M. Leino, W. Schulte, and H. Venter. The spec# programming system: Challenges and directions. In VSTTE, pages 144--152, 2005.Google ScholarGoogle Scholar
  2. Common Criteria Portal. Common Criteria Documents, August 2010. http://www.commoncriteriaportal.org/thecc.html.Google ScholarGoogle Scholar
  3. J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pasareanu, Robby, and H. Zheng. Bandera: extracting finite-state models from java source code. In ICSE, pages 439--448, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. B. Dwyer and S. G. Elbaum. Unifying verification and validation techniques: relating behavior and properties through partial evidence. In FoSER Workshop, co-located with FSE, pages 93--98, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for java. In PLDI, pages 234--245, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. J. Graydon, J. C. Knight, and E. A. Strunk. Assurance based development of critical systems. In DSN, pages 347--357, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. W. Griswold. Coping with crosscutting software changes using information transparency. Metalevel Architectures and Separation of Crosscutting Concerns, pages 250--265, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Jackson. Software Abstractions: Logic, language, and analysis. MIT Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Jackson. A direct path to dependable software. Commun. ACM, 52(4):78--88, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Jackson and E. Kang. Property-part diagrams: A dependence notation for software systems. In ICSE '09 Workshop: A Tribute to Michael Jackson, 2009.Google ScholarGoogle Scholar
  11. D. Jackson, M. Thomas, and L. Millett. Software for dependable systems: sufficient evidence? National Academies Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Jackson and M. Vaziri. Finding bugs with a constraint solver. In ISSTA, pages 14--25, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Jackson. Problem Frames: Analyzing and Structuring Software Development Problems. Addison-Wesley, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Kang. A framework for dependability analysis of software systems with trusted bases. Master's thesis, Massachusetts Institute of Technology, 2010.Google ScholarGoogle Scholar
  15. E. Kang and D. Jackson. Dependability arguments with trusted bases. In RE, pages 262--271, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. T. Kelly and R. Weaver. The Goal Structuring Notation - A Safety Argument Notation. In Workshop on Assurance Cases, co-located with DSN, 2004.Google ScholarGoogle Scholar
  17. R. R. Lutz and A. Patterson-Hine. Using fault modeling in safety cases. In ISSRE, pages 271--276, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. T. S. E. Maibaum and A. Wassyng. A product-focused approach to software certification. IEEE Computer, 41(2):91--93, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Messier and J. Viega. Safe c string library, January 2005. http://www.zork.org/safestr.Google ScholarGoogle Scholar
  20. G. C. Murphy, D. Notkin, and K. J. Sullivan. Software reflexion models: Bridging the gap between source and high-level models. In SIGSOFT FSE, pages 18--28, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Popescu, J. Garcia, and N. Medvidovic. Enabling more precise dependency analysis in event-based systems. In ICPC, pages 305--306. IEEE Computer Society, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  22. A. Rae, D. Jackson, P. Ramanan, J. Flanz, and D. Leyman. Critical feature analysis of a radiotherapy machine. In SAFECOMP, pages 221--234, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  23. D. Smith and K. Simpson. Safety Critical Systems Handbook: A Straightforward Guide to Functional Safety, IEC 61508 and Related Standards. Butterworth-Heinemann, 2010.Google ScholarGoogle Scholar
  24. G. Snelting, T. Robschink, and J. Krinke. Efficient path conditions in dependence graphs for software safety analysis. ACM Trans. Softw. Eng. Methodol., 15(4):410--457, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. TIBCO (acquired Talarian in 2002). SmartSockets, August 2010. http://www.tibco.com/products/soa/messaging/smartsockets.Google ScholarGoogle Scholar
  26. W. Visser, K. Havelund, G. P. Brat, and S. Park. Model checking programs. In ASE, pages 3--12, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A lightweight code analysis and its role in evaluation of a dependability case

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ICSE '11: Proceedings of the 33rd International Conference on Software Engineering
      May 2011
      1258 pages
      ISBN:9781450304450
      DOI:10.1145/1985793

      Copyright © 2011 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 21 May 2011

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate276of1,856submissions,15%

      Upcoming Conference

      ICSE 2025

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader