Improving software project management skills using a software project simulator

Software project management skills are becoming an important component of software engineering education. Software engineers working in teams need to carefully plan and coordinate their efforts in order to be successful. Unfortunately, most universities provide inadequate education in software project management. Most use lecture-based approaches which provide the necessary steps in software project management, but are deficient in providing the students with hands-on experience. Software project simulation provides a bridge between course-based and hands-on experience. It provides an interactive environment of repeatable exercises. It also provides a medium for measurable evaluation of student performance which can be used to customize the education process to fit the needs of individual students. Our work focuses on using system dynamics modeling for simulating software development activities because of its ability to dynamically represent relevant project attributes in the software development process. A system dynamics model of the incremental software development process has been developed and validated. This paper describes a process for utilizing this system dynamics model to create simulation environments suitable for addressing specific education objectives. Benefits and guidelines for use of a tool of this kind are provided. Our experience with using this tool in a large class is also described.