Software engineering and software crisis

Software development and maintenance process, will encounter many problems, software engineering as a discipline, is to solve the software crisis, then what is the software crisis?

First, the software crisis

Software crisis refers to a series of serious problems encountered in the development and maintenance of computer software.

Mainly software crisis:

1 Software development is difficult to predict the progress of
the delay period of months or even years, the phenomenon is not uncommon, this phenomenon reduces the credibility of the software development organization.
2 software development costs are difficult to control
investment has repeatedly added, it is unbelievable. The actual cost is often higher than the budgeted cost an order of magnitude.
In order to finish the work and save some costs expedient adopted is often undermined the quality of software products, which inevitably lead to user dissatisfaction.
3 users for product features not meet the
difficult communication between developers and users, contradictions difficult to unify. Software developers often can not really understand the needs of users, and users do not understand the mode capabilities of the computer and solve the problem, the two sides can not communicate with a common description and familiar language.
In the case of both sides do not fully understand, they rush into battle system design, programming hurry to proceed, this "behind closed doors" development approach will inevitably lead to the final product does not meet the actual needs of users.
4 software product quality can not guarantee
system errors that are difficult to eliminate. Software is a logical product, the quality is difficult to measure in a uniform standard, resulting in quality control difficult.
Software products is not without error, but the blind detection is difficult to find errors, mistakes are often hidden down the risks caused by major accidents.
5 software product is difficult to maintain
the code of logical thinking activities of developers of software products essence, others difficult to replace. Unless a developer himself, it would be difficult to detect in a timely manner, to troubleshoot the system.
For the system to adapt to the new hardware environment, or add some new features in the original system, according to user needs, but also may increase the errors in the system.
6 software lacks proper documentation
Documentation is an important part of the software is essential. In fact, the software documentation is contract rights and obligations between development organizations and users, the system administrator, who issued the overall design of the mission statement of developers, system maintenance and technical guidance manual workers, is the user's operating instructions.
Lack of necessary documentation or substandard documentation, software development and maintenance will bring many difficulties and serious problems.

 

Software analysis causes of the crisis:

1 user demand is not clear
In the software development process, the user needs is not clear issue mainly reflected in four aspects:
Before the software developed, the users themselves do not know the specific needs of software development;
Users of the software development needs inaccurate description, there may be missing, ambiguous, or even wrong;
In the software development process, the user is also requested to modify aspects of the software development functions, interface, supporting environment;
Software developers would have been the difference in understanding the needs of the user with the user's wishes.
2 lack of a correct theoretical guidance
Lack of strong support methodologies and tools. Because software development is different from most other industrial products, the development process is complex logical thought processes, and its products to a great extent dependent on the degree of intellectual input developers. Due to the excessive reliance on programmers and creative skills in the software development process, increased personalization software product development, software development is also an important reason for the crisis occurs.
3 increasing scale of software development
As software development and application of a wide range of growth, more and more large-scale software development. Large-scale software development projects need to organize certain amount of manpower together to complete, and most managers lack experience in developing large-scale software development system, but most software developers lack of management experience. All categories of personnel exchange of information is not timely, inaccurate, and sometimes misleading. Software development project developer can not effectively and independently handles large-scale software development and the relationship between all the various branches, and therefore prone to omissions and errors.
4 increasing complexity of software development
Software development is not just develop and expand rapidly in size and complexity also increases dramatically. Particularity and limitations of human intelligence software product development, led to inability to deal with "complex issues." The concept of so-called "complex issues" is relative, once people with advanced forms of organization, to develop methods and tools to improve software development efficiency and capacity, the new, larger, more complex problems are placed in front of people.
 

Second, software engineering

Software engineering is a way to solve the software crisis , software engineering was born in the late 1960s, as an emerging engineering disciplines main research software production objective laws, establish systematic concepts related to software production, principles, methods, techniques and production tools, guidance and support software system activity in order to achieve lower software production costs, improve software product quality, increase productivity levels of the target software . Software engineering and hardware engineering absorbed from other human engineering in a number of successful experience, clearly put forward the model of the software life cycle, developed many techniques and methods of software development and maintenance phase of the applicable and applied software engineering practice, making good Effect.
In the software development process, people started to develop and use software tools to assist in the project management and software technology to produce, people will use the software life cycle stages of software tools organically collection as a whole, can form a continuous support and software development maintenance of the whole process of integrated software support environment, with a view from both management and technology to solve software crisis.
In addition, the combination of artificial intelligence and software engineering to become an active area of ​​research in the late 1980s. Based on program transformation, software research and new technology to automatically generate reusable software, also has made some progress, further push forward the program design automation process. Under the guidance of software engineering theory, developed countries have established a relatively complete industrial production system software, forming a powerful software production capacity. Software standardization and reusability got attached great importance to industry, to avoid reuse of labor, ease the software crisis played an important role.
 

Third, the definition of software requirements

 

 

Guess you like

Origin www.cnblogs.com/jukaiit/p/11746236.html