Final Report - BB Gaming

Download Report

Transcript Final Report - BB Gaming

BB Gaming
Project 2501
Codename “Ball Breaker”
J. Fernandez, K. Geiger, D. Lynch, B. Ramaiah
CS 535 OOAD
Summer 2006
Prof. Craig Reinhart
Project Methodology:
Loosely Coupled XP
Coordinate through shared workspace
Meet and Communicate as Needed




Before / after class
Weekend Work Sessions (Sat/Sun at CLU)
Email mostly
No pair programming
Reasonable Success



Tool set-up cost 1 week
CVS made source code mgmt transparent
Modeling tools not set up with CVS
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
2
Simplified Use Case Model
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
3
Master Game States
from Use Cases
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
4
Initial Design Decomposition
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
5
Initial Class Design
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
6
Refine Design
Communications Manager – Java RMI
Client/Viewer – Simple Graphics Frame



Accepts input, paints game state on screen
Does no other work
Uses Eclipse Standard Widget Toolkit
Server – Manages game state for clients
HighScore – persistence object
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
7
Intermediate Class Model
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
8
Game Activities
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
9
Master Sequence Diagram
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
10
Play Mode Sequence Diagram
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
11
As-built Class Model - Server
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
12
As-built Class Model - Client
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
13
Demonstration
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
14
Outstanding Bugs
Network Client Server Bug


RMI distributed client still busted
Tested ten clients run connected to server on same
machine – okay
Minor Behavior Bugs


Score count behaviors
When, where balls bounce
Black-Box Test Report (UAT)

http://bbgaming.sourceforge.net/BBGaming_P2501_T
estRun_1.xls
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
15
Lessons Learned:
Programming Language
Selection of Language - Java



Had to learn Java
Tons of help on-line, in books, elsewhere
Worked well with Eclipse and Sparx EA
Java Remote Method Invocation (RMI)

Forced 1 week detour to understand and get
working
Probably would have spent same time on protocol

Required Apache Server (late req’t)
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
16
Lessons Learned:
Development Tools
Eclipse


Lifesaver for Java development
Eclipse extensions forced design changes
Use of Standard Widget Toolkit (org.eclipse.swt) library
drove re-design of Client
Single Frame object contains all interface code
SourceForge



Permits multiple users to view and change code
Simple collaborative environment
Still requires management
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
17
Lessons Learned:
Modeling Tools
Initial Tools

JUDE, ArgoUML
Used Tool – Sparx Enterprise Architect

Code Export and Import
Can sync model with developed code
Permitted “round trip” engineering
Can auto-generate documentation

Build a Model instead of a Series of Cartoons
Model is structured like the software
Export builds directories for software
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
18
Lessons Learned:
Requirements Management
Never invent requirements


Deciding requirements without the Client
complicates development
Just record the Client’s requests and get
agreement and clear understanding of them
You Will Find New Requirements From


Prototypes shown to Client
Implications of developing code – e.g.
“hidden” test modes
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
19
Lessons Learned:
Requirements Management
Coordinate Requirements between


Software and Architecture teams
Customer and Software Team
We were less than diligent here


Missed requirements re-found in testing
That’s why you test
Test earlier, oftener

Testing ties Software to Customer Req’s!!
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
20
Lessons Learned:
Test Plan and Defects
Write the Tests to Match Requirements



Itemize tests by requirement name & id (trace
matrix).
One requirement may generate several tests
One test may address many requirements
Test Using the Test


Like requirements, don’t make stuff up.
Write down expected results and apparent reason
for test failure
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
21
Lessons Learned:
Testing and Defect Resolution
Never Debug During Black Box or UA Testing

Test “released” code (the current build)
white-box or unit test during development

Perform the entire test suite as a unit
this is in essence a forced regression test
Larger systems will require automation
Avoid Tense Emotions During Testing




Indicate pass / failure and reasons for failure
Move on to next test
Discuss test results after test suite run-through
Fix the problems, and then retest
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
22
Conclusion
Software Project State as of 3 Aug



We have a prototype with bugs
We’d be at UP Cycle Elaboration 1 or 2
We have a major defect in core design due to RMI
Next Steps Are




Clear up RMI bug: fix it or re-factor to another method
Fix any game play bugs – arrow controls, ball
bounces
Tighten white-box unit tests
Re-deploy and re-run UATs
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
23
Nice-to-Have or Nice-to-Do Next
More Practice at Round-Trip Modeling


Model to Java
Java back to Model
Move the Model into CVS

Shareable modeling environment to match shareable
software environment
Better use of SourceForge for


Requirements Management, Feature Requests
Bug tracking and Defect Resolution
Deployment Package


Software auto-deployment
Help/user documentation
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
24
Source Materials
SourceForge Site

https://sourceforge.net/projects/bbgaming
Project Web Site @ SourceForge

http://bbgaming.sourceforge.net/
CVS Repository (Read-Only)

cvs -d:pserver:
[email protected]:/
cvsroot/bbgaming login
2006-08-03
Fernandez, Geiger, Lynch, Ramaiah
25