Software Engineering——Chapter 6 Detailed Design Knowledge Points Arrangement

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 is the fundamental purpose of the detailed design phase?

2. The task of detailed design?

3. Results status of detailed design? How to measure program quality?

4. What is the essence of structural programming?

5. What are the problems that may be encountered in the design of human-machine interface?

6. What is the process of user interface design?

7. What are the guidelines for HMI design?

8. What are process design tools?

9. What is the program flow chart?

10. What is the main advantage of the program flowchart?

11. What are the main disadvantages of program flowcharts?

12. What are the characteristics of the box diagram (NS diagram)?

13. What is the PAD diagram?

14. What are the advantages of PAD diagram?

15. What is the applicable scenario of the judgment table?

16. What parts does the judgment table consist of? What do they represent?

17. What are the advantages and disadvantages of decision trees?

18. What is Process Design Language (PDL)?

19. What are the advantages of PDL?

20. What are the disadvantages of PDL?

21. What are the two most famous data structure-oriented design methods?

22. What are the 5 steps of the Jackson method?

23. What is the role of the method of quantitatively measuring the complexity of the program?

24. What are the methods for quantitatively measuring program complexity?

25. What is the role of flow graph?

26. What are the methods for calculating the cyclomatic complexity V(G)?

27. What is cyclomatic complexity used for?

28. What are the basic principles of detailed design?

29. Structured judgment method?

Summary at the end of the chapter


1. What is the fundamental purpose of the detailed design phase?

Determine exactly how the required system should be implemented

2. The task of detailed design?

  1. Process design : the algorithm contained in each module
  2. Data design : the data structure required in the software
  3. Interface design : that is, the communication mode between each module

[Note] The task of the detailed design stage is not to write the program specifically, but to design the " blueprint " of the program

3. Results status of detailed design? How to measure program quality?

The result of detailed design basically determines the quality of the final program code.

Measuring the quality of program code not only depends on whether its logic is correct and whether its performance meets the requirements , but more importantly, whether it is easy to read and understand

4. What is the essence of structural programming?

        Structural programming is essentially not a programming method without GOTO statements, but a programming method that makes program codes easy to read and understand . Structural programming is the method of using as few GOTO statements as possible

5. What are the problems that may be encountered in the design of human-machine interface?

  1. system response time
  2. User Help Measures
  3. Error message handling
  4. command interaction

6. What is the process of user interface design?

        User interface design is an iterative process, and once a user interface prototype has been built, it must be evaluated to determine whether it meets the needs of users

7. What are the guidelines for HMI design?

  1. General Interactive Guide
  2. Information Display Guide
  3. Data Entry Guidelines

8. What are process design tools?

The tools for describing the program processing process are called process design tools, and they can be divided into three categories: graphics, tables, and languages

9. What is the program flow chart?

Program flowchart, also known as program block diagram , is the oldest and most widely used method of describing process design

10. What is the main advantage of the program flowchart?

The main advantage of the program flow chart is that the depiction of the control flow is very intuitive , which is easy for beginners to grasp

11. What are the main disadvantages of program flowcharts?

  1. Program flow charts are inherently not a good tool for step-by-step refinement , as they tempt programmers to think prematurely about the program's control flow rather than the program's global structure
  2. The arrows in the program flow diagram represent the flow of control , so the programmer is not constrained to transfer control at will, completely disregarding the spirit of the program design
  3. Program flow charts are not easy to represent data structures

12. What are the characteristics of the box diagram (NS diagram)?

  1. The functional domain is clear , which can be seen at a glance from the box diagram
  2. Impossible to transfer control at will
  3. Easily scope local and global data
  4. It is easy to express the nesting relationship , and can also express the hierarchical structure of the module

13. What is the PAD diagram?

        The PAD diagram is a Problem Analysis Diagram (Problem Analysis Diagram). It uses a two-dimensional tree structure diagram to represent the control flow of the program. It is easier to translate this diagram into program code.

14. What are the advantages of PAD diagram?

  1. Programs designed using the PAD notation for structured control structures are necessarily structured programs
  2. The program structure depicted in the PAD diagram is very clear
  3. Use PAD diagram to express program logic, easy to read, understand and remember
  4. Easy to convert PAD diagram into high-level language source program, this conversion can be done automatically with software tools , improving software reliability and software productivity
  5. It can be used both to represent program logic and to describe data structures
  6. Notation for PAD diagrams supports the use of top-down, stepwise refinement methods

15. What is the applicable scenario of the judgment table?

When the algorithm contains multiple nested conditional choices

16. What parts does the judgment table consist of? What do they represent?

The decision table consists of 4 parts

Upper left: Indicates that all conditions are listed

Bottom left: Indicates all possible actions

Upper right: a matrix representing various combinations of conditions

