25
BB Gaming BB Gaming Project 2501 Project 2501 Codename “Ball Codename “Ball Breaker” Breaker” J. Fernandez, K. Geiger, D. Lynch, J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah B. Ramaiah CS 535 OOAD CS 535 OOAD Summer 2006 Summer 2006 Prof. Craig Reinhart Prof. Craig Reinhart

BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

Embed Size (px)

Citation preview

Page 1: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 2: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. 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

Page 3: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

332006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Simplified Use Case ModelSimplified Use Case Model

Page 4: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

442006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Master Game States Master Game States from Use Casesfrom Use Cases

Page 5: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

552006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Initial Design DecompositionInitial Design Decomposition

Page 6: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

662006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Initial Class DesignInitial Class Design

Page 7: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 8: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

882006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Intermediate Class ModelIntermediate Class Model

Page 9: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

992006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Game ActivitiesGame Activities

Page 10: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

10102006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Master Sequence DiagramMaster Sequence Diagram

Page 11: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

11112006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

Play Mode Sequence DiagramPlay Mode Sequence Diagram

Page 12: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

12122006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

As-built Class Model - ServerAs-built Class Model - Server

Page 13: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

13132006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

As-built Class Model - ClientAs-built Class Model - Client

Page 14: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

14142006-08-032006-08-03 Fernandez, Geiger, Lynch, RamaiahFernandez, Geiger, Lynch, Ramaiah

DemonstrationDemonstration

Page 15: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 16: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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)

Page 17: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 18: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 19: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 20: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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!!

Page 21: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 22: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 23: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 24: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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

Page 25: BB Gaming Project 2501 Codename “Ball Breaker” J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah CS 535 OOAD Summer 2006 Prof. Craig Reinhart

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