What does the research report mainly include?

The main contents of the feasibility study report are as follows:

(1) Introduction: explain the purpose of writing this document; The name and background of the project; Technical terms and references used in this document.

(2) Feasibility study premise: Feasibility study premise. Explain the function, performance and basic requirements of the development project; The goal achieved; Various restrictions; Feasibility study method and main factors determining feasibility.

(3) Analysis of the existing system: explain the processing flow and data flow of the existing system; Workload; Various expenses; The number of professional and technical personnel required; All kinds of equipment needed; What's wrong with the existing system?

(4) Technical feasibility analysis of the proposed system: a brief description of the proposed system; Processing flow and data flow; Advantages compared with existing systems; Impact of the proposed system on users; Impact on various equipment, existing software, development environment and operation environment; Impact on expenditure; Technical feasibility assessment.

(5) Economic feasibility analysis of the proposed system: explain the expenditures and benefits of the proposed system; Income-investment ratio; Investment recovery cycle.

(6) Feasibility analysis of social factors: explain legal factors and analyze issues such as contract liability, patent infringement and copyright infringement; Explain the feasibility of users' use and whether it meets the requirements of users' administrative management, work system and personnel quality.

(7) Other alternatives: explain other alternatives one by one, and explain the reasons for not being recommended.

(8) Conclusion: Explain whether the project can be developed; What conditions are needed to develop; What changes have been made to the project objectives, etc.

[Analysis] The purpose of doing software feasibility study is to determine whether the software project can be developed, whether it is worth developing, and whether it can solve the problem in the shortest time with the least cost. The report is divided into eight basic contents.

2. What is the content of the system design?

Solution: In the system design stage, we should start from the top and then refine it. The system design determines the overall structure and style, which provides a basis for more detailed strategy design in the later design stage.

(1) system decomposition. The main component of a system is called a subsystem, which is neither an object nor a function, but a collection of classes, associations, operations, time and constraints. The number of subsystems that can be decomposed at one time cannot be too large, and the lowest subsystem is called a module.

(2) Determine the concurrency. Many objects in the analysis model, real world and hardware are concurrent. An important goal of system design is to determine which objects must act at the same time and which objects are not. The latter can be put together and integrated into a single control line or task.

(3) Processor and task allocation. Each concurrent subsystem must be assigned to a single hardware unit, which can be a general processor or a specific functional unit, and must complete the following tasks: estimate the performance requirements and resource requirements, select the hardware and software to realize the subsystem, assign the software subsystem to each processor to meet the performance requirements and minimize the communication between processors, and decide to realize the connection of each physical unit of each subsystem.

(4) Data storage management. The storage and management of internal data and external data of the system is an important task. Generally, each data store can combine data structure, file and database, and different data stores should compromise between cost, access time, capacity and reliability.

(5) Disposal of global resources. Global resources must be determined and strategies for obtaining global resources must be formulated. Global resources include: physical resources, such as processors and drives; Space, such as disk space and workstation screen; Logical names, such as object identifiers, class names, file names, etc.

If the resource is a physical object, you can access the concurrent system by establishing a protocol to realize autonomous control; If a resource is a logical entity, such as an object identifier, access conflicts may occur in a shared environment. For example, independent transactions may use the same object identifier at the same time, so each global resource must have a protected object, and the protected object controls access to the resource.

(6) Select the software control mechanism. All interactions in the analytical model are represented as events between objects. System design must choose one method from many methods to realize software control.

(7) Design of man-machine interface. Most of the work in the design is related to the steady-state behavior, but the user's use of the interactive interface of the system must be considered.

[Analysis] System design is an advanced strategy to solve problems and establish solutions. We must find a basic solution to this problem. The high-level structure of the system includes the decomposition of subsystems, its inherent concurrency, the distribution of hardware and software by subsystems, data storage management, resource coordination, software control implementation, and human-computer interaction interface.

3. What is a software crisis? What are the manifestations of software crisis? What is the reason?

Solution: At the end of the second stage of software development, due to the progress of computer hardware technology, the running speed, capacity and reliability of computers have been significantly improved, and the production cost has been significantly reduced, creating conditions for the wide application of computers. Some complex large-scale software development projects have been put forward, but the progress of software development technology can no longer meet the needs of development. The problems encountered in software development are not solved, which makes the problems accumulate and form sharp contradictions, thus leading to software crisis.

The software crisis is manifested in the following four aspects:

(1) often exceeds the budget, and the completion time is repeatedly delayed. Due to the lack of experience in software development and the accumulation of software development data, it is difficult to make a development plan. Subjectively and blindly making plans, there is a big gap between implementation and actual situation, which makes development funds break through again and again. Due to underestimating the workload and development difficulty, the progress can not be completed on time, and the development time has been delayed again and again.

(2) The developed software can't meet the requirements of users. At the initial stage of development, there is no clear understanding of the needs of users and it is impossible to express them clearly. After the start of development work, software personnel and users failed to exchange opinions in time, which made some problems not solved in time, which led to the development of software that could not meet the requirements of users, thus leading to the failure of development.

(3) The developed software has poor maintainability. There is no agreed specification in the development process. Software developers work according to their own style, and there is no complete and standardized document in the development process. If you find a problem, you will modify it. The program structure is not good, and the errors found in operation are difficult to modify, resulting in poor maintainability.

(4) The developed software has poor reliability. Because there are no systems and measures to ensure the quality of software in the development process, and there is no strict, sufficient and complete test in the software testing, the quality of software submitted to users is poor, and a large number of problems are exposed in the operation.

The causes of the software crisis are:

The scale of (1) software is getting bigger and bigger, and its structure is getting more and more complicated.

(2) Software development management is difficult and complicated.

(3) The cost of software development is increasing.

(4) The software development technology is backward.

(5) Backward mode of production.

(6) Backward development tools and slow productivity improvement.

Because of the emergence of software crisis, people began to develop software with the idea of engineering, and since then software production has entered the era of software engineering.

4. What aspects should we do well in software quality assurance?

Solution: Software quality assurance is an important part of software engineering management, and the following aspects should be done well in software quality assurance:

(1) Adopt technical means and tools. In order to implement the development process, quality assurance activities must adopt technical means and tools, especially the software development environment.

(2) Organize formal technical review. At the end of each stage of software development, a formal technical review should be organized. National standards require all units to take specific measures such as review, document review, design review, audit and testing to ensure quality.

(3) Strengthen software testing. Software testing is an important means of quality assurance, because testing can find most potential errors in software.

(4) Implement software engineering specifications (standards). Users can make their own software engineering specifications (standards), but once the standards are determined, they must be implemented.

(5) Changes in control software. Software modification and change often lead to potential errors, so software modification and change must be strictly controlled.

(6) Measure software quality. That is, tracking software quality, recording and reporting software quality in time.

Software quality assurance is an activity to provide users and society with satisfactory high-quality products and ensure the quality of software products from birth to extinction, which is an important content in software engineering management.