Life cycle of software development
Software development Life Cycle (SDLC) is the life cycle of the software until it is removed or scrapped. The old explanation is that there is a problem within the defined period, feasibility analysis, general description, system design, coding, debugging and testing, inspection and operation, maintenance and other upgrades to the waste stage. This time through split-range thinking.
software engineering in A principle of thinking, ie, step by step, and step by step. Each phase must have the definition, work, assessment, formation of documents for exchange or referral, to ensure the quality of the software improve SDLC models.
As new object-oriented design methods and technologies become mature, the guiding principles of early software development for life-cycle designs gradually become smaller or need to be adapted. But from a different point of view. The object-oriented life cycle of the software itself is a concept of the traditional software lifecycle of all software engineers that are still a very important knowledge base and work instruction.
The life cycle of the SDLC phases must also be adjusted.
The old explanation above is not compatible with the life cycle model below. Only with the life cycle model of waterfall development and the derived SDLC models . Such as V-model, W-model and the iterative as the basic characteristics of the life-cycle model is not in line. The new situation should be to include iterations in the phases as follows. Problem definition, feasibility analysis, general description, system design, coding, debugging and testing, acceptance and operation during the life cycle of the software. Maintenance and upgrading to the disposal phase etc. iterative phase that combines the activities of the above phases. That is, the iteration as the phase of the development lifecycle.
Software development life cycle also called software development plan or system development life cycle is the software life cycle until retirement. Problem definition phase, feasibility analysis, general description, system design System, coding, debugging and testing. Acceptance and operation, maintenance and upgrades to remove and other stages. This thought-to-time approach is a kind of principle of thought in software technology. That is step by step, step by step, definition, work, review, and documented exchange or to consult in the future to improve the quality of software. But as new object-oriented design methods and technologies become more mature.
The guiding principles of Software development life cycle design methods gradually decline. Each cycle of the Software development life cycle determines the life cycle and generates a set of specifications (data) to be submitted to the next cycle as a basis for ongoing work. As the Software development life cycle, software development is no longer solely focused on “coding”. But summarizes the whole process of software development together. Software engineering requires that the beginning of each cycle is just a continuation of the “right” premise of the results of the previous cycle. Therefore, each cycle is preceded by “activity – result – audit – reactivity – until the result is correct” cycle progresses.
As a matter of fact, a software product or software system must birth, growth, maturity, decline phases, commonly referred to as the software lifecycle (software Development life cycle). ). The whole life cycle of the software is divided into different phases, so each phase has a clear mission so that large-scale, complex and complex management software can be control and managed more easily. In general, the software lifecycle includes:
First, define the problem.
Ask the system analysts to communicate with the user, find out what the user needs to solve the problem, and then put the description of the target system and scope to the nose, to send to the user. Used to check and confirm.
Second, feasibility study.
On the one hand, the purpose of the developed system is described in a clear language; On the other hand, feasibility analysis is carried out in many aspects, such as economics, technology, and legislation.
Third, demand analysis.
Understand all the needs of system software users, prepare the requirements and preliminary manuals, have submitted to review.
Fourth, the stage of development. The development phase consists of three phases:
2, to achieve: according to the selected programming language to complete the source code.
Five, maintenance: maintenance consists of four aspects
1, maintenance and repair:
After the software has been transferred and used, due to the development and testing is incomplete and incomplete, some potential defects will certainly be put into the implementation phase. These hidden faults are used under specific usage conditions. Touching.
2, adaptive maintenance:
is to adapt to changes in the environment and to adjust the software activities.
3, perfect sexual maintenance:
based on the user while using some of the construction suggestions for maintenance activities.
4, preventive maintenance:
is to further improve the maintainability and reliability of software systems and to make the foundation for future improvements.
Problem definition and planning
This stage is the software developers and bridge parties to discuss, mainly to determine the software development goals and its feasibility.
To determine the feasibility of software development, the software must be implemented in a detailed analysis of the various functions. The need analysis phase is a very important phase, well done during this period. The entire software development project will provide a good basis for success.
“The only constant changes.” And the same requirements are constantly changing and deepening in the overall software development process, so we need to create a change of demand plan to deal with this change to the whole. the project will continue. The definition of software requirements is the input to the development phase of software design, which plays a role in translating the required code to ensure that software concepts work.
This stage is mainly based on the results of demand analysis, complete design of the software system, such as the system frame design, database design and so on. Software design is generally divided into general design and detailed design. A good software design will provide a good foundation for the preparation of software programs.
The core of software design lies in understanding the determinants of service quality such as software performance, scalability, security, how to divide components of modules, components How software should be organized and packaged, and other things not software. Aspects of the application, but will affect the aspects of support. Software design principles include abstract, decomposition and modularity, pairing and cohesion, packaging, completeness, integrity, and originality.
Software design focuses on software compatibility, scalability, fault tolerance, maintainability, modularity, reliability, usability, robustness, security, usability. and interoperability. Coupling and cohesion are two methods used to evaluate the quality of software design.
This phase is the result of Software development life cycle design in the executable code of the computer. In the process of coding, it should be developed uniformly, in accordance with writing standards. To ensure the readability of the program, it is easy to maintain and improve the performance of the program.
After the software design is completed to be thoroughly tested to find the software in the design process of the problems and to be corrected. Testing the entire sub-unit, assembly testing and system testing in three phases. The main test methods are the test with the white box and the test with the black box two. In the test process, a detailed test plan must be drawn up and tested in strict accordance with the test plan, in order to reduce the test of randomness.
Operation and maintenance
Software maintenance is the longest period of the software life cycle. Software development has been completed and put into use, for many reasons, the software can not continue to meet the requirements of the user. To prolong the life of the software, you must maintain the software. Software maintenance, including error correction and improved maintenance of two aspects