Introduction to Software Engineering Glossary

Glossary

1. Data dictionary——is a collection of description data information, which provides detailed description and exact explanation for each element in the data flow diagram according to the specified format, and is a supplementary tool for the data flow diagram.

2. Data flow diagram - he reflects the data flow of the system in a graphical way

3. White box testing - test the program according to the internal structure of the program, and verify whether each path in the program can work correctly according to the predetermined requirements. There are two testing methods, logic coverage testing and path testing.

4. Black box testing—— Test the program according to the function of the program to verify whether the input, output and program execution related to the program function are correct. There are four methods: Equivalence Classification, Boundary Value Analysis, Error Guessing, and Cause-and-Effect Diagrams

5. Perfect maintenance - the process of modifying and expanding software functions and performances in order to adapt to the development and changes of user business and organization is called perfect maintenance. Because the business and organization of various users cannot remain unchanged for a long period of time, the increase of functions and performance is inevitable, and this maintenance activity accounts for a large proportion of the entire maintenance work

6. Software reliability - refers to the probability that the program will run successfully according to the specified conditions within a given period of time

7. Software configuration - is a general term for a software in its life cycle, its various forms and versions of documents and programs

8. Software reengineering—Using reverse engineering, refactoring and other technologies to decompose, synthesize, and rebuild software on the basis of fully understanding the original software to improve the comprehensibility, maintainability, reusability, or evolution of the software.

9. Alpha testing—— is a test conducted by users under the "guidance" of developers in a controlled environment, and developers are responsible for recording errors and problems that arise during use.

10. Beta testing - is conducted by the end user(s) of the software at one or more user sites. The user is responsible for recording all the problems encountered, including subjectively identified and real problems, and regularly reports to the developer. The developer makes revisions after comprehensive user reports, and finally delivers the software product to all users.

11. Aggregation relationship - represents the whole and part relationship between classes or objects

12. Generalization relationship - represents the general and special relationship between classes or objects

13. Cohesion —a measure of how tightly the elements of a module are combined with each other .

14. Coupling - A measure of the degree of interconnection between different modules within a software structure.

Glossary:

A chapter:

Software crisis : refers to a series of serious problems encountered in the development and maintenance of computer software.

Reasons for the software crisis : On the one hand, it is related to the characteristics of the software itself, and on the other hand, it is also related to the incorrect method of software development and maintenance.

Software Engineering : An engineering discipline that guides the development and maintenance of computer software. Using engineering concepts, principles, technologies and methods to develop and maintain software, combining time-tested and proven correct management techniques with the best technical methods currently available, to economically develop high-quality software and maintain it effectively.

The 7 Fundamental Principles of Software Engineering : (1) Rigorously manage with a phased life cycle plan; (2) Persist in phased reviews; (3) Practice strict product control; (4) Use modern programming techniques; (5) Results can be clearly reviewed; (6) Development teams should be small but lean; (7) Recognize the need for continuous improvement of software engineering practices.

Three elements of software engineering methodology: method, tool, process

Software process : It is a framework for a series of tasks that need to be completed in order to obtain high-quality software, and it specifies the work steps to complete each task.

The concept of software life cycle : it consists of 3 hours of software definition, software development and software maintenance

The main tasks in the 8 phases of the software life cycle : (1) Problem definition: "What is the problem that needs to be solved?" (2) Feasibility study: "Seek a feasible solution?" (3) Requirements analysis: "What does the system need to do to solve these problems?" (4) Overall design (outline design): "How should the target system be realized?" (5) Detailed design (module design): "How to implement this system specifically?" (6) Coding and unit testing: "Write code and test each module!" "Perfect software through various tests and debugging" (8) Software maintenance: "Make the system meet the needs of users for a long time through various necessary maintenance activities!"

Chapter Two:

Five schemes of feasibility study : technical feasibility, economic feasibility, operational feasibility, legal feasibility, social benefit

Feasibility study process: 1. Review the system scale and goals, 2. Research the current system, 3. Export the high-level logic model of the new system, 4. Further define the problem, 5. Export and evaluate alternative solutions, 6. Recommend the course of action, 7. Draft the development plan, 8. Write the document and submit it for review

System Flow Diagram : A tool for describing physical systems . The system flow chart expresses the flow of data between the various components of the system

situation, rather than a control process that processes data. That is: system flow chart ≠ program flow chart .

