Home | News | Details | Publications | Downloads | FAQ | Contribute | Links | Credits/Contact
|
DetailsMotivationSimSE is an interactive, graphical, educational software engineering simulation game designed to teach students the processes of software engineering. SimSE address the large gap that exists in traditional software engineering educational techniques—students are exposed to several software engineering concepts and theories in lectures, but have limited opportunity to put these ideas into practice in a typically small software engineering project. SimSE aims to fill this gap by providing students with virtual experiences of participating in quasi-realistic, large-scale software engineering processes.
|
Player ExperienceSimSE is a single-player game in which the player takes on the role of project manager of a team of developers. As the player manages the process to complete (a particular aspect of) a software engineering project, they can, among other things, hire and fire employees, assign tasks to them, monitor their progress, and purchase tools. The user interface of SimSE is fully graphical, displaying a virtual office in which the software engineering process takes place (see below). This display includes typical office surroundings, such as desks, chairs, computers, and meeting rooms, as well as information about employees (e.g., productivity, current task, energy level), artifacts (e.g., size, completeness, correctness), customers (e.g., satisfaction level), projects (e.g., budget, time), and tools (e.g., number of users, productivity increase factor). Employees “communicate” with the player through pop-up speech bubbles over their heads, in which they inform the player of important information, such as when they have started or completed a task, when a random event has occurred, or to express a response to one of the player’s actions (e.g., quitting because the player has been working them too hard). Players use this information to make decisions and take actions, driving the simulation accordingly. At the end of the game, the player receives a score, indicating how well they performed. In addition to all of this information, an explanatory tool provides the player with further information about their game, including which rules were triggered when, a trace of events, and the “health” of various attributes (e.g., correctness of the code) over time. Additionally, the player can run multiple parallel branches of a game--return to any previous point in the game and spawn a new branch, while continuing the original game (and any other simultaneous branches).The explanatory tool is accessible both during and after a game.
|
|
Instructor ExperienceOne of the fundamental goals of the SimSE project is to allow customization of the software process models it simulates. Real-world processes vary with different application domains, organizations, and cultures, and therefore SimSE must be able to portray different processes as well. Furthermore, instructors using SimSE may belong to different schools of thought regarding best software engineering practices, and may have different teaching objectives that require different types of models. Therefore, an integral part of SimSE is a process model builder tool that enables instructors to build models of the particular process they wish to simulate.
|
|
Architecture
Software process simulation models are created using a model builder that allows the specification of employees, artifacts, projects, tools, and customers, as well as activities that these entities can participate in, and rules according to which they behave. Based upon a particular choice of model, a generator interprets the model and automatically generates code for a state management component, a rule execution component, an explanatory tool, and the graphical user interface, which are inserted into the generic simulation environment. A student can then use this custom-generated simulation environment to practice the situations captured by the chosen model. Both the model builder and the generated simulation environments are written completely in Java.
|
|
ModelsWe currently have six models completed (waterfall, incremental, inspection, rapid prototyping, Rational Unified Process, and Extreme Programming), which are available for download. We are always planning the development of additional models.
|
|
EvaluationWe have evaluated SimSE in a series of four studies, each of which has served both summative and formative purposes. In other words, these evaluations have told us how SimSE works and doesn't work, as well as told us how to make SimSE better, data which has driven SimSE's ongoing development. The four evaluations were as follows: (1) An initial pilot study in which 28 students played SimSE for a few hours and filled out a survey about their experience; (2) Two quarters of using SimSE as an extra-credit assignment in an introductory software engineering course at UC Irvine, in which students had to play SimSE and answer a set of questions correctly to receive credit; (3) A comparative study in which we had some students play SimSE, some read from a textbook, and some attend lectures, and then compared their performance on pre- and post-tests; and (4) An in-depth observational study in which we observed students playing SimSE in a one-on-one setting and then interviewed them about their experience. A summary of our major findings is listed here (for full results, analyses, and further details about the evaluation setups, see "Comprehensive Evaluation of an Educational Software Engineering Simulation Environment" and "SimSE: A Software Engineering Simulation Environment for Software Process Education" on the Publications page):
|
SimSE was funded by NSF grant number DUE-0618869. |
SimSE, University of California, Irvine Copyright © |