Read the last chapter of software engineering

Source: Internet
Author: User


Read the last chapter of software engineering

Generally have the object-oriented programming people, think the most difficult and most headache is the design. 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.

The controversy over design is long-standing, in my opinion, it is determined by the nature of the industry, after all, the software industry is for other industries to serve, so the division, as the experience of the growth of business capacity is gradually greater than the ability to program, therefore, the process of decision-making business or business decision procedure becomes a materialistic and idealistic exchange of fire Although in recent years the business decision project controversy has been drawn to the first, but's forgive forget difficult to eliminate, there are still a lot of people are determined to determine the framework of the project, and then analyze the business supporting the relevant technology ideas, this part of the people, if not the process-oriented era of development, it must be nerdy. The business decision project, the project decision framework, the framework determines the programming language, in the final analysis, the fundamental reason is that the software industry is the service sector. This is fundamental, do not confuse.

Four cardinal principles of software engineering:
First, select the appropriate development paradigm. This principle is related to system design. In the system design, software requirements, hardware requirements and other factors are mutually restrictive, mutual influence, often need to weigh. Therefore, it is necessary to understand the variability of the definition of demand and adopt the appropriate development paradigm to control it to ensure that the software products meet the requirements of users.
Second, adopt the appropriate design method. In software design, the modularization, abstraction, information concealment, localization, consistency and adaptability of software are usually considered. The proper design method is helpful to the realization of these characteristics in order to achieve the goal of software engineering.
Third, provide high-quality engineering support. "工欲善其事, its prerequisite". In software engineering, software tools and the environment support the software process is very important. The quality and cost of software engineering projects directly depend on the quality and effectiveness of the support provided by the software project.
Four, focus on the management of the development process. The management of software engineering has a direct impact on the effective utilization of available resources, the production of software products to meet the target, and the productivity of the software organization. Therefore, effective software engineering can be achieved only when the software process is effectively managed.
My understanding: These four basic principles are the idea that we must follow through in the process of system development, we should consciously and rationally apply these principles to our system development, the first 3 believe that the system development experience of friends will have a deep feeling, here to talk about the 4th. Management of the entire development process is often a neglected place, and it is the key to the success or failure of the system. The development process referred to here is not referring to the process from system design to end of coding, but from the feasibility Analysis-> Requirements Analysis-> System Design-> System Implementation-> System Deployment-> Personnel training-> System maintenance process. In this process, the feasibility analysis is often overlooked by everyone. In fact, in my opinion, the system feasibility analysis is a system to start the premise and guarantee. It's easy to ignore this, often starting with the need analysis, and then designing, implementing, delivering, but often when you do a lot of work, you find out that others simply don't use your system. Someone will ask why? Don't they have a need for this? Demand is there, is there a need to be on your system? Can there be no other way to solve the demand? We must not only from the perspective of technical personnel to consider the problem, we have to jump out of the thinking of technical staff, from a manager's point of view to think.

     1 developers can only write programs that are understandable to others when they are clear-minded. Programming should also pay attention to the non-abusive skills, should be programmed in a natural way. 2. The software system is designed to be concise. Quality checks are performed for each practice session. Do not expect to be rescued by additional manpower after the project is in trouble. Conduct requirements analysis. Establish the concept of global analysis. Focus on software quality and production efficiency. The development of a program to pay attention to correctness and accuracy. Running good software does not always work well and may cause problems. Software development, performance and efficiency are important. Make the best possible analysis of what is a stable demand, and what is the variable demand. The programmer should put the test in the element. 3. Demand changes according to historical records, no software needs to be changed less than three times. The only customer who changed the requirement two times was a dead man. The poor guy was killed by a car on the way to the third demand. 4. Four aspects of system design: Architecture design, module design, data structure and algorithm design, user interface design. If the software system is likened to the human body, then: (1) The architecture is like a human skeleton. If a guy's skeleton is a monkey, then no matter how to feed and beauty, this guy is always a monkey, not become human. (2) Modules are like human organs, with specific functions. One of the best modules in the human body is hand, hand only a few movements, but can do an infinite number of things. One of the worst modular design in the human body is the mouth, the mouth will be the most valuable but no coherent functions such as eating, talking, kissing mixed together, so that it can not be processed in parallel, it is human misfortune. Reading notes (3) data structures and algorithms are like people's veins and nerves, which make organs have life and function. Data structures and algorithms are distributed in architecture and modules, which coordinate the various functions of the system. Although the ear and mouth are relatively independent organs, but if the ear is deaf, the mouth can only be issued "Ah" "woo" sound, is tantamount to the loss of the function of speech (so the deaf are born dumb), but people can use gestures instead of talking. The human body's data structure and algorithm design is really amazing and ridiculous. (4) User interface is like a person's appearance, the most easy to let people at first sight or nausea. Like human pursuit of the beauty of the soul and appearance of the United States, the software system also pursues (intrinsic) powerful and (outwardly) friendly interface. But with the quickening of life rhythm, people have little interest to taste the inner beauty of hidden. If the UNIX system is likened to a robust man and woman, then Windows is like a charming little white face and a fox. Unexpectedly windows system can make waves, take up half of the market. In view of this, we should encourage women to buy more cosmetics (men pay) to get a better interface. 5. Developers should be aware that all errors are serious and there are no trivial errors. So as to make less mistakes. Summary: In conclusion,This book is really good, it is worth a look, whether it is the professional or non-professional, there is a place to learn. In the idle time, still have to take it out to bask in, take out to ponder over.

Read the last chapter 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.