Your SlideShare is downloading. ×
Choosing The Best Software Development Model To Ensure Software Quality
Choosing The Best Software Development Model To Ensure Software Quality
Choosing The Best Software Development Model To Ensure Software Quality
Choosing The Best Software Development Model To Ensure Software Quality
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Choosing The Best Software Development Model To Ensure Software Quality

3,344

Published on

The de nition and evolution of software development models can be viewed as defect prevention at the process …

The de nition and evolution of software development models can be viewed as defect prevention at the process
level. Hence, this paper discusses the importance of defect prevention in software development and choosing the
best software development model to ensure the software development success of quality software system. We present
Automated Defect Prevention (ADP) model which would address this concern, by putting process improvement
practices directly into the software development life-cycle and applying comprehensive automation to ensure that
these practices stay in place.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,344
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CHOOSING THE BEST SOFTWARE DEVELOPMENT MODEL TO ENSURE SOFTWARE QUALITY Ricky Wirapratigta California State University Fullerton May 29, 2006 ABSTRACT The definition and evolution of software development models can be viewed as defect prevention at the process level. Hence, this paper discusses the importance of defect prevention in software development and choosing the best software development model to ensure the software development success of quality software system. We present Automated Defect Prevention (ADP) model which would address this concern, by putting process improvement practices directly into the software development life-cycle and applying comprehensive automation to ensure that these practices stay in place. Keywords: Automated Defect Prevention, ADP, Software Development Model, Software Quality 1 Introduction A decades-long goal has been to find repeatable, predictable processes or methodologies that improve productivity and quality of software development. This is based on the assumption, that a methodical approach to software development results in fewer defects and, therefore, ultimately provides shorter delivery times and better value. The definition and evolution of software development models can be viewed as defect prevention at the process level. The invention of each new model was the result of someone who was troubled by the problems with the existing models, identified the source of those problems, and then determined how to improve the process in a way that prevented them. Every mature industry has already figured out that defect prevention approach is not only possible, but necessary and stopped relying on testing as a way to make products work. We continue to have faith that testing will deliver quality, but it never does. Any belief that testing can create quality software systems is a fundamental problem in the software industry. If the software industry is serious about reducing the defect rate and resolving the issues that stem from defects, we cannot afford to continue hoping that our current approach to testing will miraculously start yielding quality software. Instead, we need to follow in the footsteps of other industries and start preventing defects throughout the software development life-cycle, our industry’s own version of the manufacturing production line. For this strategy to work, we need a formalized process for integrating defect prevention in the software life-cycle, and this formalized process must redefine, but not eliminate, the role of testing. While testing has proven to be an ineffective method of building quality into software, it can and should be used to measure how well software is being produced and maintained. The importance of defect prevention in software development life-cycle lays foundation of a new software process methodology called Automated Defect Prevention, as a new approach to improving software quality and reliability. 2 Overview of Automated Defect Prevention Model The ADP model, is an expansion of the approach called Automated Error Prevention (AEP), which was originally developed by Parasoft Corporation. AEP is an industry best practice that improves application quality through the automatic prevention of errors during the entire software development life-cycle. AEP automates the development 1
  • 2. process to help software organizations learn from their and everyone else’s mistake to prevent errors from being repeated in software. Defect prevention refers to a strategy that identifies root causes of defects in a software life-cycle and prevents them from recurring. Traditionally, defect prevention involves collecting defect data in a defect repository, analyzing and identifying the root causes of severe defects, and applying a systematic methodology to improve the process in order to prevent these defects from recurring. This often entails plotting defect data on a Pareto diagram in order to determine the frequency of their occurrence and concentrating on vital few and not trivial many. Thus, if a defect such as a dangling pointer has been detected in a code module, not only this defect needs to be corrected, but also a process should be established to prevent any future dangling pointers in the code. This could be done by making sure that all developers adhere to the following practice: deallocate each previously allocated pointer, when memory location is no longer used. Centered on defect prevention, ADP defines five basic principles: necessity for building an appropriate infrastruc- ture, application of well-established general best practices known to avert defects, customization of best practices to meet project specific needs, automation, and decision support through tracking and measurement. Based on the above five principles, our methodology defines ADP based software development model consisting of the following phases: initial planning and requirements, expanded planning and modeling, construction and testing, and deployment. The necessary infrastructure is created during the initial planning, and is supplemented to meet the needs of the project during the expanded planning. For each of the phases, the use of automation, tracking, and measurements play a pivotal role in improving the software development process. The importance of automation, tracking, and measurement will vary in each of the phases of development. In the requirements and modeling phases, tracking will be the most important. In the construction phase, especially during testing, automation will be the most important. Measurements will be very important during all phases, because the measurements are used to quantify process improvements and make business decisions. 3 Automated Defect Prevention Model is Overcome Obstacle on Other Software Development Model The ADP model was developed in recognition of the fact that different development processes share many of the same characteristics and pitfalls, but that each project and organization will also encounter its own unique challenges. Consequently, ADP model defines how to best prevent the defects common to most development groups, but also provides a blueprint for identifying and preventing recurrences of the defects that are unique to a specific development group, process, or project. Moreover, each of the new models still maintains the core characteristics of the waterfall approach: a forward- moving progression through the stages of a life-cycle that encompass the original requirements analysis, specification, design, implementation, testing, and maintenance. The duration, scope, and number of iterations through the stages and the cycle may vary from process to process, but its presence is essential, because it represents the natural steps of developing software. To anchor basic defect prevention into the common software life-cycle, we integrate industry-accepted best prac- tices (such as coding standards, unit testing, integration testing, and so on) into the life-cycle and automate these practices as much as possible. This automated full-life-cycle defect prevention is the basic foundation of the ADP model. Automation is the innovation that allows ADP to overcome the main obstacle of other software quality initiatives whose manual implementation is typically so difficult and time consuming that they cannot feasibly be integrated into most development organizations and software product life-cycles. The introduction of automation is essential to making defect prevention a practical strategy for the software industry. When key defect prevention practices are automated, organizations can ensure that they are performed thoroughly and precisely, with minimal disruption to existing processes and projects. As a result, defect prevention practices can become a practical, enduring part of a team’s development process rather than an idea that is appreciated in principle, but never truly embraced and implemented. 2
  • 3. 4 Achieving Software Quality Successfully Using Automated Defect Prevention Model The mission of Information Technology (IT) is to improve business processes and increase organizational profits. Companies are constantly rethinking how to use IT to a competitive advantage, reduce its operating and maintenance costs, and lower the total cost of ownership, all while attempting to deliver increased value. ADP model has many benefits outlined below that overcome challenges of modern software products. • Improves Software Quality When defect occurred, developers sometimes patch up bugs without identifying their root causes. Unfortunately, such an approach usually provides only a short-term solution. Finding the root cause of a defect allows for fixing a whole class of defects. The system therefore becomes more stable and retains a higher level of quality. If this model is implemented throughout the organization, the developers will have the infrastructure and process essential for efficiently producing quality software. • Reduces Development and Maintenance Costs The cost of removing defects from the software grows dramatically as a function of time in the development cycle. ADP not only reduces the total number of faults, but it also shifts defect discovery to early phases of the development cycle because defects uncovered in one iteration of software development are prevented from recurring in subsequent iterations. Such an improvement can have a great impact on the efficiency of software development, because removing defects in late phases of the life-cycle can be very costly. • Supports Predictability and Improvement of Software Processes Since the existence of defects is not planned in the software development process, their presence often delays releases and increases the total production costs. While there are a number of techniques for defect estimation, these techniques do not provide guaranteed results. Fewer defects make the process more stable and predictable. Defects can originate in any of the phases of the development cycle starting with requirements, through modeling and design, construction and maintenance. Identifying a defect’s root cause facilitates implementation of an improved process throughout the organization. 5 Conclusions This paper presents the importance of defect prevention in software development life-cycle, the benefits of ADP model to overcome the main obstacle of other software development models and choosing ADP model to ensure software quality. The five principles of ADP using four phases of software development model is an approach to improve software quality and reliability. Moreover, the software development, using ADP model, stresses the importance of employing well-known and proven software development process for the achievement of the desired software qualities. Addressing such qualities, at the development stage, enables the early discovery of the defects in achieving high quality software systems. References [1] Adam Kolawa and Dorota Huizinga. Modern software development: A shift of the paradigm from the waterfall to the iterative life cycle models. CSUF, CPSC-546(1), 2006. [2] Adam Kolawa and Dorota Huizinga. Overview of automated software defect prevention. CSUF, CPSC-546(2), 2006. [3] Mark Streibeck. Ongoing quality improvement, or: How we all learned to trust xp. http://www.agile2005. org/XR24.pdf, 2005. [4] Automated error prevention: Delivering reliable and secure software on time and on budget. http://www. parasoft.com/jsp/printables/ParasoftAEP.573.pdf, 2005. 3
  • 4. [5] Watts S. Humphrey. Managing the Software Process. Addison Wesley Publishing, Reading, Massachusetts, 1989. [6] James M. Clarke. Automated test generation (from a behavior model). http://www.stickyminds.com/getfile. asp?ot=XML&id=2018&fn=XDD2018filelistfilename1%2Edoc, 2000. 4

×