Panorama of Software Engineering Knowledge Architecture

- It can be seen from the figure that the "quality focus" is at the bottom. It is not difficult to understand that software engineering is a discipline born in response to the software crisis, and its goal is toFocus on quality, building and maintaining high-quality software. It can be said that focusing on quality is the cornerstone of software engineering.
What does "process" refer to?
- To build high-quality software, it is necessary to solve the chaos in the software process and effectively organize the communication, planning, modeling, construction and deployment activities in the software development process. The software process is the steps to be followed when developing and building a system during the life cycle of a software project, that is, from the birth to the end of the software.
- There are two process frameworks that you must have heard often, and that is the waterfall model and agile development. These are two mainstream software process guidance frameworks gradually formed in the development of software engineering for many years.
So, what is a "method"?
- The method refers to the methodology of how to build the system throughout the process. For example, how to analyze user needs; how to test and accept products; how to design system architecture, etc.
Knowing the process and mastering the method, then when it comes to the operation level, it will involve the use of tools.
- We need tools to assist the execution of methods and improve efficiency. Through tools, some manual work can be automated, such as automated testing tools, automatic build and deployment tools; through tools, it can help to standardize some processes, such as bug tracking, source code management; through tools, it can help improve coding efficiency, Such as various editors IDE, various high-level languages.
If we go back and summarize now, the core knowledge points of software engineering are the methodology and tools generated around the software development process.
- A simple formula to understand software engineering is:Software Engineering = Tools + Methods + Process。
Knowledge Structure of Software Engineering

How to study software engineering?
Learning the Four Realms of Software Engineering
- The first weight: the device
- "Apparatus" is a tool, the rules of the tool are simple, you can use it immediately, and you can see the effect soon. For example, prototyping tools can help you identify requirements, and continuous integration tools can help you simplify the process of testing and deployment. The learning of tools is the simplest and the most basic.
- The second level: academic
- "Technology" is the method. After learning the method, you can apply the method to complete a task. For example, use the method of demand analysis to find out what the user wants, and use Scrum to organize the project development process.
After mastering the technique, it can even be separated from the device. For example, if you don’t use prototyping tools, you can use paper and pen, and a whiteboard to communicate and confirm requirements.
- The third level: Enlightenment
- "Tao" is the origin, the core idea and essential law of software engineering knowledge. Just like agile development, it is not a method in itself, but a set of values and principles. After understanding this way, it can become the basis for your decision-making on various issues in the process of dealing with projects. Dao can generate skills. If you master the way of agile development, you can comprehend techniques such as Scrum and extreme programming.
- Fourth stage: Preaching
- When you can pass on complex knowledge to others in an easy-to-understand way, it means that your comprehension of knowledge has reached a higher level. At the same time, teaching is also the best way to learn. By imparting knowledge to others, you can have a deeper understanding of the knowledge itself.
Study Software Engineering Bibliography
- "The Law of Construction"
- The author Zou Xin is the research and development director of Microsoft. At the same time, he has carried out teaching practice of software engineering in many colleges and universities. On this basis, he has systematically organized various knowledge points and skill requirements of software engineering to form teaching materials. Also a lot of good additions to this column.
- "Mythical Man Moon"
- This thought-provoking classic in the history of software engineering has been a best-seller for 40 years, and its ideas are still relevant today. Even if you have read this book before, if you read it again after a while, you may have new insights.
- "Personware"
- If "Mythical Man-Month" focuses on "software development" itself, "Humanware" focuses on "people" in software development. The author points out that the core of knowledge-based enterprises is people, not technology.
- "Knowledge and Action: Realizing Value-Driven Agile and Lean Development"
- The author Cong Bin has more than 20 years of experience in software engineering teaching, consulting and research, so the writing is particularly down-to-earth. There are many real cases in the article, and there are in-depth descriptions of agile development and CMMI.
- "Software Engineering: A Practitioner's Approach"
- This is the standard textbook for software engineering adopted by most colleges and universities and can be used as a reference.
- "Continuous Delivery"
- Tells how to achieve faster, more reliable, and low-cost automated software delivery, and describes how to achieve this goal by increasing feedback and improving collaboration between developers, testers, operators, and project managers.
- "Out of the Software Workshop"
- This book vividly describes a series of project management problems encountered in the development process of domestic small IT enterprises, and how the author solves these problems.
The more you know, the more you don't know.