A holistic method for improving software product and process quality

The concept of quality in general is elusive, multi-faceted and is perceived differently by different stakeholders. Quality is difficult to define and extremely difficult to measure. Deficient software systems regularly result in failures which often lead to significant financial losses but more importantly to loss of human lives. Such systems need to be either scrapped and replaced by new ones or corrected/improved through maintenance. One of the most serious challenges is how to deal with legacy systems which, even when not failing, inevitably require upgrades, maintenance and improvement because of malfunctioning or changing requirements, or because of changing technologies, languages, or platforms. In such cases, the dilemma is whether to develop solutions from scratch or to re-engineer a legacy system. This research addresses this dilemma and seeks to establish a rigorous method for the derivation of indicators which, together with management criteria, can help decide whether restructuring of legacy systems is advisable. At the same time as the software engineering community has been moving from corrective methods to preventive methods, concentrating not only on both product quality improvement and process quality improvement has become imperative. This research investigation combines Product Quality Improvement, primarily through the re-engineering of legacy systems; and Process Improvement methods, models and practices, and uses a holistic approach to study the interplay of Product and Process Improvement. The re-engineering factor rho, a composite metric was proposed and validated. The design and execution of formal experiments tested hypotheses on the relationship of internal (code-based) and external (behavioural) metrics. In addition to proving the hypotheses, the insights gained on logistics challenges resulted in the development of a framework for the design and execution of controlled experiments in Software Engineering. The next part of the research resulted in the development of the novel, generic and, hence, customisable Quality Model GEQUAMO, which observes the principle of orthogonality, and combines a top-down analysis of the identification, classification and visualisation of software quality characteristics, and a bottom-up method for measurement and evaluation. GEQUAMO II addressed weaknesses that were identified during various GEQUAMO implementations and expert validation by academics and practitioners. Further work on Process Improvement investigated the Process Maturity and its relationship to Knowledge Sharing, resulted in the development of the I5P Visualisation Framework for Performance Estimation through the Alignment of Process Maturity and Knowledge Sharing. I5P was used in industry and was validated by experts from academia and industry. Using the principles that guided the creation of the GEQUAMO model, the CoFeD visualisation framework, was developed for comparative quality evaluation and selection of methods, tools, models and other software artifacts. CoFeD is very useful as the selection of wrong methods, tools or even personnel is detrimental to the survival and success of projects and organisations, and even to individuals. Finally, throughout the many years of research and teaching Software Engineering, Information Systems, Methodologies, I observed the ambiguities of terminology and the use of one term to mean different concepts and one concept to be expressed in different terms. These practices result in lack of clarity. Thus my final contribution comes in my reflections on terminology disambiguation for the achievement of clarity, and the development of a framework for achieving disambiguation of terms as a necessary step towards gaining maturity and justifying the use of the term “Engineering” 50 years since the term Software Engineering was coined. This research resulted in the creation of new knowledge in the form of novel indicators, models and frameworks which can aid quantification and decision making primarily on re-engineering of legacy code and on the management of process and its improvement. The thesis also contributes to the broader debate and understanding of problems relating to Software Quality, and establishes the need for a holistic approach to software quality improvement from both the product and the process perspectives.

[1]  Will Venters,et al.  Software engineering: theory and practice , 2006 .

[2]  Michael Hougham London Ambulance Service computer-aided despatch system☆ , 1996 .

[3]  Alan C. Gillies,et al.  Software Quality: Theory and Management , 1992 .

[4]  K. Howell An Introduction to the Philosophy of Methodology , 2012 .

[5]  David Law,et al.  DESMET—determining an evaluation methodology for software methods and tools , 1992 .

[6]  Elli Georgiadou,et al.  Measuring the understandability of a graphical query language through a controlled experiment , 2001 .

[7]  Jay Liebowitz IT Project Failures: What Management Can Learn , 2015, IT Professional.

[8]  Edward G. Schilling,et al.  Juran's Quality Handbook , 1998 .

[9]  Elaine J. Weyuker,et al.  Evaluating Software Complexity Measures , 2010, IEEE Trans. Software Eng..

[10]  Gabriele Sauberer,et al.  Terminological Precision - A Key Factor in Product Usability and Safety , 2011, HCI.

[11]  C. T. Gray,et al.  Introduction to quality engineering: Designing quality into products and processes, G. Taguchi, Asian productivity organization, 1986. number of pages: 191. price: $29 (U.K.) , 1988 .

[12]  Tracy Hall,et al.  Motivating developer performance to improve project outcomes in a high maturity organization , 2007, Software Quality Journal.

[13]  Rory O'Connor,et al.  Refactoring Software Development Process Terminology Through the Use of Ontology , 2016, EuroSPI.

[14]  Vinay Kulkarni,et al.  Model Driven Development of Business Applications - A Practitioner's Perspective , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[15]  Elli Georgiadou Navigating the labyrinth of software re-words , 2009 .

[16]  Chris Verhoef,et al.  The rise and fall of the Chaos report figures , 2010, IEEE Software.

[17]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[18]  Anthony S. White,et al.  External disturbance control for software project management , 2006 .

