Online Judge可行性分析

1引言
1.1编写目的
    随着中国互联网的迅猛发展,程序员岗位对计算机水平的要求也日益提高,因此在职程序员或者说准备就业的大学生为了谋求更好的岗位需要投入更多的时间与精力去磨练自身的专业技能。正所谓程序等于算法加上数据结构,对于算法与数据结构这两项专业技能程序员群体都是格外看重。刚步入校园的学生,刚步入社会的毕业生,乃至是拥有多年工作经验的从业者想要更好的发展,更好的提升,如何强化自己算法和数据结构的能力便成为程序员群体一道迈不过去的坎。如何更好的提高算法与数据结构的水平也就成为了程序员的需求。而一个算法Online Judge平台可以很好的满足这个需求。

Online Judge意为在线评测,而算法Online Judge平台便是一个可以供程序员提交代码评测的平台,其主要的原理便是服务器设有编程题库,由程序员将代码提交至服务器然后机器输入数据进行测验,平台不但可以测试代码正确与否还可以对算法的性能进行评估让用户更好的优化自己的代码。除此之外程序员还在平台上进行比赛,在有限的时间内解答题目,提高自己的思维能力和专业技能,平常也可以对题目进行一个归纳总结,以及和其他程序员分

享题目的解题思路和学习心得。

 

1.2背景
待开发的软件系统的名称:基于VUE&SpringBoot框架的算法Online Judge平台;

本项目的任务提出者:贺亚军;

开发者:贺亚军;

用户:游客和算法爱好者;

实现该软件的计算爱好者中心或计算机网络是:shabi。

1.3 术语定义


开发语言:JAVA

数据库:MySql

基本技术构架:Springboot

数据持久层构架:MybatisPlus

API文档:Swagger

前端框架:Vue

在线判题系统:OJ

通过:AC

答案错误: WA

超出时间限制: TLE

超出输出限制: OLE

超出内存限制:MLE

运行时错误: RE

格式错误: PE

编译出错: CE


[1]《软件工程概论》(第三版)郑人杰 马素霞等编著.

[2] Java2实用教程(题库+微课视频版)耿祥义 张跃平编著.

[3]可行性研究报告(GB8567——88).

2可行性研究的前提
2.1要求
功能:评测用户代码、举行比赛、编写题解、个人信息管理等等。
评测机需要进行安全性测试,并且有完整的认证授权体系
完成期限:3个月。
2.2目标
a.人力与物力、财力的减少;

b.提高用户算法水平;

c.提高用户对算法的热爱。

2.3条件、假定和限制
a.所建议系统的运行寿命的最小值:5年;

b.经费来源:自己掏钱;

c.硬件条件:拯救者Y7000笔记本一台,云服务器一台;

d.运行环境:Windows以上系统;

e.开发环境:Visual Studio Code、IDEA;

f.可利用的信息和资源:洛谷网站;

g.系统投入使用的最晚时间:2023.1.1。

2.4进行可行性研究的方法
本次可行性研究主要通过调查研究法。对林涉外信息学院的同学做了调查,了解他们的需求。

2.5评价尺度
开发费用:开发经费预定在5000元;
各项功能的优先次序:满足管理员和一般用户的使用;
开发时间:在3个月内完成开发和测试工作;
使用中的难易程度:尽量从简,方便使用。

3对现有系统的分析
3.1处理流程和数据流程

①   评测代码流程

 

 

 

②   参加比赛流程

 

 

 

 


3.2工作负荷
一天8小时

3.3费用开支
5000

3.4人员
贺亚军

3.5设备
版本在Window10以上的电脑一台。

3.6局限性
受部署服务器影响,当用户达到一定量级的时候高并发性能不足可能需要升级服务器。

4所建议的系统
4.1对所建议系统的说明
   Online Judge意为在线评测,而算法Online Judge平台便是一个可以供程序员提交代码评测的平台,其主要的原理便是服务器设有编程题库,由程序员将代码提交至服务器然后机器输入数据进行测验,平台不但可以测试代码正确与否还可以对算法的性能进行评估让用户更好的优化自己的代码。除此之外程序员还在平台上进行比赛,在有限的时间内解答题目,提高自己的思维能力和专业技能,平常也可以对题目进行一个归纳总结,以及和其他程序员分享题目的解题思路和学习心得

