Asee peer logo

Teaching Software Requirements Inspections to Software Engineering Students through Practical Training and Reflection

Download Paper |

Conference

2016 ASEE Annual Conference & Exposition

Location

New Orleans, Louisiana

Publication Date

June 26, 2016

Start Date

June 26, 2016

End Date

June 29, 2016

ISBN

978-0-692-68565-5

ISSN

2153-5965

Conference Session

Software and Programming

Tagged Division

Computers in Education

Tagged Topic

Diversity

Page Count

13

DOI

10.18260/p.26049

Permanent URL

https://peer.asee.org/26049

Download Count

729

Paper Authors

biography

Anurag Goswami North Dakota State University

visit author page

Anurag Goswami is a Ph. D. Candidate in the department of Computer Science at North Dakota State University. His main research interests include empirical software engineering, human factors in software engineering, and software quality.

visit author page

biography

Gursimran Singh Walia North Dakota State University

visit author page

Gursimran S. Walia is an associate professor of Computer Science at North Dakota State University. His main research interests include empirical software engineering, software engineering education, human factors in software engineering, and software quality. He is a member of the IEEE Computer Society. Contact him at gursimran.walia@ndsu.edu

visit author page

Download Paper |

Abstract

Computer Science (CS) and Software Engineering (SE) students learn various concepts and practical skills in academia that prepares them for challenges in software industry. Academic institutions are thriving to reduce the gap between industry and academia by employing various practical training approaches (e.g., capstone experience). On that end, inspections (introduced by Fagan at IBM in 1976) are an important verification technique that are widely used by software organizations at all phases (e.g., requirements, design, coding) to detect and fix problems early in software development lifecycle. During an inspection process, group of skilled individuals review a software artifact (e.g., requirements specification document) and report faults present in the artifact that are then used to improve the quality of software being produced.

While there are established courses in software verification that focus heavily on software testing, inspections receive very little focus in academia despite its importance within the software industry (improving quality, minimizing effort and cost). Therefore, it is important to train students on inspection process which can improve their ability to inspect a software artifact to find faults and also help them learn from the common mistakes committed during the software development.

At North Dakota State University (NDSU), we introduced a teaching module that trained CS and SE students on using a fault based checklist method (used in published industrial studies) to inspect the Loan Arranger System (LAS) requirements specification document (that was seeded with 30 realistic faults by Microsoft researchers) to detect and report faults. At the conclusion of this training, the students were provided the actual list of faults present in the document and were asked to reflect based on which fault they detected, the faults they had missed and if they agree or disagree if the fault (actually represents a problem in the specification) is true or not. The goal of this training exercise was to help students understand the nature of true faults and improve their inspection performance by reflecting upon the fault they had missed during the inspection.

Based on the lessons learned from the training exercise, the students used the same inspection technique (fault-checklist) to inspect a new Parking Garage Control System (PGCS) requirements document that was also seeded with faults (by Microsoft researchers). Similar to the training exercise, students reported their faults which were then evaluated for true and false positive for analysis. The results from inspection exercises and post-hoc interview showed that reflection helped students to understand their weakness by reviewing faults that were not detected during inspection. This resulted in improved inspection performance, as students were able to find a larger percentage of faults during the second inspection. The students also reported better insights into the requirements engineering process and the common faults that were committed during the development of both requirements documents. Overall, this approach helped students understand (through practice) the importance of inspection process in improving software quality and also helped improve the ability of students to uncover a larger number of faults present in a software artifact being inspected.

Goswami, A., & Walia, G. S. (2016, June), Teaching Software Requirements Inspections to Software Engineering Students through Practical Training and Reflection Paper presented at 2016 ASEE Annual Conference & Exposition, New Orleans, Louisiana. 10.18260/p.26049

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2016 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015