BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS...
-
Upload
osborn-wilkins -
Category
Documents
-
view
215 -
download
1
Transcript of BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS...
BB Gaming BB Gaming Project 2501Project 2501Codename “Ball Breaker”Codename “Ball Breaker”
J. Fernandez, K. Geiger, D. Lynch, B. RamaiahJ. Fernandez, K. Geiger, D. Lynch, B. RamaiahCS 535 OOADCS 535 OOADSummer 2006Summer 2006Prof. Craig ReinhartProf. Craig Reinhart
222006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Project Methodology:Project Methodology:Loosely Coupled XPLoosely Coupled XP
Coordinate through shared workspaceCoordinate through shared workspaceMeet and Communicate as NeededMeet and Communicate as Needed Before / after classBefore / after class Weekend Work Sessions (Sat/Sun at CLU)Weekend Work Sessions (Sat/Sun at CLU) Email mostlyEmail mostly No pair programmingNo pair programming
Reasonable SuccessReasonable Success Tool set-up cost 1 weekTool set-up cost 1 week CVS made source code mgmt transparentCVS made source code mgmt transparent Modeling tools not set up with CVSModeling tools not set up with CVS
332006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Simplified Use Case ModelSimplified Use Case Model
442006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Master Game States Master Game States from Use Casesfrom Use Cases
552006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Initial Design DecompositionInitial Design Decomposition
662006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Initial Class DesignInitial Class Design
772006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Refine DesignRefine Design
Communications Manager – Java RMICommunications Manager – Java RMI
Client/Viewer – Simple Graphics FrameClient/Viewer – Simple Graphics Frame Accepts input, paints game state on screenAccepts input, paints game state on screen Does no other workDoes no other work Uses Eclipse Standard Widget ToolkitUses Eclipse Standard Widget Toolkit
Server – Manages game state for clientsServer – Manages game state for clients
HighScore – persistence objectHighScore – persistence object
882006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Intermediate Class ModelIntermediate Class Model
992006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Game ActivitiesGame Activities
10102006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Master Sequence DiagramMaster Sequence Diagram
11112006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Play Mode Sequence DiagramPlay Mode Sequence Diagram
12122006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
As-built Class Model - ServerAs-built Class Model - Server
13132006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
As-built Class Model - ClientAs-built Class Model - Client
14142006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
DemonstrationDemonstration
15152006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Outstanding BugsOutstanding Bugs
Network Client Server BugNetwork Client Server Bug RMI distributed client still bustedRMI distributed client still busted Tested ten clients run connected to server on same Tested ten clients run connected to server on same
machine – okaymachine – okay
Minor Behavior BugsMinor Behavior Bugs Score count behaviorsScore count behaviors When, where balls bounceWhen, where balls bounce
Black-Box Test Report (UAT)Black-Box Test Report (UAT) http://bbgaming.sourceforge.net/BBGaming_P2501_Thttp://bbgaming.sourceforge.net/BBGaming_P2501_T
estRun_1.xlsestRun_1.xls
16162006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Lessons Learned:Lessons Learned:Programming LanguageProgramming Language
Selection of Language - JavaSelection of Language - Java Had to learn JavaHad to learn Java Tons of help on-line, in books, elsewhereTons of help on-line, in books, elsewhere Worked well with Eclipse and Sparx EAWorked well with Eclipse and Sparx EA
Java Remote Method Invocation (RMI)Java Remote Method Invocation (RMI) Forced 1 week detour to understand and get Forced 1 week detour to understand and get
workingworkingProbably would have spent same time on protocolProbably would have spent same time on protocol
Required Apache Server (late req’t)Required Apache Server (late req’t)
17172006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Lessons Learned:Lessons Learned:Development ToolsDevelopment Tools
EclipseEclipse Lifesaver for Java developmentLifesaver for Java development Eclipse extensions forced design changesEclipse extensions forced design changes
Use of Standard Widget Toolkit (org.eclipse.swt) library Use of Standard Widget Toolkit (org.eclipse.swt) library drove re-design of Clientdrove re-design of Client
Single Frame object contains all interface codeSingle Frame object contains all interface code
SourceForgeSourceForge Permits multiple users to view and change codePermits multiple users to view and change code Simple collaborative environmentSimple collaborative environment Still requires managementStill requires management
18182006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Lessons Learned:Lessons Learned:Modeling ToolsModeling Tools
Initial ToolsInitial Tools JUDE, ArgoUMLJUDE, ArgoUML
Used Tool – Sparx Enterprise ArchitectUsed Tool – Sparx Enterprise Architect Code Export and ImportCode Export and Import
Can sync model with developed codeCan sync model with developed codePermitted “round trip” engineeringPermitted “round trip” engineeringCan auto-generate documentationCan auto-generate documentation
Build a Build a ModelModel instead of a instead of a Series of CartoonsSeries of CartoonsModel is structured like the softwareModel is structured like the softwareExport builds directories for softwareExport builds directories for software
19192006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Lessons Learned:Lessons Learned:Requirements ManagementRequirements Management
Never invent requirementsNever invent requirements Deciding requirements without the Client Deciding requirements without the Client
complicates developmentcomplicates development Just record the Client’s requests and get Just record the Client’s requests and get
agreement and clear understanding of themagreement and clear understanding of them
You Will Find New Requirements FromYou Will Find New Requirements From Prototypes shown to ClientPrototypes shown to Client Implications of developing code – e.g. Implications of developing code – e.g.
“hidden” test modes“hidden” test modes
20202006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Lessons Learned:Lessons Learned:Requirements ManagementRequirements Management
Coordinate Requirements betweenCoordinate Requirements between Software and Architecture teamsSoftware and Architecture teams Customer and Software TeamCustomer and Software Team
We were less than diligent hereWe were less than diligent here Missed requirements re-found in testingMissed requirements re-found in testing That’s why you testThat’s why you test
Test earlier, oftenerTest earlier, oftener Testing ties Software to Customer Req’s!!Testing ties Software to Customer Req’s!!
21212006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Lessons Learned:Lessons Learned:Test Plan and DefectsTest Plan and Defects
Write the Tests to Match RequirementsWrite the Tests to Match Requirements Itemize tests by requirement name & id (trace Itemize tests by requirement name & id (trace
matrix).matrix). One requirement may generate several testsOne requirement may generate several tests One test may address many requirementsOne test may address many requirements
Test Using the TestTest Using the Test Like requirements, don’t make stuff up.Like requirements, don’t make stuff up. Write down expected results and apparent reason Write down expected results and apparent reason
for test failurefor test failure
22222006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Lessons Learned:Lessons Learned:Testing and Defect ResolutionTesting and Defect Resolution
Never Debug During Black Box or UA TestingNever Debug During Black Box or UA Testing Test “released” code (the current build)Test “released” code (the current build)
white-box or unit test during developmentwhite-box or unit test during development Perform the entire test suite as a unit Perform the entire test suite as a unit
this is in essence a forced regression test this is in essence a forced regression test Larger systems will require automationLarger systems will require automation
Avoid Tense Emotions During TestingAvoid Tense Emotions During Testing Indicate pass / failure and reasons for failureIndicate pass / failure and reasons for failure Move on to next testMove on to next test Discuss test results Discuss test results afterafter test suite run-through test suite run-through Fix the problems, and then retestFix the problems, and then retest
23232006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
ConclusionConclusion
Software Project State as of 3 AugSoftware Project State as of 3 Aug We have a prototype with bugsWe have a prototype with bugs We’d be at UP Cycle Elaboration 1 or 2We’d be at UP Cycle Elaboration 1 or 2 We have a major defect in core design due to RMIWe have a major defect in core design due to RMI
Next Steps AreNext Steps Are Clear up RMI bug: fix it or re-factor to another methodClear up RMI bug: fix it or re-factor to another method Fix any game play bugs – arrow controls, ball Fix any game play bugs – arrow controls, ball
bouncesbounces Tighten white-box unit testsTighten white-box unit tests Re-deploy and re-run UATsRe-deploy and re-run UATs
24242006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Nice-to-Have or Nice-to-Do NextNice-to-Have or Nice-to-Do NextMore Practice at Round-Trip ModelingMore Practice at Round-Trip Modeling Model to JavaModel to Java Java back to ModelJava back to Model
Move the Model into CVSMove the Model into CVS Shareable modeling environment to match shareable Shareable modeling environment to match shareable
software environmentsoftware environment
Better use of SourceForge for Better use of SourceForge for Requirements Management, Feature RequestsRequirements Management, Feature Requests Bug tracking and Defect ResolutionBug tracking and Defect Resolution
Deployment PackageDeployment Package Software auto-deploymentSoftware auto-deployment Help/user documentationHelp/user documentation
25252006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah
Source MaterialsSource Materials
SourceForge SiteSourceForge Site https://https://sourceforge.net/projects/bbgamingsourceforge.net/projects/bbgaming
Project Web Site @ SourceForgeProject Web Site @ SourceForge http://bbgaming.sourceforge.net/http://bbgaming.sourceforge.net/
CVS Repository (Read-Only)CVS Repository (Read-Only) cvs -d:pserver: cvs -d:pserver:
[email protected]:/[email protected]:/cvsroot/bbgaming login cvsroot/bbgaming login