Nine Steps to Delivering Defect-Free Software By: Terence M. Colligan Presented by: Isaac Bailey.

Slides:



Advertisements
Similar presentations
Software Engineering Lab Session Session 1 – Introduction to the practicum © Jorge Aranda, 2005.
Advertisements

Winston W. Royce (1929–1995) American leader computer scientist & Engineer of software development in the second half of the 20th century. B.Sc. in physics,
The Joel Test: 12 Steps to Better Code By Tim Denton.
Stoimen Stoimenov QA Engineer SitefinityLeads, SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Week 7: Requirements validation Structured walkthroughs Why have walkthroughs When to have walkthroughs Who participates What procedures are helpful Thoughtless.
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
© 2010 John Dalbey Ch 9: Reviews Humphrey proposes that personal reviews will result in improved quality. Now that we have a defined process and some real.
4. Building Competitive Advantage Through Functional-Level Strategy
Debugging CPSC 315 – Programming Studio Fall 2008.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
CSC 395 – Software Engineering Lecture 21: Overview of the Term & What Goes in a Data Dictionary.
Programming and Languages Chapter Competencies (Page 1 of 2) Describe the six steps of programming Discuss design tools including top-down design,
Total Quality.People-focused management system.Focus on increasing customer satisfaction and reducing costs.A systems approach that integrates organizational.
McGraw-Hill Technology Education © 2006 by the McGraw-Hill Companies, Inc. All rights reserved CHAPTER PROGRAMMING AND LANGUAGES.
1414 CHAPTER PROGRAMMING AND LANGUAGES. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved Competencies Describe the six steps of programming.
Design, Implementation and Maintenance
12 Steps to Useful Software Metrics
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
P51UST: Unix and Software Tools Unix and Software Tools (P51UST) Compilers, Interpreters and Debuggers Ruibin Bai (Room AB326) Division of Computer Science.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Development Life Cycle Decisions Project Management Disciplines Stacey Shearn September 8, 2005.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Software Testing Life Cycle
CPIS 357 Software Quality & Testing
RUP Implementation and Testing
INFO 637Lecture #41 Software Engineering Process II Development Plan INFO 637 Glenn Booker.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Improving Agility in Product Development and Pricing to Gain a Competitive Edge.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
 CS 5380 Software Engineering Chapter 8 Testing.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 6.
Testing Vs. Inspection Research Paper Diala T. Gammoh, Ph.D. Student Dr. Damla Turgut, Ph.D. University of Central Florida, Orlando Florida
Continuous Deployment JEFFREY KNAPP 8/6/14. Introduction Why is it valuable How to achieve What to consider.
Software Testing and Quality Assurance Software Quality Assurance 1.
CHAPTER 9 INSPECTIONS AS AN UP-FRONT QUALITY TECHNIQUE
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Reliability Research Pankaj Jalote Professor, CSE, IIT Kanpur, India.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Software Testing Process
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
1-1 Introduction to Cost Management Financial Accounting Versus Management Accounting: A Systems Framework Accounting information systems Financial.
Ahmed Idris Tahir Waseel Application Service Provider.
Cruise Training Introduction of Continuous Integration.
Software Process Models.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Adaptive Software Development Process Framework. Version / 21 / 2001Page Project Initiation 2.0 Adaptive Cycle Planning 5.0 Final Q/A and.
Debuggers. Errors in Computer Code Errors in computer programs are commonly known as bugs. Three types of errors in computer programs –Syntax errors –Runtime.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Software Development.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Engineering (CSI 321)
Introduction to programming
Software Verification and Validation
Software engineering – 1
Dilbert Scott Adams Manage It! Your Guide to Modern, Pragmatic Project Management. Johanna Rothman.
Software Quality Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Quality Measurable characteristic Cyclomatic complexity Cohesion
POWERPOINT PRESENTATION
Presentation transcript:

Nine Steps to Delivering Defect-Free Software By: Terence M. Colligan Presented by: Isaac Bailey

Outline Introduction 1. Believe Defect-Free Software is Possible 2. Think Defect-Free Software is Important 3. Commit to Delivering Defect-Free Software 4. Design Your Code for Simplicity and Reliability 5. Trace Every Line of Code When Written 6. Review Code by Programmer Peers 7. Build Automated QA into Your Code 8. Build and Test Daily 9. Use Automated Checking Wherever Possible Summary

Introduction Terence Colligan has been working in software development for 30 years at the time this article was written. One engineer changed his entire outlook on how software should be written. They have come up with these nine steps.

1. Believe Defect-Free Software is Possible The first reaction is “It’s just not possible”. This attitude is the biggest obstacle. The average engineer: –Defects are inevitable. The defect-free engineer: –Defects embarrass them. –They are disgusted to find defects in other people’s code

2. Think Defect-Free Software is Important Why is defect-free software important? –Reduces support costs. –Reduces programming costs. –Reduces development time. –Can provide a competitive advantage.

3. Commit to Delivering Defect- Free Software Colligan used to make decisions based on short schedule time instead of focusing on the defect-free side. In reality the schedules were longer, there were more bugs in the software, more support was required, higher costs and lower profits.

4. Design Your Code for Simplicity and Reliability A clean, well structured design simplifies producing reliable code. Whereas a poor design cripples the engineer. Each function should be precise and have only one purpose. If a bug is found then the programmer can find and fix the code fast, saving time and money.

5. Trace Every Line of Code When Written Using a debugger trace every new line of code. Try to predict the outcome before each line is executed. By stepping through each line of code, you ensure that the new code is fully tested. You confirm that the code is functioning as intended.

6. Review Code by Programmer Peers Single most cost-effective way to remove bugs from code. This process forces the engineer to articulate assumptions. Allows for more than one engineer to view the code while it is still easy to change. Encourages cross-training and sharing of techniques.

7. Build Automated QA into Your Code Automated test are designed to exercise every part of the program. Use the power of the computer. Avoid human error.

8. Build and Test Daily This gives developers feedback about changes made and management gets objective feedback about the project status. This helps in making better estimates about costs and shipping dates.

9. Use Automated Checking Wherever Possible Set your compiler’s warning level to maximum. Use the memory trace subsystem. Other commercial tools

Summary It take a lot of work. Some details will be adapted to your situation. By demanding defect-free software you can deliver it.