Reading the Book of the Law of construction
As a small white, I also know that "program + Software engineering = soft". Before we learned from small to large, from simple to complex procedures, to today only know that these are just as a qualified programmer's first step, the "construction of the Law" This book from a professional perspective for us to explain what is software engineering.
Through the construction of the law of the book I initially learned that the following content.
The first chapter tells what is Software engineering, which also doped a few examples, let me better understand the concept of software engineering, while making me feel that this book will not be too dull, strengthen my reading patience. The second chapter tells us about unit tests, regression tests, and performance analysis tools. But read the second chapter, a lot of things do not understand, such as VSTS, Baidu after only know is a Microsoft developed a set of development tools. Including release version and Visual Studio, I need to pass Baidu to understand some.
The third chapter refers to the requirements of becoming a software engineer: 1. Accumulate software development related knowledge and improve skills. 2. Accumulate knowledge and experience in problem areas. 3. Understanding of general software design ideas and software engineering. 4. Improve professional skills. 5. Actual results. It made me realize that I was a long way from a software engineer. The fourth chapter tells in our code is should pay attention to code norms, can not only let themselves see understand, but also to let others understand. In the cooperation in an objective and comprehensive treatment of their own partners, know how to encourage each other, learn from each other. The fifth chapter introduces several models of team cooperation and several development processes in the team. Let me know from now on should focus on developing their own sense of teamwork.
The overall framework of software engineering (software Engineering) can be summed up as: objectives, processes and principles.
Software Engineering Objectives: produce products that are accurate, usable, and cost-appropriate. Correctness refers to the degree to which a software product achieves its intended function. Availability refers to the extent to which the software infrastructure, implementation, and documentation are available to the user. Overhead is the degree to which the entire cost of software development and operation meets the user's requirements. The realization of these goals, both theoretically and in practice, has many problems to be solved, and they form the constraints of process, process model and engineering method selection.
Software Engineering Process: the steps required to produce a product that ultimately meets the requirements and meets the engineering objectives. The software engineering process mainly includes the development process, the operation process and the maintenance process. They cover the requirements, design, implementation, validation, and maintenance activities. Requirements activities include problem analysis and demand analysis. The problem analysis obtains the requirement definition, also called the software Requirement specification. Requirements analysis generates a functional specification. Design activities generally include a summary design and detailed design. The outline design establishes the entire software system structure, including the subsystem, the module as well as the related level explanation, each module's interface definition. Detailed design produces module descriptions that are available to programmers, including data structure descriptions and processing descriptions in each module. The implementation activity transforms the design results into executable program code. Confirmation activities throughout the development process, to achieve the completion of the confirmation, to ensure that the most complete and correct products presented in front of the user.
question 1: Where can we begin to develop our own development thinking and ability at this stage to move towards the engineer?
Question 2: should we be a real software engineer before we graduate?
Question 3: What is an assertion?
Question 4: is the team collaboration model closely related to the development process? Can the two be divorced?
Question 5: is it important to require code coverage of 100% in unit testing?
Question 6: How do we improve our value in graduating students? The company needs to create value for its talent, but also the opportunity to let us learn slowly?
7: unit Testing should be integrated into the framework of automated tests, how is this implemented?
Question 8: where can we begin to develop our own development thinking and ability at this stage to move towards the engineer?
Reading the Book of the Law of construction