Bottom right: Indicates the action corresponding to each condition combination

17. What are the advantages and disadvantages of decision trees?

Advantages : simple form, no need for any instructions, easy to grasp and use

Disadvantages : poor simplicity , the same value often needs to be written multiple times, and the closer to the leaf end, the more repetitions

18. What is Process Design Language (PDL)?

        A procedural design language (PDL), also known as pseudocode , is a "hybrid" language that uses the vocabulary of one language while using the syntax of another .

19. What are the advantages of PDL?

  1. Can be directly inserted in the middle of the source program as a comment
  2. You can use ordinary text editing programs or word processing systems to easily complete the writing and editing of PDL
  3. There is already a program that automatically processes PDL, and the program code can be automatically generated from PDL

20. What are the disadvantages of PDL?

Not as intuitive as graphical tools

21. What are the two most famous data structure-oriented design methods?

Jackson method and Warnier method

22. What are the 5 steps of the Jackson method?

  1. Analyze and determine the logical structure of input data and output data , and use Jackson diagrams to describe these data structures
  2. Find the corresponding data units in the input data structure and output data structure
  3. A Jackson graph depicting a program structure is derived from a Jackson graph depicting a data structure
  4. List all operations and conditions and assign them to the appropriate places in the program structure diagram
  5. program in pseudocode

23. What is the role of the method of quantitatively measuring the complexity of the program?

  1. Estimate the number of bugs in the software and the effort required to develop the software
  2. The results of quantitative measures can be used to compare the pros and cons of two different designs or two different algorithms
  3. Quantitative measures of program complexity can be used as precise limits on module size

24. What are the methods for quantitatively measuring program complexity?

McCabe method and Halstead method

25. What is the role of flow graph?

The flow diagram only depicts the control flow of the program, and the process design results expressed by any method can be translated into a flow diagram

26. What are the methods for calculating the cyclomatic complexity V(G)?

  1. V(G)= The number of linearly independent regions in the flow graph
  2. V(G)=E-N+2, E is the total number of edges in the flow graph, N is the number of nodes
  3. V(G)=P+1, P is the number of decision nodes in the flow graph

[Note] The flow graph in the above figure is an example, the circular complexity of the flow graph is 4

27. What is cyclomatic complexity used for?

Cyclomatic complexity is a quantitative measure of testing difficulty , and it can also give some predictions about the reliability of software

28. What are the basic principles of detailed design?

  1. Choose appropriate diagrams and tools to describe algorithms
  2. Algorithm description should be correct, reliable, clear and easy to understand
  3. Adopt a structured programming approach
  4. reduce complexity

29. Structured judgment method?

There can only be one exit in a loop, if more than one exit is unstructured

Summary at the end of the chapter


        The key task in the detailed design stage is to determine how to implement the software system that the user needs . That is to design the " blueprint " of the program . In addition to ensuring the reliability of the software , making the programs written in the future have good readability, easy understanding, easy testing, easy modification and maintenance is the most important goal in the detailed design stage. Structural programming technology is the basic guarantee to achieve the above goals and the logical basis for detailed design.
        Human-machine interface design is an important part of interface design . For interactive systems, human-computer interface design is as important as data design, architecture design, and process design. The quality of the human-machine interface directly affects the user's acceptance of the software product, therefore, sufficient attention must be paid to the design of the human-machine interface. In the process of designing the human-machine interface, we must fully pay attention to and carefully handle the four design issues of system response time, user assistance facilities, error message processing and command interaction . Human-machine interface design is an iterative process. Usually, the design model is created first, and then the design model is realized with a prototype, and the prototype is tried and evaluated by the user, and then the prototype is modified according to the user's opinion until the user is satisfied. Summing up the experience accumulated by people in the process of designing human-computer interface, some guidelines about user interface design are obtained, and careful compliance with these guidelines will help to design a friendly and efficient human-computer interface.
        The process design should be carried out after the data design, architecture design and interface design are completed . Its task is to design the detailed steps of solving the problem (that is, the algorithm), and it is the main work that should be completed in the detailed design stage. The tools of process design can be divided into three categories: graphic, table and language . These three types of tools have their own strengths, and readers should be able to choose appropriate tools according to their needs.

        Information has a clear hierarchical structure in many application fields, and the data structure-oriented design method can be used to complete the process design when developing such application systems. This chapter takes the Jackson structure programming technology as an example, and makes a preliminary introduction to the data structure-oriented design method. In order to use this method to solve practical problems, it is necessary to further study the relevant monographs. Cyclomatic complexity
can be         used to quantitatively measure the complexity of the program. Practice shows that the cyclomatic complexity V(G)=10 is a reasonable upper limit of the module size .

Next chapter : Software Engineering——Chapter 7 Realizing Knowledge Points

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

Guess you like

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