Software Engineering | Life cycle

Source: Internet
Author: User

The software lifecycle Stages 

1. The initial work of software development should be the problem definition, which is to determine what the problem is to be solved; 

2. A feasibility study is then conducted to determine whether there is a viable solution to the problem; 

3. Next, we should carry out requirements analysis, that is, in-depth and specific understanding of user requirements, in the system to be developed (what may be called the target system) must do what this issue with the user to obtain a complete agreement on the view; 

4. After the above software definition period of preparation can enter the development period, and in the development period first need to design software (usually divided into the outline design and detailed design of two stages); 

5. Before entering the stage of programming; 6. After the program has been written, it must undergo a large amount of testing work (the amount of work required usually 40%~50% the total workload of software development) before it can be finally delivered. 

Therefore, writing a program is only a phase of the software development process, and in a typical software development project, the amount of work required to write a program only accounts for the total workload of the software development 10%~20%. 

  software including programs, documents and data Components! 

1. A program is an executable sequence of instructions capable of accomplishing predetermined functions and performance, 

2. Data is the data structure that enables the program to process information appropriately; 

3. Documentation is the graphic material needed to develop, use, and maintain programs. 

A program is only one component of a complete software product, one or more components of the final product are to be drawn at each stage of the software lifecycle (these components are usually in the form of document data). In other words, a software product must be composed of a complete configuration, software configuration mainly include programs, documents and data components. It is necessary to eliminate the confusion that only attaches importance to the program and ignores the rest of the software configuration. 

The key to reduce software cost and improve software quality is to make the work of software definition period. If a software developer does not fully understand the user's needs during the defined period, until the test phase or software is delivered, the "completed" software does not exactly meet the needs of the user, then it is too late to modify.   Despise maintenance is one of the biggest mistakes!


It is not difficult to realize by the above discussion that contempt for maintenance is one of the biggest mistakes. Many software products have a life expectancy of 10 years or even 20 years, and during such a long period, it is not only necessary to correct every latent error found in the use process, but also modify the software accordingly to adapt to the new environment when the environment changes (such as hardware or system software upgrading). In particular, the original software must be constantly improved or expanded to meet the changing needs of the user. All of these changes are maintenance work and are done after the software has been completed, so maintenance is an extremely difficult and complex task that costs a great price. The statistic data shows that the cost of software maintenance is 55%~70% to the total cost of software.   

An important goal of software engineering is to improve software maintainability and reduce the cost of software maintenance. The Software engineering support environment should develop and use better tools. Just as mechanical tools can "magnify" human strength, software tools can "magnify" human intelligence. 

There is a lot of tedious work to do at every stage of software development, and developers can do it quickly and well with the help of the right software tools. If the software tools used in each stage are organically assembled into a whole, supporting the whole process of software development, it is called Software engineering supporting environment.

The concept of software engineering is more important, it must be fully recognized that the development is not a kind of personal work of the mysterious skills, but should be a well-organized, tightly managed, various types of personnel coordination, work together to complete the project.   It is necessary to absorb and draw on the effective principles, concepts, techniques and methods accumulated by human beings for a long time in various projects, especially to draw lessons from the research and development of computer hardware in the past decades. How to solve the software crisis in short, in order to solve the software crisis, both technical measures (methods and tools), as well as necessary organizational management measures. Software engineering is to study how to better develop and maintain computer software from both management and technology.


Practical experience

Requirements and architecture design (in the context of clear functionality and performance of the entire system, i.e. familiarity with such requirements, or prior experience with similar projects or products)

1. Business, technical support and user communication, get the original demand

2. Developers compare existing market products, community open source software features (functionality, performance, reliability, stability, compliance, ease of use, compatibility, security, maintainability, scalability) against the original requirements

3. Compare existing market products, community open source software architecture characteristics (the actual use of a variety of technologies and characteristics, whether with industry technology trends, scalability, flexibility, compatibility, ease of implementation, operating system support)

4. Give the architectural design of this requirement (including the structure that you think is feasible and not feasible, own cognition is limited, therefore need to review) and the characteristic comparison of each structure

5. The developer organizes departments (heads of departments, on the basis of department head, product supervisor, product manager, product owner, Test Manager, test lead, technical support, business, organize the first instance, arrange the problems and establishment of the leaders and colleagues, and email the meeting minutes to all the persons in the first instance, and The person responsible for the corresponding problem and the deadline are explained in the email.

6. After the investigation, email all the people, answer all the questions, and everyone feedback, prepare the structure review. (or direct review meetings, depending on the circumstances)

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.