The thought of software engineering

Source: Internet
Author: User

Under the teacher's strong recommendation, I spent two days to glance at Dr. Lin Rui's "software Engineering thought" this book, although not the word, but after reading the harvest is quite abundant.

This book but hundred pages, the overall view, the author good writing, style humor and slightly deprecating, this is I like. Reading that the author describes the programmer's life and work has been integrated, although monotonous but not boring, but also to enjoy solitude, the author wrote, "There is a poem for the card: I programmed the 3rd, two ears do not wenren sound, only the hard disk is singing." "I can't help laughing at the spray. haha ~ ~ But it is very fun one person, in the heart of this book is immediately below the interest. Think about it, our country today's team of engineers, although strong, but the majority of dumb-hearted speakers, and the author of this book can be written in such a concise, humorous, enough to imagine his other works of charm. I will continue to read his other works in the future!

The core of the book is design, which runs through the whole of the mind. A total of eight chapters, followed by the Appendix "University Decade".

The first chapter "the basic concept of software engineering";

Chapter II "Programmer and Program manager";

Chapter III "Project Planning and Quality Management";

The fourth chapter "Feasibility Analysis and demand analysis";

The fifth chapter "System Design";

The sixth chapter "C + + Object-oriented programming";

The seventh chapter "Test and change the wrong";

Eighth chapter "Maintenance and Regeneration project".

This book first describes the basic concept of software engineering, from the macro-discussion of the project. The first chapter is about the goal of software engineering and the common engineering model, the basic strategy of the development: "Reuse", "Divide and Conquer", "optimization-compromise", help to guide the practitioners to choose the method and produce a new method. The latter is drawn from the early software staff more naïve ideas, examples of some incorrect ideas, can let beginners warning. Then let the reader know about the programmer, and talk about the four qualities that a real programmer has: honesty, simplicity-pragmatism, likes, monotonous but not tedious work. Real programmers will always be interested in the work they like, life and work are integrated, although monotonous but not dull, but also alone. Good programmers have no reason not to be liked, they are far cuter than quirks. This is indeed a kind of encouragement to the programmer. In addition, the author points out that a good program manager should be Jiyaqunxiong, knowledgeable, and should have personality charm, whenever, with the strength to conquer others is the hard truth, and the programmer manager in management to "lead by example", "just treat people", only to do these, others will be convinced that you, the team has the cohesion to develop excellent software. Programmers in the process of programming, will inevitably encounter setbacks, so to error and failure to learn, calmly analyze the problem, to find out the internal and external causes of the problem, but not short-sighted, and strive for profound will be effective. How can programmers improve their overall accountability? If you are qualified in general, but willing to mend, and strive to learn deeper and wider, eventually there will always be unexpected gains. Finally, the programmer should not be naïve and appear simple, should be mature to become pure, just worthy of this vibrant career. Should not be naïve and appear simple, should be mature to become pure, I want to be a person is also the same truth. followed by the project planning and Quality Management, the project plan is to provide a reasonable schedule of processes, so that all developers have a clear mandate, unison, and ultimately work together on time to complete the project. Therefore, the project planning of software is "accurate" and "real", and improving quality is the main goal of software engineering. But because software development is an intellectual creation activity, it is difficult to maintain the quality of software products by enforcing strict operating rules like traditional industries, so programmers must understand all aspects of software quality (called quality factors), such as correctness, performance, ease of use, flexibility, reusability, understanding, etc. In order to carry out system design, programming, high-quality built therein. The quality of software is not "management" out, in essence, design, quality management is only a means of prevention and certification. On the feasibility analysis and requirement analysis of software, the feasibility analysis of software field mainly considers four factors: economy, technology, social environment and people. For the system design, the fifth chapter describes the system design of four aspects of the content: Architecture design, module design, data structure and algorithm design, user interface design. And the software system is likened to human body, the architecture is like the skeleton of human, the module is likeHuman organs, with specific functions, data structures and algorithms are like the blood and nerves of the human body, which makes the organ have life and can play function. The data structure and algorithm are distributed in the architecture and the module, it will coordinate each function of the system, and the user interface is like the human appearance. In the system design, we should pay close attention to the software quality factors, such as correctness and accuracy, performance and efficiency, ease of use, understandable and simple, reusability and extensibility, and so on. Even if the system is designed well, it does not mean that a good software system can be produced. In the program design, testing, maintenance and other links to do a lot of work, no matter which part of the error, will be good to screw up. Cohesion and coupling are closely related, and modules that are strongly coupled with other modules often imply weak cohesion, while strongly cohesive modules often imply weak coupling with other modules. The module design pursues strong cohesion and weak coupling. The sixth chapter, C + + object-oriented programming. This chapter Apple told the important concepts of C + + object-oriented programming, such as class and object, inheritance and combination, virtual function and polymorphism, good programming style, and so on, the deep martial arts master moves often bland, the same, the programmer will not use strange trick to write programs. A good programming style is a prerequisite for producing high-quality programs. Then to the back of the new, delete and pointer, the use of Const. The seventh chapter is mainly testing and error-modifying. The eighth chapter is about maintenance and regeneration engineering.

Feeling after reading

A good project, design can account for at least 50% or more. Lin Rui's article, from beginning to the two ideas, one is high cohesion low coupling, one is the design should be behavior-centric rather than data-centric, the industry should be demand-centric.

At the end of the book, Dr. Lin Rui is Apple told his "ten years" university career, vivid and wonderful, memorable.

So, I want to end my writing with the author's heartfelt words:

First, the initiative to create the environment, otherwise you can not design life.

Second, life and work to be full of passion, otherwise you can not appreciate the most vividly the joy and pain.

The thought of software engineering

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.