Software Engineering: It must be based on organizational quality assurance, and the comprehensive quality management and process improvement makes more mature software engineering methods.
Objective: Software Engineering aims to develop software that meets user needs, timely delivery, not exceeding budget and failure, its main goals are as follows: (1) Reasonable budget development costs, pay low development costs; (2) implementing expected software Function, achieve better software performance, meet the needs of users; (3) Improve the maintenanceability of the developed software, reduce maintenance costs; (4) Improve software development and productivity, timely delivery.
Process: The software process is a series of software engineering activities that are completed by software engineers under software tools. Lifecycle: (1) The planning phase determines the overall goals and scope of the development system, the feasibility and possible solutions of the research system, and rationally estimate the resources, costs and progress. The main contents of the software program include the software life cycle model used, developer organization, system solution, management target and level, the technology and tools used, and the development of progress, budget and resource allocation.
None customers will approve software in the case of unclear software budgets. If the development organization underestimates software costs, they will cause actual loss. Conversely, if the development organization is too high, the customer may reject the proposed program. If the development organization underestimates the time used in development, the software delivery will be postponed, which will lose our customers' trust. Conversely, if the development of the development has been estimated to develop, customers may choose other development organizations that progress faster. Therefore, for a development organization, we must first determine the delivered product, development schedule, cost budget, and resource allocation.
(2) Analyze the analysis, organize and refine the collected user needs, establish a complete analysis model, write it into a software demand specification and initial user manual. Through the review of requirements specifications, ensure a common understanding and understanding of user needs. Demand specifications clearly describe software functions, list all constraints that software must meet, and define software input and output interfaces.
In the initial stage of development, customers describe software from the concept, but these descriptions may be blurred, unreasonable or impossible. Due to software complexity, software developers are difficult to visualize software to be developed, which is a very bad thing for customers who don't know computer expertise. Therefore, the demand phase often generates an error, and may say that the customer will say when the developer delivers the software to the customer, "this software is our request, but it is not what we really need." To avoid or reduce the demand error, you need to use Suitable demand acquisition and demand analysis techniques such as rapid prototypes and use models.
(3) The goal of the design phase design phase is to determine how software, the designer determines the software architecture according to the software requirements specifications, and then determines the implementation algorithm, data structure and interface of each module, and write design instructions, and Organization for design review.
Software design is mainly focused on software architecture, data structure, user interface and algorithm. The design process converts the real-world problem model into computer world realization model, and the design also needs documentation, and should be reviewed before writing programs. .
(4) Implementation Phase During the preparation of various modules designed as computer acceptable program code, and implementation related documents is the source program and appropriate comments. (5) The test phase is based on the design test case, and the various constituent modules of the test software. Then, integrate each module to test the functionality and performance of the entire product to meet existing specifications. Once the code is generated, you can start the module test, which is generally done by the programmer. However, for the user, the software is operated as a whole, and the integration method and order of the module have a significant impact on the final product quality. Therefore, in addition to the test of a single module, integrated testing, confirmation testing and system testing are required.
(6) Once the product has been delivered once the product has been delivered, any modification to the product is maintenance. Maintenance is an integral part of the software process and should be well considered in the design and implementation of the software. The maintenance phase needs to test whether the required modifications are properly realized, and ensure that other irrelevant changes are not performed during the modification of the product.
Development Model: Incremental Model is the same as the construction building, the software is also built step by step. In the incremental model, the software is designed, implemented, integrated, and tested as a series of incremental components, each component being formed by providing a specific function of a specific function, as shown in Figure 1.8 by a plurality of interacting modules. Indicated. The incremental model does not deliver a runoffful product at all phases, but is delivered to a subset of the customer's needs. The entire product is broken down into a number of components, and the developer delivers the product one by one. The benefits of doing software can be better adapted to changes, and customers can constantly see the software developed, thereby reducing development risks. However, the incremental model also has the following defects: (1) Since the various components are gradually incorporated into the existing software architecture, the addition of the component must not damage the structured system part, which requires the software to have an open system. structure. (2) Due to the development process, changes in demand are inevitable. The flexibility of incremental models can make it adapt to this change. It is great to be superior to the waterfall model and rapid prototype model, but it is also easy to degenerate into edge change models, thus the control of software processes. When using incremental models, the first increment is often a core product that enables basic needs. After the user is delivered, after evaluating the development plan of the next increment, it includes the revision of the core product and the release of some new features. This process continues to repeat after each incremental release until the final improvement product is generated. For example, use incremental model development word processing software. It can be considered that the first incrementally issued basic file management, editing, and document generation functions, the second incremental release is more complete editing and document generation function, the third incremental implementation spelling and grammar check function, the fourth The increment completed the advanced page layout function.