Developing Safety-Critical Systems: The Role of Formal Methods and Tools

Size: px
Start display at page:

Download "Developing Safety-Critical Systems: The Role of Formal Methods and Tools"

Transcription

1 Developing Safety-Critical Systems: The Role of Formal Methods and Tools Constance Heitmeyer Center for High Assurance Computer Systems Naval Research Laboratory Washington, DC Abstract In recent years, many formal methods have been proposed to improve the quality of safety-critical software systems. These methods include new specification and modeling languages as well as formal verification techniques, such as model checking and theorem proving. This paper describes numerous ways in which tools supporting formal methods can improve the quality of both software code as well as software specifications and models. However, while promising, formal methods and their support tools are rarely used in software practice. To overcome this problem, I propose several needed improvements, which could lead to more widespread use of formal methods in the development of safety-critical systems and software. Keywords: formal methods, formal specification, formal verification, model checking, theorem proving, software tools, software testing 1 Introduction During the past two decades, many specification and modeling languages have been introduced whose purpose is to precisely describe the required behavior of a software system at a higher level of abstraction than the code. Examples of such languages include the synchronous languages, such as Lustre (Halbwachs 1993); the modeling language Statecharts (Harel 1987); requirements languages such as RSML (Heimdahl & Leveson 1996), and SCR (Heitmeyer, Archer, Bharadwaj & Jeffords 2005); and design languages offered by industry, such as UML and Stateflow (Inc. 1999), a Statecharts variant included in Simulink. Specifications and models expressed in these languages can have important advantages in software development. First, they provide a solid foundation for later development stages i.e., design, implementation, coding, testing, and maintenance. Moreover, because they usually exclude design and implementation details, these specifications and models are more concise than code and, as a result, can serve as an effective medium for customers and developers to communicate precisely about the required behavior. In addition, they allow both manual and automated anal- Copyright c 2005, Australian Computer Society, Inc. This paper will appear in the Proceedings of the 10th Australian Workshop on Safety Related Programmable Systems, August, 2005, Sydney, Australia. This research is supported by the Office of Naval Research. ysis of the required behavior. Analyzing and correcting a software specification is usually cheaper than analyzing and correcting the code itself because the specification is most often smaller thus finding and correcting bugs in a specification is much easier than finding and correcting bugs in code. In recent years, significant advances have also occurred in formal verification. Available since the early 1990s are automated theorem provers, such as PVS (Owre, Shankar & Rushby 1993), as well as model checkers, such as Spin (Holzmann 1997) and SMV (McMillan 1993). These tools may be used to analyze a specification, a model, a design, or even software code for critical properties, such as safety and security properties. Because the analysis performed by the tools may be largely automatic in the case of model checkers, or interactive in the case of theorem provers such as PVS, such tools may be highly cost-effective for verifying (or refuting) that a software or hardware artifact satisfies a given property. In 1997 and 1998, I presented my views on both the promise of formal methods and the barriers to their acceptance (Heitmeyer 1997, Heitmeyer 1998). While confident that formal methods had significant potential for improving the quality of both hardware designs and software, I also believed that the barriers to widespread use of formal languages and tools were formidable most of the tools were simply too hard to use, required mathematically sophisticated users, and would also require, at least in the software domain, significant changes in the process used by industry to develop software. During the intervening eight years, a number of important advances in both hardware design and software development have occurred. First, many formal methods, especially those based on model checking and theorem proving, have begun to play a significant role in industrial hardware design. Second, among software developers, the popularity of modeling languages, such as UML and Stateflow, has increased significantly. In addition, the state of the art in formal verification has advanced dramatically. One of the most important advances in verification has been in decision procedures, algorithms which can decide automatically whether a formula containing Boolean expressions, linear arithmetic, enumerated types, etc., is satisfiable (see, e.g., (Stump, Barrett & Dill 2002, Filliatre, Owre, Ruess & Shankar 2001)). Many decidable theories exist for specifying and reasoning about propositional logic, real and integer arithmetic, restricted forms of arrays, etc. By combining these theories, decision procedures can automatically determine the satisfiability of a logical formula. These powerful decision procedures will significantly enhance the efficiency and power of theorem provers and some model checkers, such as infinite state model

