1. Software and its characteristics The first write software is ADA (Augusta Ada Lovelace), in the 1860 he tried to write software for Babbage (Charles Babbage). Although their efforts have failed, their name will always load the history of computer development. In the 1950s, the software was born with the birth of the first electronic computer. People who write software to occupational have begun to appear, they are mostly trained mathematicians and electronic engineers. In the 1960s, the University of America began a degree in computer professionalism, and teaches people to write software. The leaf software industry in this century starts from zero, rapidly develops a leading industry that promotes the development of human society in just 50 years, and has made a group of millions of millionaires. With the development of the information industry, software is increasingly important to human sociality. So, how to define it for software? What is the software? The first thing to say is that software is a new thing for humans, and its development history is only four or fifty years. People's understanding of the software has experienced a process of shallow to deep. At the beginning of the development of computer systems, hardware is usually used to perform a single program, and this program is compared to a specific purpose. Early when generic hardware became a usual thing, the versatility of software is very limited. Most software is developed by individuals or institutions using the software, software often has a strong personal color. Early software development also has no system method to follow, software design is a hidden process completed in a person's mind. Moreover, in addition to the source code often has a document such as a software manual. From the mid-1960s to the second period of computer system development in the middle of the 1970s, the software started as a product in this period, and there was a "software workshop" to write software. The method of this software development is basically used in the early autologous software development method, but the number of software is sharply expanded. The software demand is more complex, and the maintenance is more and more difficult, and the development cost is surprisingly high, and the software that failed The development project is not uncommon. "Software Crisis" begins like this! "Software Crisis" has made people start a more step-by-step study on software and their characteristics, and people have changed the incorrect view of the software. The procedures that were considered to be excellent were often difficult to understand by others, and they were full of program techniques. Nowadays, excellent programs should be easily understood in addition to functionality, excellent performance, easy to use, easy to modify and expand. Now, the definition of universally accepted software is: Software is another part of the computer system and hardware (hardware), which includes program (Program), related data (DATA), and its documentation (Document). The program is a command sequence executed in advanced function and performance requirements; data is a data structure that can be properly manipulated information; documentation is related to program development and maintenance and use of various graphic information. Compared with traditional industrial products, software has its own unique features: 1) software is a logic entity with abstraction. This feature makes it a significant difference from other engineering objects. People can record it on paper, memory, and disk, on the disc, but can't see the form of the software itself, it is necessary to understand its functionality, performance, etc. by observation, analysis, thinking, and judgment. 2) The software has no obvious manufacturing process. Once the development is successful, you can copy a large number of copies of the same content. Therefore, the quality control of the software must focus on software development. 3) Software is no wear and aging in the process of use. Software will not be aging due to wear during the late stage of survival, but will be modified in order to adapt to hardware, environment, and demand, and these modifications have inevitable introduction errors, resulting in elevation of software failure, and degrading software.
When the cost of the modified cost is difficult to accept, the software is abandoned. 4) Software has different degrees of dependencies on hardware and environments. This leads to a problem of software transplantation. 5) The development of software has not yet been completely released by the workshop development method, and the production efficiency is low. 6) The software is complex and will be more complicated in the future. Software is industrial products with the highest complexity of human history. Software involves all walks of life, aspects, software development of human society, often involves expertise in other fields, which puts a high requirements for software engineers. 7) The cost of software is quite expensive. Software development needs to be put in large, high-intensity mental labor, cost is very high, and the risk is also. Now the software overhead has greatly exceeded the hardware overhead. 8) Software work involves a lot of social factors. Many software development and operation involving institutional, institutional and management methods, and also designing people's ideas and psychology. These people's factors often become the difficulty of software development, directly affecting the success or failure of the project. 2. Software crisis and why the software crisis refers to a series of serious problems encountered during the development and maintenance of computer software. The 1968 Northern Atlantic Convention Organization's computer scientists put forward the "Software CRISIS" in the International Academic Conference held in Federal Germany. In summary, the software crisis includes two aspects: 1. How to develop software to meet grow, increasingly complex needs; Second, how to maintain the number of software products that constantly expand. Specifically, the software crisis mainly has the following performance: (1) Estimation of software development costs and progress is often inaccurate. The development cost is exceeded, and the actual progress is not rare than the predetermined plan. (2) Users often happen to "completed" unsatisfactory. (3) The quality of software products often can't rely on. Bug a lot of pile, one pick one. (4) The maintenance of the software is very low. (5) Software usually does not have appropriate documentation. (6) The cost of software is increasing. (7) The improvement of software development and productivity is no longer in the development of hardware and the growth of people. The software crisis is related to the features of the software itself; on the other hand, it is incorrect by software development and maintenance. The software has a brief introduction. The incorrect way of software development and maintenance is mainly to neglect the demand analysis of software development; the development process has no unified, guidance of the methodology of the standard, the documentation is incomplete, neglecting people's exchanges; ignoring the work of the test stage, submit The user's software quality is poor; the maintenance of the software is despised. Most of these are the reasons for software development process management. 3. Software Engineering In the fall of 1968, NATO (NATO) scientific and technological committee convened nearly 50 first-class programmers, computer scientists and industrial giants, discussions and formulated the countermeasures to get rid of "software crisis". The concept of software engineering (Software Engineering) is proposed at that meeting. By this year (1998), the software engineering has gone through 30 years. In these 30 years of development, people are constantly practicing and summarizing the performance and summary of the software crisis. It is increasingly recognized that software development work is organized according to the principles and methods of engineering. It is a major way to get rid of the software crisis. . Today, although the "software crisis" is not completely resolved, the 30-year development of software projects can still be said that it is fruitful. Below we give a definition of software engineering, then discuss the contents of software projects: Software Engineering is a discipline for software development and maintenance of software engineering, standardization, quantification, etc. .