1、 Software engineering From: http:/zh.wikipedia.org/zh-cn/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B Software engineering is the study of the use of engineering methods to build and maintain effective, practical and high-quality software disciplines. It involves the programming language, database, software
2、 development tools, system platform, standards, design patterns and so on. In modern society, the software used in many ways. Typical software such as email, embedded systems, human-machine interface, office packages, operating systems, compilers, databases, games. Meanwhile, almost all the various
3、sectors of computer software applications, such as industry, agriculture, banking, aviation and government departments. These applications facilitate the economic and social development, improve peoples working efficiency, while improving the quality of life. Software engineers is to create software
4、 applications of people collectively, according to which software engineers can be divided into different areas of system analysts, software designers, system architects, programmers, testers and so on. It is also often used to refer to a variety of software engineers, programmers. Origin In view of
5、 difficulties encountered in software development, North Atlantic Treaty Organization (NATO) in 1968 organized the first Conference on Software Engineering, and will be presented at the software engineering to define the knowledge required for software development, and suggested that software develo
6、pment the activities of similar projects should be. Software Engineering has formally proposed since 1968, this time to accumulate a large number of research results, widely lot of technical practice, academia and industry through the joint efforts of software engineering is gradually developing int
7、o a professional discipline. Definition creation and use of sound engineering principles in order to obtain reliable and economically efficient software. application of systematic, follow the principle can be measured approach to development, operation and maintenance of software; that is to be appl
8、ied to software engineering. The development, management and updating software products related to theories, methods and tools. A knowledge or discipline (discipline), aims to produce good quality, punctual delivery, within budget and meet users need software. the practical application of scientific
9、 knowledge in the design, build computer programs, and the accompanying documents produced, and the subsequent operation and maintenance. Use systematic production and maintenance of software products related to technology and management expertise to enable software development and changes in the li
10、mited time and under cost. Construction team of engineers developed the knowledge of large software systems disciplines. the software analysis, design, implementation and maintenance of a systematic method. the systematic application of tools and techniques in the development of computer-based appli
11、cations. Software Engineering and Computer Science Software development in the end is a science or an engineering, this is a question to be debated for a long time. In fact, both the two characteristics of software development. But this does not mean that they can be confused with each other. Many p
12、eople think that software engineering, computer science and information science-based as in the traditional sense of the physical and chemical engineering as. In the U.S., about 40% of software engineers with a degree in computer science. Elsewhere in the world, this ratio is also similar. They will
13、 not necessarily use every day knowledge of computer science, but every day they use the software engineering knowledge. For example, Peter McBreen that software engineering means higher degree of rigor and proven processes, not suitable for all types of software development stage. Peter McBreen in
14、the book Software Craftsmanship: The New Imperative put forward the so-called craftsmanship of the argument, consider that a key factor in the success of software development, is to develop the skills, not manufacturing software process. Software engineering and computer programming Software enginee
15、ring exists in a variety of applications exist in all aspects of software development. The program design typically include program design and coding of the iterative process, it is a stage of software development. Software engineering, software project seeks to provide guidance in all aspects, from
16、 feasibility analysis software until the software after completion of maintenance work. Software engineering that software development and marketing activities are closely related. Such as software sales, user training, hardware and software associated with installation. Software engineering methodo
17、logy that should not be an independent programmer from the team and to develop, and the program of preparation can not be divorced from the software requirements, design, and customer interests. Software engineering design of industrial development is the embodiment of a computer program. Software c
18、risis Software engineering, rooted in the 20th century to the rise of 60,70 and 80 years of software crisis. At that time, many of the software have been a tragic final outcome. Many of the software development time significantly beyond the planned schedule. Some projects led to the loss of property
19、, and even some of the software led to casualties. While software developers have found it increasingly difficult for software development. OS 360 operating system is considered to be a typical case. Until now, it is still used in the IBM360 series host. This experience for decades, even extremely c
20、omplex software projects do not have a set of programs included in the original design of work systems. OS 360 is the first large software project, which uses about 1,000 programmers. Fred Brooks in his subsequent masterpiece, The Mythical Man Month (The Mythical Man-Month) in the once admitted that
21、 in his management of the project, he made a million dollar mistake. Property losses: software error may result in significant property damage. European Ariane rocket explosion is one of the most painful lesson. Casualties: As computer software is widely used, including hospitals and other industrie
22、s closely related to life. Therefore, the software error might also result in personal injury or death. Was used extensively in software engineering is the Therac-25 case of accidents. In 1985 between June and January 1987, six known medical errors from the Therac-25 to exceed the dose leads to deat
23、h or severe radiation burns. In industry, some embedded systems do not lead to the normal operation of the machine, which will push some people into the woods. Methodology There are many ways software engineering aspects of meaning. Including project management, analysis, design, program preparation
24、, testing and quality control. Software design methods can be distinguished as the heavyweight and lightweight methods. Heavyweight methods produce large amounts of official documentation. Heavyweight development methodologies, including the famous ISO 9000, CMM, and the Unified Process (RUP). Light
25、weight development process is not an official document of the large number of requirements. Lightweight methods, including well-known Extreme Programming (XP) and agile process (Agile Processes). According to the new methodology in this article, heavyweight method presented is a defensive posture. I
26、n the application of the heavyweight methods software organizations, due to a software project manager with little or no involvement in program design, can not grasp the item from the details of the progress of the project which will have a fear, constantly had to ask the programmer to write a lot o
27、f software development documentation. The lightweight methods are presented aggressive attitude, which is from the XP method is particularly emphasized four criteria - communication, simplicity, feedback and courage to be reflected on. There are some people that the heavyweight method is suitable fo
28、r large software team (dozens or more) use, and lightweight methods for small software team (a few people, a dozen people) to use. Of course, on the heavyweight and lightweight method of approach has many advantages and disadvantages of debate, and various methods are constantly evolving. Some metho
29、dologists think that people should be strictly followed in the development and implementation of these methods. But some people do not have the conditions to implement these methods. In fact, the method by which software development depends on many factors, but subject to environmental constraints. Software development process Software development process, with the subsequent development of technology evolution and improvement. From the early waterfall (Waterfall) development model