, pp.21-26 http://dx.doi.org/10.14257/ijseia.2014.8.2.03 A Systematic Review of Software Process Improvement by CMMI Poonam Dhankhar 1 and Anil Kumar Mishra 2 1 M.Tech (Software Engineering) 2 Assistant Professor (CSE/IT) 1, 2 ITM University, Gurgaon-Haryana 1 pdhankhar15@gmail.com, 2 anilkrmishra@itmindia.edu Abstract Project and process management is a challenging task and CMMI architecture can bring a scientific management to this task. Software systems are integrated to a wide extent. As the time passes it becomes important to maintain the software. Software organization coming up with more efficient technologies to improve the results upon their clients and stakeholders, CMMI (Capability Maturity Model Integration) is one of them. It is a promising way model for improvement and overall development of the software process. In this paper a systematic review has been done on how the CMMI can prove beneficial in software process improvement. The paper explores the software development and improvement process by CMMI. Keywords: CMMI, Development process, Software process development, Software Improvement 1. Introduction Today, Software has become a highly valuable asset in business and economic environments. The information technology and Computer technology sector is maturing and it have become important that software systems should be maintained effectively. This requires disciplined and scheduled maintenance work efforts. The need for software maintenance is increasing rapidly in each sector. Maintenance of software systems is a large post of expense in software development. Picking up an appropriate technique for which serves the overall purpose is a challenging task. The system introduces advanced CMMI concepts to the project feature extraction and modeling. It built the model with the project scope, cost, quality, resources, and integration and other aspects and feature implementation. The current traditional management scheme focus on the Project. In recent years, many software companies have implemented CMMI management model, which proves that their business has improved software development methods in order to achieve with the world connection. Software modeling approach based on CMMI could improve the project management and enable complete the project with high-quality and low cost. 2. Software Development Process A software process includes set of activities that leads to the production of a software product. These activities may involve the development of software from scratch in a standard programming language like Java or C. These days, however, new software is developed by extending and modifying existing ones and by configuring and integrating off-the shelf ISSN: 1738-9984 IJSEIA Copyright c 2014 SERSC
software or system components. Processes are nothing but activities in a certain order that lead to the product or a service. Figure 1. Software Process Model Development process is the tasks undertaken to build a system, and the management of this task, by a group of stakeholders with a single goal, who are involved in transactions over time by applying structure to their work with a set of tools and methodologies, and who inspect the outcomes of their efforts accordingly. The CMMI is a model to help set up sufficient process and keep them running and efficient over time and helping in the development process effectively. 3. Software Maintenance Process The series of actions in order to effect change during software maintenance is a software maintenance process. With the software rapid development today, software maintenance has become important trend of software development models. Development model around with the engineering project is simple, efficient, client. It also brings disadvantages: a lot of duplication labor, lack of accumulation, difficult to maintain, quality control problems. CMMI not only provide the measures to develop the software process but also the maintenance. When software is installed and running in a system in the environment, sooner or later new requirements emerge degree of quality, hence the need of overall maintenance of the software becomes important. For software to be maintainable it needs to be adaptable to changes in a cost-effective way that does not increase the probability of errors. A system with maintainability as a critical requirement should have an architecture with wide division into parts with self-contained components that easily can be modified. The well spread software process model, the waterfall model or the lifecycle model describes the essential parts of the software development process. Operation and maintenance is the last phase in the waterfall model and the longest. Apart from implementing new requirements the maintenance is 22 Copyright c 2014 SERSC
important in every phase. It helps in correcting errors not discovered earlier and improving the implementation. Categories of software maintenance: 1. Corrective changes: Maintenance to repair software faults repair software faults. 2. Adaptive changes: Maintenance to adapt the software to a different operating environment. 3. Perfective changes: Maintenance to add or to modify the system s functionality. 4. Preventive maintenance: It improves future maintenance and enhancement and aims to detect problems in future. The maintenance of the software is a ongoing activity. Also adopting CMM helps the maintenance process to a great extent. The software quality is indirectly related to how effective the maintenance of the software is. CMM provide Support management which have different measures and goals focusing software maintenance. 4. CMMI- Capability Maturity Model Integration CMMI is the abbreviation Capability Maturity Model Integration is a process improvement model developed by the Software Engineering Institute, Carnegie Mellon University. CMMI was developed from the SW-CMM which was used widely by software organizations throughout the world. Additional disciplines are included in CMMI. Software Park introduced SW CMM to Thai SW industry in 1999 and transit to CMMI about three years ago. CMMI aims to provide a systematic and an organized approach towards the development of software. Software improvement is also a part of software development; CMMI provides a framework which acts as the basis for improvement and maturity of the software. There is hundreds of software developed each day hence choosing one out of many becomes challenging therefore CMMI makes the decision easy. The SEI published in 1995 the book, The capability Maturity Model: Guidelines for Improving the Software Process. This was the start for CMMs (Capability Maturity Model) for software organizations. To evolve and improve the models for businesses three different CMM models were combined to the integrated one, CMMI. The capability model for software (SW-CMM), the systems engineering capability model (SECM) and the integrated product development capability maturity model (IPD-CMM) were combined to CMMI. In CMMI- Guidelines for Process Integration and Product Improvement, in the SEI series describes the CMMI framework in detail. In the introduction to the book the purpose of CMMI for development is said to be to help organizations improve their development and maintenance processes for both products and services. Business objectives are motivators for using the CMMI. Process helps an organization s workforce meet business objectives by helping them work smarter, not harder, and with improved consistency. CMMI can be used for: 1. Software Engineering Discipline 2. Hardware Engineering Discipline 3. System Engineering Discipline 4. Integrated Product and Process Development System architecture: In all software development, system controls electronic process through the quality. There is unified management of code and document libraries. The maturity model consists of 5 levels or stages. Each level has a defined process area on which it focus. As the Level increases from 1 to 5, the quality also increases. Each maturity level must have clear and rigorous processes and is shown as a step of stairs. Copyright c 2014 SERSC 23
Figure 2. CMMI The maturity model consists of 5 levels or stages. Each level has a defined process area on which it focus. As the Level increases from 1 to 5, the quality also increase. Figure 3. Levels of CMMMI Each maturity level must have clear and rigorous processes and is shown as a step of stairs. 1. Initial: At maturity level 1 process are ad hoc and uncontrolled. Organizations on maturity level 1 significantly exceed budgets and cannot hold timeframes in schedules. They do get products finished but it all depends on heroic achievements of employees and successes are hard to repeat. 24 Copyright c 2014 SERSC
2. Managed: At level 2 processes and practices based on policies are established. Projects are monitored and managed according to skills of employees, documentation, stakeholders etc. 3. Defined: At maturity level 3 processes are described in more detail compared to level 2. The processes are more sophisticated; more organized and have an organizational identity. 4. Quantitatively Managed: At maturity level 4, the organization establishes quantitative objectives for quality and process performance and uses them as criteria in managing processes. 5. Optimizing: Maturity level 5 focuses on continually improving process performance through incremental and innovative process and technological improvements. It is the role of the Executive in an organization to understand the CMMI implementation. It has certain responsibilities such as: a. Make commitment by announcing CMMI policy. b. Sending staff to learn Intro to CMMI course. c. Sending staff to learn Project Management course. d. Sending staff to learn Quality Assurance course. e. Sending staff to learn Configuration Management course. f. Allocate recourses to acquire project management and CMMI tools. And last but not the least is to select pilot projects for implementation. In a process there are certain components in the CMMI model. There are 22 process areas in CMMI. Examples of process areas related to software development Project Planning(PP) Requirement management(reqm) Configuration Management(CM) Risk Management(RSKM) Figure 4. CMMI Components To say that CMMI gives greater support for software development is not that obvious. CMMI does not get too involved in certain technological factors or unique activities. The processes and procedures are the means to the goal and have main focus. So as a conclusion higher CMMI maturity levels give more mature processes, in a general way, and there is the possibility to focus on maintenance processes and there is explicit support for this in half the process areas. Copyright c 2014 SERSC 25
5. Conclusion Since there is different project and software process type, there is different management mode and flow. The idea behind CMMI is to exactly abstract and model different project flow. The preliminary research work becomes extremely important. This system has the following characteristics: 1. It is the powerful model with simple operations. 2. A wide problem areas related of software process get a solution through CMMI. 3. Effective and ease development, maintenance and improvement are the primary goals of this model. CMMI is not the answer to all the troubles and challenges occur during the process of software building but to an extent CMMI proves to be a boon for software organizations. CMMI aims to provide the organizations a complete way to develop the software in an effective manner. It is not limited to just software but hardware and other aspects of an organization. The rest of the process areas may also benefit the maintenance work, in terms of a overall thought through approach to every aspect of the work of an organization and to a lot of helping functions around the specific maintenance tasks. Acknowledgements I would sincerely like to present special thanks my guide Mr. Anil Kumar Mishra for his guidance and support. The guidance provided by sir began from day 1 where he guided me about the future aspects and core understanding of the same as well. The paper was developed with feasible suggestions duly incorporated in consultation with sir and his constant faith in me helped me to come out with such an excellence. The paper was completed and is a success with the mental support provided by colleagues, my family and faculty of computer science department who supported me mentally and technically. The paper was a great achievement to us in understanding the practical aspects of CMMI and its approach in software development and improvement. References [1] B. Han and Y. Fang, North China University of Technology, ISSN 0033-2097, (2012). [2] A.-S. Jansson, UPTEC, (2007). [3] D. R. Goldenson and J. Jarzombek, Software Engineering Technology. [4] K. Malaivongs, SEI, (2010). [5] C. Mellon, Software Engineering Process Management Program, Version 1.3, CMMI-DEV. [6] R. Kneuper, (2010). Author Poonam Dhankhar M.Tech( Software Engineering) ITM University, Gurgaon (Haryana) pdhankhar15@gmail.com 26 Copyright c 2014 SERSC