CTF在线答题平台的需求分析与概念原型

  在对工程实践项目进行建模分析前,我先简述一下我的工程实践项目:CTF(Capture The Flag)在线答题平台的搭建。

  CTF起源于1996年DEFCON全球黑客大会,是Capture The Flag的简称。CTF的题型主要包括MISC、CRYPTO、PWN、REVERSE、WEB、APK、IoT等,该工程实践的目的是设计和实现CTF学习平台,搭建一个网络安全相关题目在线答题平台,用户可以在该平台获取题目的相关环境,并由提供的环境找寻到最终的正确的FLAG进行验证。

  注:在CTF比赛中,题解被叫做WriteUp(WP)

2.用例建模   2.1项目用例与参与者分析

  用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

  本项目有两种参与者(Actor):正常用户与管理员用户。

  正常用户可以触发的用例如下所示:(注:->表示扩展用例,: 表示应包含用例)

注册系统

登陆系统->找回密码

答题:查看题目

收藏题目

上传(题目/题解)

点赞(题目/题解)

访问商城:查看个人积分  ->积分兑换商品

查看排行榜

个人中心:查看答题统计,查看收藏题目,查看收到的赞个数

评论

查看题解

  管理员用户可以触发的用例如下所示:

题目管理:增加题目,删除题目,修改题目

审查题目和题解

题解管理:发布题解,删除题解

查看用户

删除评论

发布公告

上架商品

  2.2完整用例图

CTF在线答题平台的需求分析与概念原型

3.业务领域建模 

    业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。

  3.1业务领域建模的过程

    • 第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;

    • 第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;

    • 第三步,给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。

    • 第四步,将结果用 UML 类图画出来。

  3.2业务分析

    本例中,有两种用户:普通用户和管理员,两者自用户类派生而来。()内表示该类包含的属性和方法。

用户类(用户ID,用户名称,密码)

普通用户(积分,获得题目,获得题解,评论,点赞,收藏题目,答题....)

管理员(增加题目,删除题目,修改题目,增加题解,删除题解,修改题解,获得用户信息,删除评论....)

    本例中,还包含问题Question类,并由此衍生出相关的题目解答与评论

问题类(序号,内容,分值,点赞数目....) 

题解(作者,点赞数目,所属问题,内容....)

评论(作者,内容,序号....)

    在线答题平台增设了商城,用户可以通过积分兑换奖品。

商城类(商城名称,包含商品)

商品类(商品名称,图片,价格,余量)            

  3.3 UML图

    我们将上述业务分析中的类通过UML图的方式进行表示,如下图所示:

  

CTF在线答题平台的需求分析与概念原型

CTF在线答题平台的需求分析与概念原型

4.数据模型 4.1物理数据模型    User表 列名   数据类型   数据长度   是否可能为NULL   是否唯一   是否为主键   注释  
User_ID   bigint   16   N   Y   Y   用户注册ID  
User_Name   varchar   16   N   Y   N   用户账号名称  
Passwd   varchar   20   N   N   N   登录密码  
Forks   set   1000   Y   N   N   收藏的题目  
Answer_Question   set   1000   Y   N   N   已解答题目  
Score   bigint   16   N   N   N   积分  
         Admin表 列名   数据类型   数据长度   是否可能为NULL   是否唯一   是否为主键   注释  
Admin_ID   bigint   16   N   Y   Y   管理员ID  
Admin_Name   varchar   16   N   Y   N   管理员账户名称  
Passwd   varchar   20   N   N   N   登陆密码  
Daily_Record   varchar   2000   Y   N   N   工作日志  
       Question表 列名   数据类型   数据长度   是否可能为NULL   是否唯一   是否为主键   注释  
Question_ID   bigint   16   N   Y   Y   问题号码  
Content   varchar   1000   N   Y   N   问题内容  
Author   varchar   16   N   N   N   提供问题作者  
Score   bigint   16   N   N   N   答对问题积分  
WP_List   set   2000   Y   N   N   该问题的题解集合  
Comment   text   1000   Y   N   N   问题的评论集合  
Like_Number   bigint   16   N   N   N   问题的点赞数目  
Type   varchar   16   N   N   N   问题种类  
               Comment表 列名   数据类型   数据长度   是否可能为NULL   是否唯一   是否为主键   注释  
Comment_ID   bigint   16   N   Y   Y   评论ID  
Question_ID   bigint   16   N   N   N   该评论所归属的问题ID  
Author   varchar   16   N   N   N   评论发表者  
Content   text   500   N   N   N   评论内容  
      WP表 列名   数据类型   数据长度   是否可能为NULL   是否唯一   是否为主键   注释  
WP_ID   bigint   16   N   Y   Y   题解ID  
Question_ID   bigint   16   N   N   N   题解所归属的问题ID  
Author   varchar   16   N   N   N   题解发表者ID  
Content   text   3000   N   Y   N   题解内容  
Like_Number   bigint   16   N   N   N   题解点赞数目  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxgxp.html