1、简介
2017年春节前夕,单位组织庆祝活动,活动中有一个抽奖环节,因为人比较多(算上家属几百人),于是计划使用抽奖程序进行自动抽奖。活动过程中,人事部门的同事采用外面单位开发的抽奖程序进行抽奖,顺利完成了抽奖。庆祝活动结束后,人事部门的同事反映能否单位自己开发一个简单的抽奖程序,原因有两个:1)参与抽奖的人感觉抽出来的名单看着不是很随机;2)采用外面单位开发的程序还要付点使用费。如果能使用自己单位开发的程序,就不存在费用的问题了,而且如果觉得随机性有问题,可以很方便的修改程序。
正好我在旁边听着,就想自己写一个抽奖的程序练练手,这段时间一直在看软件工程方面的东西,也想顺便把软件工程的一些想法应用到程序开发中,改一改之前写程序的那种上来就写代码的习惯,所以才有了本文。由于作者软件工程方面的知识比较匮乏,很多内容都是东一榔头西一榔头那么看的,可能写出来的内容比较乱、杂、不正规,但是我会慢慢改进的。
2、整体说明
与抽奖程序有关系的用户应该包含三类:
1)工作人员:工作人员将抽奖名单导入到抽奖程序中,设置总共有多少个奖项、每个奖项的人数和奖品、每次抽取的人数等信息;
2)抽奖人:抽奖人使用抽奖程序进行抽奖,根据工作人员设置的每次抽取的人数进行一次或者多次抽奖操作,每次抽奖时抽奖人开始然后结束抽奖动作;
3)参与抽奖人:参与抽奖的人通过抽奖程序查看抽奖结果及相应的奖品。
3、功能性需求
根据上一节的内容,可以分析出抽奖系统的大的用例,如下图所示:

用例属性 | 说明 |
名称 | 抽奖 |
简要说明 | 抽奖人使用程序进行抽奖 |
前置条件 | 1、工作人员已经将抽奖名单导入程序; 2、工作人员 已经将每次抽奖人数设置好; 3、工作人员已经将抽奖快捷键设置好。 |
基本流 | 1、抽奖人按启动抽奖快捷键开始抽奖; 2、抽奖人按结束抽奖快捷键结束抽奖; 3、程序显示本次抽出的获奖人员名单; 4、程序后台记录每个奖项的中奖人员名单。 |
备选流 | 1a、如果参与抽奖的人数少于设置的中奖数量,则直接显示全部人员名单; 3a、需要抽奖人多次抽奖则重复基本流步骤1~3; 3b、如果中奖人没在场,则需要重新在在场的人中抽奖, |
用例属性 | 说明 |
名称 | 查看抽奖结果 |
简要说明 | 参与抽奖的人通过程序查看中奖名单和奖品 |
前置条件 | 抽奖人每次抽奖结束后 |
基本流 | 1、抽奖程序显示本次的中奖名单; 2、抽奖程序显示奖品。 |
用例属性 | 说明 |
名称 | 抽奖配置选项 |
简要说明 | 抽奖程序启动 |
前置条件 | 1、准备好抽奖名单; 2、准备好奖项和奖品信息。 |
基本流 | 1、工作人员将抽奖名单输入到程序中; 2、工作人员设置奖项的类别、人数、奖品信息; 3、工作人员设置抽奖的快捷键信息。 |
备选流 | 1a、如果有文件格式的抽奖名单,则直接将文件导入到程序中; 3a、抽奖的快捷键可以重复 |
4、非功能性需求
1)程序界面要比较喜庆,要有节日的氛围;
2)程序界面尽量简单易用。