Chapter One software Engineering: challenges and charm coexist
Software engineering is the process of applying the systematic, orderly and quantifiable method to the development, operation and maintenance of software.
The challenge of software engineering
1, complexity. Software engineers usually see only the source code at a time, and as the system grows and the modules grow, the code increases exponentially.
2. Non-visibility. The engineer could not see how the source code was executed on the user's machine, and the commercial software was wrong, and the engineer could see that the program left traces in the blink of an eye, but could hardly reproduce exactly what was wrong with the program.
3, variability. It is easy to modify the software, but it is very difficult to modify the software correctly. It's hard to make the software do something new, adapt it to the new hardware, and modify it correctly.
4, compliance. Software to obey the requirements of other components of the system, but also subject to user requirements, industry system requirements.
5, non-continuity. Sometimes a small amount of input changes, which can cause great changes in the output.
The charm of software engineering
1, need in-depth technology development to create, have a sense of honor.
2, can think deeply, enjoy the process of thinking.
3, to create a satisfactory product, a sense of accomplishment.
4, walking in the forefront of the times, there is a sense of mission.
Chapter II Requirements for unit testing:
1, unit testing should be the most basic function / parameters to verify the correctness of the program. To test each parameter, including illegal input and error handling.
2, after the unit test, the machine status remains unchanged. Ensure that unit tests are not disturbed by the previous unit test instance.
3, unit testing to fast. The run time of a test is a few seconds, not too long.
4. Unit tests should produce repeatable, consistent results.
5, independence. Unit tests run, pass, and fail independently of other tests, and you can artificially construct the data to maintain the independence of the unit tests.
6. Unit tests should overwrite all code paths.
7. Unit tests should be integrated into the framework of automated tests.
8. Unit test must be saved and maintained together with the product code
Chapter three Development Road of specialized software engineer
1. Certificate of Examination. Computer grade examination and the national computer Technology and software professional technical qualification examination.
2, the accumulation of software development-related knowledge, improve technical skills.
3. Accumulate knowledge and experience in problem areas.
4, the general software design ideas and the understanding of the engineering concept.
5, improve professional skills. Including self-management ability, the ability to express and communicate, and the ability to cooperate with people, the quality of the implementation of the task by volume.
6, the actual results. Meet customer needs
12:39:53
0321 Summary of the first three chapters of software engineering (draft)