Improving academic software engineering projects: A comparative study of academic and industry projects

Pierre N. Robillard1, Martin Robillard2
1Laboratoire de Recherche en Génie Logiciel, Département de Génie Électrique et de Génie Informatique, École Polytechnique de Montréal, Suc. Centre-ville, Canada
2Department of Computer Science, University of British Columbia, Vancouver, Canada

Tóm tắt

A project course in software engineering is often part of the curriculum in computer engineering or computer science. This paper studies the relationship between academic and industrial projects in software engineering. The purpose is to compare the practices followed in a project-course approach with the practices of professional software engineers. The approach is to compare the measurements obtained from academic and industrial projects. The critical factors regarding the process, the people and the project are discussed. The structure of the software processes and the measurement tools are presented. The data analyses show that the academic projects are found to be strongly dominated by programming activities. Based on the data from the industrial projects, we formulate seven recommendations to improve the software engineering practices in academic projects. They are related to management, predevelopment, development, testing, reviews documentation and team activities. The concluding remarks discuss some of the actions that could be taken to improve academic projects.

Từ khóa


Tài liệu tham khảo

Boloix, G. and P.N. Robillard (1995), “A Software System Evaluation Framework,” IEEE Computer, December, pp. 17–26.

Finnie, G.R., G.E. Wittig, and D.I. Petkov (1993), “Prioritizing Software Development Productivity Factors Using the Analytic Hierarchy Process,” Journal of Systems and Software 22, 129–139.

Freedman, D.P. and G.M. Weinberg (1990), Handbook of Walkthroughs, Inspections, and Technical Reviews, 3rd Edition, Little, Brown Computer Systems Series, Boston, MA.

Marsan, A. (1990), “Stochastic Petri Nets: An Elementary Introduction,” In Advances in Petri Nets, G. Rozenberg, Ed., Springer-Verlag, pp. 1–29.

Robillard, P.N. (1995), “Experience in Teaching Team Software Design,” In Proceedings of the 6th World Conference on Computers in Education, Chapman and Hall, Birmingham, UK, pp. 441–453.

Robillard, P.N. (1996a), “Teaching Software Engineering Through a Project-Oriented Course,” In Proceedings of the 9th Conference on Software Engineering Education, Springer-Verlag, Daytona Beach, FL, pp. 85–94.

Robillard, P.N., M. Simoneau, J. Mayrand, and D. Coupal (1996), “Experimental Data on the Usefulness of a Structured Editor,” In Structured-Based Editors and Environments, G. Szwillus and L. Neal, Eds., Academic Press, Amsterdam, The Netherlands, Chapter 6, pp. 193–206.

Robillard, P.N. (1996b), “Programming Environment for Eliciting Knowledge Types,” In Proceedings of 8th Annual Workshop, Psychology of Programming Interest Group, Gent, Belgium, pp. A1–A9.

Robillard, P.N. (1999), “The Role of Knowledge in Software,” Communications of the ACM 42, 1, 87–92.

Schemacode (1998), Schemacode International Inc., www.rgl.polymtl.ca/schema/schema.htm.

Software Engineering (1997), IEEE Standards Collection, The Institute of Electrical and Electronics Engineers, Inc., New York, NY.