Some summaries of software engineering during the re-examination of the computer postgraduate entrance examination of Northeastern University (1)

Some summaries of software engineering during the re-examination of the computer postgraduate entrance examination of Northeastern University (1)

Chapter 1 Overview of Software Engineering

1.1 What are the characteristics of software development?
Difficult to describe, lack of visibility, complex, variable, risky, highly collaborative.

1.2 What is a software crisis? What performance? How to deal with it? Software crisis: Refers to problems such as long cycle, high cost, and low
in the process of software development and maintenance . It is manifested in: ①Lack of planning ②Insufficient and inaccurate acquisition of software requirements ③Lack of cooperation and coordination ability in team development ④Lack of good software quality evaluation methods ⑤Poor software maintainability ⑥Poor software reusability ⑦Software development process Irregularity ⑧ Lack of automated tools to assist development ⑨ Lack of change management measures ⑩ Lack of risk management means Solution: Adopt engineering methods. Software developers must use scientific, systematic, and organized engineering methods in order to produce high-quality, low-cost software products.











1.3 What is software engineering?
Software engineering is a systematic, regular, measurable and controllable engineering principle and method that is researched, established and applied in order to economically develop software that meets customer needs with quality as the core, involving software process, project management, Development methods, development tools, and even corporate culture and other aspects.

1.4 In the development history of software engineering, what are the important development methods?
Traditional software engineering methods represented by structured methods and object-oriented software engineering methods with object-oriented technology as the core.

1.5 What is involved in project management?
Involves human resource management, project planning, risk management, project tracking, quality assurance, configuration management, and more.

1.6 What are the functions of software engineering tools?
Requirements analysis, optimized software design methods, accelerated code implementation speed, improved software testing level, etc.

Chapter 2 Software Development Process and Activities

Problem Definition—Feasibility Study—Requirements Analysis—Design Activities—Implementation Activities—Test Activities—Deployment Activities

2.1 What is the software development process? During the development process, what are the main activities? Which are essential activities and which are auxiliary activities?
The software development process consists of a series of activities to develop and maintain software and related products, which define process elements such as steps, deliverables, stakeholders, and responsibilities in the software development process from different aspects.
In the development process, there are a series of activities, which can be divided into Basic Activities (basic activities, such as problem definition activities, feasibility study activities, demand analysis activities, design activities, coding activities, testing activities, deployment activities and delivery activities, etc.) and Umbrella Activities (protective activities, such as risk management activities, planning activities, project tracking activities, quality assurance activities and software configuration management activities, etc.)

2.2 Why is a "problem definition" activity needed? When does this activity take place?
Problem definition is an activity in the software development process that defines all problems to be solved and determines the scope of the system.
The customer and the developer reach a consensus to determine the approximate scope and investment amount of the system, etc., to avoid losses. The "problem definition" is like the "pathfinder" of a project.
Problem definition activities are at the forefront of the project schedule.

2.3 What is a feasibility study? Why do you need a "feasibility study" activity? When does this activity take place? Which stakeholders will be involved in this activity?
Feasibility study is to determine whether a given problem has a solution within its constraints, several solutions and which one is the best solution in a relatively short time and relatively low cost.
Since any project has constraints, it is necessary to first establish whether a solution that satisfies the constraints exists, is feasible, and is optimal, and then develop on the basis of the optimal solution; if this step is omitted, it will be in an essentially impossible to achieve The project causes a waste of manpower and material resources, or causes a large number of rework of the project, insufficient functions, and performance distortion.
Feasibility study activities are in the early stages of the project.
System analysts, funder leaders, funder technicians, user representatives, developer leaders, project managers, system architects, domain experts, etc.

2.4 What is a requirement?
Requirements: mainly the conditions or functions that the system must meet or have that are determined before the product is built. They are a description of what the system will accomplish. They must be approved by all relevant personnel. The purpose is to solve the customer's problem thoroughly. .

2.5 What is a requirements document? What types of requirements documents are there?
A collection of requirements is called a requirements document. Can be divided into user requirements documents, system requirements documents and software specification documents .

2.6 What are the criteria for describing requirements?
A good requirements description should be complete, correct, necessary, unambiguous, feasible, verifiable and prioritized .

2.7 How to understand the phrase "requirement activities throughout the entire software development process"?
During the design, coding, testing and use of the project, new requirements may emerge and old requirements may be changed. Therefore, in fact, requirements activities run through the entire software development process, but most requirements should be confirmed early.

2.8 What is design? Why is design activity important?
Design is to find and describe a method following high-quality general principles in order to realize the functional requirements and non-functional requirements of the system under the constraints of the system, and its delivery documents can guide developers to realize the system.
The main task of software design activities is to solve the "how to do" problem, which is one of the key activities in the software development process.

