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

Chapter 3 Software Process Model

3.1 What is the traditional "software life cycle" theory ? What are its disadvantages?
Traditional software engineering theory often regards the activities in these processes as "stages", which are divided into three periods of software development, namely, software definition period (problem definition, feasibility study, demand analysis), software development period ( general design, detailed design, coding, unit testing, integration testing) and operation maintenance period (every maintenance is essentially a simplified definition and development process).
Disadvantages are that protective activities are not explicitly included and that activities in the process cannot be performed concurrently .
3.2 What is a software process model ? Why an abstract representation of a process?
The software process model is a general method of organizing project activities and an abstract representation of the actual development process.
The abstract representation process can effectively improve the development quality, speed up the development progress and reduce the development cost.
3.3 What are the linear series models ? What are the evolution series models ?
The linear series models include the linear sequential model, the waterfall model, and the RAD model .
The series of evolution models include building and modifying models, incremental models, spiral models, and RUP models .
3.4 What are the disadvantages of linear sequential models ?
The linear sequential model is also called the traditional life cycle model. The disadvantages are: the assumption of a "linear" process for the project is too idealized, and the complex process is simplified; various activities are not parallel, so the "blocking state" often occurs in the project, causing huge waste of manpower and prolonging the project time; The developer cannot interact with users well; requirements cannot be fully obtained during the analysis phase.
3.5 What are the advantages and disadvantages of the waterfall model ?
Advantages: It has a certain feedback nature; the deliverables that must be submitted at each stage are strictly stipulated; before the end of each stage, there must be a formal review.
Disadvantages: The developer cannot interact with users well; the feedback effect is limited.
3.6 What does "RAD" in the RAD model mean? Why is it said that the RAD model is a "high-speed" variant "generalized" from the linear order model? What are the advantages and disadvantages of the RAD model? What kind of project is it suitable for?
RAD model: Rapid Application Development (Rapid Application Development)
is called "high speed" because the model emphasizes the rapid completion of software development within a very short development cycle.
Advantages: Fast development; encourages reuse.
Disadvantages: If a system is difficult to be properly modularized, it is difficult to organize multiple development teams to develop in parallel; if the requirements cannot be completely/correctly obtained in the early stage of the project, it is difficult to complete the development tasks on time; if there is a lack of experience in similar projects in the past , then it is difficult to quickly design the system; RAD is not suitable for high-tech risk projects.
The RAD model is suitable for applications where the requirements are complete and clear, the design is correct and clear, the degree of modularization is high, the technical risk is low, there is experience in similar systems, there are sufficient human resources, and the development cycle needs to be short (such as 60-90 days ) Completed software project.
3.7 Why is it said that the shortcomings of building and modifying the model are obvious?
It negates the importance of requirements analysis and design activities prior to project implementation; inability to control project time and costs leads to high development costs; never-ending modifications often result in system rebuilds.
3.8 What is an incremental model ? What are the advantages of the incremental model? What is the difficulty?
The incremental model is an evolutionary model. It specifies that the software development process is developed one part at a time. The incremental model adopts linear sequences that are staggered as the development schedule progresses. Each linear sequence is exactly the same as the sequence of the linear sequential model. The difference is that each linear sequence can produce a releasable working version. These The working version is based on the previous working version, and some increments have been made.
Advantages: It can interact well with users during the development process; reduce development risks; facilitate the development of experimental products; a way to deal with "deadlines".
The difficulty is that a unified software architecture must be made . According to this architecture, an appropriate iterative development plan should be arranged, and new functions can be easily expanded at a relatively small cost. In addition, stakeholders such as project managers, designers and integrators are required to have a higher level.
3.9 Who proposed the spiral model? What are the advantages and disadvantages of the spiral model?
BW Boehm, a famous American software engineering expert.
Advantages: The constantly adjusted development plan is in line with the actual situation of software development; the risk of software development is reduced; it is conducive to the development of experimental products; a way to deal with the "deadline".
Difficulties: Requires higher risk assessment techniques; since the model is newer, it is not as widely used as waterfall or incremental models. 3.10 How to understand the " iterative life cycle"
in the RUP model ?
In order to ensure the quality of the project, a more flexible method is to execute each development workflow multiple times, so as to better understand the requirements, design a strong framework, set up a development organization, and finally deliver a series of implementation results that are gradually improving. This is called an iterative life cycle.
3.11 What major stages does RUP divide the software development process into?
Inception, Elaboration, Build and Transition . 3.12 What is the difference between the development cycle and the evolution cycle
in RUP ? In the development cycle, the ultimate goal of the deliverables produced by each iteration is to produce this product. After a product is delivered to users, it may develop its next generation. The product can be evolved into the next generation of new products by repeating the same sequence of Inception, Elaboration, Construction, and Transition phases. These subsequent cycles are called called the evolution cycle. 3.13 What do the horizontal and vertical axes in the RUP model and various curves in the graph represent? The horizontal axis represents the time of a development cycle. The vertical axis represents six basic activities of business modeling, requirements, analysis and design, implementation, testing and deployment, and three protective or supportive activities of configuration and change management, project management and environment. Various curves express the effort of each activity in each iteration of the development cycle . 3.14 What are the advantages of RUP? Complete system; mature theory; strong practicality; tailorable; expandable.






