Abstract
Developing error-free software requirements is of critical importance to the success of a software project. Problems that occur during requirements collection and specification, if not fixed early, are costly to fix later. Therefore, it is important to develop techniques that help requirements engineers detect and prevent requirements problems. As a human-centric activity, requirements engineering can be influenced by psychological research about human errors, which are the failings of human cognition during the process of planning and executinge a task. We have employed human error research to describe the types of problems that occur during requirements engineering. The goals of this research are: (1) to evaluate whether understanding human errors contributes to the prevention of errors and concomitant faults during requirements engineering and (2) to identify error prevention techniques used in industrial practice. We conducted a controlled classroom experiment to evaluate the benefits that knowledge of errors has on error prevention. We then analyzed data from two industrial surveys to identify specific prevention and mitigation approaches employed in practice. The classroom study showed that the better a requirements engineer understands human errors, the fewer errors and concomitant faults that engineer makes when developing a new requirements document. Furthermore, different types of Human Errors have different impacts on fault prevention. The industry study results identified prevention and mitigation mechanisms for each error type. Human error information is useful for fault prevention during requirements engineering. There are practices that requirements engineers can employ to prevent or mitigate specific human errors.
Similar content being viewed by others
References
Anu V, Hu W, Carver JC, Walia GS, Bradshaw G (2016) Development of a human error taxonomy for software requirements: A systematic literature review. Technical Report NDSU-CS-TR-16-001, North Dakota State University . http://vaibhavanu.com/NDSU-CS/TR-16-001.eps
Boehm B, Basili VR (2001) Software defect reduction top 10 list. Computer 34(1):135–137. https://doi.org/10.1109/2.962984
Card DN (1998) Learning from our mistakes with defect causal analysis. IEEE Softw 15(1):56–63
Chen JC, Huang SJ (2009) An empirical analysis of the impact of software development problem factors on software maintainability. J Syst Softw 82(6):981–992
Chillarege R, Bhandari IS, Chaar JK, Halliday MJ, Moebus DS, Ray BK, Wong MY (1992) Orthogonal defect classification-a concept for in-process measurements. IEEE Trans Softw Eng 18(11):943– 956
Dethomas A, Feo P (1987) Technology requirements of integrated, critical digital flight systems. In: Proceedings of the AIAA Guidance, Navigation and Control Conference, pp 1579–1583
Diller T, Helmrich G, Dunning S, Cox S, Buchanan A, Shappell S (2013) The human factors analysis classification system (HFACS) applied to health care. Am J Med Qual 29:181–190
Ericsson KA, Simon HA (1993) Protocol analysis : verbal reports as data /Revised Edition. MIT Press, Cambridge
Femmer H, Fernández DM, Juergens E, Klose M, Zimmer I, Zimmer J (2014) Rapid requirements checks with requirements smells: Two case studies. In: Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering, pp 10–19
Fernández DM, Wagner S, Kalinowski M, Felderer M, Mafra P, Vetrò A, Conte T, Christiansson MT, Greer D, Lassenius C, Männistö T, Nayabi M, Oivo M, Penzenstadler B, Pfahl D, Prikladnicki R, Ruhe G, Schekelmann A, Sen S, Spinola R, Tuzcu A, de la Vara JL, Wieringa R (2017) Naming the pain in requirements engineering. Empir Softw Eng 22(5):2298–2338
Grady RB (1996) Software failure analysis for high-return process improvement decisions. Hewlett Packard J 47:15–24
Graham M (2005) Software defect prevention using orthogonal defect prevention. https://www.umsec.umn.edu/sites/www.umsec.umn.edu/files/ODC_TwinSPIN_010605%20%281%29.ppt
Hamill M, Goseva-Popstojanova K (2009) Common trends in software fault and failure data. IEEE Trans Softw Eng 35(4):484–496
Hu W, Carver JC, Anu VK, Walia GS, Bradshaw G (2016) Detection of requirement errors and faults via a human error taxonomy: A feasibility study. In: Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM ’16, pp 30:1–30:10
Hu W, Carver JC, Anu V, Walia G, Bradshaw G (2017) Defect prevention in requirements using human error information: An empirical study. In: Proceedings of the international working conference on requirements engineering, foundation for software quality. Springer, pp 61–76
IEEE (2017) 24765:2017 – Systems and Software Engineering – Vocabulary. IEEE
Kamsties E, M Berry D, Paech B (2001) Detecting ambiguities in requirements documents using inspections. In: Proceedings of the First Workshop on Inspection in Software Engineering
Kumaresh S, Baskaran R (2012) Experimental design on defect analysis in software process improvement. In: Proceedings of the IEEE International Conference on Recent Advances in Computing and Software Systems, pp 293–298
Lanubile F, Shull F, Basili VR (1998) Experimenting with error abstraction in requirements documents. In: Proceedings of the Fifth IEEE International Software Metrics Symposium, pp 114–121
Leszak M, Perry DE, Stoll D (2000) A case study in root cause defect analysis. In: Proceedings of the 22nd International Conference on Software Engineering, pp 428–437
Mays RG, Jones CL, Holloway GJ, Studinski DP (1990) Experiences with defect prevention. IBM Syst J 29(1):4–32
Nolan TW (2000) System changes to improve patient safety. BMJ Br Med J 320(7237):771
Pooley R, Senior D, Christie D (2002) Collecting and analyzing web-based project metrics. IEEE Softw 19(1):52–58
Raja UA (2009) Empirical studies of requirements validation techniques. In: 2009 2nd International Conference on Computer, Control and Communication, pp 1–9
Reason J (1990) Human error. Cambridge University Press, New York
Reason J (2008) The human contribution: unsafe acts, accidents and heroic recoveries. Ashgate Publishing
Reason J, Manstead A, Stradling S, Baxter J, Campbell K (1990) Errors and violations on the roads: a real distinction? Ergonomics 33(10-11):1315–1332
Saha G K (2006) Software fault avoidance issues. Ubiquity 2006(November):5:1–5:15
Shappell S, Wiegmann D (2001) Applying reason: The human factors analysis and classification system (HFACS). Human Factors and Aerospace Safety 1:59–86
Sommerville I (2010) Software Engineering, 9th edn. Addison-Wesley, Harlow
Suma V, Nair T (2008) Defect prevention approaches in medium scale it enterprises. In: Proceedings of the National Conference on Recent Research Trends in Information Technology, pp 134–138
Terzakis J (2013) Reducing requirements defect density by using mentoring to supplement training. Int J Adv Intell Syst 6(1):102–111
Walia GS, Carver JC (2009) A systematic literature review to identify and classify software requirement errors. Inf Softw Technol 51(7):1087–1109
Walia GS, Carver JC (2010) Evaluating the use of requirement error abstraction and classification method for preventing errors during artifact creation: A feasibility study. In: 21st IEEE International Symposium on Software Reliability Engineering, pp 81–90
Walia GS, Carver JC (2013) Using error abstraction and classification to improve requirement quality: conclusions from a family of four empirical studies. Empir Softw Eng 18(4):625–658
Wickens CD, Hollands JG, Banbury S, Parasuraman R (2015) Engineering psychology & human performance. Psychology Press
Wiegmann D, Shappell S, Boquet A, Detwiler C, Holcomb K, Faaborg T (2005) Human error and general aviation accidents: A comprehensive, fine-grained analysis using HFACS. In: DOT/FAA/ AM-05/24
Wiener EL, Kanki BG, Helmreich RL (1995) Cockpit resource management. Gulf Professional Publishing
Zhang J, Patel VL, Johnson TR, Shortliffe EH (2004) A cognitive taxonomy of medical errors. J Biomed Inform 37(3):193–204
Acknowledgements
This work was supported by NSF awards 1421006 and 1423279.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Paul Grünbacher and Anna Perini
Rights and permissions
About this article
Cite this article
Hu, W., Carver, J.C., Anu, V. et al. Using human error information for error prevention. Empir Software Eng 23, 3768–3800 (2018). https://doi.org/10.1007/s10664-018-9623-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-018-9623-8