A student-enacted simulation approach to software engineering education

In some cases, real-world application of software engineering concepts does not effectively map with current undergraduate curriculums. Typically, a student's first "hands-on" experience working on large-scale software development projects is via an intern position or his/her first full-time position. However, prior exposure to the corporate project environment would greatly improve a student's performance in industry. In order to develop students for successful careers in software engineering, specifically for software development, they must be immersed not only in the software development lifecycle and paradigms, but also in the workings of large project teams. Currently, most undergraduate software engineering courses are taught by presenting the concepts and methodologies and assigning fragmented three-to-four person group projects. In the Department of Computer Science, Georgetown University, Washington, DC, a two-course approach to undergraduate software engineering education has been developed that incorporates the practical application of coursework in a large team setting. The first course presents a firm software design basis, while the second course demonstrates corporate-level software engineering concepts with a semester-long software development simulation where the entire class is the development team. This paper presents the experiences from offering this software engineering simulation approach.

[1]  P. Krutchen,et al.  The Rational Unified Process: An Introduction , 2000 .

[2]  M. Brian Blake,et al.  Teaching an object-oriented software development lifecycle in undergraduate software engineering education , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[3]  Mary Shaw,et al.  Software engineering education: a roadmap , 2000, ICSE '00.

[4]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

[5]  Jochen Ludewig,et al.  Simulation in software engineering training , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[6]  Colin Potts,et al.  Learning by Doing: Goals & Experience of Two Software Engineering Project Courses , 1994, CSEE.

[7]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[8]  Stefan Biffl,et al.  Teaching the unified process to undergraduate students , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[9]  Ray Dawson,et al.  Twenty dirty tricks to train software engineers , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[10]  Watts S. Humphrey,et al.  Introduction to the Personal Software Process , 1996 .

[11]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[12]  A. T. Chamillard,et al.  The software engineering capstone: structure and tradeoffs , 2002, SIGCSE '02.

[13]  Barry W. Boehm,et al.  A stakeholder win–win approach to software engineering education , 1999, Ann. Softw. Eng..

[14]  Barry W. Boehm,et al.  Using a model framework in developing and delivering a family of software engineering project courses , 2001, Proceedings 14th Conference on Software Engineering Education and Training. 'In search of a software engineering profession' (Cat. No.PR01059).

[15]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[16]  Watts S. Humphrey,et al.  Introduction to the Team Software Process , 1999 .

[17]  André van der Hoek,et al.  Challenges in Using an Economic Cost Model for Software Engineering Simulation , 2001 .