Top of the form
The software engineering said that it is how to save money. Some people say that in order to make excellent software, excellent software ultimately use the economy to measure. Any technical approach, work process, and personnel who can develop money for software, and a work engineering category.
For some people, there is often a misunderstanding, that is, the software engineering is not suitable for small companies, new companies. Some people think that software works is UML. In fact, any software engineering will begin to mention the software crisis, and the causes of software engineering (saving costs, improving efficiency, control errors). Therefore, UML is only one of the ordinary methods, and there is a scope of application, that is, the general medium software, and the quality of the person is very professional. Large software and small software will not use UML, and for most domestic software companies, there is also a very professional personnel, not that they are not high, but most people have to be maintained from the analysis. There is a lack of corresponding experience accumulation.
Why is software engineering to be divided into five stages of analysis, design, encoding, testing, and maintenance, I personally think that one of the reasons because development software is a work process that maps the real world to the computer world, for a relatively large project, existence Many processes require many people's participation. As the product is gradually formed, different types of people have different effects, in fact, according to this situation, the software development phase is divided. The benefits of dividing phases are different from different phases, which can reduce the cost of personnel, and if there are multiple items, you can use them, more efficient use of the working hours of each type of personnel. The iconic results visible at each stage are documents and procedures. This is also one of the purposes of the document, identifies at all stages.
Since software development is divided into different stages, it can save money. Then it can be considered to be reasonable in phases. Every big stage can also be divided into many small stages, how to divide the stage in these stages? This is the category of staff, is also a problem, no standard, decisive factor is the number and quality of developers. For example, the prototypes often used, each stage can be existed at the same time, and there are many types of people, from the human curve, the smoother period is the longest. This is both an advantage of the prototype law, everyone is not idle, it is also a shortcoming. The disadvantage is too obvious, many people do their tails from the beginning, too tired.
Next, the system analysis is said. System analysis is unprecedented in software development, and he directly determines the working form of the following stages. Because of the system analysis, many projects are in the vortex development of iterative development. We all know that between two points, the shortline, the spiral rise curve is definitely a little longer. Since it is impossible to rise in line, it is also possible to rise rapidly, otherwise the cost will be high.
What is systematic analysis? I think it is an understanding of the process of understanding the target system, which is part of the awareness of the target system into system analysts. That is to say, during the system analysis, the system analyst has continuous clear target system, establish a basic system framework, and continuously uses various possible input, various roles, various functions, various possible system changes to test the system until perfect. This new system structure will of course have a process of constituent elements, partial inter-section, information flow. It has basically determined the future of this project.
But in addition to small projects, people who can generally complete the above process are not much. As a method, object-oriented analysis started applying. Object-oriented is not from macroscopic, but through various methods to look for elements, construct new systems by construction. However, no matter which way the final result should be used by various users, it can implement a predetermined function, which can also be used to cope with the function changes and processing information. In my personal opinion, the system analyst has high levels to see, his abstract thinking ability, understanding speed, and building the structure!
System Analysis This layer is an intermediate layer of the user layer and programmer. The upper half of this layer is in contact with the user, and the computer relationship is very small, and no one will take it again. However, in this part of the joints of the programmer, it began to introduce the computer environment. It can smoothed the analysis into a design. The factors of the computer environment are major constraints, which will consume workload here. Therefore, the ability of system analysis is mainly reflected in rapid modeling, high abstraction, stability, and easy to understand
The system design has undergone systematic analysis and eventually implemented a detailed design document. There are several components, design databases, design class libraries, design interfaces, design procedures.
There are often several types of tables, the first and real world, and there are static structures, common user tables, type tables, permission forms, and more. There are work business forms, corresponding processing processes and work processes. The second type of computer environment is related to the system setting table, intermediate data optimization table, interface setting table, and more.
The core table of the database often corresponds to the real world. Therefore, the fields in the core tables and tables should be meaningful, and they can have corresponding in the real world, try not to attach the fields that do not exist in the real world, such as additional meaningful digital primary keys, because the rows in the table correspond to the real world Objects, objects can always distinguish between very natural. It is easy to understand to be easy to maintain. The correct distinguished form is very good, putting a different type of field in different types of tables, preferably mixing different types of fields in a table.
If you want to write a procedure, the class library is not less. To make a class library, I usually first is the split system. According to the application and independence, according to the interface layer, the application layer, the data layer, according to the program type, it is like cutting watermelon, synthesis use. In the end, you can find the small module you want to write. Only meaningful modules are meaningful. Then, according to these small modules, you can design class libraries, of course, to grasp "degree". In practice, many system designers will reuse the previous class libraries and will not put the particle size too small, and how much will leave some places that can be changed.
With the class library, the programmer has a lot of work, and a company I worked, I used a more mature class library, and the work can also be quaped. At that time, the main information system is generally a single surface maintenance. 5 minutes, a master is maintained for 15 minutes, a more comprehensive 30 minutes. Start from live, and save you again.
On the software engineering book, there will be more indicators, fan-in, number of hierarchies, number of functions, code length, etc., it does not have to be too pursuit. These numbers are the results obtained in other environmental tests. And different companies have a big difference, so it is useful to develop these indicators, but specific numbers must be developed in conjunction with the company's actual situation.
Interface design, for MIS systems, important implementation features, the beautiful interface is not the first question. Simplified input is important, especially for information entry. I think that the minimum number of business average clicks should be completed should be more durable.
The design, objects, processes, functions, events, variables, etc. must be meaningful, and it should be able to track the reality system. This meaning must be carefully thinking. (Many good programmers always don't think, the pen is like flying, may not think about the meaning of the things written.) The same problem, different people have different opinions, the late stage of the most close to the nature Maintenance work will be less. I can recognize that essence can not just learn a computer, and should learn from the vast outside world. The design of the design should be high, low coupling is true, and it is also an important sign for measuring the level of system designers. However, how to determine the coupling of the module, I think the key to see the number and parameter number of functions used to external use.
The writing program is the process of implementing the program code in accordance with the description of the system design. If you follow the formal software engineering, you have nothing to say to the write program, and you will be slightly over. This also shows that the role of programmers will be smaller and smaller in the process of software development.
But at present, the programmer can directly write a document, and it is very rare to directly write, and many programmers have to do system design. This is an important reason for the high maintenance cost.
I think the programmer is good, first, it is to look at his responsibility. Many dangers of the program, the first feeling is the programmer, the program has bug, just like a fire, is it faced, or it does not know, the workload is often ten times more than ten times. Secondly, it is a process, usually a few percent, the function can be used without more than 100, one day learning one, clear usage, when it is wrong, it should be skilled in three months. Once again, the attitude of cooperation, naming and everyone use a rule, the program and everyone use a thinking, do not show off the skill, such a program is also maintained.
Document is an important part of software engineering. Various analytical design documents, not just results, there are reasons, which will not know if they don't know if they see the documentation. The documentation must be useful to people, named documents, and the light is not good. The key to use a good document is to understand the side focus of various documents.
The above is a little experience in making software development. It is very zero-scattered, and it is not a system, but every part is independently thinking. I will not write it in general books. Please do it more valuable.