PSS.Exam项目任务认领
一、项目说明本项目是“通用公社系统”(Public Society System,简称PSS)的一个子项目,也是比较简单、而且目前比较急需的一个功能模块。
PSS.Exam的主要目的是为Linux爱好者提供一个检测自己学习进度和能力水平的在线自测考试系统,同时也为公社提高管理团队技术水平提供统一考试和培训计划提供支持。
本项目采取开放式协作模式进行,开发成果完全按照GPL协议发布,版权归中国Linux公社和所有实际参与开发者共同所有。
二、项目需求分析
1、自测考试允许注册用户和匿名用户自由使用,注册用户可以提交试题、保存试卷配置信息、保存自测考试成绩、查看历次考试成绩曲线图、保存未掌握的知识点列表。匿名用户只能配置临时试卷、答卷、自动计算客观题分数。
2、自测考试的题型分为客观题和主观题两大类。其中客观题包括单项选择题、多项选择题、判断题、填空题,主观题包括简答题和实际操作题。
*两种选择题的选项不限定数目,以保证充分的灵活性和可扩展性。
*多项选择题暂包括可漏选、不可漏选两种,并允许以后添加新的记分类型;
*填空题每道题的空白数量不等,各空的分数也要求可以不相同;
*实际操作题类似简答题,主要考察个人实际操作能力,目前可以暂不考虑,待以后PSS.Exam改进时添加进去;
*系统不对简答题进行自动阅卷,用户可以选择“专家评分”和“自我评分”两种。“专家评分”模式将用户的答案保存下来,等候被聘为“阅卷专家”的其他社员参照参考答案进行评分;“自我评分”则由用户自己对照参考答案进行评分。匿名用户只能选取“自我评分”模式;
3、用户可以根据所涉及的知识领域、题目难度等级、考试时间、考试自由度等参数配置一份随机试卷,授权的用户也可以预先设定一些设定好的随机试卷配置方案保存到数据库中供普通用户选择,避免自行配置的麻烦;只有超级管理员可以发布固定题目的试卷,注册用户可以帮助管理员拟订固定试卷后由管理员发布。固定试卷一般用于统一/摸底/认证考试。
4、可以设定自己的考试成绩记录是否允许已授权的招聘单位、公社项目组负责人或所有人查阅;可以将考试成绩记录打包成XML供下载保存;可以删除以往的考试记录;
5、授权用户可以建立和维护题目和题目内容分类目录,注册用户可以提交和修改自己提交而未被管理员确认锁定的题目。
6、PSS.Exam应该允许port到phpnuke中,允许超级管理员设置为使用自带的简单的用户管理模块或使用phpnuke等其他系统提供的用户管理模块;
7、系统应该稳定、安全、速度快,以后可以考虑支持分布式题库;
8、系统应该具有清晰的代码结构和良好的可扩展性和伸缩性,能够灵活地选择和增加新的界面排版样式和主题风格。
----------------------------------------------------------------------------- 三、项目分析设计
1、系统角色与行为分析:PSS.Exam的用户可以抽象为匿名用户、注册用户、阅卷专家、题库管理员、超级管理员5个角色(Actor)。(暂不考虑phpnuke等其他系统和PSS.Exam的交互)
*匿名用户:配置临时随机试卷/选择预配置试卷=>生成试卷=>答题=>客观题自动评分=>主观题对照参考答案自动评分并计算总成绩;
*注册用户:
#用例1:类似匿名用户,配置随机试卷时增加保存选项=>生成前保存为个人配置=>答题后可以选择主观题评分模式=>如果是专家评分则保存主观题题号和用户答案=>增加考试编号到阅卷任务列表=>获得总成绩后选择保存本次考试信息到相应的目录=>显示历次考试成绩;
#用例2:填写题目,选择类型和目录,填写题目关键字=>按关键字查询,返回相近的题目=>用户确认后,添加题库题目审核任务记录等待管理员和阅卷专家确认后添加到数据库;
#用例3:查询自己提交的题目=>如果被管理员锁定则进行编辑=>保存编辑内容=>保存修改记录供自己和管理员查看;
#用例4:考试配置删除、成绩记录删除、成绩记录下载、个人成绩他人阅览权限设置等。
*阅卷专家:具备注册用户的全部权限,同时:
#阅卷用例:查阅阅卷任务=>显示被阅试卷主观题的题目、答案、参考答案等信息=>给分、下评语=>保存评分,阅卷任务改为已阅,删除用户保存的题号列表;
*题库管理员:查阅题目=>修改题目,查阅提交的题目=>编辑题目=>确认保存;查询=>添加固定题目的试卷;
*超级管理员:权限授予管理,题目分类目录管理.
2、系统模块划分:PSS.Exam主要的类包括题库、试卷配置、试卷、考试成绩等
1)题库部分:题目分类目录管理、题目提交、题目审核;
2)配置部分:新建试卷配置、保存配置、删除配置、修改配置;
3)试卷部分:生成试卷、考试答题、自动评分、保存考试结果、专家评分;
4)成绩部分:统计查阅、保存成绩、成绩分类管理、成绩查阅权限设置;
5)用户部分:提供其他模块调用的函数库,包括用户类型判定、用户权限设定,另外还包括超级管理员的授权模块。 3、数据库设计:
(终于找到原来设计的exam.sql文件了,原来藏在一个废弃了的Vmware虚拟磁盘文件中,幸亏还没有删掉 :-D )
当时设计的总共有9个表:
exam_opt_ask
exam_opt_opt
exam_blank
exam_yesno
exam_ques_answer
exam_my_score
exam_config
exam_paper
exam_knownage
还没重新仔细看一遍,请高手提出修改意见啦.
具体内容见附件.(为便于上传,加了.txt)
------------------------------------------------------------------- 任务认领:
1、题库部分详细设计和开发
2、试卷配置部分详细设计和开发
3、试卷部分详细设计和开发
4、成绩部分详细设计和开发
用户部分提供一个exam_user.php文件,当中提供以下类和函数供以上模块调用:
get_user_name();//匿名进入者返回Anonymous
get_user_type();//返回Anonymous,User,Expert,Manager,Admin等
//分别代表匿名用户,普通用户,阅卷专家,题库管理员,考试系统的管理员等
goto_login_page();//跳转到用户登陆页面
主要就这些,需要的话可以再加. 没看明白…… :oops:
是说详细的设计吗?
还没有正式开始写代码?对吗? 成绩部分:
判断题 答对 +5 答错 -5
单选 答对 +7 答错 -5
多选 答对 +10 答错 -7
每人初始有50或100分,一次连续10次答对奖励 +10,连续20次 +20,30次 +50,50次 +100。
一次连续答错 10次 -10,20次 -15 并且停止答题,自动转到技术文章部分,让他好好学习学习……
记录总正确和总错误次数,连续总正确每100次奖励 +50。每回答100题 +20。
成绩应与论坛功能挂钩,如:200分换帖子置顶 24小时,100分可以把帖子标题换色,50分可以匿名发表帖子,10分下载一次软件……
其他加分:
发精华贴+30,技术文章+50,新闻+20,帖子 +2,回贴+1……
其他减分:
被删贴 -50,被警告-75,被封账号每小时 -5~-10……
其他……(正在想)
即,得分就是论坛上的钱,许多功能需要得分支持。 没人来回贴呀??? :?: 要想和论坛结合,建议先看看phpnuke的插件开发方法. jiangtao999的方案也太狠了吧。答错还要扣分,一般只是得零分就行了。如果要扣分,绝对是一个费力不讨好的想法。
我认为总体设计的时候,对于匿名用户授予的权限太多,随机生成试卷和自动算分都是非常占用资源的搜索/比对算法。假如大家都不注册的话,系统要为大量无关人员浪费过多资源,得不偿失。
建议:匿名用户只能做事先设计好的几份试题,而且阅卷部分要和注册用户部分脱钩。 扣分是防止有人蒙答案,总是胡答题准备的。
不然没有了积分跑这里加分来,答题时狂点就有分赚,会进一步拖垮服务器的……
我的打算是禁止匿名用户答题,和论坛挂钩,用论坛的帐号,公社里的部分功能需要花费积分。
这样进一步让大家积极进行答题,又能防止有人乱答题。
答题时分成两种,一种是出套试卷,得分相对较高,但不许中途停止答题,另外一种是每次出一题,得分低,但可以随时停止。
出题时随机选题就行了,应该不会造成服务器资源浪费。
更正一下:
多选题答对 +10 答错 -5 ,多选不好回答,减分应该少一点…… 你说得也太粗了一点吧.
这样做下去要多长时间呀.
你要知道我在我们单位二个星期做一个模块.
但现在前提是需求做好了.
自己设计编码.
如果要UML软件设计我可以.
编码就算了. 还是先做简单一点的吧。一口吃个大胖子,难哦!
考试系统的主要目的还是为了让初学者和自学者方便地检验自己学习进度和技能水平吧。自由一点好一些。 没人来回贴呀??? :?:
想得很周到啊!不过没有必要那么复杂吧?
可惜我最近公司里、家里事情都比较多,恐怕没空主持这个活动项目了,还请jiangtao9999同学能够帮我把活动继续下去,有几件事向委托你:
*如果有新的社员报名参加PSS计划,请将其ID和个人能力情况添加到“已报名社员名单”中;
*联系报名的社员,组织相互交流和探讨;
*尽快把考试系统的功能原型做出来,先不要考虑太复杂的功能,给以后留下改进的余地就可以了。
谢谢你啦! :-) 你说得也太粗了一点吧.
这样做下去要多长时间呀.
你要知道我在我们单位二个星期做一个模块.
但现在前提是需求做好了.
自己设计编码.
如果要UML软件设计我可以.
编码就算了.
很好啊,那就请你帮忙整理一下我列出得那些东西,用UML把整个系统的类图和协作图画出来,如何?现在需要做的就是把数据库和整个系统的流程确定下来,然后就可以分工开始写各个模块的代码了。
在UML方面,你是这里其他朋友的老师,大家还希望你能够指点一二,带领大家学习一些软件设计的技术和工具。 还是先做简单一点的吧。一口吃个大胖子,难哦!
考试系统的主要目的还是为了让初学者和自学者方便地检验自己学习进度和技能水平吧。自由一点好一些。
对,这是开发PSS.Exam最核心的目的。
页:
[1]
2