4.2处理流程和数据流程
评测题目、参加比赛、个人信息管理、评测题目记录、评论信息、题解管理。

4.3改进之处
a.加强用户账户安全管理。

4.4影响
4.4.1对设备的影响

暂无。

4.4.2对软件的影响

必须保证操作系统在Windows10以上版本的电脑上运行,以适应系统的需求。

4.4.3对用户单位机构的影响

管理员要求掌握一定的算法知识。

4.4.4对系统运行过程的影响

用户的操作规程: 提交代码;
评测机的操作规程:通过运行提交代码与数据库正确答案匹配来判断题目是否AC;
运行中心与用户之间的关系:通过学生提交代码来判断该题是否正确;
源数据的处理:源数据保存在数据库中,可随机进行查询;
对数据保存的要求,对数据存储、恢复的处理:安全性、完整性、正确性;
输出报告的处理过程、存储媒体和调度方法:每周打印报表管理人员进行核验检查;
系统失效的后果及恢复的处理办法:重启系统。
4.4.5对开发的影响

用户需进行的工作:注册账号,提交自己想评测的代码;
为了建立一个数据库所要求的数据资源:使用IDEA完成对数据库的建设、更新、查询与删除工作;
为了开发和测验所建议系统而需要的计算机资源:系统打包,能够异地发布,完成在系统Windows10以上的电脑上进行测试工作;
所涉及的保密与安全问题:系统对管理员权限进行相应的设置,防止非法登录。
4.4.6对地点和设施的影响

4.4.7对经费开支的影响

软件的开发成本并不大,其他的投入也只是人和时间。

4.5局限性
评测机无法知道过程中代码发生了啥,只能通过结果来判断用户做题是否正确,所以有时候用户的思路往往和出题者不一样也能AC,这就需要出题者有一定的经验

4.6技术条件方面的可行性
利用现有的技术,该系统的功能够实现;
对开发人员都已经过将近两年的学习,拥有一定的经验和基础;
在规定的期限内,本系统的开发能够完成。
5可选择的其他系统方案
5.1可选择的系统方案1
window版本评测机,一个OJ系统的核心往往是评测机,而评测机因为需要调用系统资源,所以评测机如果运行在不同的系统中需要开发不同版本的评测机。而window版本易开发,但是存在资源浪费而且部署不便等原因。

5.2可选择的系统方案2
Linux版本评测机,Linux版本尽管开发复杂一点,但是高性能易部署,而且服务器资源宝贵,所以选择该方案

 

6投资及效益分析
6.1支出
需要搭建阿里云小型服务器,需要1800元

6.1.1基本建设投资
云服务器设备:1800元。
6.1.2其他一次性支出

6.1.3非一次性支出

服务器升级费用:5000元

6.2收益
6.2.1一次性收益

暂无。

6.2.2非一次性收益

用户开通会员,每个月8.8.

6.2.3不可定量的收益

由于新系统服务使用方便,大量用户使用上机操作,平均每天收益30元,每年收益大概10950元。

6.3收益/投资比
提高用户的算法水平,当会员达到100即可回本

6.4投资回收周期
根据投资和收益的分析,两年内便可以收回投入成本,剩下两年大概收益20000元。

6.5敏感性分析
a.该系统的使用寿命为:4年;

b.该系统的工作负荷量:1台服务器;

c.设备和软件的配置等待变化时,对开发和收益的影响最多不超过10000元。

7社会因素方面的可行性
7.1法律方面的可行性
本系统作为软件工程这门课程的课程设计,没有签订任何合同,不存在合同责任。所用的东西都是自己的或者公共的,也没有挪用别人的成果,不存在侵犯专利权版权等问题。

7.2使用方面的可行性
使用可行性来看,我们设计的OJ系统可以应用,对此,我们认为,该系统具有相当的可行性,大大方便了同学练习算法题目,软件界面简洁,清晰明了。

8结论
总和各方面的因素来分析,该系统是可行的。

 

posted @ 2022-10-07 02:11  芒果mango404  阅读(211)  评论(0编辑  收藏  举报