Lecture 14

+
Informatics 122
Software Design II
Lecture 14
Emily Navarro
Duplication of course material for any commercial purpose without
the explicit written permission of the professor is prohibited.
1
+
2
Today’s Lecture

Final design project
+
3
Final Design Project

Design and implement an extensible Board Game Server

With a team of 8 or 9

The effort should be spread out across multiple subteams,
with each subteam responsible for the design and
implementation of its part

Everyone, of course, is responsible for the overall design and
implementation
+
4
Requirements

The Board Game Server should accommodate any board game that
involves a grid layout and game elements on this layout, including
such games as Chess, Checkers, Connect Four, Nine Men’s Morris,
Chutes and Ladders, Stratego, Shogi, Pente, …

The Board Game Server should make it as easy as possible to create
implementations of new games

The Board Game Server should be client-server, not Web-based

The Board Game Server should provide one or more ways for
people to find other players

The Board Game Server should support personal player profiles
+
5
Deliverables

Board Game Server itself, both its reusable client (if that is
part of your architecture) and its reusable server

Three or more games from the list on the previous slide as
“plug-ins” to the architecture

Documentation

Instructions for running the games
+
6
Reuse

Cannot pick up an existing game server implementation
(sorry )

You can reuse other components, but first double check with
me or Matias
+
7
Final Design Project

March 4




quick presentations on “plan of attack” (max 15 minutes per team)
March 6

preliminary design presentations (max 20 minutes per team)

preliminary design document
March 11

detailed design presentations (max 20 minutes per team)

detailed design document
March 13

first demo (max 20 minutes per team)

updated design document
+
8
Final Design Project

March 20 (finals week)

final design and retrospective on design presentation (max 15
minutes per team)

final demo (max 15 minutes per team)

updated design document with a description of how and why this
evolved from the original design

code (via your CM repository)

peer evaluations (on Website)
+
9
Grading Criteria

Stakeholder: the player


Stakeholder: future developers of the Board Game Server



how is the experience of playing a game?
how is the understandability and quality of the code?
Stakeholder: game developers

how is the extensibility of the Board Game Server in supporting
new board games?

how is the experience of plugging in a new game?
Stakeholder: you

what are your contributions to the code?
+
10
Miscellaneous

Mark clearly in your architecture/design the places that are
“plug-ins” (variable per game) and which are fixed

Use a configuration management repository (this is good
practice, but we will also use it to verify who wrote which
code – check in your own code!)

Give Matias and myself access
+
11
Team Assignments
Team 1

Mark Archer

Juan Cortez

Bing Feng

Jesse Huff

Cory Mortimer

Christopher Noel

Chelsea Schneider

Brian Wance
Team 2

Sofanah Alrobayan

Michael Chizewski

Jeffrey Fellows

Daniel Hirsch

Steven Melena

Ronnie Nguyen

Ryan Phung

Rohan Venapusala

Maksim Zhilin
Team 3

John Ader

Richmond Chang

Shibani Dhume

Yufei Fu

Ariel Kruger

Melissa Nguyen

Steven Ov

Eric Tian

Joseph Yu