Data Flow Diagram : A tool used to describe logical systems. Data Flow Diagram (DFD) is a graphical technique that depicts the transformation of information flow and data in the process of moving from input to output, that is, data flow diagram depicts the logical process of data flow and processing in software.

Three chapters:

The position of requirements analysis in the software life cycle : the last stage; task : complete, accurate, clear, and specific determination of the work to be done by the system.

Comprehensive requirements for software systems : functional requirements, performance requirements, reliability and availability requirements, error handling requirements, interface requirements, constraints, reverse requirements, and possible future requirements

Methods of obtaining requirements: interviews, top-down refinement for data streams, simple application specification techniques, and rapid software prototyping

3 analysis models : data model (ER diagram), function model (DFD), behavior model (state transition diagram)

The main graphical tools in the requirements analysis stage : hierarchical block diagram (depicts the hierarchical structure of data); Warnier diagram (depicts the hierarchical structure of data); IPO diagram (IPO diagram is the abbreviation of input, processing and output diagram)

Five chapters:

Two stages of overall design: (1) system design stage (2) structure design stage

Design principles for the overall design: modularity, abstraction, progressive refinement, information hiding and localization, * module independence (coupling, cohesion)

Coupling : A measure of the degree of interconnection between different modules within a software structure; includes:

(1) Data coupling - if two modules exchange information with each other through parameters, and the exchanged information is only data

(2) Control coupling - if there is control information in the transmitted information (although sometimes this control information appears in the form of data)

(3) Feature coupling - the entire data structure is passed as a parameter and the module that is called only needs to use some of the data elements

(4) Public environment coupling - two or more modules interact through a common data environment

(5) Content coupling - if one of the following situations occurs, content coupling occurs between the two modules

low - high

3. Cohesion: Marks how closely each element in a module is combined with each other; including:

(1) Accidental cohesion—if a module completes a set of tasks, these tasks are loosely related, even if they are related to each other.

(2) Logical cohesion - if the tasks completed by a module logically belong to the same or similar category.

(3) Time aggregation - if a module contains tasks that must be executed within the same period of time.

(4) Process cohesion - if the processing elements within a module are related and must be executed in a specific order.

(5) Communication cohesion - if all elements in the module use the same input data and/or produce the same output data.

(6) Sequential cohesion—if the processing elements in a module are closely related to the same function, and these processing must be performed sequentially (usually the output data of one processing element is used as the input data of the next processing element).

(7) Functional cohesion—if all the processing elements in the module belong to a whole and complete a single function.

Low Medium High

7条启发规则:改进软件结构,提高模块独立性,模块规模适中,*深度、宽度、扇出和扇入合理(深度表示软件结构中控制的层数;宽度是软件结构内同一个层次上的模块总数的最大值;扇出:调用其它的模块数(3-4);扇入:被上一级模块调用数(越多越好)),*模块的作用域应在控制域范围内(模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。),尽量降低模块接口的复杂程度,设计单入口、单出口的模块,模块功能可以预测

Six chapters:

Process design tools: program flow chart (program block diagram), box diagram (NS diagram), PAD diagram (problem analysis diagram), *decision table, decision tree, process design language

Data structure-oriented design method : (1) Jackson diagram (there are only three types of logical relationships between data elements in the program: sequential structure, selection structure, and repetitive structure) (2) *Improved Jackson diagram (3)* Jackson method

Processing process of the program: (1) Determine the input and output data structure; (2) Find the corresponding input and output data units; (3) Export the program structure diagram from the data structure diagram (both represented by Jackson diagram); (4) List all operations and conditions, and assign them to the appropriate position of the program structure diagram; (5) Express the program with pseudocode.

Seven chapters:

The definition or goal of software testing : testing is to prove that the program is wrong, not to prove that the program is error-free; a good test case is that it can find errors that have not been found so far; a successful test is a test that has found errors that have not been found so far.

Test Steps : Module Test, Subsystem Test, System Test, Acceptance Test, Parallel Run

Logic coverage: (1) Statement coverage (2) Decision coverage (3) Condition coverage (4) Decision-condition coverage (5) Condition combination coverage (6) Path coverage (7) Point coverage (8) Edge coverage

Black-box testing steps : equivalence division, boundary value analysis, error guessing, causality diagram

White box testing (structural testing) technique: inside the analysis program - each branch path. Process : Test the program according to the logic inside the program to check whether the main execution path in the program works correctly according to the predetermined requirements.