Chapter 4 Problem Definition and Feasibility Study Methods

4.1 What is the purpose of problem definition ?
Find out the fundamental problems that users need the software system to solve, as well as the resources and funds required for the project.
4.2 What is the content of the problem definition report ?
The current problems of the project, project objectives, project scope, preliminary ideas, estimated investment amount and development cycle, etc.
4.3 List 5 aspects of feasibility Consider
technical feasibility (whether the technology is mature), operational feasibility (whether the user can accept the operation method), economic feasibility (whether it is profitable), scheduling feasibility (whether the specified deadline can be completed), other feasible viability (social viability, market viability, competitive viability, etc.).
4.4 What is the basis for whether the project plan is economically feasible ?
The benefits achieved must be equal to or greater than the start-up and operating costs of the proposed system.
4.6 What are the start-up and operating costs of the project ? What is the operational benefit of the project ?
The start-up cost of a project refers to the one-time expenditure paid to establish a new system.
The operating cost of the project refers to the expenses incurred in order to maintain the operation of the system.
The operating benefit of the project refers to the income that can be generated after the system is officially operated.
4.7 What is ROI analysis ? What are the disadvantages of this method?
Payback analysis is a technique for determining the length of time until the economic benefits generated by a new system exceed its development costs.
The disadvantage is that the time factor of funds is completely ignored.
4.8 What is the net present value method ? What are the advantages of this method?
The net present value of funds for an investment program is defined as the sum of the present values ​​of the resulting economic benefits minus the present value of the investment in the project.
Advantages: The use of the present value of funds recognizes the time value of money and allows for comparison of investments with different costs and economic benefits.
4.9 Assume that when developing the online pet store system, two schemes are proposed, namely scheme A and scheme B, both of which are feasible. The development cost of Scheme A is 200,000 yuan, and the annual income within the 5-year period is 60,000 yuan; the development cost of Scheme B is 800,000 yuan, and the annual income within the 5-year period is 200,000 yuan. Assuming a minimum acceptable discount rate of 10%, which option is acceptable?
100/110=0.909
first look at plan A
NPV
=6 0.909+6 0.909 0.909+... (a total of five years) -20=5.454+4.958+4.507+4.096+3.724-20
=2.739
net capital present value coefficient=2.739/ 20=0.137
and look at plan B
NPV=20
0.909+...-80=18.18+16.526+15.022+13.655+12.412-80=-4.205
net capital present value coefficient=-4.205/80=-0.052
so plan A is acceptable .
4.10 Feasibility study reportWhat is included?
Indicate the modification date, version number, modification description and modification author of each version; explain this document at the front of the report; describe the positioning of this product; describe the situation of various users respectively; product overview; program description; Feasibility comparison; risk assessment of recommended schemes; collation of opinions from customers and developers on this report; product marketing plan and software development plan.
4.11 In the feasibility study report, what aspects should the system plan include?
The hardware environment of the solution; the technical strategy of the solution; the software model of the solution and its model description; after adopting the solution, the customer's investment cost, operating cost and operating benefit; the resource allocation plan of the developer; the risks and deficiencies of the solution.
4.12 Submit a glossary for online pet stores that includes at least 5 words.
Login verification, shopping cart, favorites, pet types, commodity prices

Chapter V Demand Analysis Method

