You are on page 1of 16

線上解題系統

( ACM Online Judge )


Outline
Introduction
Existing Systems
Our Advantage
Project Architecture
Team Member
Project Organization
Risk Analysis
Hardware Resources
Software Requirement
Work Breakdown
Project Schedule
Reporting and Monitoring Mechanism
Q&A
Introduction

線上解題系統是一個可以提供學生上傳程式
1
碼,自動編譯,且執行程式並確認該程式之
正確性的系統。

2 本系統可以提供系上或校內之初階程式撰寫
課程應用於作業批改與期中期末上機考。
Existing Systems

ZeroJudge Valladolid Online Judge


(http://zerojudge.tw/) (http://online-judge.uva.es/)

NTU Online Judge PKU Online Judge


(http://acm.csie.ntu.edu.tw/) (http://poj.org/)
Our Advantage
Security

Security is ensured through modifying the Linux kernel to block all


system calls except read() and write(), therefore ensuring that the
program being judged does not escape the jail.

Highly Distributed

Our system can take higher load by distributing the judging task to
multiple nodes. Nodes can be added and removed easily, without
reconfiguration, just like in Cloud Computing.
Project Architecture

Source

User
Web Server Judge Backend
(w/ Apache)

Computational
Cluster

...

Judge Engines
Team Member

Project Manager
陳立中
Programmer

Programmer
專案 葉心寬
Tester

徐若剛 Designer
Project Organization
工作 \ 組員 陳立中 葉心寬 徐若剛
System Architecture Design √ √ √

Web Interface Programmer √

Backend Programmer √ √

User Interface Designer √

Development Tool Hoster √

Quality Assurance Tester √

Resource Manager √

Server Administrator √ √

Document Writer √
Risk Analysis
檢驗項目 風險和問題點 機率 / 程度 對策
Technology
修改核心 達不到關鍵技術 高 / 嚴重 使用 Source Analysis 代替

節點連接 資料無法正確傳送 高 / 嚴重 使用 RPC 技術代替


版本控制 修改新功能到舊的版本 高 / 嚴重 利用 SVN 進行版本控制
People
盡可能用 UML 或圖例的方式
溝通 想法不同,溝通不良 高 / 嚴重
進行溝通
每個人要規劃評估能力所及
環境因素 面臨考試等壓力 高 / 嚴重
的時間,盡早進行調整
Organizational
團隊對於專題 有人只是以作業的心態 讓團隊們以這個軟體專案為
低 / 可接受
的看法 看待,導致專案做不好 榮,很有成就感
Risk Analysis
檢驗項目 風險和問題點 機率 / 程度 對策
Tools
每一階段都先進行整合,不
CASE 工具 不能進行整合 中 / 嚴重
要到最後才進合
沒記錄,錯誤的影響
Bug 記錄工具 高 / 可接受 應用工具管理 Bug 修改記錄
,很難進行修改
Requirements
測試電腦數量 不足夠 高 / 嚴重 找老師及同學的幫忙
時常找使用者進行測試詢問
系統操作介面 使用者不滿意 高 / 嚴重
意見,立即進行改善
在規劃設計時,想清楚有哪
系統的文件 缺少適當的文件記錄 中 / 可接受
些必需文件要記錄
Estimation
開發的時間 低估 高 / 嚴重 悲觀保守估計開發的時間
Hardware Resources

Cluster of x86/x86-64 general purpose desktop computer.

Minimum of 1 computer is required for operation,


2 computers are required for testing

256MB of RAM per node required

1000 MIPS of computation per node required

5 GiB of disk storage per node required

Preferably multicore
Software Requirement
All nodes are Linux based.

Root access required

Boot table access privilege required


( Essential to loading modified kernel )

Apache for Web Server

PHP5/MySQL5 for Web Interface

ISO C++ ( using g++ ) with POSIX Threading and


Berkeley Socket for backend.
Work Breakdown
Task Efforts Duration Dependencies
(person-weeks) (weeks)
T1: Requirement 3 1
Definition
T2: System and 3 1 (M1) T1
Software Design
T3: Web Module 4 2 (M2) T2
Coding and Testing
T4: Backend Module 3 2 (M2) T2
Coding and Testing
T5: System Integra- 4 2 (M3) T3, T4
tion and Testing
T6: Operation and N/A N/A T5
Maintenance
Project Schedule

Project duration : 6 weeks

Using waterfall model


Reporting and Monitoring Mechanism

1 Management report will be delivered on every milestone

Internal development tools, such as subversion, will be


2
used to monitor project's development status

Regular group meeting will be hold to ensure we are on


3
progress

Project schedule will be keyed into group member's


4
calender system if available.
Thank you !

You might also like