2 checkers (see, e.g., (Bultan, Gerber & Pugh 1997)). Despite these advances, however, formal methods and their support tools are still rarely used in software practice. After briefly reviewing a number of ways in which formally-based tools could help developers significantly improve the quality of both code and software artifacts, this paper describes five areas where improvements are needed in software development. These improvements should not only increase software quality directly but should also encourage the application of existing formal methods in practical software development. 2 On the Role of Tools Many automated techniques and tools have been developed in recent years to improve the quality of software and to decrease the cost of producing quality software. Such tools can play an important role in obtaining high confidence that a software system is correct, i.e., satisfies its requirements. Described below are five different roles that tools can play in improving the quality of both software and software artifacts. The first four help improve the quality of a specification or model. The fifth uses a high-quality specification as the basis for constructing a set of tests useful in checking and debugging software code. See (Heitmeyer 2003) for examples which demonstrate how each class of tools can both improve the quality of real-world software and software artifacts and lower the cost of developing them. 2.1 Demonstrate well-formedness A well-formed specification is syntactically and type correct, has no circular dependencies, and is complete (no required behavior is missing) and consistent (no behavior in the specification is ambiguous). Tools, such as NRL s consistency checker (Heitmeyer, Jeffords & Labaw 1996), can automatically detect wellformedness errors and can also provide feedback useful in determining the cause of an error. 2.2 Discover property violations In analyzing software or a software artifact for a property of interest, a tool, such as a model checker, may uncover a property violation. By analyzing the counterexample returned by the model checker, a developer may trace the problem to either a flaw in the specification or to one or more missing assumptions. Alternatively, the formulation of the property, rather than the specification, may be incorrect. Detecting and correcting such defects can lead to higher quality specifications and to higher quality code. 2.3 Verify critical properties Either a theorem prover or a model checker may be used to verify that a software artifact, such as a requirements specification or a design specification, satisfies a critical property. Verifying that a software artifact satisfies a set of properties can help practitioners develop high confidence that the artifact is correct. 2.4 Validate a specification While a verification tool helps ensure that a specification is right, i.e., correct with respect to certain properties, a validation tool checks that the specification is the right specification, i.e., captures the intended software behavior. By running scenarios through a simulator (see, e.g., (Heitmeyer et al. 2005)), for example, the user can obtain confidence that the system specification neither omits nor incorrectly specifies the required software behavior. 2.5 Automatically construct a test suite Specification-based testing can automatically derive a suite of test cases satisfying some coverage criterion, such as branch coverage, from a formal specification (Gargantini & Heitmeyer 1999). Automated test case generation can be enormously useful to software developers because 1) the cost and time needed to automatically construct tests is much lower than the cost and time needed to manually construct tests, and 2) a suite of test cases mechanically generated from a specification usually checks a wider range of software behaviors than manually generated tests and hence may uncover more software defects. 3 Needed Improvements During the past two years, we have applied formal specification and formal verification techniques to two classes of real-world software. One class consists of software components for space systems under development by NASA these include the Fault Protection Engine (Feather, Fickas & Razermera-Marny 2001) and two modules to be used in the International Space Station the FDIR (Fault Detection, Isolation, and Recovery) module and the Incubator Display module. Another class contains software for a system called CD (Cryptographic Device) II, the second member of a family of systems, which performs cryptographic processing, e.g., decrypts and encrypts data stored on two or more communication channels (Kirby, Archer & Heitmeyer 1999). An essential requirement of CD II is to enforce data separation, i.e., to guarantee that data stored on one channel does not influence nor is influenced by data stored on a different channel. Satisfying this property is critical since data stored on one channel may be classified at a different security level than data stored on another channel. In the NASA projects, the goal has been mostly to construct, simulate and formally analyze a formal requirements specification of a software module. In the CD II task, our group produced 1) a formal Top Level Specification (TLS) in the style of (Landwehr, Heitmeyer & McLean 1984) and 2) a formal statement of the data separation property; translated the TLS and the property into TAME (Archer 2001), a front-end to PVS that represents a system as a state machine; and proved using the TAME strategies and PVS that the TLS satisfies data separation. In the CD II task, we also showed the correspondence between the TLS and security-relevant portions of the CD II code. For the potential of existing formal methods to be realized in software development, our experience in applying formal methods to these systems suggests that new technology and new research are essential. Described below are five areas where progress is needed. 3.1 Techniques for Requirements Capture One critical problem in current software practice is poorly understood and poorly documented requirements. Although some promising approaches, such as scenarios and use cases, have been introduced in industry to help developers understand software requirements, better technology is needed to help software developers construct and analyze scenarios and transform the requirements knowledge obtained from

3 scenarios into precise, consistent, and complete requirements specifications. One of the most difficult problems we encountered in applying formal methods to CD II was obtaining and documenting the behavior of the CD II software that was relevant to data separation. Without this information, formulating a formal Top Level Specification for CD II was impossible. To enhance our understanding of the behavior of the software relevant to data separation and to discover gaps in our understanding of this software, running scenarios through the simulator in the SCR toolset (see (Heitmeyer et al. 2005) for details) proved highly effective. 3.2 Specification and Modeling Languages Most of the specification and modeling languages that have been proposed by researchers have an explicit formal semantics, which makes the meaning of specifications in these languages precise and thus amenable to formal analysis. Although these formal languages have been applied effectively in a few specialized areas, for example, in control systems for nuclear power plants and in avionics systems, they are still not widely used by software developers. While languages, such as UML and Stateflow, are more popular in industry, they lack an explicit formal semantics and often the specifications and models that practitioners produce using these languages include significant design and implement details. Given the lack of formal semantics and the large specifications and models that result from too many details, the opportunity to analyze UML and Stateflow models models using formally-based tools is severely limited. To improve this situation, existing languages either need to be enhanced with features, such as fancy graphical interfaces, that encourage their use by practitioners, or new languages need to be invented. One promising approach is the design of languages for specialized domains. For example, one specification language could be designed to specify and model the required behavior of software in automobiles, while different specification and modeling languages could be designed to specify and model the required behavior of other software, such as avionics software or software in medical systems. As van Wyk and others have observed (Wyk, Heimdahl & Saad 2004), years ago, MathWorks, the company which markets Simulink and Stateflow, recognized the importance of domain-specific languages: the popularity of their development environment, MATLAB, grew when Math- Works began including toolboxes customized for specific applications. Such toolboxes allow developers to construct rapid prototypes of their systems. The benefits of specification and modeling languages with an explicit formal semantics which minimize implementation detail could be enormous. Precise, unambiguous specifications can be analyzed automatically for well-formedness, such as syntax and type correctness, consistency (no unwanted nondeterminism), and completeness (no missing cases); for critical application properties, such as security and safety properties; and for validity (to check that the specification captures the intended behavior). Specifications that are well-formed, correct with respect to critical application properties, and validated using simulation provide a solid foundation both for automatic test generation and for generating correct, efficient source code. 3.3 Specifications and Models Another very serious problem in current software development is the absence of high quality specifications and models. When they exist at all, the specifications and models produced in industry usually include significant design and implementation detail (i.e., are close to the code). The result is large, hard to understand specifications and models, which do not distinguish between the required software behavior and implementation detail. In part, this problem can be solved through education. The attributes of good specifications and models and how to construct them are topics that need more emphasis in software engineering curricula. The problem of poor quality specifications and models can also be ameliorated by improved specification and modeling languages such languages would reduce the opportunity for implementation bias and contain mechanisms that encourage the construction of precise, readable specifications and models that can be checked both manually and mechanically for completeness and consistency. Good examples of high-quality specifications and models would also help practitioners produce better specifications and models. 3.4 Methods for Building Code However, improved languages and improved specifications and models are not enough. In the end, what is needed is correct, efficient code. As noted above, an important benefit of a formal specification is that it provides a solid basis for automatically generating provably correct, efficient code. While some software developers currently use automatic code generators, the code produced by these generators is often inefficient and wasteful of memory. Needed are improved methods for automatic generation of correct, efficient code from specifications. Another promising approach to producing high quality code is to use safe languages, such as Cyclone (Trevor, Morrisett, Grossman, Hicks, Cheney & Wang 2002), a version of C which eliminates code vulnerabilities, such as uninitialized variables and potential sources of buffer overflows and arithmetic exceptions. A third promising approach to constructing high quality code is to encourage programmers to annotate their code with assertions that can be checked by a compiler. Hardware designers routinely include such assertions in their designs. Moreover, some C, C++, and Java programmers routinely use assertions as an aid in both detecting and correcting software bugs. 3.5 Techniques for Code Verification Although improved specifications and automatic code generation from these specifications can help improve the quality of software, in the near future, most source code will still be generated manually. Needed therefore are improved methods for showing that a manually generated program satisfies critical properties. One promising approach is to encourage programmers to annotate their code with assertions that can be checked automatically. While current compilers for C, C++, and Java, support and check code assertions, the set of assertions that can be analyzed is quite limited. Needed are compilers that can not only check simple Boolean equations and inequalities, e.g., x > 0, but more complex assertions, such as priv(p, x) = R (i.e., process P has read privileges for variable x). Such assertions can be translated automatically into logical formulas and then decision procedures can be used to check that the code satisfies these assertions. In addition to helping practitioners document and detect bugs in their code, such assertions may also be used to show that the code satisfies critical properties, such as security and safety properties. A technique which could automatically check code annotated with assertions for a security property,

