Managing Complexity in Software Development with Formally Based Tools

Autor: Constance L. Heitmeyer
Rok vydání: 2004
Předmět:
Model checking
formal methods
Correctness
General Computer Science
Computer science
media_common.quotation_subject
Software requirements specification
Software walkthrough
computer.software_genre
Theoretical Computer Science
theorem proving
Software
Formal specification
Software quality analyst
Software verification and validation
Software requirements
Software system
formal verification
Computer-aided software engineering
Formal verification
Software design description
media_common
software tools
formal specification
Social software engineering
business.industry
Programming language
Software development
Formal methods
model checking
Software metric
Software framework
Test case
Debugging
Software security assurance
Software deployment
Software construction
Goal-Driven Software Development Process
Package development process
Software design
business
Software engineering
SCR
computer
Software verification
Computer Science(all)
Zdroj: Electronic Notes in Theoretical Computer Science. 108:11-19
ISSN: 1571-0661
DOI: 10.1016/j.entcs.2004.11.004
Popis: Over the past two decades, formal methods researchers have produced a number of powerful software tools designed to detect errors in, and to verify properties of, hardware designs, software systems, and software system artifacts. Mostly used in the past to debug hardware designs, in future years, these tools should help developers improve the quality of software systems. They should be especially useful in developing high assurance software systems, where compelling evidence is required that the system satisfies critical properties, such as safety and security. This paper describes the different roles that formally based software tools can play in improving the correctness of software and software artifacts. Such tools can help developers manage complexity by automatically exposing certain classes of software errors and by producing evidence (e.g., mechanically checked proofs, results of executing automatically generated test cases, etc.) that a software system satisfies its requirements. In addition, the tools allow practitioners to focus on development tasks best performed by people—e.g., obtaining and validating requirements and constructing a high-quality requirements specification.
Databáze: OpenAIRE