R-Mancala Srinivas Krishnan & Kiranjit Sidhu. Outline Design Details Refactoring Experience Demo.

Slides:



Advertisements
Similar presentations
EEE436 / CS422 Final Presentation Group
Advertisements

Real-Time Systems Scheduling Tool Developed by Daniel Ghiringhelli Advisor: Professor Jiacun Wang December 19, 2005.
Implementation and Study of a “Term” based Role Playing Game using Client Server Paradigm. Vaithiyanathan Sundaram.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Network Hosts Analyzer Hadas Shumovitch Elad Levi Tal Katz
CMSC 132: Object-Oriented Programming II
Security and Digital Recording System Students: Gadi Marcu, Tomer Alon Number:D1123 Supervisor: Erez Zilber Semester:Spring 2004 Mid Semester Presentation.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Performance Management 1 Performance, Scalability and Management  Topic  Refining the object model  Threading models  Distributed callbacks  Iterators.
Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.
WNT Client/Server SDK Tony Vaccaro CS699 Project Presentation.
UPLOADING YOUR SERVER CODE TO YOUR VIRTUAL MACHINE.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Networking with Java CSc 335 Object-Oriented Programming and Design Spring 2009.
Fundamentals of Python: From First Programs Through Data Structures
Design Patterns Ric Holt & Sarah Nadi U Waterloo, March 2010.
Red-Green-Refactor! EclipseCon 2008 Kevin P. Taylor, Nicolaus Malnick Test-Driven Development (TDD) for Eclipse RCP.
Quoridor Classic Game Manager Kevin Dickerson April 2004.
Systems Analysis and Design in a Changing World, Fifth Edition
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
Getting to Know TiVo: The Home Media Engine (HME SDK) Eric M. Upchurch CS 525 Spring 2008.
Smart Phone Laboratory ECEN 489 Srinivas Shakkottai.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Team ThinkTank. Specifications Ad Hoc networking game. Similar to the Atari Combat! Players control their tank and shoot enemy tanks. Each player gets.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Design Document Presentation. Review Quoridor – a board game played on a grid where players must advance tokens across a board to win. Our basic objective:
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
Ex3 Preview, Swing tutorial Ex1 review Amit Shabtay.
Distributed Data Mining System in Java Group Member D 王春笙 D 林俊甫 D 王慧芬.
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
Establishing communication with Envirobat using TCP/IP Presented by Apourva Parthasarathy Date : 18/06/13.
HERTS Paul Larpenteur Lee Murphy CSE 403 – Sp 2003 Hearts Experimental Remote Transportable System.
Swing and MVCS CompSci 230 Software Construction.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
GemIsland Prepared by: Areen Jondi Diala Hamadneh Supervised by: Dr. Raed Alqadi Dr. Luai Malhis.
COMS S1007 Object-Oriented Programming and Design in Java July 19, 2007.
An Introduction to Programming and Object Oriented Design using Java 3 rd Edition. Dec 2007 Jaime Niño Frederick Hosch Chapter 18 Integrating user interface.
Copyright © by Shayne R Flint Simplified Web Application Development Shayne R Flint Department of Computer Science Australian National University.
Title Carolina First Steering Committee October 9, 2010 Online Voting System Design Yinpeng Li and Tian Cao May 3, 2011.
Concrete Architecture of Mozilla Firefox (version ) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007.
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
CS616: Software Engineering Spring 2009 Design Patterns Sami Taha.
The HotCiv GUI Instantiating the MiniDraw Framework.
DOTSNBOXES. Overview Dots and Boxes is played originally with the use of paper, pen and 2 players. The Game board is a matrix of points and vary in size.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
MiniDraw Introducing a Framework... and a few patterns.
T Project Review Muuntaja I1 Iteration
Prometheusaurus Final Demo Team Software Project Group #1 Fall 2012 Steve Danowitz, Kelly Helhowski, Emily Christ, Corbin Uselton, Chris Leer, and Briana.
Busta’ Sandwich Life Cycle Architecture. Specifications.
Final Presentation Smart-Home Smart-Switch using Arduino
Multi player client sever Snake Game Technology : JAVA (swing for user interface and Socket for passing coordinates of snakes, food item and score)
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
General Purpose Grid Computing LCA. Specification The system will provide a multi-threaded, shared memory environment that is distributed across a loosely.
Why Learn Android? Largest installation base of any operating system Over 20,000 Android devices exist Businesses will likely move more to device-based.
Introducing a Framework ... and a few patterns
WEB SERVICES.
MVC and Design Patterns
Rudimentary Client-Server Message Board Ricky Landry COP5611 – Operating Systems Design Principles University of Central Florida April.
Design Patterns in Operating Systems
Model-View-Controller (MVC) Pattern
An Introduction of Jini Technology
Presentation transcript:

R-Mancala Srinivas Krishnan & Kiranjit Sidhu

Outline Design Details Refactoring Experience Demo

Product Development Process We followed XP’s design principle  Less Paper more Code!!!  Released minor versions with regression testing using Eclipse  Refactored using patterns based on coupling between classes  Modular builds using Java packages, again each module was tested using JUnit.

Infrastructure Used Used Eclipse as our base IDE and testing platform Side by Side pair programming Development on windows platform with Java 1.5

Design Details Four Main Packages

Networking States We created a simple protocol for the setup and teardown of remote mancala PLAY GET SENT + cell CLIENTSERVER

Network Design Multithreaded networking package Synchronization between the two games provided using a Send-Response protocol Processing was local on the remote machines Race Conditions, we handled it using timeouts on sockets and the Observer pattern Deadlocks were prevented by making moves only on a SENT. Requests were sent out as GET and the interface was unlocked only if a GET was received  This was the case even if a turn comes back to the same player

Refactoring GUI classes were getting too big and bulky We needed an easier way of updating the different views Enter: Observer pattern with MVC  Used Java Observer, Observable to implement a simple Model View Controller

Refactoring (cont) MVC  The model was the Mancala board and surrounding logic.  Updates were made to the model based on the changes to the Control object.  Response relayed internally to View and updated. Prevents sleep of the Swing Event Thread.

Refactoring (cont) Each package used a Façade pattern to provide a API to interact with the other packages The overall state of the whole game was kept in a single class Access to state was provided using the Command pattern Used the Singleton pattern to provide common state to all Objects.

Refactoring Comments Seemed a lot of time for minor releases Made the job of integration easier and also the final release Had to create some documentation to keep the algorithms we used upto date with each iteration.

Demo Initial Login

Network Screen  Choose to host or join a game

Network time out management