4 such as data separation or confidentiality, would be extremely useful in developing a secure system. While one approach is to check directly that the code satisfies a specified security property, an alternative is to construct a high-level operational specification of the system s required behavior (e.g., a state machine model), prove mechanically that the high-level specification satisfies the property, and then verify automatically (or semi-automatically) that the code satisfies the specification. The benefit of a state machine specification is that it is closer to the code than a given property, and therefore proving that the code satisfies the specification is easier than proving that the code satisfies some abstract property. In checking CD II for data separation, we followed the latter approach: we constructed a high-level specification which represented CD II s behavior in terms of a state machine, used TAME and PVS to prove that the specification satisfies the data separation property, and then showed that the CD II code, annotated with assertions, satisfies the high-level specification. Manually annotating the code with assertions is highly labor-intensive. Also costly in terms of human effort is the manual process of demonstrating that the code assertions satisfy the high-level specification. More automation of the process we used in verifying the CD II code would have been extremely useful. Such automation would dramatically reduce the human effort needed to construct the assertions and to check the conformance of the assertions with the code and the formal specification. Manual annotation of code with assertions such as pre- and postconditions, while time-consuming, is well-understood, and, as mentioned above, automatic checking of simple code annotations is already supported by many source language compilers. However, generating more complex annotations automatically from code (e.g., constructing loop invariants) is a problem that requires more research. Moreover, using decision procedures to check the conformance of the code with a set of assertions is a promising approach for new research and should help significantly in mechanizing the process for code verification described above. Finally, checking the conformance of a set of validated assertions with a formal specification is also a problem that will require more research. 4 Summary Some improvements described above will require new research in requirements capture, specification and modeling languages, automatic construction and checking of complex code assertions, automatic code generation, and code verification against a set of assertions. Other improvements will require the transfer of existing research results, for example, of safe languages such as Cyclone and of formal techniques, such as model checking, and theorem proving, into software practice. In addition, better educated software developers should have the skills necessary to build high quality specifications and models and to annotate their code with assertions. Finally, existing methods and tools must be easier to use. The result of more powerful, more automated methods, better educated practitioners, and better engineered tools should allow software practitioners to construct software in an environment where tools do the tedious analysis and book-keeping. This will liberate software developers to translate vague notions of the required software behavior into precise, readable specifications that can be transformed either manually or largely automatically into correct, efficient code. Acknowledgments The use of formal methods in the NASA projects is joint work with Ralph Jeffords. The formulation of CD II s Top-Level Specification (TLS), the mechanized proofs in TAME and PVS, and the demonstration of correspondence between the TLS and the annotated code was joint work with Myla Archer and Beth Leonard. John McLean made major contributions in the formulation of the TLS and in the design of our verification process. Section 3.5 on code verification is based on discussions with Michael Colon, Beth Leonard, Myla Archer, and Ramesh Bharadwaj. References Archer, M. (2001), TAME: Using PVS strategies for special-purpose theorem proving, Annals of Mathematics and Artificial Intelligence 29(1-4), Bultan, T., Gerber, R. & Pugh, W. (1997), Symbolic model checking of infinite state systems using Presburger arithmetic, in O. Grumberg, ed., Proceedings of the 9th International Conference on Computer Aided Verification (CAV 1997), Vol of Lecture Notes in Computer Science, Springer, pp Feather, M., Fickas, S. & Razermera-Marny, N. A. (2001), Model-checking for validation of a Fault Protection System, in Proceedings, 6th International Symposium on High Assurance Systems Engineering (HASE 2001), IEEE Computer Society, pp Filliatre, J.-C., Owre, S., Ruess, H. & Shankar, N. (2001), ICS: Integrated Canonization and Solving, in Proceedings, Computer-Aided Verification (CAV 2001), Springer-Verlag, Paris, FR, pp LNCS Gargantini, A. & Heitmeyer, C. (1999), Using model checking to generate tests from requirements specifications, in Proceedings, 7th European Software Engineering Conference and 7th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE-7), LNCS 1687, Springer-Verlag, Toulouse, FR, pp Halbwachs, N. (1993), Synchronous Programming of Reactive Systems, Kluwer Academic Publishers, Boston, MA. Harel, D. (1987), Statecharts: A visual formalism for complex systems, Science of Computer Programming 8(3), Heimdahl, M. P. E. & Leveson, N. (1996), Completeness and consistency in hierarchical state-based requirements, IEEE Transactions on Software Eng. 22(6), Heitmeyer, C. (1997), Formal methods: A panacea or academic poppycock, in Proceedings, 10th International Conference of Z Users (ZUM 97), Springer-Verlag, Reading, U.K. LNCS 1212 (invited). Heitmeyer, C. (1998), On the need for practical formal methods, in Proceedings, 5th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT 98), Springer-Verlag, Lyngby, Denmark, pp LNCS 1486 (invited).

