1. Software Crisis refers to a series of serious problems encountered during the development and maintenance of computer development.
2. Software is a complete set of programs, data, and related documents. A program is executable that can complete predefined functions and performance.
Program sequence; data is a data structure that enables the program to properly process information; documents are development, use, and
Graph and text required to maintain the program.
3. Software Engineering includes three elements: methods, tools, and processes.
4. The most widely used software engineering methodology is traditional methodology and object-oriented methodology.
5. the waterfall model can be used to describe the software process of software engineering methodology.
6. waterfall model, rapid prototype model, incremental model, spiral model, and fountain model.
7. The software lifecycle is classified as: initial, refined, built, and handed over.
8. Three Aspects of feasibility study: technical feasibility, economic feasibility, and operational feasibility.
9. Data Flow Diagram (DFD) is a graphical technology that depicts the process of moving information flows and data from input to output.
Changes.
10. A data dictionary is a collection of data information, that is, a set of all elements contained in a data flow chart.
.
11. A data flow chart and a data dictionary form a logical model of the system. Without a data dictionary, the data is not strict,
Without a flow chart, the data dictionary is hard to play a role.
12. Before the end of the demand analysis stage, the system analyst should write the Software Requirement Specification in writing
Accurately describe software requirements.
13. 9. The structured analysis method is the method for Demand Analysis for top-down data streams.
14. The ER diagram contains entities, relationships, and attributes. The rectangle represents entities, the diamond represents relations, and the elliptical or rounded corner.
A rectangle represents an attribute and uses a straight line to connect an object to its attribute.
15. verify the correctness of software requirements: consistency, integrity, reality, and effectiveness.
16. The basic purpose of the overall design is to answer "In summary, how should the system be implemented? ", The overall design is also called
For configuration or preliminary design.
17. The degree of independence of a module can have two qualitative scalar measurements: cohesion and coupling.
18. Purpose of software testing: (1) testing is the process of executing a program to discover errors in the program; (2) Good
The testing scheme is a testing scheme that is very likely to discover the errors not found so far; (3) the successful test is
Tests that have not been found so far.
19. Software Testing steps: Module Testing, subsystem testing, system testing, acceptance testing, and parallel operation.
20. Software reliability is the probability of successful operation of a program at a given time point according to the specification.
21. To develop software using object-oriented methods, we usually need to establish three forms of models: describing the data structure of the system
The object model describes the dynamic model of the system control structure and the functional model that describes the system functions.
22. When developing software using object-oriented methods, object models are always the most important and basic,
Core.
23. Generally, the class diagram provided by UML is used to create an object model.
24. There are usually four relationships among classes: Association, generalization (inheritance), dependency, and refinement.
25. In UML, a link in a hollow triangle represents a generalized relationship.
26. The object model for complex problems generally consists of the topic layer, class and Object layer, structural layer, attribute layer, and service layer.
27. In a broad sense, Software Reuse can be divided into knowledge reuse, method and standard reuse, and software composition reuse.
28. The Engineering Network and the Gantt diagram are also powerful tools for arranging and managing the project progress.
29. Three Typical personnel organization modes: democratic programmer group, resident programmer group, and modern programmer group.
30. The output information of software processes can be divided into three types of computer programs, documents and data describing computer programs,
These items constitute all the information generated during the software process. People refer to them as software configurations.
Is a software configuration item.
31. CMM divides the software process from disorder to orderly evolution into five stages and sorts these stages,
Form a layer-by-layer improvement level. The five levels of capability maturity are: initial (level 1 ),
Repeatable (level 2), defined (level 3) managed (Level 4), and optimized (Level 5 ).
15. Encoding style: continuous internal documents, data descriptions, statement construction, input and output, efficiency,
32. Typical Performance of Software Crisis: Estimation of software development costs and progress is often inaccurate.
Unsatisfactory software systems often occur. The quality of software products is often unreliable.
Maintainable; software usually does not have adequate documentation; software costs are proportional to total computer costs
The annual increase; the speed of software development and production efficiency is far from keeping up with the trend of rapid popularization of computer applications.
33. Unlike hardware, software is a logical part of a computer system rather than a physical part.
34. Software, unlike general programs, is characterized by a large scale.
Simple question
1. Basic principles of Software Engineering (1) strictly manage the lifecycle with stages. (2) Adhere to the stage review. (3)
Implement strict product control. (4) use modern programming techniques. (5) results should be clearly reviewed. (6) Open
The team should be less refined. (7) acknowledge the necessity of constantly improving software engineering practices.
2. Basic tasks of each stage of the software life cycle consists of Software Definition, software development and operation maintenance 3
Each period is further divided into several stages. (1) problem definition (2) feasibility study (3)
Requirement Analysis (4) Overall Design (5) Detailed Design (6) coding and unit testing (7) comprehensive testing (8) soft
Component Maintenance
3. Task 1 of Requirement Analysis: Determining comprehensive requirements for the system (1) functional requirements (2) performance requirements (3) Reliability
Performance and availability requirements (4) error handling requirements (5) interface requirements (6) constraints (7) reverse requirements (8) available in the future
Requirement 2: Analysis System data requirements
3. Export the logical model of the system 4. Revise the system development plan
4. improved heuristic rules for Software Design (1) improved software structure improved module independence (2) the module scale should be appropriate
Medium (3) depth, width, fan-out, and fan-in should be appropriate (4) the scope of the module should be in the control domain (5) Strive
Reduce the complexity of the Module Interface (6) Design a single entry and Single Exit module (7) Functions of the module should be predictable
5. object-oriented design principles and heuristic principles
(1) Modularization (2) abstraction (3) Information Hiding (4) Weak Coupling (5) Strong cohesion (6) reusable
(1) design results should be clear and understandable (2) general-the depth of special structures should be appropriate (3) simple design class (4)
Use simple protocols (5) use simple services (6) Minimize design changes
6. Several types of software maintenance
(1) corrective maintenance (2) Adaptive maintenance (3) excellent maintenance (4) Preventive Maintenance
7. Determine Software maintainability Factors
(1) comprehensibility (2) testability (3) Maintainability (4) portability (5) reusability
8. Software configuration items
The main task of software configuration is to control changes, and be responsible for marking various software configuration items and various software versions,
Reports of software configuration audits and any changes to software configurations. (1) Identify the object in the software configuration (2)
This control (3) Change Control (4) configuration audit (5) Status report
Design Questions
1. Test the valid/invalid data Boundary Value of the equivalence class
2. Description of UML class diagram 3. N-S diagram and pad Diagram
Discussion
(1) Software Engineering (2) the key question that must be answered in the definition phase of feasibility study is: "the problem to be solved
What is ". If you do not know what the problem is, you will try to solve the problem. It is obviously blind and will only be self-explanatory.
A waste of time and money makes the final result meaningless. Although the exact definition of the problem
The necessity is obvious, but in practice it may be the most overlooked step. (3)
The task at this stage of requirement analysis is not to solve the customer's problems, but to answer the goal accurately.
What must the system do. (4) The basic task of the overall design phase is to give a general answer to "How
Sample implementation target system? "This problem. Preliminary Design, also known as preliminary design, logical design, high-level design or
Overall Design. (5) detailed design of the task at this stage is not to compile the program, but to design the details of the program
Detailed specifications. The purpose of this specification is similar to the work that engineers often use in other engineering fields.
Program blueprint, which should contain necessary details. programmers can write actual program code based on them.
(6) coding implementation (language, test) the key task at this stage is to write correct, easy to understand, and easy to understand.
Program module. (7) The key task in the maintenance phase is to make
The system persistently meets users' needs. (8) Object-oriented Technology (9) Project Management
1. Software Engineering: to develop and maintain software more effectively, software workers began to recognize
The approach to eliminating the software crisis has gradually formed a new engineering discipline.
2. Typical realization of software crisis:
(1). Estimation of the software release cost and progress is often inaccurate.
(2) Users' dissatisfaction with the "completed" software system often occurs.
(3). the quality of software products is often unreliable.
(4) software is often not maintained.
(5). The software usually does not have proper documentation.
(6) The proportion of software costs in the total cost of computer systems increases year by year.
(7). The speed of Software Development Production Rate improvement is far behind the rapid popularization of computer applications.
3. Cause of software crisis:
(1) software, unlike hardware, is a logical part of a computer system rather than a physical part.
(2) software differs from General programs. A notable feature of the software is its large scale, and the complexity of the program will follow the procedures
The model increases exponentially.
(3) the unique characteristics of the software indeed bring some objective difficulties to the development and maintenance.
(4) many misunderstandings and practices related to software development and maintenance can be attributed to
The characteristics of software development in the early stage.
4. ways to eliminate the software crisis:
(1) have a correct understanding of computer software.
(2) fully realize that software development is not a mysterious technique of individual labor, but should be well organized, well managed,
All types of personnel work together to complete the project.
(3) summarize the successful technologies and methods in use to eliminate the concept and practices of errors as soon as possible.
(4). Develop and use better software tools
5. Essential Features of Software Engineering:
(1). Software Engineering focuses on the construction of large programs.
(2) The central subject of software engineering is to control complexity.
(3) software changes frequently.
(4). The efficiency of software development is very important.
(5) harmonious cooperation is the key to software development.
(6) The software must effectively support its users.
(7). In the field of software engineering, people with one cultural background often create products for people with another cultural background.
Product.
6. Principles of Software Engineering:
(1). Use a segmented Life Cycle plan for strict management.
(2). Adhere to the stage review.
(3). Implement strict product control.
(4). Use modern programming technology.
(5). The results should be clearly reviewed.
(6) developers should be less refined.
(7). acknowledge the necessity of constantly improving software engineering practices.
7. software life cycle: consists of three periods: Software Definition, software development, and operation and maintenance.
It is divided into several stages.
8. Four phases of Software Development: overall design, detailed design, coding and unit testing, and comprehensive testing.
9. The key task in the software maintenance and maintenance phase is to ensure that the system can satisfy the user's
Yes.
10. waterfall model features:
(1). the stages are sequential and dependent.
(2). Deferred implementation.
(3) quality assurance.
11. Quick prototype model: it is a quickly established program that can run on a computer. What it can do is
A subset of the functions that the final product can accomplish.
12. The main advantage of the quick model is that it does not have a feed ring, and software products are basically linearly ordered.
13. Objective of the Feasibility Study: To determine whether the problem can be solved in the shortest time with the minimum cost.
14. feasible solution:
(1) technical feasibility; (2) economic feasibility; (3) Operational feasibility.
15. Feasibility study process steps:
(1). Review system scale and objectives.
(2) study the systems currently in use.
(3) export the high-level logic model of the new system.
(4). further define the problem.
(5). Export and evaluate the solution for selection.
(6). Recommended action guidelines.
(7). Draft the development plan.
(8). Write documents for review.
16. system flow chart: a traditional tool that outlines the physical system. Its basic idea is to use graphical symbols with black boxes.
Form depicts each part of the system.
17. Data Flow Diagram (DFD): A graphical technology that depicts the process of moving information flows and data from input to output.
Transformation.
18. Data Dictionary: a set of data information, that is, a set of definitions of all elements contained in a data flow diagram.
19. Data Dictionary components: (1) Data Stream. (2) Data Stream components. (3) Data Storage. (4) processing.
20. Data-defining methods: methods that define the vast majority of complex things are a group of elements that use the defined things.
These components are defined by the combination of lower-level components.
21. The most important use of data dictionary: as a tool in the analysis phase.
22. Why do we need to perform Requirement Analysis: because its basic task is to accurately answer what the system must do? "This
Problem. The feasibility study phase only gives a rough understanding of user needs and many details are ignored. However, the final system
But cannot omit any details. Therefore, the feasibility study cannot replace the demand analysis.
23. Integrated requirements for software systems: (1) functional requirements; (2) performance requirements; (3) reliability and feasibility requirements; (4) error handling requirements
Request. (5) interface requirement. (6) constraint. (7) reverse requirement. (8) possible requirements in the future.
24. Interview: it is the first Technology to obtain user requirements, and is still widely used so far.
Operation.
25. three models of the demand analysis process: Data Model, function model, and behavior model.
26. The data model contains three types of interrelated information: Data Objects, data object attributes, and data objects.
Connection relationship.
27. The purpose of the overall design is to answer "In summary, how should the system be implemented? "This problem.
28. Two processes of overall design: system design stage, determining the specific implementation scheme of the system; structure design stage, determining the software
Structure.
29. Steps of the overall design process: (1) plan to be selected. (2) Select a reasonable plan. (3) recommend the best solution. (4) Function
Decomposition. (5) design software structures. (6) design databases. (7) Develop test plans. (8) write documents. (9) review and review.
30. modularization: divides programs into modules with independent names and with independent access. Each module provides a sub-function.
These modules are integrated to form a whole, which can fulfill the specified functions to meet users' needs.
31. How to implement module independence: Develop modules that have independent functions and do not interact with other modules too much.
The 32 module has two qualitative standard measurements: cohesion and coupling.
33. Coupling: measure the degree of interconnection between different modules in a software architecture.
34. Cohesion: it indicates the closeness of each element in a module. It is the concept of information hiding and localization.
However, expansion.
35. Function cohesion 10-point sequential cohesion 9-point communication cohesion 7-Point Process cohesion 5-point time cohesion 3-point logical cohesion
1: Accidental cohesion: 0:
36. Strive to achieve high cohesion and low coupling during design.
37. Introduction to heuristic rules:
(1) Improve the software structure and improve the module independence.
(2). The module scale should be moderate.
(3). the depth, width, fan-out, and fan-in should be appropriate.
(4). The scope of the module should be within the control domain.
(5). strive to reduce the complexity of the module interface.
(6). Design a single portal and Single Exit module.
(7). The module functions should be predictable.
38. Exchange stream: Information enters the system along the input communication path, and is converted from the external form to the internal form to enter the system information
After processing, the system leaves the software system in an external form along the output path through the conversion center.
39. Transaction stream: The data reaches a processing t along the input path, which is based on the input data type in several actions
Select one in the sequence for execution.
40. Detailed design objectives: determine how to implement the required system.
41. structure programming: If a code block of a program only uses three basic control structures: sequence, selection, and loop
Connect, and each code has only one entry and one exit.
42. Implementation: Coding and testing are generally collectively referred.
43. coding: the software design result is translated into a program written in a programming language.
44. Testing Method: black box testing (the functions of Zhizhi products can be tested) and white box testing (the internal working process of Zhizhi products can be tested)
45. Test Procedure: (1) module test. (2) subsystem test. (3) system test. (4) Acceptance Test. (5) parallel operation.
46. Test focus: (1) Module Interface (2) local data structure (3) important execution paths (4) error handling paths (5) boundary conditions.
47. validation test: Also known as acceptance test, which aims to validate the acceptance software.
48. Alpha test: The test is performed by the user in the developer's place and under the developer's "Guide ".
The sender is responsible for recording the errors found and problems encountered during use.
49. beta testing: the software end users perform the test in one or more customer sites.
It is often not on-site for beta testing. Therefore, during the bate testing, the software must be "authentic" in an environment that cannot be controlled by developers.
Use.
50. debugging: it is the process of troubleshooting errors after the test finds an error.
51. Software maintenance: after the software has been delivered and used, it is modified to correct errors or meet new needs.
52. corrective maintenance: the process of diagnosing and correcting errors.
53. factors that determine Software maintainability: (1) comprehensibility; (2) testability; (3) maintainability; (4) portability; and (5) reusability
.
54. User Documentation: This is the first step for users to understand the system. It should give users an accurate preliminary impression on the system.
55. User documentation includes: (1) function description (2) Installation documentation (3) User Manual (4) Reference Manual (5) operator guide.
56. System Documentation: A series of documents related to system implementation, from problem definition, Requirement Description to acceptance test plan
File.