Download - Lab02 Briefing
-
8/20/2019 Lab02 Briefing
1/19
Lab 2 – Running “SmallWorld”
CSC 527 Software Engineering Principles
This lab
• SmallWorld
• Work in teams
• Check-out and compile your team’s SmallWorld code from SVN
• Run the two user interfaces
• Create a simple new game data file
• Enhance SmallWorld so that it is possible to win the game
• Answer some questions
-
8/20/2019 Lab02 Briefing
2/19
Lab overview
Lab 1: SourceCode Control
Lab 2: Running“SmallWorld”
Lab 5:Transitioning
“SmallWorld”
Lab 4:Implementing
items in“SmallWorld”
Lab 3: Modelsof
“SmallWorld”
Postmortem PostmortemPostmortem
Postmortem
“SmallWorld” labs (teams)
You are here
-
8/20/2019 Lab02 Briefing
3/19
The SmallWorld Project
• Scenario: the ENTIRE development team quit during thesoftware project (they all got better jobs with Google for more$$$) and YOUR TEAM has been hired as their replacementsto FINISH the project
– You must first understand the current state of the project
– Understanding includes reverse engineering the current code,reviewing artifacts, understanding
1) the current architecture,2) the current test/unit strategy, and3) the requirements that have been elicited / analyzed / tested / implemented
– Each “lab” or iteration will allow you to progressively increase your
understanding as you perform varying levels of requirementsspecification, analysis, design, implementation, testing, anddeployment
– The team “environment” has already been established: Java Eclipse,JUnit testing, SVN version control, Powerpoint artifacts, Javadocsource documentation,
-
8/20/2019 Lab02 Briefing
4/19
Labs in Terms of RUP
Lab 02 Lab 03 Lab 05Lab 04
You will implementadditionalfunctionality
consistent with aniterative RUP
process
To enhance learning, you will also learn basic OOA/OOD modeling skillswith UML and create/refine existing RUP artifacts
-
8/20/2019 Lab02 Briefing
5/19
Software
Development
Activities
• New functionality:win game
• Given design toimplement
• Test/ document
Lab 2: Running“SmallWorld”
Lab 5: FeatureX/ Transitioning
“SmallWorld”
Lab 4:Implementing
items in
“SmallWorld”
Lab 3: Modelsof
“SmallWorld”
• Enhance existinggame functionality
• Reverse engineerusing sequencediagrams
• Performrequirementsanalysis givenitem problemdescription
• Do requirementselicitation for newgame concept
• Given apredeterminedobject design foritemenhancement,implement it andtest
• Perform analysisand design workon new gameconcept
• Given youranalysis anddesign for newgame concept,implement it
• Create test planand execute
• Market andtransition newfeature
-
8/20/2019 Lab02 Briefing
6/19
This lab
• Objective: To examine, execute, and enhance (so youcan win) the SmallWorld game – Each team will work to collectively create the functionality – Each individual will be responsible for certain turn-in items
• You and your team will perform the following tasks: – Check-out and compile your team’s SmallWorld code – Run the two user interfaces – Create a simple new game data file – Enhance SmallWorld so that it is possible to win the game
• Turn In – Working code in your repository “color” – Team answers to the questions at the end of the lab – Each team member’s new game data file
-
8/20/2019 Lab02 Briefing
7/19
Source Code Control Reminders
• Update: downloads any changes from the repositoryto your sandbox (local copy) – Best practice is to update on a regular basis
• Commit or add: upload any changes you have madein your sandbox (local copy) up to the repository – Best practice is to commit only code you have tested,
unless you are sharing code for other team members totake a look at
• Merge: when changes that have been committedconflict with either the repository or your sandbox andyou need to decide what to keep or what to restore
-
8/20/2019 Lab02 Briefing
8/19
SmallWorld
• The Colossal Cave Adventure game, producedin the '70s, was the historic first "interactivefiction" game, in which the computer wouldsimulate and describe a situation and the user
would type in what to do next, in simple English.
-
8/20/2019 Lab02 Briefing
9/19
Check-out and compile your team’s
code (each team member)
• Using same SVN configuration asLab1
•
Check out the SmallWorld project
Demo
-
8/20/2019 Lab02 Briefing
10/19
Run the two user interfaces
(each team member)
• Console-based
• Graphical
Demo
-
8/20/2019 Lab02 Briefing
11/19
Create a simple new game data file
(each team member)
• Small world uses an XML gamedata file to define the world itpresents to the user
– DefaultWorld.xml is the default it
is located in the persistence package
• You will create a new two- orthree-room game data file andload it into the game
• Objective: To give you a feel of thedata-driven design of SmallWorld
-
8/20/2019 Lab02 Briefing
12/19
SmallWorld: Default World
-
8/20/2019 Lab02 Briefing
13/19
Game data file example
-
8/20/2019 Lab02 Briefing
14/19
Creating a world file
• Methodology: write a program – Create a “package” for the team to run demo code and
experimental code (will not become part of the finaldistribution)
– Create a class with a main() method – Create a World object and populate it with some places
– Save the World to a file
– Use this approach to LEARN the methods/attributes ofthe various class files.
• Test your file! – Load it into the game and play it
– Pay attention to any error messages
-
8/20/2019 Lab02 Briefing
15/19
Enhance SmallWorld so that it is
possible to win the game (team)
• Feature – When the player enters a specific
room they win the game and thegame ends
• Solution has been designed
• Code change to – Model
– Controller
– Persistence
Optional, but highly recommended: Try coding a JUnit test file thatwill test your game win feature
-
8/20/2019 Lab02 Briefing
16/19
Enhance SmallWorld so that it is
possible to win the game (team)
• Javadoc: Document anychanges using embeddedJavadoc statements
• Generate the Javadoc for theProject
-
8/20/2019 Lab02 Briefing
17/19
Iteration #1: Add Win Game Functionality
•
Elicitation – How would use cases/scenarios change?
• Analysis – How would the domain model change? – Attributes, associations, classes
• Design – How would the design model change? – Detailed versions of class diagram
• Implementation – The lab assignment explicitly details specific implementation steps
• Testing – Consider writing a JUnit test to exercise the new functionality… I will use a
standard JUnit test to judge the correctness of your implementation
Look at SmallWorld Analysis Model
-
8/20/2019 Lab02 Briefing
18/19
Team:
Post Mortem Format
• Lessons Learned (2-4)
– Knowledge that would benefit OTHER developersthat were in your same shoes
– Knowledge that you wish you had known at thebeginning (versus at the end)
– Important realizations!
– Problems encountered, particularly of a technical
nature, and how you overcame them
– 5 to 10 minute brief MAX!
-
8/20/2019 Lab02 Briefing
19/19
Layered architecture