5 Heitmeyer, C. (2003), Developing high assurance systems: On the role of software tools, in Proceedings, 22nd Internat. Conf. on Computer Safety, Reliability and Security (SAFECOMP 2003), Edinburgh. (invited). Heitmeyer, C., Archer, M., Bharadwaj, R. & Jeffords, R. (2005), Tools for constructing requirements specifications: The SCR toolset at the age of ten, Computer Systems Science and Engineering 20(1), Heitmeyer, C. L., Jeffords, R. D. & Labaw, B. G. (1996), Automated consistency checking of requirements specifications, ACM Transactions on Software Engineering and Methodology 5(3), Holzmann, G. J. (1997), The model checker Spin, IEEE Transactions on Software Engineering 23(5), Kirby, J., Archer, M. & Heitmeyer, C. (1999), SCR: A practical approach to building a high assurance COMSEC system, in Proceedings, 15th Annual Computer Security Applications Conference (ACSAC 99), IEEE Computer Society, Phoenix, AZ, pp Landwehr, C. E., Heitmeyer, C. L. & McLean, J. (1984), A security model for military message systems, ACM Transactions on Computer Systems 2(3), The Mathworks, Inc. (1999), Stateflow for use with Simulink, User s Guide, Version 2 (Release 11), Natick, MA. McMillan, K. L. (1993), Symbolic Model Checking, Kluwer Academic Pub., Englewood Cliffs, NJ. Owre, S., Shankar, N. & Rushby, J. (1993), User guide for the PVS specification and verification system (Draft), Technical report, Computer Science Lab, SRI Int l, Menlo Park, CA. Stump, A., Barrett, C. & Dill, D. (2002), CVC: A cooperating validity checker, in Proceedings, 14th International Conference on Computer- Aided Verification (CAV 2002). Trevor, J., Morrisett, G., Grossman, D., Hicks, M., Cheney, J. & Wang, Y. (2002), Cyclone: A safe dialect of C, in Proceedings, USENIX Annual Technical Conf., Monterey, CA, pp Wyk, E. V., Heimdahl, M. & Saad, Y. (2004), From models to efficient code: It s all in the middle, in Proceedings, International Workshop on Software Engineering for High Performance Computing System Applications, Edinburgh, Scotland.

On the Role of Formal Methods in Software Certification: An Experience Report

On the Role of Formal Methods in Software Certification: An Experience Report Electronic Notes in Theoretical Computer Science 238 (2009) 3 9 www.elsevier.com/locate/entcs On the Role of Formal Methods in Software Certification: An Experience Report Constance L. Heitmeyer 1,2 Naval

More information

Formal Methods for Specifying, Validating, and Verifying Requirements

Formal Methods for Specifying, Validating, and Verifying Requirements Journal of Universal Computer Science, vol. 13, no. 5 (2007), 607-618 submitted: 7/5/07, accepted: 25/5/07, appeared: 28/5/07 J.UCS Formal Methods for Specifying, Validating, and Verifying Requirements

More information

SCR*: A Toolset for Specifying and. Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj

SCR*: A Toolset for Specifying and. Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj SCR*: A Toolset for Specifying and Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj Naval Research Laboratory, Code 5546, Washington, DC 20375, USA Abstract.

More information

SCR: A PRACTICAL METHOD FOR REQUIREMENTS SPECIFICATION

SCR: A PRACTICAL METHOD FOR REQUIREMENTS SPECIFICATION SCR: A PRACTICAL METHOD FOR REQUIREMENTS SPECIFICATION Constance Heitmeyer, Naval Research Laboratory, Washington, DC Abstract A controversial issue in the formal methods research community is the degree

More information

Specification Centered Testing

Specification Centered Testing Specification Centered Testing Mats P. E. Heimdahl University of Minnesota 4-192 EE/CS Building Minneapolis, Minnesota 55455 heimdahl@cs.umn.edu Sanjai Rayadurgam University of Minnesota 4-192 EE/CS Building

More information

Applying a Formal Requirements Method to Three NASA Systems: Lessons Learned

Applying a Formal Requirements Method to Three NASA Systems: Lessons Learned Applying a Formal Requirements Method to Three NASA Systems: Lessons Learned Constance L. Heitmeyer and Ralph D. Jeffords Naval Research Laboratory (Code 5546) Washington, DC 20375, USA {heitmeyer, jeffords}@itd.nrl.navy.mil

More information

A Tabular Expression Toolbox for Matlab/Simulink

A Tabular Expression Toolbox for Matlab/Simulink A Tabular Expression Toolbox for Matlab/Simulink Colin Eles and Mark Lawford McMaster Centre for Software Certification McMaster University, Hamilton, Ontario, Canada L8S 4K1 {elesc,lawford}@mcmaster.ca

More information

Adding Formal Requirements Modeling to SysML

Adding Formal Requirements Modeling to SysML Adding Formal Requirements Modeling to SysML Mark R. Blackburn www.markblackburn.com Abstract. This paper seeks to raise awareness on the SCR extensions derived from industry use, and discusses how an

More information

Requirements Specifications

Requirements Specifications ACM Transactions on Software Engineering and Methodology, 1996. Automated Consistency Checking of Requirements Specifications CONSTANCE L. HEITMEYER, RALPH D. JEFFORDS, BRUCE G. LABAW JUNBEOM YOO Dependable

More information

Tools for constructing requirements specifications: The SCR toolset at the age of ten

Tools for constructing requirements specifications: The SCR toolset at the age of ten Comput Syst Sci & Eng (2005) 1: 19-35 2005 CRL Publishing Ltd International Journal of Computer Systems Science & Engineering Tools for constructing requirements specifications: The SCR toolset at the

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

Introduction to Formal Methods

Introduction to Formal Methods 2008 Spring Software Special Development 1 Introduction to Formal Methods Part I : Formal Specification i JUNBEOM YOO jbyoo@knokuk.ac.kr Reference AS Specifier s Introduction to Formal lmethods Jeannette

More information

Analyzing Tabular Requirements Specifications Using Infinite State Model Checking

Analyzing Tabular Requirements Specifications Using Infinite State Model Checking Analyzing Tabular Requirements Specifications Using Infinite State Model Checking Tevfik Bultan 1 Univ. of California, Santa Barbara Constance Heitmeyer 2 Naval Research Laboratory Abstract This paper

More information

Auto-Generating Test Sequences for Web Applications *

