RJLRef: $PH/06f522/SetGame06f/schedule_rlFdbk061117.doc

See my comments at [RJL:...] below -

Bob Lechner

 

From: Anthony J Gabrielson          Nov 15, 06 01:10:26 PM -0500

To: Chris Guffey <cguffey@gmail.com>

cc: all

Subject: Re: Final Project

 

Chris,

        I had been thinking about that:

 

On Wed, 15 Nov 2006, Chris Guffey wrote:

>Message 30/1456  From Chris Guffey                  Nov 15, 06 12:30:56 PM -0500

>To: "Anthony J Gabrielson" <agabriel@cs.uml.edu>

>Subject: Re: Final Project

>cc: all

 

> I don't mind doing more than what I'm listed for there. It doesn't

> look like much as it is but maybe once I see a more detailed

> explanation than it will look like more. Otherwise I probably help

> either you or Alison with your end.

 

That's what I was hoping.  In my outline proposal I'm really hoping to

align leads with areas of expertise (that I know of).  If I missed

someone's expertise, my apologies.  I think this project should be a lot of

fun, it looks like a neat game.

 

> The only thing not really listed in your timeline is that we need some

> time to understand the code written by the 04 group. And also testing.

> 

[RJL - And how! ]

 

In the next week we should all at least look at the code from '04.  I am

hoping Alison has time to do a test run on the network code that is there

and get an idea of what she likes/dislikes.  I'm hoping to start working

on an initial version of the GUI tomorrow night that can do *something*.

 

>> Timeline:

>> 11/21/06: Write up what needs to change for this to work.

>> 11/28/06: Good implementation of basic test cases

>> 12/05/06: Networking Demos working & GUI demos working

>> Network: Should have a good stand alone demo that sends properly formed

>> messages to simulate a game.

>> GUI: Should interface with Middleware to play a stand alone game

>> 12/12/06: GUI should be plugged into networking code for full functionality

>>        Should have a fully functional network game

Do others think this timeline look feasible?

Thanks,

Anthony


On 11/14/06, Anthony J Gabrielson <agabriel@cs.uml.edu> wrote:

> 522 Final Project

> 

> Project Definition:

>        We need to create a distributed graphical Set game.

[RJL:  I'd like a more robust proof-of-concept for distributed system

apps and a color graphics display of the game table (card layout)

as it changes during game play.

 

>        We are to reuse {most | all} of the existing code.

[RJL: Including auto-generated code for data structures

(from  SetGame06f.sch via chgen13) and state models and

message-passing events as defined in the database for LCP in SetGame04s. ]

 

>        We must generate a GUI for this.

[RJL: That is: generate a bitmapped card layout background picture

(underneath bde's canvas overlay?) with mouse clicks to select cards,

and log/replay to propagate card layout initialization and updates

from layout table in database to remote process of each player?]

 

> Based on: http://setgame.com/

> Existing Code Location:

> http://www.cs.uml.edu/~lechner/06f522/COOL-LCP/SetGame04s/

> 

[RJL: Most of Networking  is too brief and cryptic - but redesign is up for grabs

since existing networking code is outside the current scope of COOL-GEn/LCP/BDE.

It needs more explanation and writeup for a Detailed Design Review (probably 11/28)]

You need to separate concerns of administration and operation of the data collection

and distribution as messaging services and event communications, as an abstract  layer above

the communication ports and surrogate processes. You  MUST NOT use any shared memory; copy events between  buffers for inter-process communication. [Log and replay are persistent database-level concepts. They do NOT depend on bde.]

 

 

> Networking                      Lead:           Alison

>        Server (4 ports)

>                Register a new client

>                Send a new board

>                Accept Combination

>                {increment | decrement} score

>        Workstation (3 ports)

>                Register self on startup

>                Accept a new board

>                Accept score

>                Needs an interface methods for GUI/Test

>                        To send 3

>                        Set global with score

>        Test Cases.

> 

> GUI                             Lead:           Anthony

>        Display the game board.

>        Three network threads running in the background.

>        Figure out which 3 are to be checked

>                Change bkg [background?] slightly on selected objects.

>                Be able to clear some set of selected objects.

>        Display score

>        Needs to call Generate Card to put a card in a spot

[RJL: Existing 04s code does random selection without replacement,

and keeps track of the (symbolic) 12-card layout, in current data and state models.

 

Again, all computation should be independent of  the bitmapped GUI level

where the 12-card layout picture is generated and displayed. Goal is to make  this layout

re-integratable as a background (screen-saver-like) with bde's active drawing

canvas, if bde does not get integrated into your design.]

 

[RJL: NOTE: This process of re-introducing your card layout under bde's canvas

is vital to future evolution of COOL support for distributed projects.

This must be a section of your project's Final  Report.]

 

> Middleware

>        Generate 81             Lead:           Chris

>                Factorial to come up with attributes.

>        Generate Card           Lead:           Nitin

>                GL code capable of generating 81 different cards

>                Assume GUI will deliver to proper coord's for card placement.

>                Take a set of  attributes to automatically generate proper card.

 

 

[RJL: Four 3-valued attributes define one card. 3*23*3*3 = 81 special cases.

Cards should be scalable, depending on window height and width,

which should be configuration parameters under control of individual players.

Each card will occupy 1/3 of width and 1/4 of height of this window. Layout updates will

be passed as EventInstance messages and will specify 3 new cards and their positions. ]

 

[RJL: This also is too cryptic. Re-use the state model code from SetGame04s:]

>        Verification

>                Based on just 3 serial numbers determine if match exists

[RJL: It takes 4 property values from each card, which are stored in the database

at an indexed or pkey-ed location in the 81-instance deck of cards. (SetGame04s might

have only used three of them. Some of my slides used only 3 for readability.]

 

[RJL: WHenever possible after reading SetGame04s, reuse their nomenclare

so documentation is readable.  In fact, I'd prefer that your document[s] be extensions

of and build upon SetGame04s reports, to ease your job and that of future readers.]

 

[RJL: What on earth does Generate 81 mean?]

>                        (will use Generate 81)

> 

> Integration                     Lead:           Keith w\ help from Nitin

>        Get everything compiling on Linux

> 

[RJL: Integration means more than compile and link, of course.

 All residual bugs should be documented after project testing.]

 

> Writeup                 Lead:           Keith

>        Good overall explanation of how everything works

            Detailed description of reuse achieved

 

[RJL:  What about archiving?  I'd like you to put the 04s version

and 06f revisions into one new CVS repository.]

> 

> Timeline:

> 11/21/06: Write up what needs to change for this to work.

> 11/28/06: Good implementation of basic test cases

> 12/05/06: Networking Demos working & GUI demos working

> Network: Should have a good stand alone demo that sends properly formed

> messages to simulate a game.

[RJL: log layout updates at Server and interpret them at client sites as  layout change events.]

 

[RJL: What ' stand-alone game'  means is unclear to me. 

Do you mean shared memory or multiple threads on same CPU?

Please elaborate for the 11/28 Design Review.]

> GUI: Should interface with Middleware to play a stand alone game

> 12/12/06: GUI should be plugged into networking code for full functionality

>        Should have a fully functional network game

> 

> Most of the project areas seemed to be agreed upon after class.  If you

> don't like the area, let it be known on the list so we can figure it out

> quickly.  The legacy code needs to be looked at soon and we should report

> to Prof. Lechner and the group what needs to change by next week.

> 

[RJL: It is a very good first cut. Not clear yet is who does what.]

 

> Hopefully this sounds good; Thanks,

> Anthony