Advanced Software Engineering Association for Computing Machinery High

  • Slides: 35
Download presentation
Advanced Software Engineering Association for Computing Machinery High School Competition System Prof: Masoud Sadjadi

Advanced Software Engineering Association for Computing Machinery High School Competition System Prof: Masoud Sadjadi Fall 2004 Second Deliverable By: Prasad Tummala, Hien Nguyen, Jose Ballesteros, Pablo A. Maurin, Bin Liu, Rafael Alpízar (Team Four)

Road Map Introduction p Proposed Software Architecture p System Decomposition p n n Component

Road Map Introduction p Proposed Software Architecture p System Decomposition p n n Component Diagram Deployment Diagram Sub System Services p Object Design p

Introduction p Purpose n Build a system that will manage the ACM Programming Competition

Introduction p Purpose n Build a system that will manage the ACM Programming Competition including the registration of teams on the web, and the game operations. The system will minimize errors inherent in manual operations, decrease the number of staff required to run the games, increase the communications with the participants prior to the event, and provide current and final results automatically.

Introduction p Design Goal n n n Usability User Friendly Response time Maintenance No

Introduction p Design Goal n n n Usability User Friendly Response time Maintenance No dependencies to commercial software component.

Current Software Architecture p 1. Composed of two separate systems that do not have

Current Software Architecture p 1. Composed of two separate systems that do not have any communications with each other. Web based registration system 1. 2. Using ASP deployed on IIS With flat table database deployed on MS SQL server Game Management 1. 2. Web-based system deployed on Tomcat. Polling based notification of the judges that a solution has been submitted.

Proposed Software Architecture p Two main subsystems n n p Web Based Subsystem Game

Proposed Software Architecture p Two main subsystems n n p Web Based Subsystem Game Management Subsystem Three other ancillary subsystems n n n DB Access Subsystem E-mail subsystem Utility Subsystem

Subsystem Decomposition p Web Based Subsystem n n n Security Subsystem Team Information Management

Subsystem Decomposition p Web Based Subsystem n n n Security Subsystem Team Information Management Subsystem Game Configuration Subsystem

Subsystem Decomposition p Game Management n n n n Login Judge Interface Team Player

Subsystem Decomposition p Game Management n n n n Login Judge Interface Team Player Interface Score Board Game Server Scoring Game Communication Framework

Proposed Software Architecture (Diagram)

Proposed Software Architecture (Diagram)

Hardware/Software Mapping p Web Based System n Components Web. Browser p Security p Email

Hardware/Software Mapping p Web Based System n Components Web. Browser p Security p Email p Manage. Team. Servlet p DBInterface p Database p n Deployed on two nodes: PC p Host. Machine p

Component Diagram For Web Subsystem

Component Diagram For Web Subsystem

Deployment Diagram For Web Subsystem

Deployment Diagram For Web Subsystem

Hardware/Software Mapping p Game Management Subsystem n Components p p p p p n

Hardware/Software Mapping p Game Management Subsystem n Components p p p p p n Login Team. Interface Judge. Interface Score. Board Game. Server Scoring Game. Communication. Framework DBInterface Database Deployed on many nodes: p p 1 Game server n Team. PC m Judge. PC 1 Score. Board

Component Diagram For Game Management Subsystem

Component Diagram For Game Management Subsystem

Deployment Diagram For Game Management Subsystem

Deployment Diagram For Game Management Subsystem

Object Design Trade-Off Use MS-SQL Server vs. new database p MS Access database vs.

Object Design Trade-Off Use MS-SQL Server vs. new database p MS Access database vs. other database p Java vs. other languages p Java Messaging System (JMS) vs. Sockets p Tomcat webserver vs. ISS p Servlet & JSP vs. ASP p

Sub System Services & Object Design p DB Access Subsystem n n n save.

Sub System Services & Object Design p DB Access Subsystem n n n save. Team save. Account update. Team update. Account get. Team get. Account delete. Team save. Judge get. Judge delete. Judge set. New. Score save. Score

Sub System Services & Object Design p Web-based p Team n n n n

Sub System Services & Object Design p Web-based p Team n n n n Information create. New. Team validate. Info update. Team delete. Team report. Pay record. Comment assign. Team. ID verify. Team

Subsystem Package Diagram

Subsystem Package Diagram

Subsystems Dependencies

Subsystems Dependencies

DB Access Subsystem p Provides an interface to interact with the database and is

DB Access Subsystem p Provides an interface to interact with the database and is responsible for all object relational mappings. p We solve this problem by applying the Façade Pattern.

DB Access Subsystem p p p Part of querying a database involves setting up

DB Access Subsystem p p p Part of querying a database involves setting up a connection to the database. Creating and initializing the connection is the most expensive part of a database query. Avoid creating a connection if at all possible. Allow all components in a process to use a single global connection resource. We solve this problem by applying the Gang. Of. Four Singleton. Pattern.

Singleton Pattern q p p p If a system only needs one instance of

Singleton Pattern q p p p If a system only needs one instance of a class, and that instance needs to be accessible in many different parts of a system, you control both instantiation and access by making that class a singleton. Ensure a class only has one instance Provide a global point of access to it The DBAccess class is made a Singleton, so the single connection will be shared by all components.

Game Communication Framework Heart of Game Management Subsystem. p Sits on top of JMS

Game Communication Framework Heart of Game Management Subsystem. p Sits on top of JMS p Provides abstraction layer for p n n Server Judge Team Scoreboard

Game Communication Framework p What is JMS? A framework that provides mechanism for messaging

Game Communication Framework p What is JMS? A framework that provides mechanism for messaging between nodes in distributed network environment. p Provides p n n Point-to-Point Publisher/Subscriber

Software Architecture (Diagram) p Game. Management Subsytem Layers Server Judge Interface Team Interface Score

Software Architecture (Diagram) p Game. Management Subsytem Layers Server Judge Interface Team Interface Score Board Game Communication Framework JMS TCP

Game Communication Framework Class Diagram

Game Communication Framework Class Diagram

Subsystems Dependencies

Subsystems Dependencies

Game Server Subsystem p Manages all relevant game events n n Maintaining scores Generating

Game Server Subsystem p Manages all relevant game events n n Maintaining scores Generating final score report Keeps Game clock. Stores solutions for later retreival. Sits on top of Game Communications Framework p Implements receive. Solution. Notification() callback method. p

Game Server Class Diagram

Game Server Class Diagram

Scorer Subsystem. Computes Standing for the game p Rules of the game can potentially

Scorer Subsystem. Computes Standing for the game p Rules of the game can potentially change p Two Classes p n n Scorer class provides methods to the Server subsystem for computing standings Rules. Engine Interface defines the expected behavior of a Rules. Engine to be used by the Scorer class.

Scoring Class Diagram

Scoring Class Diagram

Thank you

Thank you