软件设计描述A1

数据库设计与用户界面设计
一、AWD工具数据库设计四个步骤

  1. 数据库需求分析
    首先需要明确AWD工具需要管理的数据内容和功能需求。例如:用户信息、比赛信息、靶机信息、攻击日志、得分记录等。通过与用户沟通,确定系统需要存储哪些数据、数据间的关系以及数据操作需求。例如:一个AWD比赛需要记录参赛队伍、靶机状态、flag提交记录等。

  2. 概念结构设计
    基于需求分析结果,使用E-R图描述实体及其关系。主要实体可能包括:用户(User)、比赛(Competition)、靶机(Target)、题目(Challenge)、Flag、得分(Score)等。例如:
    [User]---1---< Participate >---N---[Competition]
    [Competition]---1---< Has >---N---[Target]
    [Target]---1---< Contains >---N---[Challenge]
    [User]---< Submit >---[Flag]

  3. 逻辑结构设计
    将E-R图转换为关系模式,确定表结构和字段:
    • 用户表(Users): user_id(PK), username, password, email, role
    • 比赛表(Competitions): comp_id(PK), name, start_time, end_time, status
    • 靶机表(Targets): target_id(PK), comp_id(FK), ip, port, status
    • 题目表(Challenges): challenge_id(PK), target_id(FK), name, description, points
    • Flag表(Flags): flag_id(PK), challenge_id(FK), content, is_active
    • 提交记录表(Submissions): sub_id(PK), user_id(FK), flag_id(FK), submit_time, result
    用户(User)参与比赛(Competition),一个用户可以参与多个比赛,一个比赛有多个用户参与,关系为多对多。

  4. 比赛(Competition)包含靶机(Target),一个比赛可以有多个靶机,一个靶机只属于一个比赛,关系为一对多。

  5. 靶机(Target)包含题目(Challenge),一个靶机可以有多个题目,一个题目只属于一个靶机,关系为一对多。

  6. 用户(User)提交 Flag,一个用户可以提交多个 Flag,一个 Flag 只能由一个用户提交,关系为一对多。

  7. 题目(Challenge)关联 Flag,一个题目对应一个 Flag,一个 Flag 只属于一个题目,关系为一对一。

  8. 用户(User)有得分(Score),一个用户对应一个得分,一个得分只属于一个用户,关系为一对一。

  9. 比赛(Competition)有得分(Score),一个比赛对应多个得分(不同用户在该比赛中的得分),一个得分只属于一个比赛,关系为一对多。

  10. 物理结构设计
    根据性能需求选择存储引擎(如InnoDB),建立索引(如在Submissions表的user_id和submit_time上建立索引),考虑分区策略(如按时间分区比赛数据),优化查询性能。
    二、用户界面需求分析与设计
    用户界面需求分析

  11. 用户特性分析:AWD工具用户主要是网络安全竞赛选手和裁判,具有技术背景但时间压力大,需要快速获取关键信息。

  12. 功能任务分析:主要功能包括比赛状态查看、靶机管理、flag提交、得分排名、实时通知等。

  13. 界面类型确定:采用Web界面,包含仪表盘、列表视图和详细视图,支持实时更新。
    界面设计原则应用

  14. 合适性:界面布局应突出关键信息,如比赛倒计时、当前排名、靶机状态等。使用红绿色表示靶机在线/离线状态。

  15. 简便易操作性:flag提交设计为醒目的一键式操作,减少输入步骤。常用功能如"刷新状态"放在固定位置。

  16. 交互控制:提供实时通知功能,当靶机状态变化或收到新flag反馈时弹出提示。支持快捷键操作。

  17. 媒体组合:结合图表(排名变化趋势图)、颜色编码(不同难度题目用不同颜色)、图标(直观表示状态)等多种媒体形式。
    示例设计
    主界面分为三个区域:

  18. 顶部导航栏:比赛名称、剩余时间、用户信息

  19. 左侧面板:靶机列表,显示IP、状态、分值,可点击查看详情

  20. 主内容区:上方为实时排名表格,下方为flag提交表单和操作日志
    采用响应式设计,确保在PC和移动设备上都能良好显示。使用AJAX实现局部刷新,减少页面重载。关键操作如flag提交提供即时反馈,避免用户不确定操作是否成功。

posted @ 2025-05-07 13:05  无聊1111  阅读(47)  评论(0)    收藏  举报