Today, the "software testing and quality" column is changed to the "Software Engineering" column, which means that your blog will be extended to a wider scope, although the core is also around testing and quality, however, this includes software requirement engineering, system design, and project management. So a close-up articleArticle.
What is software engineering?
Last century90In the early days (ComputingThe development of computer science is far beyond the boundary of computer science, forming a number of independent disciplines such as computer science, computer engineering, software engineering, information systems and information technology. Computer Engineering is separated from the electronic engineering science to study the engineering problems related to computer hardware. Software Engineering has evolved from a discipline in computer science to an independent discipline with equal emphasis on it, focuses on how to develop and maintain high-quality software in a systematic, controllable, and efficient manner.
1Definition of Software Engineering
After the birth of software engineering, people gave different definitions for Software Engineering. For example, the earliest definition is F. L. Bauer Given, that is," Software Engineering is to establish and apply a series of solid software engineering principles in order to economically obtain software that can run efficiently and reliably on actual machines. ". While the United States Mellon Carnegie University Institute of Software Engineering ( Sei ) The definition is Software Engineering uses computer science and mathematical principles in the form of engineering to solve software problems economically and effectively. However, currently, software engineering is definedIEEEGiven that software engineering applies systematic, standardized, and quantifiable methods to software development, operation, and maintenance.
The concept of software engineering has two meanings. From a narrow perspective, software engineering focuses on the engineering methods and management systems used in the software process. For example, the introduction of cost accounting, quality management and project management will regard software product development as the system engineering and management required by an engineering project. From a broad perspective, Software Engineering covers all the engineering methods, technologies, and tools in the software life cycle, including all the content of demand engineering, design, programming, testing, and maintenance, that is, to complete the necessary ideas, theories, methods, technologies and tools for a software product.
2. Connotation of Software Engineering
The software engineering discipline includes the knowledge, methods, and tools required to fulfill software requirements, design, build, test, and maintenance.Software Engineering is not limited in theory, but more importantly in practice. It can help the software organization and coordination team, use limited resources, and comply with the defined software engineering specifications, through a series of reusable and effective methods, we can achieve the preset goal within the specified time. For the implementation of software engineering, No matter what methods and tools are used, advanced software engineering ideas are always the most important. Only under the guidance of correct engineering ideas can we develop correct technical routes and use methods and tools to achieve the established objectives of software engineering or project management.
3Software Engineering is a cross-disciplinary discipline
Software Engineering is a cross-disciplinary engineering discipline. It applies basic principles such as computer science, mathematics, engineering, and management to software development and maintenance, it focuses on the analysis and evaluation of large-scale software, Specification Description, design and evolution, and also involves management, quality, innovation, standards, personal skills, team collaboration and professional practices. In this sense, software engineering can be viewed as composed of the following three parts.
- Computer science and mathematics are used to construct software models andAlgorithm;
- Engineering Science is used to formulate specifications, design specifications, evaluate costs, and determine trade-offs;
- Management Science is used to manage plans, resources, quality, and costs.
For example, Computer Aided Software Engineering (CASE) is a collection of tools and methods.To assist in software development activities at various stages of the software life cycle.CaseAbsorbedCAD(Computer Aided Design), software engineering, operating systems, databases, networks, and many other computer fields. This example also demonstrates that software engineering is a cross-disciplinary, integrated, and integrated field.
4Scope of Software Engineering
In terms of knowledge, software engineering is centered on software methods and technologies, involving computer hardware systems, basic system platforms, and other related fields, it also involves some application fields and general management disciplines and organizational behavior disciplines. For example, the knowledge in the application field helps us understand the user's needs, so that we can design software functions as needed.
In software engineering, it is necessary to involve the practical problems faced by the deployment and configuration of application systems in the Organization. At the same time, it is necessary to constantly promote knowledge updates and theoretical innovation. To truly solve practical problems, we need to strike the best balance between theory and application.
What are the advanced and mature software engineering ideas? Best practices for code review