工程实践的需求分析和概念原型
CTF学习平台的需求分析与用例建模
1 项目简介
CTF(Cpature The Flag)是一种网络安全领域进行的比赛,而CTF学习平台则是参赛选手或相关专业学生进行学习的重要工具。随着安全领域的不断发展,单一类型的CTF平台逐渐被多类型,综合性的竞赛学习平台所取代。本次实践的主要目标是制作一个CTF的学习交流平台,并将部分题目与解答集成到该平台上。平台的使用对象主要是网络安全的开发和爱好者,平台上会对每个方向设置部分问题。
2 用例建模
建模之前首先考虑用例建模的三个层次,即抽象用例,高层用例和扩展用例。其中,抽象用例是指定义的一个需要干什么或者完成什么的简短指令;高层用例是指定义了边界和范围的用例,具有明确的起始和结束位置,我们主要使用这两种用例。
进行用例建模需要四个步骤:
1) 从需求表示中找出用例,通常为动名词短语表示的抽象用例。
2)描述用例的开始和结束状态,用TUCBW和TUCEW表示高层用例。
3)对用例进行分类,描述用例之间,用例和参与者之间的上下文,并画出用例图。
4)对用例进行扩展,将整个过程做成扩展用例
2.1需求分析
用户可以通过CTF学习平台,下载题目的附件并答题,获知自己回答的正确性后还可以发表对题目的看法和评论,当无法做出题目时,可以查看题解。
2.2 抽象用例
参与者:网络用户
- 登录/注册
- 下载附件
- 答题
- 判定正确性
- 发表评论
- 查看题解
2.3 高层用例
通过对用例的边界进行界定,区分开始和结束位置,完整的在模块中实现需求,我们主要使用TUCBW和TUCEW方法
TUCBW:参与者向系统提交的业务请求,用例的起始位置
TUCEW:参与者受到业务请求处理后的结果,用例的结束位置
TUCBW | TUCEW | |
登录 | 用户点击登录按键 | 登录成功返回主页 |
注册 | 用户点击注册按钮 | 注册成功返回登录页面 |
答题 | 用户点击提交题目卡片 | 返回题目描述页面 |
附件下载 | 用户点击下载附件 | 通过浏览器下载附件 |
正确性判定 | 用户点击提交按钮 | 正确返回用户正确信息 |
发表评论 | 用户在评论区输入评论并提交 |
将用户评论显示在评论区 |
查看题解 | 用户点击题解按钮 |
显示对应的题解 |
通过以上的分析,我们可以做出用例图
2.3 扩展用例
我们对一个发表评论业务进行扩展用例分析,充分展现其内容。容易得到,使用的角色是用户,对应处理的系统是评论系统
参与者: 用户 | 系统: 评论系统 |
1. TUCBW: 用户点击发表评论 |
2.系统为用户提供评论输入栏 |
TUCEW: 用户填写评论输入栏的内容 |
3. 业务领域建模
3.1 业务领域建模的基本步骤
业务领域建模是指通过将不同专业背景的成员一起进行讨论,对业务领域进行分析和讨论,最终形成对待开发系统一致认识的过程。
进行业务领域建模主要分为下面四个步骤:
1)收集业务领域的相关信息,主要关注功能需求的层面。
2)头脑风暴,列出重要的业务领域概念,给出概念的属性以及概念之间的关系。
3)对应用业务领域概念进行分类。列出哪些是类,哪些是属性。
4)画UML类图
3.2 收集CTF学习平台的相关信息
- 用户应当能够查看自己做过的题目列表
- 用户可以在答题不顺时查看题解
- 答题结束检查答案
- 题目可能包含附件
- 用户可以按照难度选择题目
- 用户答题之后可以获得一定数量金币
- 可以针对其他用户的评论追评
- 可以删除自己的评论
3.3 列出业务领域概念
列表项目 | 详细 |
名词 | 用户,题目列表,题解,答案,难度,金币,评论 |
及物动词 | 查看,检查,选择,获得,删除,追评 |
所有关系 | 自己的题目列表,其他用户的评论,自己的评论 |
包含关系 | 题目包含附件 |
X is a Y | 暂无 |
3.4 根据表格做UML图
4. 数据模型
通过以上的分析,我们可以将数据部分划分为五张表,分别为用户表,题目表,答案表,评论表和附件表
- 用户表
字段名称 | UserId | UserName | Coins | ProList | ComList |
- 题目表
字段名称 | ProId | ProName | Catagory | Difficulty | Coins | haveFile | comList | Content |
- 答案表
字段名称 | ProId | Answer | WP |
- 评论表
字段名称 | ProId | UserId | ComId | parentId | Content | Date |
- 附件表
字段名称 | ProId | FileId | FILE |
5. 概念原型
概念是人能够对代表某种事物或发展的特点及意义所形成的的思维结论,概念原型则是指一种虚拟的,理想化的软件产品形式
在本项目中,用户可以通过难度和类型选择题目,并通过答题获取金币,在答题过程中可以进行附件的下载,并在题目下方进行评论和讨论。用户也可以通过支付一定数量的金币来查看题解。
6. 总结
我们首先对需求进行分析,并对用例进行建模。而后有进行了业务领域建模加强对整体业务的了解,而且做出UML图。我们也对数据进行建模,最后给出了一个概念原型。