2.9 Please explain the components of each granularity in the design, such as systems, subsystems, frameworks, components, components, modules, classes, and methods.
System : A logical entity composed of software, hardware, or both, which can be realized by many components.
Subsystem : A part of a larger system with a well-defined interface.
Framework : A subsystem that can be reused, implements a general solution to a general problem, and provides external public functions that can be applied to different applications through "services".
Artifact : A physical asset of the development process. Includes various types of files.
Component : A special component that refers to a composite unit with a well-defined interface and clearly defined contextual dependencies.
Module : A concrete component, a component defined at the programming language level.
Class : The unit of data abstraction in an object-oriented program, a software module that describes and defines a set of similar objects.
Method : A smaller-grained software module that implements the behavior and process abstraction of a class.

2.10 What is the overall design? What is detailed design?
Overall design : The task is to determine a reasonable software architecture according to the software requirements specification document, including reasonably dividing the modules that make up the system, the calling relationship between modules, and the interface relationship between modules.
Detailed design : The task is to further determine how to realize the target system on the basis of the overall design, including the design of the system's data objects, the design of the human-machine interface, and the detailed design of the module logic.

2.11 How to understand the phrase "design activities throughout the entire software development process"?
In the development iteration, as the requirements description tends to be perfected, the software architecture starts from a rough outline and gradually improves the architecture. Other requirements - until a stable framework is obtained. In the development iteration, the code workers gradually implement the system according to the existing results of the design.

2.12 Please explain the coding, unit testing and integration involved in the implementation activities.
Coding : Converting software design results into programs written in a programming language.
Unit testing : A module is tested as an independent program unit to ensure that it can correctly perform the specified functions.
Integration : Merging individual software components into an overall software system.

2.13 What is a working version?
Working versions are an integral part of the iteration lifecycle. Represents an ongoing experiment with the purpose of demonstrating newly developed functionality.

2.14 What problems does implementation-focused software development cause? And what problems will exist if the implementation activities are underestimated?
Implementation-centric software development can result in: Weakened requirements and design, excessive reliance on implementers .
Issues that are underestimated: ① When increasing and replacing manpower, the implementation personnel need to be familiar with it for a period of time. ② The required implementers need to have certain technical content and need long-term training to master the skills. ③ There are differences in the construction level of the implementers. ④ It is not easy to measure the implementation quality of the implementers.

2.15 Why is it recommended that the implementation location be within the software enterprise when carrying out the implementation activities? If within the enterprise, what issues should be paid attention to?
Advantages: save cost, facilitate resource allocation, facilitate communication, and facilitate parallel development .
Pay attention to maintaining sufficient contact with users. The working version of each iteration should be communicated with users so that errors or deficiencies can be improved in the next iteration.

2.16 What is a test ? Please explain the concepts of defect, error and failure respectively.
Testing is the process of selecting appropriate test cases to execute the program under test, with the purpose of discovering program errors.
Defect : A shortcoming in any aspect of the system (including requirements, design, or code).
Error : Refers to an incorrect result produced by a defect in a program.
Failure : When a program cannot run or its performance is unacceptable, it is called a failure. Failures stem from code defects.

2.17 Please explain unit testing, integration testing, system testing, alpha testing, beta testing and acceptance testing respectively.
Unit testing : If and only if the tested unit is a program, it is called unit testing.
Integration test : It is to test and verify whether several components can work normally according to the expected goal when they are integrated together.
System Testing : Focuses on how the system actually works when it operates as a whole.
Alpha Testing : Testing performed by customers and users under the management of the software development team.
Beta Testing : Testing conducted by customers and users at their work sites.
Acceptance testing : The final testing operation before deploying software.

2.18 What is a test case ? What does it include?
A collection of test inputs, execution conditions, and expected results developed for a specific target.
Include identity, goals, related documents, criticality, priority, directives, desired results, cleanup .

2.19 What are the benefits of testing activities throughout the software development process?
Shorten test time, easily locate defects, and avoid mistakes.

2.20 How to choose a suitable execution location in the testing activities?
It is suggested that unit test, integration test and system test be carried out at or near the development site where the programmer is located, so that the implementer and tester can communicate with each other and respond quickly to system defects; β test and acceptance test are completely tested at the user site, which can Verify the system from the user's real on-site environment, and be able to find errors from the user's perspective.

2.21 What is deployment? What are the deployment modes ?
Deployment is the activity performed to ensure that a software product can be used properly by end users.
The deployment is divided into three modes: custom installation mode , on-site support mode , and Internet mode .

2.22 What is a deployment plan? What issues should be considered when developing a deployment plan?
Explain how to move the product from the developer to the user base. To consider: Compatibility, transition and migration strategies, deployment timeline, deployment sequence, user training.

Guess you like

Origin blog.csdn.net/Jayson13/article/details/88540345