Loading

NABCD 需求分析

以下是对本次团队项目的 NABCD 需求分析。

Need 需求

概述

当前计算机学院的核心专业课程《操作系统》的理论部分和实验部分建设都趋于成熟,实验平台也需要进一步开发完善。实验平台的主要使用者包含课程教师、助教和选课学生,这是产品的三类典型用户。该平台用于完成课下实验、课上考试等功能。现有的平台对上述功能的实现尚不完善,用户体验不佳。与此同时,校内各类课程平台的建设日臻完善,为了适配核心专业的课程定位,我们计划实现一个供教师、助教、学生使用的统一的课程平台。

对于教师用户群体而言,教师对总体的教学进度进行把控,主要进行:

  • 了解每周上机的通过情况、实验报告提交情况
  • 管理助教权限,便于每年助教人事变动时进行调整

助教用户 需要协助教师开展工作,主要进行实验、考试内容的部署与管理。具体而言,包含如下内容:

  • 在每个新的 lab 开始之前部署好代码仓库,完成教程的编写并部署
  • 定时开启、结束课上考试,并能根据考试的情况及时调整考试时间(如延长考试时间等)
  • 考试过程中发布通知
  • 在讨论区回复学生疑难问题

学生用户 在该产品的使用者中占比最高,主要进行课下实验、课上考试等活动,具体如下:

  • 查看并学习每一 lab 的实验教程
  • 拉取每一 lab 的代码并进行代码编写、提交、评测
  • 根据评测反馈的结果对已有的代码进行修改,并再次评测
  • 完成课上考试(操作流程与课下实验相似)
  • 提交实验报告
  • 完成挑战性任务
  • 在讨论区发布问题

需求采访与交流

我们对部分用户的具体需求进行了采访交流。

采访对象:wty(《操作系统》课程教师)

  • gyp:请问您在使用现有的 OS 课程平台时,觉得有哪些可以改进的地方?
  • wty:目前基本功能都实现了,但整体还是太分散,收同学的实验报告还要去课程中心。
  • wty:还有一方面,每次上机之后,我想看同学得分的分布情况不太方便,希望能有直观一些的图表。

助教讨论:yzr、gyp、ptw(OS 助教,小组成员)

  • yzr:在考试的时候要是发个通知,都不能预览,有时候还不如直接去考场通知。
  • gyp:考试需要延长时间的情况下,修改考试时间比较麻烦;另外,考试开始也是助教手动操作的,应该改成助教设定好时间后,自动开始、结束考试。
  • yzr:评测系统也需要改进。目前这门课已经开到其他学院去了,现有的评测机有点不够,应该要设计成一个能够动态扩充的集群。
  • ptw:教程部分可以参考目前最新的方式,用 Markdown 写好之后 push 到服务器,然后用 CI 调用 mkdocs 编译出来。

采访对象:2020 级选修《操作系统》课程的同学

  • fxj:请问在 OS 的课程平台使用上,你觉得有什么不太方便或者可以改进的地方吗?
  • 同学 A:上机的时候看题目太不方便了,有时候都打不开。
  • 同学 B:评测的时候输出的信息太多了,但是里面有用的信息其实只有几行,查看不太方便。
  • 同学 B:讨论区我看的不太多,但是就我看过的几篇而言,都是给的链接跳转到博客看的,不知道是不是排版不太方便。
  • yzr:目前的讨论区确实排版不太好,Markdown、公式都还不支持。

Approach 方法

为了满足用户的使用需求,我们将要实现如下的功能:

  • 统一的课程平台,将三类典型用户所需的功能集成到同一站点
    • 实验主体、报告提交、教程查看、讨论区等功能原本分散在不同平台。而本平台将所有的功能整合到统一站点,无需在多个平台间来回切换。
  • 直观的信息展示
    • 无论是教师、助教还是学生,所有的统计信息和历史记录都可以在可视化界面中查看,各类统计指标图形化展示,一目了然。
  • 可动态扩充的评测系统
    • 课程正在向其他系扩展,学生越来越多,将建立一个便于扩展的评测机集群,满足新的性能需求
  • 更便捷的后台管理功能
    • 对助教权限进行分组,后续修改助教权限直接依照分组完成,无需逐个手动设定
    • 教程实现自动编译,无需手动导入教程网站
    • 考试信息的修改更加方便,灵活调整考试时间

我们将采用如下的技术来实现上述功能:

  • 前端
    • Vue.js 框架
    • echarts 数据可视化
    • mkdocs 实现教程的现代化管理与自动化编译
    • mavonEditor 实现 Web 端 Markdown 编辑与实时预览
  • 后端
    • openresty 代理请求
    • Golang + Gin 框架
    • Postgresql 主数据库
    • Redis 缓存数据库
  • 评测
    • Golang + Shell
    • Docker 容器技术
    • 分布式可扩容的评测机

Benefit 好处

新上线的 OS 课程平台,将会使用户群体获得如下好处:

用户 好处
教师 - 成绩展示更加直观,采用图标形式展示,通过情况等可一目了然
- 管理助教权限更加容易
- 集中的报告、实验平台,便于最终成绩管理
助教 - 发布通知可预览
- 通过可视化接口修改考试信息
- 可根据课程人数的增加,轻易调整评测机数量
- 教程统一管理,上传和编译更加容易
学生 - 讨论区支持使用 Markdown 和数学公式
- 可视化查看历次提交的 timeline trace 及其评分,便于查看课程进度
- 将教程并入平台,考试时无需来回切换

Competitors 竞争

本品的竞品是正在使用的 OS 课程平台。从教师、助教和学生三类典型用户的使用体验上,原有的课程平台存在如下问题:

  • 教师体验:
    • 考试通过情况缺少直观展示
    • 实验报告提交与现有系统割裂感较强
    • 权限管理依托现有项目,与课程实际需求脱节
  • 助教体验:
    • 没有集中的通知发送功能
    • 编辑文档、信息等无法预览
    • 考试、评测管理机制自动化缺失、鉴权简单
  • 学生体验:
    • 评测机制实现方式原始、维护困难
    • 课下上机、考试时题目查看不便
    • 学生难以查看自己的课程进度
    • 讨论区发送消息时,无法插入 Markdown 或数学公式

上述问题可整理为:

  • 平台集成度不够高
  • 可视化、自动化程度低,信息展示不友好
  • 平台可扩展性不好,权限管理困难

而本平台开发的宗旨在于解决上述问题,因此将所有功能集成到同一平台。完善了数据的可视化功能,并让部分操作也可通过可视化方法完成,无需在控制台下输入指令。重新构建了评测机系统和权限管理系统,让平台更加完善、健壮。

Delivery 交付

本产品的主要用户是《操作系统》课程教师、课程助教与选修了该课程的学生,用于满足课程的实验部分平台需求。开发阶段,该平台将部署于课程组提供的临时开发服务器上。完成开发后,将由《操作系统》课程组教师验收,并迁移到《操作系统》课程组的生产服务器上投入使用。

Data 数据

发布阶段中,总活跃量达到 500。其中,日活跃用户约占 30%,即 150 日活跃用户量。

posted @ 2022-04-09 17:33  大本钟下你和我  阅读(293)  评论(1编辑  收藏  举报