一、需求分析
本课题主要是实现一个抽奖系统的设计与开发。本抽奖系统是由若干可以发出抽奖请求和参与抽奖的用户与进行抽奖审核和用户与抽奖系统管理的系统管理员组成,用户可以在指定日期内参与抽奖,也可以发布自己的抽奖,经由系统管理员审核后抽奖发布。
基于以上的要求我们决定将系统用户设定为两类,一类是普通用户,另一类是系统管理员。
系统管理员需求分析
普通用户提交抽奖信息后,系统管理员可以查看系统内所有的抽奖申请;
用户提交抽奖信息后,由系统管理员进行审核,目的是过滤掉不合法的抽奖信息的发布。系统管理员审核通过后可以发布抽奖,普通用户可以进行抽奖。
系统管理员可以查看所有的已发布抽奖的信息,查看各种奖品的数量以及中奖的概率。
系统管理员一旦发现发布抽奖的用户有异常行为,可以将该用户发布的抽奖进行删除。
系统管理员发现用户有异常行为,可以对用户的抽奖权限进行设置,包括在指定的时间内限制抽奖,以及终身限制抽奖
对于审核未通过的抽奖,系统管理员将会给该用户发送消息来提醒该用户,以及发送具体的审核不通过的原因
系统管理员可以利用自己的邮箱和密码进入系统。
普通用户需求分析
用户可以查看自己参加过的抽奖,发布的抽奖,以及中奖的信息,包括修改密码等操作。
用户可以发起一个抽奖,该抽奖必须是经系统管理员审核后才能开始抽奖。
用户可以参加其他人发布的抽奖,每次抽奖需要消耗一次抽奖机会。
用户可以去查看其他用户发布的抽奖
用户可以接受中奖或没有中奖信息,以及接收系统管理员发来的审核不通过的信息。
用户可以查看奖品已经发布出去多少,以及还剩多少。
普通用户可自由注册该系统,然后用邮箱和密码登录入系统
二、系统用例图
准确提取用例的方法
第一步,从需求中寻找业务领域相关的动名词和动名词短语,比如做什么事、什么事情必须被完成,或者执行某任务等;
第二步,验证这些业务领域相关的动名词和动名词短语到底是不是用例。验证业务领域相关的动名词或动名词短语是不是用例的标准是满足四个必要条件:
• 必要条件一:它是不是一个业务过程?
• 必要条件二:它是不是由某个参与者触发开始?
• 必要条件三:它是不是显式地或隐式地终止于某个参与者?
• 必要条件四:它是不是为某个参与者完成了有用的业务工作?
如果以上四个必要条件都满足的话,那么该业务领域相关的动名词或动名词短语就是一个用例。
第三步:在需求中识别出参与者、系统或子系统。
• 参与者会触发某个用例开始,用例也会显式地或隐式地终止于某个参与者;
• 用例会属于系统或子系统。
系统的参与者
基于需求分析很容易得出该系统的参与者有两种:系统管理员和普通用户
用例分析
系统管理员
1.查看抽奖申请;
2.审核抽奖
3.查看抽奖信息
4.删除抽奖
5.设置用户的抽奖权限
6.消息接收
7.登录
8.发布抽奖
9.发布消息
普通用户
1.查看自己的主页
2.发布抽奖
3.浏览其他抽奖
4.查看其他人的主页
5.接受消息
6.查看奖品发布情况
7.登录
8.参与抽奖
9.删除抽奖
10.发布信息
系统用例图
项目的业务类图
业务领域建模的基本步骤
• 第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
• 第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
• 第三步,给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。
• 第四步,将结果用 UML 类图画出来。
头脑风暴的具体做法
团队成员聚在一起执行头脑风暴从收集的应用业务领域的信息中按规则识别业务领域相关的概念,并分别列出。需要识别的规则如下:
• 名词和名词短语(nouns / noun phrases);
• “Y 的 X”(X of Y)表达方法,比如汽车的颜色;
• 及物动词(transitive verbs);
• 形容词(adjectives);
• 数量词(numeric);
• 所有关系的表达方法(possession expressions),比如具有、拥有等;
• 构成关系的表达方法(constituents / “part of" expressions);
• 包含关系的表达方法(containment / containing expressions);
系统类图
基于以上的方法可以得到以下类图
三、数据建模
数据模型
通过对现实世界的事与物主要特征的分析、抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束。 数据模型的要素由操作、数据结构以及约束。通常情况下我们在数据模型设计的时候考虑最多的是数据结构而忽视了其他两个要素。
根据数据模型的应用层次可以分为概念数据模型模型(概念模型)、逻辑数据模型(数据模型)、以及物理数据模型(物理模型)。
概念模型
从业务的角度来考虑问题,主要用来描述事与物的概念化结构,其用途是统一业务概念,作为业务人员和技术人员之间沟通的桥梁。其描述方法有ER图、Merise图、Barker图等。在建立概念模型的过程中主要考虑的是现实世界中的事与物以及他们之间的关系而不用关注事与物的具体属性。
逻辑数据模型
从数据库的角度来考虑问题,在概念模型的基础上对事与物属性的细化以及对象整合。其描述方法有ER图。在这个层面数据模型可以分为层次、网状、关系模型。
物理模型
面向具体的物理计算环境。
本系统中我们采用E-R图来描述数据模型
系统实体联系图
概念原型及工作过程
概念原型
概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论。
概念原型是一种虚拟的、理想化的软件产品形式。
工作过程
用户成功登录系统后,可以进行查看自己的信息,以及发布自己的抽奖,对于之前的抽奖在开奖后系统会推送是否中奖等信息。用户也可以浏览现有的抽奖,以及进行抽奖等操作。
管理员登录系统后,可以查看当前有多少已经提交的抽奖信息,经过审核后可以对该抽奖进行发布,如果没有通过审核,可以通知用户具体哪里违反规定。同时可以检测用户的状态,设置用户的抽奖权限,以及抽奖次数等操作。