The 1th chapter summarizes the historical development and basic principles of software engineering, discusses the latest software engineering knowledge system and the code of Professional Ethics of IEEE and ACM. In the first section we divided the software into general-purpose software and custom software, and then we learned about the features of the software that it is complex, invisible, varied, and customizable. Then understand the development of software and crisis.
In the second section, we know two concepts of software engineering, consisting of three elements of process, method and tool, to focus on software quality, that is, to develop high-quality software. The case system can be divided into three levels of tools, workbench and environment, but there are many challenges, such as: 1. Legacy system issues. 2. The need for high-trust software development. 3. Changes in software development methods and so on.
And the production of software engineering knowledge system has great significance, its composition is 10 knowledge domain, namely: Software requirement (software requirements), software designing (software design), software construction (software construction), Software testing (software test), software maintenance and update (software maintenance), software configuration management (software configuration Management, SCM), Software Engineering Management (software Engineering Management), software development process (software development process), engineering tools and methods (software Engineering tools and methods), Software quality (software quality).
The development of software is a science or a project, this is a long-debated issue. Many people believe that software engineering is based on computer science and Information science, as in the traditional sense of engineering in physics and chemistry. The following table is a summary of their differences:
the difference between software engineering and computer Science [A] |
|
Software |
Computer science |
Goal |
In the time, resources, personnel, the 3 main constraints to build a software system to meet the needs of users. |
Explore the right methods of calculation and modeling to improve the computational approach itself. |
Products |
Software (such as Office packages and compilers). |
Algorithms (such as the hill Sort method) and abstract questions (such as philosophers eating questions). |
Schedule and schedule |
Software projects have specific schedules and schedules |
Research projects generally do not have a set schedule and schedule |
Focus Point |
Software engineering focuses on how to achieve value for users. |
Software theory is concerned with the principle of the operation of the software itself, such as time complexity, spatial complexity, and the correctness of the algorithm. |
Degree of change |
As technology and user needs change, software developers must constantly adapt their development to meet current needs. At the same time, software engineering itself is in constant development. |
The right solution to a particular problem will never change. |
Additional knowledge required |
Knowledge in related fields. |
Mathematical. |
Well-known explorers and educators |
Barry boehm,david Parnas, Fred Brooks. |
Edsger Dijkstra, Gartner, Robert Tarjan,peter Slater, Alan Ling, Andrew Yao. |
Well-known practitioners |
John Backus,dan Bricklin, Tim Berners-Lee, Linus Torvalds, selected essays Stallman Xiu Stallman. |
No. |
In the code of ethics We also have the IEEE and ACM guidelines, which we need to comply with.
Software Engineering: Theory, Method and practice Introduction