Software Engineering——Chapter 4 Formal Description Technology (non-emphasis)

This column is the blogger's personal notes, the main purpose is to use the fragmented time to memorize the knowledge points of soft engineering, hereby declare!

Article directory

1. What are the three categories of software engineering methods? and give examples

2. Definition of formal method?

3. What are the disadvantages of informal methods?

4. What are the advantages of formal methods?

5. Guidelines for applying formal methods?

6. Under what circumstances should formal specification techniques be used?

Summary at the end of the chapter


1. What are the three categories of software engineering methods? and give examples

  1. Informalization : describe requirements specifications in natural language
  2. Semi-Formalization : Modeling with Data Flow Diagram or ER Diagram
  3. Formalization : Using finite state machines to express specifications

2. Definition of formal method?

        The so-called formal method is a technique based on mathematics to describe the nature of the system , that is, if a method has a solid mathematical foundation, then it is formal.

3. What are the disadvantages of informal methods?

  1. A system specification written in natural language, possibly with conflicting statements
  2. Ambiguity and ambiguity may arise with informal methods
  3. Informal approaches can lead to incomplete system specifications
  4. Instructions written in natural language will be confused with abstraction levels , making it difficult for readers to understand the overall functional structure of the system

4. What are the advantages of formal methods?

  1.  It can concisely and accurately describe the results of physical phenomena, objects or actions , and is an ideal modeling tool
  2. Can transition smoothly between different software engineering activities
  3. Formal methods provide a means of high-level confirmation that can be proved mathematically

5. Guidelines for applying formal methods?

  1.  An appropriate representation should be chosen
  2. Should be formal, but not too formal
  3. Traditional development methods should not be abandoned
  4. Should be well documented
  5. Quality standards should not be abandoned

6. Under what circumstances should formal specification techniques be used?

        When problems such as contradiction, ambiguity, ambiguity, incompleteness, and confusion of abstract levels exist when using informal methods to describe, formal description techniques are required.

Summary at the end of the chapter

        Mathematics-based formal specification technology has not been widely used in the software industry. However, compared with less formal methods, it does have substantial advantages; formal specifications can be studied, Verification (e.g. a correct program can be shown to satisfy its specification, two specifications can be shown to be equivalent, certain forms of incompleteness and inconsistency in the specification can be automatically detected). In addition, formal specifications remove ambiguity, and it encourages software developers to use more rigorous methods early in the software engineering process, thereby reducing errors.
        Of course, formal methods also have disadvantages: most formal specifications mainly focus on the functions and data of the system, while the timing, control and behavioral requirements of the problem are more difficult to express. Furthermore, formal methods are harder to learn than less formal methods, not only do they require a significant investment in the training phase, but for some software engineers it represents a " culture shock ".

        Finite state machine, Petri net and Z language are three typical formalization methods. Combining the formal method and the under-formal method organically, making them learn from each other, should be able to obtain better results.

Next chapter: Software Engineering—Chapter 5 Overall Design Knowledge Points

 Repeatedly, down-to-earth; never forgetting, there will be echoes!

Guess you like

Origin blog.csdn.net/qq_52487066/article/details/131343094