Auto-Generating Test Sequences for Web Applications * Auto-Generating Test Sequences for Web Applications * Hongwei Zeng and Huaikou Miao School of Computer Engineering and Science, Shanghai University, 200072, China zenghongwei@shu.edu.cn, hkmiao@shu.edu.cn

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

Generating MC/DC Adequate Test Sequences Through Model Checking

Generating MC/DC Adequate Test Sequences Through Model Checking Generating MC/DC Adequate Test Sequences Through Model Checking Sanjai Rayadurgam Computer Science and Engineering University of Minnesota Minneapolis, MN 55455 rsanjai@cs.umn.edu Mats P.E. Heimdahl Computer

More information

Semantic embedding of Albert-CORE within PVS

Semantic embedding of Albert-CORE within PVS Semantic embedding of Albert-CORE within PVS François Chabot Computer Science Department, University of Namur Rue Grandgagnage, 21, B-5000 Namur (Belgium) fch@cediti.be Professor Eric Dubois Computer Science

More information

An Eclipse Plug-in for Model Checking

An Eclipse Plug-in for Model Checking An Eclipse Plug-in for Model Checking Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala Electrical Engineering and Computer Sciences University of California, Berkeley, USA Rupak Majumdar Computer Science

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

System Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements

System Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements System Correctness EEC 421/521: Software Engineering A Whirlwind Intro to Software Model Checking A system is correct when it meets its requirements a design without requirements cannot be right or wrong,

More information

Formal Verification. Lecture 10

Formal Verification. Lecture 10 Formal Verification Lecture 10 Formal Verification Formal verification relies on Descriptions of the properties or requirements of interest Descriptions of systems to be analyzed, and rely on underlying

More information

Simulink 모델과 C/C++ 코드에대한매스웍스의정형검증툴소개 The MathWorks, Inc. 1

Simulink 모델과 C/C++ 코드에대한매스웍스의정형검증툴소개 The MathWorks, Inc. 1 Simulink 모델과 C/C++ 코드에대한매스웍스의정형검증툴소개 2012 The MathWorks, Inc. 1 Agenda Formal Verification Key concept Applications Verification of designs against (functional) requirements Design error detection Test

More information

Model Checking: Back and Forth Between Hardware and Software

