Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Formal methods
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==In software development== In [[software development]], formal methods are mathematical approaches to solving software (and hardware) problems at the requirements, specification, and design levels. Formal methods are most likely to be applied to safety-critical or security-critical software and systems, such as [[avionics software]]. Software safety assurance standards, such as [[DO-178C]] allows the usage of formal methods through supplementation, and [[Common Criteria]] mandates formal methods at the highest levels of categorization. For sequential software, examples of formal methods include the [[B-Method]], the specification languages used in [[automated theorem proving]], [[Rigorous Approach to Industrial Software Engineering|RAISE]], and the [[Z notation]]. In [[functional programming]], [[QuickCheck|property-based testing]] has allowed the mathematical specification and testing (if not exhaustive testing) of the expected behaviour of individual functions. The [[Object Constraint Language]] (and specializations such as [[Java Modeling Language]]) has allowed object-oriented systems to be formally specified, if not necessarily formally verified. For concurrent software and systems, [[Petri net]]s, [[process algebra]], and [[finite-state machine]]s (which are based on [[automata theory]]; see also [[virtual finite state machine]] or [[event driven finite state machine]]) allow executable software specification and can be used to build up and validate application behaviour. Another approach to formal methods in software development is to write a specification in some form of logic—usually a variation of [[first-order logic]]—and then to directly execute the logic as though it were a program. The [[Web Ontology Language|OWL]] language, based on [[description logic]], is an example. There is also work on mapping some version of English (or another natural language) automatically to and from logic, as well as executing the logic directly. Examples are [[Attempto Controlled English]], and Internet Business Logic, which do not seek to control the vocabulary or syntax. A feature of systems that support bidirectional English–logic mapping and direct execution of the logic is that they can be made to explain their results, in English, at the business or scientific level.{{citation needed|date=June 2016}}
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Formal methods
(section)
Add topic