[19]  Anthony S. White,et al.  A control model of the software requirements process , 2013, Kybernetes.

[20]  Pankaj Jalote,et al.  CMM in Practice: Processes for Executing Software Projects at Infosys , 1999 .

[21]  Norman E. Fenton,et al.  Software metrics: successes, failures and new directions , 1999, J. Syst. Softw..

[22]  Elli Georgiadou Reflections on the Need for Disambiguation of Terminology for Software Process Improvement , 2018, EuroSPI.

[23]  Scott A. Whitmire,et al.  Object-Oriented Design Measurement , 1997 .

[24]  Manish Agrawal,et al.  Software Effort, Quality, and Cycle Time: A Study of CMM Level 5 Projects , 2007, IEEE Transactions on Software Engineering.

[25]  Elli Georgiadou,et al.  The Complete Alphabet of Quality Software Systems: Conflicts and Compromises , 1997 .

[26]  Elli Georgiadou,et al.  Quality improvement through the identification of controllable and uncontrollable factors in software development , 2003 .

[27]  Darren Dalcher Software process: lessons and reflections , 2005, Softw. Process. Improv. Pract..

[28]  G. Taguchi Quality engineering in japan , 1985 .

[29]  Elli Georgiadou,et al.  Improving the program quality by using there-engineering factor metric p , 1994 .

[30]  Elli Georgiadou,et al.  An experimental examination of the role of re-engineering in the management of software quality , 1970 .

[31]  W. A. Shewhart,et al.  Statistical method from the viewpoint of quality control , 1939 .

[32]  Samuel Túnez,et al.  Milestones in Software Engineering and Knowledge Engineering History: A Comparative Review , 2014, TheScientificWorldJournal.

[33]  R. Geoff Dromey,et al.  A Model for Software Product Quality , 1995, IEEE Trans. Software Eng..

[34]  Dan Remenyi,et al.  The nature of research: qualitative or quantitative, narrative or paradigmatic? , 1996, Inf. Syst. J..

[35]  C. J. Harwood Correct Systems: Building a Business Process Solution , 2000 .

[36]  W. Edwards Deming,et al.  Out of the Crisis , 1982 .

[37]  Darren Dalcher,et al.  Is it time to rethink project success , 2017 .

[38]  Elli Georgiadou,et al.  Software Process and Product Improvement: A Historical Perspective , 2003 .

[39]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[40]  Lionel C. Briand,et al.  Integrating scenario-based and measurement-based software product assessment , 2001, J. Syst. Softw..

[41]  Victor R. Basili,et al.  Experimentation in software engineering , 1986, IEEE Transactions on Software Engineering.

[42]  Elli Georgiadou,et al.  Information systems failures: whose responsibility? , 2006 .

[43]  T. van deStorm Domain-specific languages , 2012 .

[44]  R. Hirschheim INFORMATION SYSTEMS EPISTEMOLOGY: AN HISTORICAL PERSPECTIVE , 2000 .

[45]  Elli Georgiadou,et al.  CoFeD: A visualisation framework for comparative quality evaluation , 2017 .

[46]  G A Tingley PROTOTYPING : THE NEW PARADIGM FOR EDP SYSTEMS DEVELOPMENT BUT AN OLD STORY FOR OR , 1983 .

[47]  Robert B. Grady,et al.  Software Metrics: Establishing a Company-Wide Program , 1987 .

[48]  Tom Mens,et al.  Averting the Next Software Crisis , 2011, Computer.

[49]  Capers Jones,et al.  Software Engineering Best Practices , 2009 .

[50]  Allen S. Lee Integrating Positivist and Interpretive Approaches to Organizational Research , 1991 .

[51]  Barbara Kitchenham,et al.  Software Metrics: Measurement for Software Process Improvement , 1996 .

[52]  Meir M. Lehman,et al.  Software's future: managing evolution , 1998, IEEE Software.

[53]  Darren Dalcher,et al.  Rethinking Success in Software Projects: Looking Beyond the Failure Factors , 2014, Software Project Management in a Changing World.

[54]  B. Flyvbjerg,et al.  Why Your IT Project May Be Riskier than You Think , 2011 .

[55]  L. Hyatt,et al.  A software quality model and metrics for risk assessment , 1996 .

[56]  Wanda J. Orlikowski,et al.  Studying Information Technology in Organizations: Research Approaches and Assumptions , 1991, Inf. Syst. Res..

[57]  Peter Checkland,et al.  Systems Thinking, Systems Practice , 1981 .

[58]  Rory V. O'Connor,et al.  Do We Speak the Same Language? Terminology Strategies for (Software) Engineering Environments Based on the Elcat Model - Innovative Terminology e-Learning for the Automotive Industry , 2017, EuroSPI.

[59]  Elli Georgiadou A framework for the design and execution of controlled experiments in software engineering , 2007 .

[60]  Elli Georgiadou,et al.  The I5P Visualisation Framework for Performance Estimation through the Alignment of Process Maturity and Knowledge Sharing , 2011, Int. J. Hum. Cap. Inf. Technol. Prof..

[61]  Tom Gilb,et al.  Evolutionary development , 1981, SOEN.