9. How to Use This Module with Other Modules

advertisement
SimSE Rational Unified Process (RUP) Model Course Module
1. Introduction/Background
The SimSE RUP model is roughly based on a non-computerized RUP simulation game that IBM uses to
train their employees in the RUP process, with some elements added and removed to make it more
appropriate and fitting for SimSE. For instance, in the IBM game the player could “progress” through
development by answering a series of questions about RUP correctly. In SimSE, development progresses
by having employees work on artifacts.
2. How to Use This Module
This module is designed to be used as part of a course in which relevant software engineering concepts
(namely, software processes and the RUP process model in particular) are being taught. SimSE is
intended to be used as a complementary component to a course, not as a standalone instructional tool.
Therefore, software engineering in general and the RUP life cycle model in particular should be
introduced to students either before, or in parallel with the students’ exposure to the RUP game (either
through lectures (see Section 6), readings (see Section 7), or some other method). SimSE’s main strength
lies in its ability to allow students to put concepts into practice that they otherwise would not have the
opportunity to experience through other instructional methods.
Before students are given the assignment to play SimSE, it is imperative that they watch at least the
SimSE Gameplay video tutorial, and strongly recommended that they also watch the Explanatory Tool
and Game Branching video tutorials as well. All video tutorials are available at
http://www.ics.uci.edu/~emilyo/SimSE/downloads.html#Videos. Our experience with SimSE has shown
again and again how crucial the instruction a student receives in learning to play the game is to their
success in learning from it. These video tutorials have been designed to specifically highlight and address
aspects of SimSE that are critical for students to understand for a maximally effective educational
experience. Therefore, we suggest that you not only assign the students to watch these videos on their
own time, but, if time and resources allow, show them in class as well, emphasize how important they are
to watch, and also point them to the SimSE player’s manual, available at
http://www.ics.uci.edu/~emilyo/SimSE/downloads.html#Docs. If time and resources further warrant,
students should be required to attend a TA-lead training session, in which they are shown the videos,
given a printed player’s manual and, and then allowed to try playing the game for a while with the TA
(who should have already studied the manual and played SimSE themselves) available to answer any
questions they may have.
Students should be given the questions to answer for this module (see Section 8) at the time they are
asked to play the RUP model. Having the questions to refer to while they play helps point them to some
of the more subtle lessons encoded in the model, as well as provides you, as an instructor, with a way to
assess whether or not they have completed the assignment and learned the concepts.
Studies have shown that it is important to make a SimSE assignment worth a non-trivial portion of a
students’ final grade (at least 10%), as making it worth too little provides inadequate motivation for
1
students to put the effort in, learn the concepts, and have a positive experience. These studies used three
SimSE modules/models together and made them collectively worth 10% of a student’s final grade, as an
extra-credit assignment.
3. Learning Objectives
A significant portion of what the SimSE RUP model teaches is communicated through the allowable
actions a player can take at each point in the process. This is partly by necessity: RUP is a highly dense
process with numerous prescribed steps. If we were to make them all available at every point throughout
the game, the player would undoubtedly be lost and overwhelmed by all the choices. Instead we limit the
choices available at each step, depending on what part of the process the player is in. For example, a
player can only develop the architecture when in the Elaboration phase and can only develop code when
in the Construction phase. As another example, a player may only plan for one phase after they have
completed all of the work required in the preceding phase. This is even taken so far so that, at several
points throughout the game, only one choice appears on each employee’s menu. Thus the player is steered
much more than in other models and given significantly less freedom. While it may seem that a model
like this would be too easy, the RUP model actually has quite a few challenges—challenges that lie
mainly in other aspects of the game aside from deciding which steps to take next. These challenges will
be brought forth as the learning objectives of the model are described in the remainder of this section.
There are two major lessons encoded in the RUP model, based on [1]. The first of these concerns the
steps and overall flow of RUP which, as already mentioned, are taught through the allowable next steps a
player can take at any point in the game. Figure 1 shows a state chart diagram depicting the SimSE RUP
model’s general flow. (A link to an online version of this diagram is given to the player in the starting
narrative of the RUP game.) As the player progresses through the four RUP phases of Inception,
Elaboration, Construction, and Transition, their course through the game is as follows: The player starts a
phase, assigns employees to that phase, starts an iteration, does some development work, and then either
starts another iteration or assesses the phase. If the assessment is negative, they must go back, start
another iteration, and do more development work. Otherwise, they may plan for the next phase and then
end the phase. Going through the prescribed parts of these steps multiple times is designed to ingrain the
RUP model in the player’s mind. The variability in this aspect lies in the number of iterations done per
phase, a decision the player must make for themselves. If too few are done, time is wasted in performing
phase assessments multiple times (a phase assessment will result in negative results if the work for the
phase is incomplete, requiring that another phase assessment be performed after more work is done). If
the player chooses to do too many iterations, their employees will find themselves assigned to work that
is already done. The employees will then have to come back to the player and announce to them that the
work is already done. By this time, precious clock ticks will have been wasted in unnecessary
communication. Thus, after multiple runs of the game the player will likely be able to come to some
conclusions about how many iterations are appropriate in each phase.
2
Figure 1: State Chart Depiction of the SimSE RUP Model’s Overall Flow.
The second major lesson taught by the RUP model (and the central challenge of both our model and the
IBM game that our model is based on) is efficient allocation of personnel. The player has 10 employees
available, each with a skill set and a pay rate. There are five categories of skills: project management,
architecture, requirements, design and development, and testing. Each employee has either “low” or
“high” skill in each area. In order to enhance realism and add challenge to the model, an employee can
only have, at most, three “high” skills, and their pay rate depends on how many “high” skills they have—
those with one skill are paid $300 per clock tick, those with two skills $400, and those with three skills
$500. Thus, the player must make careful choices about who to assign to which phase, ensuring that the
necessary skills are present to complete the work, but also taking care that they do not assign so many
employees that they exceed their budget. Although efficient allocation of manpower is not a lesson unique
to RUP, in this game it nevertheless serves as a tool with which to teach about what occurs in the different
phases of RUP. Namely, the player must know which activities are performed in each phase so that they
can accordingly assign the employees with the appropriate skills to the appropriate phase(s).
In addition to these two major lessons, the RUP model also teaches a secondary lesson about prototyping.
At the beginning of the Construction phase, the player is notified that the customer would like to see two
intermediate prototypes during the phase. It is up to the player to decide when to submit each prototype—
namely, which use cases should be completed and incorporated into each intermediate version. The
3
customer will be “happy” with a first prototype that contains the five to eight most critical use cases (out
of 20 use cases for the entire system), and “happy” with a second prototype that contains the eleven to
fifteen most critical use cases. For each of these “happy” results, the player will also be rewarded with 5
bonus points (which will be added to their final score). The customer will also be “somewhat happy” with
a prototype that contains more than the desired use cases, but will inform the player that they would liked
to have seen it sooner with less functionality. These situations will penalize the player by 2 points. If a
prototype does not meet any of these conditions, the customer will be “unhappy”, and the player will lose
5 points.
4. Prerequisites
A student should have a basic understanding of software engineering and the RUP life cycle model. (See
Sections 6 and 7 for ways to achieve this.)
5. Time Commitment
The average time to play a single RUP game is 30-45 minutes, but, of course, it is likely to take several
times playing the game for the student to learn the concepts and be able to answer the questions. Students
should be given at least one week of out-of-class time to play the game and answer the questions (see
Section 8).
6. Suggested Supporting Lectures
The slides that accompany Ian Sommerville’s Software Engineering textbook are a good resource. The
latest
version
of
these
slides
are
available
at
http://www.cs.standrews.ac.uk/~ifs/Books/SE8/Presentations/index.html. The slides for Chapter 4 cover RUP.
7. Optional Supplementary Readings
1. Chapter 4 of: Sommerville, I., Software Engineering. 8th ed. 2008: Addison-Wesley.
2. Kruchten, Pl, The Rational Unified Process: An Introduction (2nd Edition). 2000: AddisonWesley.
8. Assignment
Instructions
First, watch the SimSE video tutorials at http://www.ics.uci.edu/~emilyo/SimSE/downloads.html#Videos.
Then
download
the
SimSE
player’s
manual
at
http://www.ics.uci.edu/~emilyo/SimSE/downloads.html#Docs. Be sure to watch the video and read the
manual carefully, as they will highlight several important things that will significantly help you in
successfully playing SimSE and correctly answering the questions. Then download the RUP game at
http://www.ics.uci.edu/~emilyo/SimSE/downloads.html#Games. (Be sure to download the game and not
the model, as the model is not executable.) The download consists of a “readme” text file and an
executable game, which you can run by simply double-clicking on it. If you do not have the current
4
version of Java installed on your machine, you will have the opportunity to install it when you try to run a
game.
Questions
1. What approach to prototyping is rewarded in this game? (Which/how many (approximately) use
cases were incorporated into each when you submitted them and the customer was happy with
them?)
2. What were the major tradeoffs involved in assigning staffing in this game?
3. What are the major outputs of the Inception phase?
4. What are the two major activities in the Elaboration phase?
5. Which phase required the most time and effort?
Answers
1. First prototype: Customer is satisfied when it contains the 5-8 most critical use cases (use
cases 1 through 5, 1 through 6, 1 through 7 or 1 through 8); Second prototype: Customer is
satisfied when it contains the 11-15 most critical use cases (use cases 1 through 11, 1 through
12, 1 through 13, 1 through 14, or 1 through 15). Any answer that falls into these ranges
should be accepted, including, “the first prototype was acceptable when it had
approximately 1/3 of the most critical use cases in it, and the second prototype was
acceptable when it had approximately 2/3 of the most critical use cases in it”, or something
to that effect.
2. The major tradeoffs concern having enough people with the right skills to get the job done
in the scheduled time, but not so many people (or too many expensive people) that the
budget was exceeded.
3. The project plan is developed and the most important use cases are constructed. An
additional possible answer is the Elaboration phase plan, although this is a less major one.
4. Meet with the customer to determine detailed requirements and develop the architectural
prototype.
5. Construction.
9. How to Use This Module with Other Modules
In the past, this module has been successfully used in conjunction with two other SimSE modules,
making an assignment that consists collectively of three models/modules and associated questions, and is
worth 10% of a student’s final grade. However, this module is also large enough to be used on its own as
a smaller assignment, if desired.
10. Other Notes
There are several other potentially effective uses for SimSE, most of which have yet to be fully explored:
5






