Introduction Flashcards

1
Q

What is a Formal Method?

A

Formal Methods refer to mathematically rigorous techniques and tools for the specification, design and verification of software and hardware systems…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Formal (def)

A

with a well-defined syntax and semantics

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How do the Formal Methods help in SE?

A

Analysis is based on well-defined steps that follow logical reasoning and thus allow us, for example to prove that a system (a model thereof) satisfies the specification.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How is a typical SW Systems Development Process?

A
  1. Informal requierements
  2. informal or semi-formal specification (unambiguous? consistent?)
  3. design (all req. considered? design correct?)
  4. implementation
  5. unit tests (testing based on informal specification)
  6. integration / system tests (not what stakeholder wanted. Violates critical req. -> dire consequences)
  7. use and maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How operates the Model Checking?

A

From the specification and the Model, a model checker can be used (implemented) to find out, whether the specifications are satisfied or not. In the case of a non-satisfier, the specification will be modified with the help of a counter example, that says how the specification can be violated. Also the model could be modified as mostly the error is here.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Model checking in the development process

A

informal specification -> will be formalized, and from here a design will be created.
* formalized spec. will be transformed to specification for MC tool
* The created design will be transformed to a Model for the MC tool
The Model and the specifications for the MC tool will be checked with the Model Checker (MC).
If specific. not satisfied -> the design / Model or the specification will be modified.
If satisfied -> write/generate code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Obstacles with applying formal methods

A
  • high system complexity: > problem decomposed and abstracted
  • writing formal specifications and designs is difficult
  • existing tools are difficult to integrate: > formal analysis tools are not compatible with complex problems, not intuitive
How well did you know this?
1
Not at all
2
3
4
5
Perfectly