Model Checking: Back and Forth Between Hardware and Software Model Checking: Back and Forth Between Hardware and Software Edmund Clarke 1, Anubhav Gupta 1, Himanshu Jain 1, and Helmut Veith 2 1 School of Computer Science, Carnegie Mellon University {emc, anubhav,

More information

Java-MOP: A Monitoring Oriented Programming Environment for Java

Java-MOP: A Monitoring Oriented Programming Environment for Java Java-MOP: A Monitoring Oriented Programming Environment for Java Feng Chen and Grigore Roşu Department of Computer Science, University of Illinois at Urbana - Champaign, USA {fengchen, grosu}@uiuc.edu

More information

CITS5501 Software Testing and Quality Assurance Formal methods

CITS5501 Software Testing and Quality Assurance Formal methods CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005

More information

Simulink/Stateflow. June 2008

Simulink/Stateflow. June 2008 Simulink/Stateflow Paul Caspi http://www-verimag.imag.fr/ Pieter Mosterman http://www.mathworks.com/ June 2008 1 Introduction Probably, the early designers of Simulink in the late eighties would have been

More information

Test-Case Generation and Coverage Analysis for Nondeterministic Systems Using Model-Checkers

Test-Case Generation and Coverage Analysis for Nondeterministic Systems Using Model-Checkers Test-Case Generation and Coverage Analysis for Nondeterministic Systems Using Model-Checkers Gordon Fraser and Franz Wotawa Institute for Software Technology Graz University of Technology Inffeldgasse

More information

Analyzing Tabular Requirements Specifications Using Infinite State Model Checking

Analyzing Tabular Requirements Specifications Using Infinite State Model Checking Analyzing Tabular Requirements Specifications Using Infinite State Model Checking Tevfik Bultan 1 Univ. of California, Santa Barbara Constance Heitmeyer 2 Naval Research Laboratory Abstract This paper

More information

ECE 587 Hardware/Software Co-Design Lecture 11 Verification I

ECE 587 Hardware/Software Co-Design Lecture 11 Verification I ECE 587 Hardware/Software Co-Design Spring 2018 1/23 ECE 587 Hardware/Software Co-Design Lecture 11 Verification I Professor Jia Wang Department of Electrical and Computer Engineering Illinois Institute

More information

Tutorial on Model Checking Modelling and Verification in Computer Science

Tutorial on Model Checking Modelling and Verification in Computer Science Tutorial on Model Checking Modelling and Verification in Computer Science Armin Biere Institute for Formal Models and Verification Johannes Kepler University, Linz, Austria Abstract. This paper serves

More information

Lecture 11 Lecture 11 Nov 5, 2014

Lecture 11 Lecture 11 Nov 5, 2014 Formal Verification/Methods Lecture 11 Lecture 11 Nov 5, 2014 Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems to be analyzed, and

More information

Topics in Software Testing

Topics in Software Testing Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the

More information

Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications

Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 24, NO. 11, NOVEMBER 1998 927 Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications Constance Heitmeyer, James

More information

Model-Based Design for High Integrity Software Development Mike Anthony Senior Application Engineer The MathWorks, Inc.

Model-Based Design for High Integrity Software Development Mike Anthony Senior Application Engineer The MathWorks, Inc. Model-Based Design for High Integrity Software Development Mike Anthony Senior Application Engineer The MathWorks, Inc. Tucson, AZ USA 2009 The MathWorks, Inc. Model-Based Design for High Integrity Software

More information

Checking General Safety Criteria on UML Statecharts

Checking General Safety Criteria on UML Statecharts Checking General Safety Criteria on UML Statecharts Zsigmond Pap, István Majzik 1 and András Pataricza Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

A Mini Challenge: Build a Verifiable Filesystem

A Mini Challenge: Build a Verifiable Filesystem A Mini Challenge: Build a Verifiable Filesystem Rajeev Joshi and Gerard J. Holzmann Laboratory for Reliable Software, Jet Propulsion Laboratory, California Institute of Technology, Pasadena, CA 91109,

More information

Language Techniques for Provably Safe Mobile Code

Language Techniques for Provably Safe Mobile Code Language Techniques for Provably Safe Mobile Code Frank Pfenning Carnegie Mellon University Distinguished Lecture Series Computing and Information Sciences Kansas State University October 27, 2000 Acknowledgments:

More information

Simulink Design Verifier vs. SPIN a Comparative Case Study

Simulink Design Verifier vs. SPIN a Comparative Case Study Simulink Design Verifier vs. SPIN a Comparative Case Study Florian Leitner and Stefan Leue Department of Computer and Information Science University of Konstanz, Germany {Florian.Leitner,Stefan.Leue}@uni-konstanz.de

More information

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process UK MathWorks Aerospace & Defence Industry Working Group Guidelines for deployment of MathWorks R2010a toolset within

More information

Model-based GUI testing using Uppaal at NOVO Nordisk

Model-based GUI testing using Uppaal at NOVO Nordisk Model-based GUI testing using Uppaal at NOVO Nordisk Ulrik H. Hjort 2, Jacob Illum 1, Kim G. Larsen 1, Michael A. Petersen 2, and Arne Skou 1 1 Department of Computer Science, Aalborg University, Denmark

More information

Chapter 4 Objectives

Chapter 4 Objectives Chapter 4 Objectives Eliciting requirements from the customers Modeling requirements Reviewing requirements to ensure their quality Documenting requirements for use by the design and test teams 4.1 The

More information

A Formal V&V Framework for UML Models Based on Model Transformation Techniques

A Formal V&V Framework for UML Models Based on Model Transformation Techniques A Formal V&V Framework for UML Models Based on Model Transformation Techniques Soon-Kyeong Kim and David Carrington Information Technology and Electrical Engineering The University of Queensland, St. Lucia,

More information

Tools for Formally Reasoning about Systems. June Prepared by Lucas Wagner

Tools for Formally Reasoning about Systems. June Prepared by Lucas Wagner Tools for Formally Reasoning about Systems June 9 2015 Prepared by Lucas Wagner 2015 Rockwell 2015 Collins. Rockwell All Collins. rights reserved. All rights reserved. Complex systems are getting more

More information

From UML Activity Diagrams to Specification Requirements 1

From UML Activity Diagrams to Specification Requirements 1 From UML Activity Diagrams to Specification Requirements 1 Doron Drusinsky 2 Department of Computer Science Naval Postgraduate School 833 Dyer Road, Monterey, CA 93943, USA ddrusins@nps.edu Abstract Formal

More information

Leslie Lamport: The Specification Language TLA +

Leslie Lamport: The Specification Language TLA + Leslie Lamport: The Specification Language TLA + This is an addendum to a chapter by Stephan Merz in the book Logics of Specification Languages by Dines Bjørner and Martin C. Henson (Springer, 2008). It

More information

Using Model-Checkers for Mutation-Based Test-Case Generation, Coverage Analysis and Specification Analysis

Using Model-Checkers for Mutation-Based Test-Case Generation, Coverage Analysis and Specification Analysis Using Model-Checkers for Mutation-Based Test-Case Generation, Coverage Analysis and Specification Analysis Gordon Fraser and Franz Wotawa Institute for Software Technology Graz University of Technology

More information

Lecture1: Symbolic Model Checking with BDDs. Edmund M. Clarke, Jr. Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213

Lecture1: Symbolic Model Checking with BDDs. Edmund M. Clarke, Jr. Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213 Lecture: Symbolic Model Checking with BDDs Edmund M Clarke, Jr Computer Science Department Carnegie Mellon University Pittsburgh, PA 523 Temporal Logic Model Checking Specification Language: A propositional

More information

tempo2hsal: Converting Tempo Models into HybridSal Tool Description

tempo2hsal: Converting Tempo Models into HybridSal Tool Description tempo2hsal: Converting Tempo Models into HybridSal Tool Description Ashish Tiwari Bruno Dutertre Computer Science Laboratory SRI International Menlo Park CA 94025 USA Report submitted under Honeywell subcontract

More information

Regression Verification - a practical way to verify programs

Regression Verification - a practical way to verify programs Regression Verification - a practical way to verify programs Ofer Strichman Benny Godlin Technion, Haifa, Israel. Email: ofers@ie.technion.ac.il bgodlin@cs.technion.ac.il 1 Introduction When considering

More information

Analyzing Robustness of UML State Machines

Analyzing Robustness of UML State Machines Analyzing Robustness of UML State Machines Reinhard von Hanxleden Department of Computer Science and Applied Mathematics Real-Time Systems and Embedded Systems Group Christian-Albrecht Universität zu Kiel

More information

On the correctness of template metaprograms

On the correctness of template metaprograms Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007 Vol 2 pp 301 308 On the correctness of template metaprograms Ádám Sipos, István Zólyomi, Zoltán

More information

Formal Methods and their role in Software and System Development. Riccardo Sisto, Politecnico di Torino

Formal Methods and their role in Software and System Development. Riccardo Sisto, Politecnico di Torino Formal Methods and their role in Software and System Development Riccardo Sisto, Politecnico di Torino What are Formal Methods? Rigorous (mathematical) methods for modelling and analysing (computer-based)

More information

An Annotated Language

An Annotated Language Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of

More information

StateClock: a Tool for Timed Reactive Modules

StateClock: a Tool for Timed Reactive Modules StateClock: a Tool for Timed Reactive Modules Jonathan S. Ostroff Department Of Computer Science, York University, Toronto, Canada, M3J 1P3. Email: jonathan@yorku.ca Abstract: We provide an overview of

More information

Static Analysis Techniques

Static Analysis Techniques oftware Design (F28SD2): Static Analysis Techniques 1 Software Design (F28SD2) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh oftware

More information

Industrial Verification Using the KIND Model Checker Lucas Wagner Jedidiah McClurg

Industrial Verification Using the KIND Model Checker Lucas Wagner Jedidiah McClurg Industrial Verification Using the KIND Model Checker Lucas Wagner Jedidiah McClurg {lgwagner,jrmcclur}@rockwellcollins.com Software Complexity is Becoming Overwhelming Advancements in computing technology

More information

SCR Approach to Requirements The A-7 Requirements Document The A-7 requirements document, a fully worked-out specication of the required behavior of t

SCR Approach to Requirements The A-7 Requirements Document The A-7 requirements document, a fully worked-out specication of the required behavior of t Software Cost Reduction Constance L. Heitmeyer Introduction Software Cost Reduction (SCR) is a set of techniques for designing software systems developed by David Parnas and researchers from the U.S. Naval

More information

JPF SE: A Symbolic Execution Extension to Java PathFinder

JPF SE: A Symbolic Execution Extension to Java PathFinder JPF SE: A Symbolic Execution Extension to Java PathFinder Saswat Anand 1,CorinaS.Păsăreanu 2, and Willem Visser 2 1 College of Computing, Georgia Institute of Technology saswat@cc.gatech.edu 2 QSS and

More information

has developed a specication of portions of the IEEE 854 oating-point standard in PVS [7]. In PVS, the injective function space injection can be dened

has developed a specication of portions of the IEEE 854 oating-point standard in PVS [7]. In PVS, the injective function space injection can be dened PVS: Combining Specication, Proof Checking, and Model Checking? To appear in CAV'96 S. Owre, S. Rajan, J. M. Rushby, N. Shankar, and M. Srivas Computer Science Laboratory, SRI International, Menlo Park

More information

Areas related to SW verif. Trends in Software Validation. Your Expertise. Research Trends High level. Research Trends - Ex 2. Research Trends Ex 1

Areas related to SW verif. Trends in Software Validation. Your Expertise. Research Trends High level. Research Trends - Ex 2. Research Trends Ex 1 Areas related to SW verif. Trends in Software Validation Abhik Roychoudhury CS 6214 Formal Methods Model based techniques Proof construction techniques Program Analysis Static Analysis Abstract Interpretation

More information

Verification and testing automation of UML projects

Verification and testing automation of UML projects Verification and testing automation of UML projects Nikita Voinov, Vsevolod Kotlyarov Saint-Petersburg State Polytechnic University, Saint-Petersburg, Russia voinov@ics2.ecd.spbstu.ru, vpk@ics2.ecd.spbstu.ru

More information

Tsmart-BIPEX: An Integrated Graphical Design Toolkit for Software Systems

Tsmart-BIPEX: An Integrated Graphical Design Toolkit for Software Systems Tsmart-BIPEX: An Integrated Graphical Design Toolkit for Software Systems Huafeng Zhang 1, Yu Jiang 1, Han Liu 1, Ming Gu 1, and Jiaguang Sun 1 School of Software, Tsinghua University, China Abstract.

More information

ISO compliant verification of functional requirements in the model-based software development process

ISO compliant verification of functional requirements in the model-based software development process requirements in the model-based software development process Hans J. Holberg SVP Marketing & Sales, BTC Embedded Systems AG An der Schmiede 4, 26135 Oldenburg, Germany hans.j.holberg@btc-es.de Dr. Udo

More information

Verification and Validation

Verification and Validation Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Verification and Validation 1 Verification and Validation

More information

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.

More information

WHITE PAPER. 10 Reasons to Use Static Analysis for Embedded Software Development

WHITE PAPER. 10 Reasons to Use Static Analysis for Embedded Software Development WHITE PAPER 10 Reasons to Use Static Analysis for Embedded Software Development Overview Software is in everything. And in many embedded systems like flight control, medical devices, and powertrains, quality

More information

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt Verification (See related materials in textbook.) Outline What are the goals of verification? What are the main approaches to verification? What kind of assurance do we get through testing? How can testing

More information

Software Lifecycle Context (Waterfall Model) Software Requirements. The Requirements Engineering Problem

Software Lifecycle Context (Waterfall Model) Software Requirements. The Requirements Engineering Problem Software Lifecycle Context (Waterfall Model) David S. Rosenblum ICS 221 Winter 2001 Design Implementation Integration Validation Deployment The Engineering Problem Difficult even when a working implementation

More information

ABHELSINKI UNIVERSITY OF TECHNOLOGY

ABHELSINKI UNIVERSITY OF TECHNOLOGY T-79.5305 Formal Methods (4 ECTS) T-79.5305 Formaalit menetelmät (4 op) 2006-09-13 Tommi Junttila, Keijo Heljanko, Ilkka Niemelä, and Heikki Tauriainen T-79.5305 Formal Methods, Autumn 2006 1/27 T-79.5305

More information

A Formal Method for Developing Provably Correct Fault-Tolerant Systems Using Partial Refinement and Composition

A Formal Method for Developing Provably Correct Fault-Tolerant Systems Using Partial Refinement and Composition A Formal Method for Developing Provably Correct Fault-Tolerant Systems Using Partial Refinement and Composition Ralph Jeffords, Constance Heitmeyer, Myla Archer, and Elizabeth Leonard Naval Research Laboratory

More information

Formal Methods for Software Engineers

Formal Methods for Software Engineers Formal Methods for Software Engineers Professor Ray Welland Department of Computing Science University of Glasgow ray@dcs.gla.ac.uk INF3120-FM 1 Overview Motivation Why have formal specifications? Where

More information

Annales UMCS Informatica AI 2 (2004) UMCS. An algorithm and case study for the object oriented abstraction.

Annales UMCS Informatica AI 2 (2004) UMCS. An algorithm and case study for the object oriented abstraction. Annales Informatica AI 2 (2004) 115-124 Annales Informatica Lublin-Polonia Sectio AI http://www.annales.umcs.lublin.pl/ An algorithm and case study for the object oriented abstraction Jakub Ratajczak Institute

More information

Leveraging Formal Methods for Verifying Models and Embedded Code Prashant Mathapati Application Engineering Group

Leveraging Formal Methods for Verifying Models and Embedded Code Prashant Mathapati Application Engineering Group Leveraging Formal Methods for Verifying Models and Embedded Code Prashant Mathapati Application Engineering Group 2014 The MathWorks, Inc. 1 The Cost of Failure News reports: Recall Due to ECU software

More information

An Approach to the Generation of High-Assurance Java Card Applets

An Approach to the Generation of High-Assurance Java Card Applets An Approach to the Generation of High-Assurance Java Card Applets Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/

More information

Model Checking DSL-Generated C Source Code

Model Checking DSL-Generated C Source Code Model Checking DSL-Generated C Source Code Martin Sulzmann and Axel Zechner Informatik Consulting Systems AG, Germany {martin.sulzmann,axel.zechner}@ics-ag.de Abstract. We report on the application of

More information

Parnas Tables: A Practical Formalism. Joanne M. Atlee Department of Computer Science University of Waterloo

Parnas Tables: A Practical Formalism. Joanne M. Atlee Department of Computer Science University of Waterloo Parnas Tables: A Practical Formalism Joanne M. Atlee Department of Computer Science University of Waterloo Critical Software Medical Devices Transportation Telecommunications Automated Manufacturing Software

More information

Lecture 7: Requirements Modeling III. Formal Methods in RE

Lecture 7: Requirements Modeling III. Formal Methods in RE Lecture 7: Requirements Modeling III Last Last Week: Week: Modeling Modeling and and (II) (II) Modeling Modeling Functionality Functionality Structured Structured Object Object Oriented Oriented This This

More information

Flight Systems are Cyber-Physical Systems

Flight Systems are Cyber-Physical Systems Flight Systems are Cyber-Physical Systems Dr. Christopher Landauer Software Systems Analysis Department The Aerospace Corporation Computer Science Division / Software Engineering Subdivision 08 November

More information

Jay Abraham 1 MathWorks, Natick, MA, 01760

Jay Abraham 1 MathWorks, Natick, MA, 01760 Jay Abraham 1 MathWorks, Natick, MA, 01760 Stringent performance requirements and shorter development cycles are driving the use of modeling and simulation. Model-Based Design core of this development

More information

Myla Archer, Constance Heitmeyer, and Steve Sims. farcher, heitmeyer, Abstract

Myla Archer, Constance Heitmeyer, and Steve Sims. farcher, heitmeyer, Abstract TAME: A PVS Interface to Simplify Proofs for Automata Models Presented at UITP 98, Eindhoven, Netherlands, July 13-15, 1998 Myla Archer, Constance Heitmeyer, and Steve Sims Code 5546, Naval Research Laboratory,

More information

Tools for Formal Specification, Verification, and Validation of Requirements

Tools for Formal Specification, Verification, and Validation of Requirements To appear in Proc., COMPASS 97 Tools for Formal Specification, Verification, and Validation of Requirements Constance Heitmeyer, James Kirby, and Bruce Labaw Center for High Assurance Computer Systems

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 3 1 2 Non-Testing V&V 7 2.1 Code Review....... 8 2.2 Mathematically-based verification......................... 19 2.3 Static analysis tools... 23 2.4

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 2 2 Non-Testing V&V 3 2.1 Code Review........... 4 2.2 Mathematically-based verification.................................. 8 2.3 Static analysis tools.......

More information

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Rockwell Collins Evolving FM Methodology

Rockwell Collins Evolving FM Methodology Rockwell Collins Evolving FM Methodology Konrad Slind Trusted Systems Group Rockwell Collins January 25, 2014 Collaborators Rockwell Collins: Andrew Gacek, David Hardin, Darren Cofer, John Backes, Luas

More information

Lecture Notes on Contracts

Lecture Notes on Contracts Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,

More information

Human Error Taxonomy

Human Error Taxonomy Human Error Taxonomy The Human Error Taxonomy (HET) provides a structure for requirement errors made during the software development process. The HET can be employed during software inspection to help

More information

Finite-State Verification for High Performance Computing

Finite-State Verification for High Performance Computing Finite-State Verification for High Performance Computing George S. Avrunin Department of Mathematics and Statistics University of Massachusetts Amherst, MA 01003 avrunin@math.umass.edu Stephen F. Siegel

More information

Formal Verification of Synchronization Issues in SpecC Description with Automatic Abstraction

Formal Verification of Synchronization Issues in SpecC Description with Automatic Abstraction Formal Verification of Synchronization Issues in SpecC Description with Automatic Abstraction Thanyapat Sakunkonchak and Masahiro Fujita Department of Electronic Engineering, University of Tokyo 7-3-1

More information

Static program checking and verification

Static program checking and verification Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness

More information

Formal Verification! Prof. Leon Osterweil! Computer Science 520/620! Spring 2012!

Formal Verification! Prof. Leon Osterweil! Computer Science 520/620! Spring 2012! Formal Verification Prof. Leon Osterweil Computer Science 520/620 Spring 2012 Relations and Analysis A software product consists of A collection of (types of) artifacts Related to each other by myriad

More information

Combining Complementary Formal Verification Strategies to Improve Performance and Accuracy

Combining Complementary Formal Verification Strategies to Improve Performance and Accuracy Combining Complementary Formal Verification Strategies to Improve Performance and Accuracy David Owen June 15, 2007 2 Overview Four Key Ideas A Typical Formal Verification Strategy Complementary Verification

More information

Automated Requirements-Based Testing

Automated Requirements-Based Testing Automated Requirements-Based Testing Tuesday, October 7 th 2008 2008 The MathWorks, Inc. Dr. Marc Segelken Senior Application Engineer Overview Purposes of Testing Test Case Generation Structural Testing

More information

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur Module 3 Requirements Analysis and Specification Lesson 6 Formal Requirements Specification Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a formal

More information

Program Verification (6EC version only)

Program Verification (6EC version only) Program Verification (6EC version only) Erik Poll Digital Security Radboud University Nijmegen Overview Program Verification using Verification Condition Generators JML a formal specification language

More information

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process Objectives Chapter 19 Verification and Validation Assuring that a software system meets a user s need are to introduce software verification and validation (V&V) and to discuss the distinction between

More information

Advances in Programming Languages

Advances in Programming Languages T O Y H Advances in Programming Languages APL4: JML The Java Modeling Language David Aspinall (slides originally by Ian Stark) School of Informatics The University of Edinburgh Thursday 21 January 2010

More information

Finding Deadlocks of Event-B Models by Constraint Solving

Finding Deadlocks of Event-B Models by Constraint Solving B 2011 June 21st, 2011, Limerick, Ireland Finding Deadlocks of Event-B Models by Constraint Solving Stefan Hallerstede, Michael Leuschel Institut für Informatik, Universität Düsseldorf Universitätsstr.

More information

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen INF672 Protocol Safety and Verication Karthik Bhargavan Xavier Rival Thomas Clausen 1 Course Outline Lecture 1 [Today, Sep 15] Introduction, Motivating Examples Lectures 2-4 [Sep 22,29, Oct 6] Network

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information