5.1 How does the workload of requirements collection and requirements analysis change in different periods of project development?
In the early days, the workload of requirements gathering was relatively large, and the workload of requirements analysis was relatively small. With the development of the project, the workload of requirements collection is gradually reduced, and the workload of requirements analysis is gradually increased.
5.2 In demand analysis activities, why should we adopt the principle of top-down and layer-by-layer decomposition ?
Often, a large, complex system cannot be fully understood all at once. If you get bogged down in the details too early, you will end up with an incomplete requirement and even ignore more important parts of the system.
5.3 Why do you need to express requirements through models?
Easy to understand, convenient and organized. (I understand it myself..)
5.4 Why shouldn't too much consideration be given to system implementation during requirements analysis ?
Avoid documenting some requirements that exist because of current technology, or using some technology that may not be suitable for new products; avoid restricting the way of implementation.
5.5 Why must requirements be verifiable ?
Only when the requirements have passed the "verification" can it be shown that the developed system meets the requirements of customers and users;
unverifiable requirements are only a subjective desire for requirements, which are meaningless for activities such as design and testing;
The quality of the system implementation can be measured through the verification criteria of the requirements.
5.6 The usability requirement of a student status management system of a college is "the system should be user-friendly". Please design an acceptance criterion for this requirement.
Example:
Acceptance criteria ①: When users use the product for the first time, they can master the operations within the authority of downloading data, uploading data, etc. within one hour.
Acceptance criteria ②: After the developer provides training services, the administrator can master all the functions of the system within three training working days and be able to work independently.
5.7 Why should requirements be traceable ?
During the conversion process, many problems may arise, or requirements may change due to various reasons. When a requirement fails at either end of a traceability link, all links associated with that requirement will be flagged as suspect. Useful for analyzing the impact of potential changes, or verifying that all requirements have been fulfilled by implementing the system.
5.8 What are the two main symbols of the state transition diagram ?
state and transition . 5.9 What is the significance
of using a data dictionary in requirements analysis activities ? Which four ? Please explain separately. The data dictionary can unify the definition and format of data in the project, facilitate the communication between developers, ensure data sharing within the organization, and avoid differences in understanding caused by inconsistency of data, as well as the resulting waste of manpower and delays in construction schedules. Data element : the smallest data unit in a software system, and the smallest unit that constitutes a database and exchanges data between system modules. Data flow : It is the basic data unit for data exchange between external entities and the system and between the internal processing of the system, and is a data structure composed of related data elements. Data storage : It also defines the data structure and is the carrier of the data structure in the data flow diagram. Compared with data flow, it is a static data structure. Processing : The processing definition should include the processing name, description, all required input and output, the database to be accessed, and the module number in the structure diagram corresponding to the processing.





5.10 What problem do the decision table and decision tree solve?
For complex conditional combination problems (in the process definition, sometimes there are multiple nested situations), the processing process can be expressed intuitively and clearly.
5.11 What types of classes does UML divide into from the perspective of modeling?
Use-case model, object-behavior model, object-relational model.
5.12 Please explain the concepts of generalization, association, aggregation, composition and dependency respectively.
Generalization: A two-level structure consisting of a superclass and several direct subclasses.
Association: A semantic link between model elements.
Aggregation: Aggregation is a special association used to represent the whole and part relationship between classes.
Composition: A more special kind of aggregation that also represents whole and part relationships between classes. But the special thing is that it is a kind of strong aggregation, and the classes in the combination relationship have the same lifetime, that is, when the main object does not exist, the contained objects do not exist either.
Dependency: A weak relationship between classes. If modifying the definition of class A may lead to modification of the definition of class B, class B is said to depend on class A.

5.13 What issues should be considered when identifying generalization relations?
Identify generalizations based on domain knowledge; identify generalizations from top to bottom; relationship; determine whether the difference between subclasses is realized by changing the attribute value of the superclass; determine whether the subclass has its own unique attributes and operations; determine whether there is only one subclass under the parent class.
5.14 What is the difference between a one-way association and a two-way association?
A one-way association has an arrow, and a two-way association is represented by a straight line without an arrow.
One-way association A→B means that A can use B's attributes and methods, but B cannot use A's.
5.15 What is the difference between aggregation and composite relations?
Composition is a more special kind of aggregation that also represents whole and part relationships between classes. But the special thing is that it is a kind of strong aggregation, and the classes in the combination relationship have the same lifetime, that is, when the main object does not exist, the contained objects do not exist either.
5.16 Under what circumstances do dependencies often appear?
A class sends a message to a class; a class is a data member type of one or some operations of another class; a class is a parameter model of an operation of another class.
5.17 What is an interaction diagram?
Interaction diagrams are used to model the dynamic behavior of software systems, showing how actors and objects communicate to complete each step of a use case or other functions.

Guess you like

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