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