Rabbit Eight Brother Notes 4: "Software Engineering Introduction"

zhaozj2021-02-16  58

I just finished "Introduction to Software Engineering", I feel that there are many things that have been exposed, but some theories in practical work must fully follow may have some obstacles, software engineering only provides theoretical conclusions, but specific to the project. There is very little way, so many peers are now said: "We have learned" software project ", but it is impossible to completely abide by it," because a project should follow "Software Engineering" "It is also necessary to have a certain relationship according to the size, scale and progress of the project. If a small item is very tight, if you write a variety of documents in one step by step by step, it is possible to cause the kind of "write a document in 1 week, write with 1 hour. The code, but the deadline is 1 day ", of course, this is just an extreme example, but the" software engineering "has developed for decades, and the development model has reached more than 10 kinds, and the appropriate development model is used for different projects. Some projects may also convert development models in different development phases, which is a small threshold for our project companies.

Nowadays, there are now "software engineering" is because people realize that if the theory that can use software engineering can reduce development costs and risks, the risk is reduced, and the profits are improved, so there is one The specification is "Software Engineering is the theory of improving software project profits." But people also realize that "software engineering" is indeed closer to theory, and it provides is too obvious, so there is currently popular RUP and XP development theory, these two theories are based on "software engineering" The theory has been successfully developed by a large number of trials.

Now people have doubts about RUP's disease. It is considered that this development model is also theoretical than practical. The management process is more cumbersome. It is also suitable for the big project. It is not conducive to the reduction of development costs, so now foreign promotion ", And most touted is" Extreme Programming "(XP). There are still many companies in China to start using this method.

This method and other development methods are the biggest differences to mention a test, which is almost the most important location, write test or coding, and advocates some automated test tools during the test, such as the Java test. JUnit and Dunit tested to Delphi.

I personally think that software engineering is important, but more importantly, it is necessary to choose the right development model, avoid risk, and adapt to customer flexible and change demand changes according to different projects. Therefore, a higher requirement is put forward on demand research and demand analysis. I have seen some articles that discuss software engineering, almost unanimously believe that "customer's direct participation project is very high", and the traditional software engineering is presented in the "waterfall" or "spiral" model is staged. Customers confirmed to develop, etc. Development or customer demand has changed, or there is an error in demand analysis, it is completely in line with the customer requirements. So do we consider whether it can be allowed to meet customer comments in the development of future projects, rather than seeing customers after completion, which is beneficial to reduce the risk of developing large-scale modifications. This is also important in the "Extreme Development" model. Of course, this is not absolute, but this is a way that proven has a relatively high success rate.

After the previous demand research and demand analysis, we can do a profile to design and design, I think this part is a key to determining the interface style and the consideration of code multiplexing. A interface that meets the customer's habits is the most insurance program, which includes customer operating habits and aesthetic habits. But more attention to developers is that the code is reused, and a good code should be a detailed note, the code readability is strong, and the code reuse rate is high. To do the high reuse rate of code requires a high degree of abstract capabilities and the division of granularity of class. For the granularity of the granularity, it should follow many "high-polycast, low coupling" mentioned above, which means one The functions of functions or methods are more likely to be combined, and other methods or functions or other classes are associated, so that there is no need to change or rarely change after the object or method associated with it. Can be reused. In addition, "design model" is also increasingly valued by developers. "Design mode" provides developers with a series of other people who can be safely used to confirm the successful use of success, and can follow the "design model" ideas. The development system can get good scalability and strongness, which is also proven by countless cases. For a simple example, if the part of the data is obtained, the code to display data is mixed together, if the change in the changed display portion or the change is obtained, it is possible to pick it up to the part of the code to be changed. The code that should not be changed, or because some changes are changed, the other part must be changed, which also brought into the correctness of the correctness of the transcodation. For such changes, you need to increase testing during testing, in order to ensure that the code is correct, of course, this is at the expense of increasing test costs. In another way, use the design mode, follow the MVC mode, will obtain the data portion as a C (Control section) in a function, the display portion is packaged as a V (view) in another part, and the data transfer between them With a function of parameters or other data structures (such as records, collections, etc.) so that the change in the change will not affect the correctness of the other part, as long as the change in the change is possible, not because I don't know it Partial errors do more test cases to determine the source of the wrong source. When talking about the "design pattern", people will almost all Java examples. The classic "design pattern" will be written in C , and the design mode is a high proven success rate. The code write solution can be used in various object-oriented programming, and I am only realized after the project, I have made some attempts, and I feel better than the code written by the previous ideas.

Today's software engineering has changed a lot, advocating quickly adapted to customer demand changes and can quickly transform the development direction of the development direction, which is full of discussions at home and abroad to improve development speed, reduce demand changes. Books, such as some certifications, such as ISO9000, CMM, CMMI, etc., as well as agile development, RUP, XP, PSP, TSPI, etc. At present, XP is very outstanding, XP is suitable for national conditions, it is still difficult to conclusions below, but XP pays attention to testing and advocation to use automation test tools.

Software maintenance is also an important stage. After the software is running, it may find that there is no error in some tests, and it is also possible that the customer thinks that some places will provide more convenience for their work, this is needed. Software maintenance. The developers needed at this time will not be a lot, but the maintenance personnel may not be the original developer, which is designed to read the code readability and maintainability. Good code should have a detailed note, of course, it is best to have a simple and clear document. There should be maintenance records after maintenance, and to explain the maintenance reasons, the description of the change section should be described. If you don't know the meaning of the original code during the maintenance phase, the maintenance work is now nowhere to start. I have encountered such a thing in the process of safeguarding the Nanchang Citizen Card Project, because Nanchang is anxious to operator card, and this card program needs to be changed, but there is no documentation, there is no business note, the program does not have business. I can't see what it means, I have to do it. If there is a good comment at the time, it may be reopened that there may be no chance. In addition, full-featured public units facilitate reducing the amount of development of re-writing, saving development time, enhances the reintegration of code. This can be seen in multiple projects. Recently, in several projects in the Press and Publication Administration, it will build a system framework for a very rapid project. For some technical implementation, it has been provided in public units, so you can take it. Use directly.

This book contains a lot of content, which is very inspired to me. Due to the relationship, it is temporarily written here, please correct it!

转载请注明原文地址:https://www.9cbs.com/read-28044.html

New Post(0)