By Gerard Coleman School of Computer Applications, Dublin City University, Glasnevin, Dublin 9. M. Sc., September 1997
Total Page:16
File Type:pdf, Size:1020Kb
A Quality Software Process for Rapid Application Development By Gerard Coleman School of Computer Applications, Dublin City University, Glasnevin, Dublin 9. M. Sc., September 1997 A Quality Software Process for Rapid Application Development A Dissertation Presented in Fulfilment of the Requirement for the M.Sc. Degree September 1997 Gerard Coleman School of Computer Applications Dublin City University Supervisor: Mr. Renaat Verbruggen Declaration I hereby certify that this material, which I now submit for assessment on the programme of study leading to the award of M.Sc. is entirely my own work and has not been taken from the work of others save and to the extent that such work has been cited and acknowledged within the text of my work. Date: Acknowledgements I would like to thank Renaat for his assistance, insight and guidance during the research. I would also like to thank my wife, Fiona, for her encouragement and understanding throughout the compilation of this work. Finally, I would like to thank Patrick O’Beime, Shay Curtin and Gerard McCloskey who gave so generously of their time to review this work. iv Abstract Having a defined and documented standardised software process, together with the appropriate techniques and tools to measure its effectiveness, offers the potential to software producers to improve the quality of their output. Many firms have yet to define their own software process. Yet without a defined process it is impossible to measure success or focus on how development capability can be enhanced. To date, a number of software process improvement frameworks have been developed and implemented. However, most of these models have been targeted at large-scale producers. Furthermore, they have applied to companies operating using traditional development techniques. Smaller companies and those operating in development areas where speed of delivery is paramount have not, as yet, had process improvement paradigms available for adoption. This study examined the software process in a small company and emerged with the recommendation of the use of the Dynamic Systems Development Method (DSDM) and the Personal Software Process (PSP) for achieving software process improvement. DSDM has been designed as a framework for Rapid Application Development (RAD) and provides a documented approach for organisations to follow when undertaking RAD projects. Through the mechanisms outlined by DSDM developers become empowered and time-to-market for software can be substantially reduced. The PSP allows individual software engineers to assess, measure and improve their performance. By improving the skills of individual developers, quality can be engineered into RAD projects at all life-cycle stages. Combining PSP and DSDM, therefore, enables the production of high-quality software and at the same time allows reductions in development time to be achieved. Table of Contents Chapter 1 - The Software Process........................................................................ 1 1.0 Introduction................................................................................................ 1 1.1 What is the Software Process?................................................................. 2 1.2 Background................................................................................................ 3 1.3 The Software Process - Maturity and Assessment.................................. 6 1.3.1 Process Maturity.......................................................................... 6 1.3.2 A Maturity Framework and the Capability Maturity Model... 7 1.3.3 ‘Bootstrap’ ................................................................................... 9 1.3.4 SPICE........................................................................................... 10 1.4 Dynamic Systems Development Method (DSDM)...................................10 1.5 Personal Software Process (PSP)............................................................... 11 1.6 Summary.................................................................................................... 11 Chapter 2 - Rapid Application Development (RAD) and the Dynamic Systems Development Method (DSDM)....................................... 12 2.0 Introduction......................................................................................... 12 2.1 Rapid Applications Development (RAD)................................................ 12 2.2 RAD - A Worthwhile Investment?..............................................................12 2.3 Dynamic Systems Development Method - A RAD Standard..................19 2.4 DSDM - What the Method Contains..........................................................20 2.5 Principles of DSDM ......................................................................................20 2.5.1 Applications Suited to the DSDM Approach.......................... 21 2.5.2 Applications Unsuited to the DSDM Approach...................... 21 2.5.3 DSDM Implementation - Critical Success Factors................... 21 2.6 The DSDM Life-Cycle............................................................................. 22 2.6.1 Prototyping within DSDM......................................................... 24 2.7 Quality Issues in DSDM.......................................................................... 25 2.7.1 Quality Control......................................................................... 25 2.7.2 DSDM and the CMM.............................................................. 25 2.8 Introducing DSDM into an Organisation............................................... 25 2.9 DSDM - A Way Forward for RAD?............................ 26 2.9.1 Other Factors which May Influence Development................ 29 2.10 DSDM-The Benefits.............................................................................. 32 2.11 Summary.................................................................................................. 34 Chapter 3 - Process Improvement using the Personal Software Process (PSP)...................................................................................... 35 3.0 Introduction................................................................................................ 35 3.1 Personal Software Process (PSP)............................................................ 35 3.2 PSP Improvement Phases.......................................................................... 36 3.3 The Baseline Personal Process................................................................. 36 3.3.1 PSP0.1........................................................................................ 37 3.4PSP1............................................................................................................ 38 3.4.1 Proxy-based Estimating............................................................. 38 3.4.2 Resource and Schedule Estimating.......................................... 39 3.4.3 Measurements in the PSP......................................................... 39 3.5 PSP2......................................................................................................... 39 3.5.1 Design and Code Reviews............................... 39 3.5.2 Software Quality Management.................................................. 40 3.5.2.1 Product Quality.......................................................... 40 3.5.2.2 Process Quality.......................................................... 40 3.6PSP3............................................................................................................ 41 3.6.1 Scaling Up the Personal Software Process.............................. 41 3.6.2 The PSP3 Approach.................................................................. 41 3.7 Using the Personal Software Process....................................................... 42 3.8 Personal Software Process - An Analysis............................................... 43 3.9 Summary.................................................................................................... 49 Chapter 4 - Assessment of the Software Process within a Small Company................................................................................ 52 4.0 Introduction................................................................................................. 52 4.1 Software Process Questionnaire ............................................................... 52 4.2 Questionnaire Findings.............................................................................. 53 4.2.1 Project Review and Sign-Off.................................................... 55 4.2.2 Configuration Management...................................................... 56 vii 4.2.3 Software Estimation.................................................................. 56 4.2.4 Metrics........................................................................................ 56 4.2.5 Education/Training.................................................................... 57 4.2.6 Project Management.................................................................. 57 4.2.7 Software Quality Assurance...................................................... 58 4.2.8 Requirements Specification...................................................... 58 4.2.9 System Design............................................................................ 59 4.2.10 Implementation......................................................................... 59 4.2.11 Testing.....................................................................................