The reasonable software process is the basis of software quality - thesis of CMMCMMI

xiaoxiao2021-04-10  548

CMM / CMMI is considered to be the most mature, most effectively improving software engineering levels, used to assess and improve process, which is a framework that describes key factors to be improved during software development. A way to improve in progress. It provides a foundation for software process improvement, developing software from a relatively random, immature process to a very mature, regular, manageable process. However, CMM / CMMI also has some shortcomings that are not overlooked. For example, CMM / CMMI's assessment costs, a CMM2 assessment may reach millions of huge, and it takes a long time, the process is very complicated, and the effect is not ideal. Many companies' certification flow in the form. After the assessment is completed, only a lot of documents is left, and the real software development process is still me. Moreover, cmm / cmmi only tells us what should be done, but not specifically tells how to do it. For example, it is required to improve the management management, then how do you do demand management? CMM / CMMI did not provide an answer.

The most important thing is that many software companies have fallen into a misunderstanding, thinking that the software can solve the problem with high software quality through the CMM / CMMI assessment, and ignore the software process that truly improve the software quality. In fact, it is probably possible: Software maturity is the software developed by CMM 1 or Level 2, and some enterprises have passed CMM Level 5 certification, and cannot guarantee it. Good software. The worst situation is that if the uncomfortable software process, the higher the maturity level of CMM / CMMI, the process of producing the software company will become more efficient, rather than enable the company to develop better software.

Ivar Jacobson believes that a good software process must first be based on components. On this basis, it is also in line with iterative development, use case drive development and architecture-centric three best practices. The reasonable software process is the basics of software quality, which is this, Ivar Jacobson has a very image of an example. This is a story of a farmer and his cow. On the way to drink water in the dairy (called "Niu Road") has a crop, the cattle will eat a lot of crops. After the farmer saw this situation, it was realized that the process of drinking water must be improved, so he laid asphalt on this road. As a result, the farmer got a good "Niu Road", the cattle came faster, but did not really solve the problem of cattle. It should have a better way to find a new road for cow.

Software companies use the CMM framework for software quality control process, just like this farmer is a bovine road. For software companies, if you start from a wrong software process, even if you have improved it on this, you will always be "Niu Road". Here, it should be considered to choose a better way, which is the process of developing good software when you start from the beginning. Then, on this software process, the process is measured, and the process of improving this software is the improvement of CMM / CMMI requirements.

Dr. Ivar Jacobson believes that from a poor software process, I will improve the software development, it will actually make software development worse, because you causing the software development process, so that you will retrofit it in the future. It is more difficult. The correct way is to have a good software process, it is not easy, but it is worth doing. Ivar Jacobson said, "It is very easy to make a good software process, but it is difficult to turn a measurable software process into a good software process." That is to say, it is beneficial to make mesemountable only if a good software process will become a good software process. The process of improving a CMMI has become a true process that can develop a good software, which is almost impossible. So what is a good software process? Ivar Jacobson recommends discriminating from the following aspects: First, bad processes pay attention to document, and good process focuses on on executable programs or systems; second, bad processes delay the time of exposing risks, and good The process will expose yourself under the risk at the beginning, and solve it in time; third, the bad process can verify the quality of this project in the final process, and the quality of the process is every moment. Verify; fourth, bad processes have a very complex tracking relational matrix, from demand to code require a very complex matrix, but a good process, it is a seamless link; fifth, in the face of change, The bad software is very fragile, and good software will be very strong.

Ivar Jacobson reminds the software developers to do smart farmers, first get a correct software process; then, consider metering it, define it. Because the nature of software project management is not to describe and metrically, how is the process, but the first payment of software, can you develop qualified software well? The focus is obtained, and this result is obtained through the software process, that is, the software product delivered. Agile development attempts to end the software crisis (but it is also difficult, agile development is suitable for small teams, uncomfortable big projects, military projects, ...)

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

New Post(0)