DEFECT-DRIVEN DEVELOPMENT: A NEW SOFTWARE DEVELOPMENT MODEL FOR BEGINNERS

Software development is challenging. It is normal for software developers to find some problems with their software design, especially during their beginner days. This usually involves simple and repetitious defects which subtly hamper their overall productivity. Defect-driven development (DDD) is a concept proposed to tackle such problems. DDD utilizes the benefits of software defect knowledge base by collecting defects data from experienced programmers and teach beginners to avoid these problems. In this way, the beginners can proactively prevent the defects and subsequently produce more high-quality software. DDD concept can be efficiently adapted to either traditional software development such as the Waterfall and Spiral model, or the more modern concepts such as Scrum or Test-driven Development. This research implemented the DDD concept on undergraduate students and compared their performance with the generic personal software process. A total of seventy-seven undergraduate students from information technology departments participated in this experiment. The experiment was organized in 3 batches in order to minimize potential discrepancies in the results. The result unanimously reveals that the students who implemented DDD had a significantly higher yield on defect removal. Although the time spent to finish each project in the DDD group were higher as expected, they were surprisingly not statistically different from the students who implemented a generic process. This suggests that DDD is a promising concept of software development.

[1]  Wencai Du,et al.  Case Study on Incremental Software Development , 2011, 2011 Ninth International Conference on Software Engineering Research, Management and Applications.

[2]  Ken Schwaber,et al.  Agile Software Development with SCRUM , 2001 .

[3]  Sakgasit Ramingwong,et al.  Improving Reliability of Defects Logging in MVC-PSP , 2015, 2015 2nd International Conference on Information Science and Security (ICISS).

[4]  Watts S. Humphrey PSP(sm): A Self-Improvement Process for Software Engineers (Sei Series in Software Engineering) , 2005 .

[5]  He Zhang,et al.  Improving PSP education by pairing: An empirical study , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[6]  Xin Tao,et al.  Study on software reliability design criteria based on defect patterns , 2009, 2009 8th International Conference on Reliability, Maintainability and Safety.

[7]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[8]  Victor R. Basili,et al.  Iterative and incremental developments. a brief history , 2003, Computer.

[9]  Ning Li,et al.  Classification of Software Defect Detected by Black-Box Testing: An Empirical Study , 2010, 2010 Second World Congress on Software Engineering.

[10]  Sakgasit Ramingwong,et al.  WBPS: A new web based tool for Personal Software Process , 2014, 2014 11th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology (ECTI-CON).

[11]  Jay F. Nunamaker,et al.  Comparing the Defect Reduction Benefits of Code Inspection and Test-Driven Development , 2012, IEEE Transactions on Software Engineering.

[12]  Watts S. Humphrey The Personal Process in Software Engineering , 1995, CSEE.

[13]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[14]  Patrick Letouze,et al.  Generating Software Engineers by Developing Web Systems: A Project-Based Learning Case Study , 2016, 2016 IEEE 29th International Conference on Software Engineering Education and Training (CSEET).

[15]  Laurie A. Williams,et al.  Test-driven development as a defect-reduction practice , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[16]  Yuefeng Zhang,et al.  Agile Model-Driven Development in Practice , 2011, IEEE Software.

[17]  Lisa Crispin,et al.  Driving Software Quality: How Test-Driven Development Impacts Software Quality , 2006, IEEE Software.

[18]  Sakgasit Ramingwong,et al.  Implementing Personal Software Process in Undergraduate Course to Improve Model-View-Controller Software Construction , 2015 .

[19]  Inderpal S. Bhandari,et al.  Orthogonal Defect Classification - A Concept for In-Process Measurements , 1992, IEEE Trans. Software Eng..

[20]  Matthias M. Müller,et al.  Experiment about test-first programming , 2002, IEE Proc. Softw..