Definition of software reliability : The probability that a program will run successfully in accordance with the specification within a given time interval.

Definition of software usability : The probability that a program will run successfully at a given point in time according to the specifications.

Eight chapters:

Definition of software maintenance : The process of modifying software after it has been delivered to correct errors or to meet new needs.

Classification of software maintenance : corrective maintenance (17%~21%), adaptive maintenance (17%~21%), complete maintenance (50%~66%), preventive maintenance (4%~5%)

Chapter Thirteen:

The concept of project management is the process of rationally allocating and using various resources to achieve the established goals through a series of activities such as planning, organization and control.

Estimation of software workload : static univariate model ( E=A+B×(ev)C ), dynamic multivariate model, COCOMO2 model

Development of project schedule tools : Gantt (Gantt) chart, engineering network

Estimation of software size : (1) Line of code technology : L ​​= where L is the estimated program size, a is the smallest size of the program, b is the largest size of the program, and m is the most likely size.

Pros : Code is the "product" of all software development projects, and it's easy to count lines of code.

Disadvantages : The source program is only a component of the software configuration. It seems unreasonable to use its scale to represent the scale of the entire software. The number of lines of code required to implement the same software in different languages ​​is not the same. This method is not suitable for non-procedural languages.

3. 3 points for each sub-question, 15 points in total.

31.Software life cycle model: It is a model that describes how various activities are performed during the software development process.

32.Data dictionary (DD): The data dictionary is used to define the specific meaning of each component in the data flow diagram. It provides consistent definitions and detailed descriptions of the elements involved in system analysis, design, and maintenance in an accurate, unambiguous manner.

33.Cohesion: Cohesion is one of the measures of module independence, which refers to the measure of the functional strength of a module, that is, the measure of how closely each element in a module is combined with each other.

34.JSP method: The JSP method is a data structure-oriented design method, which defines a set of mapping processes guided by the data structure. It maps the input and output data structures into a software process description according to certain rules, that is, the program structure.

35.Polymorphism: Refers to the same operation or function, process can act on multiple types of objects and obtain different results. Or (different objects, receiving the same message can produce different results.)

1. Program maintainability: In order to meet the new needs of users, or when the environment changes, or new errors are found during operation, the amount of work required for corresponding diagnosis and modification of a software that has been put into operation.

2. Fault-tolerant technology: A technology that minimizes the impact of unavoidable errors. That is to say, when an error occurs, try not to affect other system elements as much as possible, or limit the user's influence to some allowable range.

3. Structured maintenance: If the maintenance work starts with evaluating the complete software configuration, determine the important structural features, performance features, and interface features of the software; estimate the impact of the required changes, and plan the implementation path. The design is then revised first and the modifications are carefully reviewed. The corresponding source code is then written; regression testing is performed using the information contained in the test specification; and finally, the modified software is re-delivered for use.

4. The software life cycle refers to the entire period from the time when software development requirements are put forward until the software is scrapped. This period is divided into several stages, which play an important role in the management and progress control of software production, so that software development has corresponding models, processes, procedures and steps.

5. Module independence: It is a direct product of modularization, abstraction and information hiding. As long as each module completes independent functions, the less contact with other modules, the stronger the independence of the modules. The independence of modules is measured by the coupling between modules and the cohesion within modules.

1. Data Flow Diagram: It is a tool to describe the data processing process. From the perspective of data transmission and processing, it graphically depicts the movement and transformation process of data flow from input to output.

2. Software maintenance is the last stage of the software life cycle. It is the process of modifying the software in order to correct software errors or meet new needs after the software has been delivered to users. It includes four types of maintenance activities: corrective maintenance, adaptive maintenance, preventive maintenance and complete maintenance.

3. Software testing is the process of running programs to find software bugs. The purpose is to find bugs in the software. A good test case is one that is likely to find hitherto undiscovered bugs. A successful test is one that reveals hitherto undiscovered bugs.

4. Program maintainability: In order to meet the new needs of users, or when the environment changes, or new errors are found during operation, the amount of work required for corresponding diagnosis and modification of a software that has been put into operation.

5. Software life cycle: refers to the entire period from the time when software development requirements are put forward until the software is scrapped. This period is divided into several stages, which play an important role in the management and progress control of software production, so that software development has corresponding models, processes, procedures and steps.

Guess you like

Origin blog.csdn.net/qq_67692062/article/details/131816228