Skip to main content
Log in

Using human error information for error prevention

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Notes

  1. http://carver.cs.ua.edu/Studies/ErrorAbstraction/

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

    Article  Google Scholar 

  • Card DN (1998) Learning from our mistakes with defect causal analysis. IEEE Softw 15(1):56–63

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Ericsson KA, Simon HA (1993) Protocol analysis : verbal reports as data /Revised Edition. MIT Press, Cambridge

    Google Scholar 

  • 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

    Article  Google Scholar 

  • Grady RB (1996) Software failure analysis for high-return process improvement decisions. Hewlett Packard J 47:15–24

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Nolan TW (2000) System changes to improve patient safety. BMJ Br Med J 320(7237):771

    Article  Google Scholar 

  • Pooley R, Senior D, Christie D (2002) Collecting and analyzing web-based project metrics. IEEE Softw 19(1):52–58

    Article  Google Scholar 

  • 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

    Book  Google Scholar 

  • 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

    Article  Google Scholar 

  • Saha G K (2006) Software fault avoidance issues. Ubiquity 2006(November):5:1–5:15

    Article  Google Scholar 

  • Shappell S, Wiegmann D (2001) Applying reason: The human factors analysis and classification system (HFACS). Human Factors and Aerospace Safety 1:59–86

    Google Scholar 

  • Sommerville I (2010) Software Engineering, 9th edn. Addison-Wesley, Harlow

    MATH  Google Scholar 

  • 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

    Google Scholar 

  • Walia GS, Carver JC (2009) A systematic literature review to identify and classify software requirement errors. Inf Softw Technol 51(7):1087–1109

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

Download references

Acknowledgements

This work was supported by NSF awards 1421006 and 1423279.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jeffrey C. Carver.

Additional information

Communicated by: Paul Grünbacher and Anna Perini

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-018-9623-8

Keywords

Navigation