Have more advanced students modify an existing model (or build one from scratch, which should
only be used with extremely advanced students) using SimSE’s Model Builder tool and one of the
existing models (available at http://www.ics.uci.edu/~emilyo/SimSE/downloads.html). This has
been tried, and results published in T. Birkhoelzer, E. Oh Navarro, and A. van der Hoek.
Teaching by Modeling instead of by Models. Sixth International Workshop on Software Process
Simulation
and
Modeling,
May
2005
(available
at
http://www.ics.uci.edu/~emilyo/papers/ProSim2005.pdf).
Our experience has suggested that an observer presence can have a positive effect on learning in
SimSE. Although we have not tried this ourselves in classroom settings (only in controlled
experiment settings), some suggested ways to try this are having students play SimSE in pairs, or
having them play SimSE in a lab setting while observed by an instructor or TA.
Have students play in teams, especially teams that have also done, or are doing a class project
together. This can add both a collaborative aspect to learning, and, if set up to be a competition
between teams, can add a competitive aspect.
Make the assignment mandatory, rather than optional or extra-credit, to increase motivation.
Have students play in a lab setting, both to add a competitive aspect and to allow them to
collaborate. Keep in mind, however, that a lab setting generally does not provide enough time to
play a game enough to be able to answer all the questions. An appropriate approach might be to
allow students to play the game first in a lab session (this would also allow them to ask any
questions that may arise), and then let them complete the rest of their playing and questionanswering out of class.
If a project is also being done as part of the course, have students pick one or more of the SimSE
models and write an essay reflecting on comparisons between the SimSE process model(s) and
the one followed in their project.
11. Feedback?
If you have any comments, suggestions, feedback, or experience regarding this course module or SimSE
in general, please send an email to Emily Navarro (emilyo@ics.uci.edu).
References
1.
Kruchten, P., The Rational Unified Process: An Introduction (2nd Edition). 2000: Addison-Wesley.
6
Download