项目 | 内容 |
---|---|
2020春季计算机学院软件工程(罗杰 任健) | 博客园班级博客 |
作业要求 | 功能规格说明书 |
我们在这个课程的目标是 | 在团队合作中锻炼自己 |
这个作业在哪个具体方面帮助我们实现目标 | 项目功能规格制定与说明 |
一、项目简介
- 项目名称:基于 GitLab 的软件工程教学实践平台设计与实现 。
- 项目内容:设计和实现一个基于 GitLab 的软件工程教学实践平台,用于支持软件工程课上的实践项目,主要包括:个人项目、结对项目和团队项目。将原来针对个人项目和结对项目设计的自动化测试系统迁移到GitLab 中,构建一个支持对代码签入进行实时代码风格分析,自动化测试和反馈的功能模块。同时针对团队项目,基于 GitLab 已有的 Scrum 插件,集成任务分配,项目进度管理,实现对学生团队项目进展的有效追踪和报告,同时也提供学生 Scrum 例会报告的自动生成功能,方便团队 PM 对项目的管理。
- 项目开发者:北航2015级罗继东,北航ASE_2020_the_Agiles团队进行完善。
二、概念说明
概念 | 解释 |
---|---|
GitLab | 用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 |
燃尽图 | 用于表示剩余工作量的工作图表,横轴表示时间,纵轴表示工作量。 |
三、典型用户和场景
菜鸡C
用户信息 | 用户情况 |
---|---|
姓名 | 菜鸡C |
身份 | 某学院选了软件工程课的学生 |
情况 | 啥也不会,啥也想学。 |
动机 | 希望每一次作业有一个专门答疑解惑的平台,借大家之力解决问题。 |
困难 | 可能在作业中任何一个环节遇到困难。 |
典型场景 | 登录网站论坛,在答疑板块发帖等大佬解答。 |
典型描述 | 啥玩意啊?咋回事啊?那咋整啊?大佬帮帮忙啊。 |
比例 | 15% |
重要性 | ★★★★★非常重要,平台的本来目的就是为了帮助同学们更好地学习,不断提问不断学习,菜鸡也能蜕变成大佬,也会向其他系的人推荐这门课。 |
大佬D
用户信息 | 用户情况 |
---|---|
姓名 | 大佬D |
身份 | 一等一的大佬 |
情况 | 善于总结,乐于分享。 |
动机 | 希望有个地方能保留自己的踩坑记录,帮助他人也警示自己。 |
困难 | ??? |
典型场景 | 登录网站论坛,在心得板块发布自己的经验教训,也会时不时去答疑板块回答问题。 |
典型描述 | 同样的坑我不会掉进去两次! |
比例 | 15% |
重要性 | ★★★★重要,他们发布的内容能帮助其他人更好地学习。 |
咕咕G
用户信息 | 用户情况 |
---|---|
姓名 | 咕咕G |
身份 | DDL选手 |
情况 | 不到最后绝不开工。 |
动机 | 希望治好自己的懒癌,最后熬夜爆肝真的难受,但不到最后时刻真的紧张不起来。 |
困难 | 拖延症,懒癌,DDL快到了,才开始发功,虽然最后爆肝,但多数时候没能按时完成任务。 |
典型场景 | 发布任务后若不每天浏览任务页面就会收到提醒邮件,随着DDL逼近会不断收到提醒邮件。 |
典型描述 | 下次一定不咕! |
比例 | 8% |
重要性 | ★★★★重要,如果能让他们按时完成任务,对于他们以及他们的团队的学习都是有莫大帮助的。 |
陆仁J
用户信息 | 用户情况 |
---|---|
姓名 | 陆仁J |
身份 | 普普通通的学生 |
情况 | 各项能力都处于平均水平。 |
动机 | 不想让自己的努力因为一些小问题而化为泡影,每次作业至少拿个基础分。 |
困难 | 在修改时粗心大意导致再次提交的作业存在问题。提交后发现了代码中的问题,本地Debug修改后,没有将应用程序改成在Release环境下生成就提交。 |
典型场景 | 提交代码后进行自动化测试,根据测试结果对代码风格以及bug修复后将高质量的版本提交。 |
典型描述 | 今后再也不用担心代码内的小问题! |
比例 | 50% |
重要性 | ★★★★★非常重要,占了一半的用户量,如果觉得这个平台好用,也会更愿意学这门课,学完之后也会更愿意向学弟学妹们推荐这门课。 |
经理P
用户信息 | 用户情况 |
---|---|
姓名 | 经理P |
身份 | 团队中的PM |
情况 | 将每次例会的情况进行记录,为每个成员分配任务,监督各成员的进度,管理项目总进度。 |
动机 | 节省自己的时间,更好地监督各个成员的进度,一切为了团队! |
困难 | 整理每日例会的报告和画燃尽图太费劲,成员进度落后的情况不能及时发现。 |
典型场景 | 登录网站,将例会内容填入模板,自动生成例会报告以及燃尽图。进入成员进度页面,查看各成员进度。 |
典型描述 | 咕咕G,快给我干活! |
比例 | 7% |
重要性 | ★★★★★非常重要,对于每日例会报告和燃尽图给出现成模板,能减少PM的工作量,PM就会有更多的时间来进行规划和监督。 |
助教Z
用户信息 | 用户情况 |
---|---|
姓名 | 助教Z |
身份 | 软件工程课的助教 |
情况 | 监督进度,批改作业。 |
动机 | 去每一个人仓库里拉代码太麻烦,部分代码质量低。 |
困难 | 课余时间当助教,比较忙。 |
典型场景 | 登陆网站助教入口,在具体的作业项目中就能得到所有提交的代码,评测直接由平台进行,只需要提供测试数据就能得到结果排名。进入各项目进度窗口,查看各个组项目进度,对进度慢的组进行提醒。 |
典型描述 | 测试自动化,效率提高一千八! |
比例 | 3% |
重要性 | ★★★★★非常重要,自动化测试能极大程度减小助教工作量,助教就可以节省时间帮助更多的同学。 |
教师L
用户信息 | 用户情况 |
---|---|
姓名 | 教师L |
身份 | 软件工程课的老师 |
情况 | 发布作业,答疑解惑。 |
动机 | 微信区里同学们问的问题大部分是重复的。 |
困难 | 比较忙。 |
典型场景 | 登陆网站论坛,查看同学们提出的问题,予以解答。 |
典型描述 | 答一疑,解千惑。 |
比例 | 2% |
重要性 | ★★★★★非常重要,如果老师觉得这个平台好用,今后就会继续使用这个平台,也可能会向其他老师推广。 |
四、界面原型设计与交互步骤
界面 | 交互步骤 | 原型设计 |
---|---|---|
项目界面 | 1.点击”Clone“按钮,可克隆项目 2.点击各个添加按钮,可添加相应的文件、README、LICENSE、CHANGELOG、CONTRIBUTING 3.点击右上角星形按钮,可添加星标 4.点击右上角铃铛按钮,可设置通知模式 |
|
项目链接 | 1.列表显示Your projects、Starred projects、Explore projects 2.点击项目名即可跳转到项目界面 3.点击“New project"按钮,可创建新项目 |
|
班级列表 | 1.列表显示“我的班级”,可进行编辑、退出班级、删除操作 2.列表显示“所有班级”,可进行编辑、退出班级、删除操作 3.点击“新建班级”,可跳转至创建班级界面 4.点击班级名,可跳转至班级界面 |
|
创建班级 | 1.用户在此界面,输入班级名称、班级地址和班级描述的内容,并选择初始化设置 2.当用户填写了全部必填信息后,点击“创建”按钮,即可创建班级,否则提示“请完整填写必填信息” |
|
班级界面 | 1.列表显示班级的学生、教师或助教、个人项目、结对项目和团队项目 2.点击“添加学生”、“添加教师或助教”按钮,可跳转至相应的添加界面 3.点击“班级博客”按钮,可跳转至该班级对应的班级博客 4.点击“转到GitLab”按钮,可跳转至该班级对应的GitLab |
|
添加老师或助教 | 1.列表显示现有的老师和助教 2.输入用户名和姓名,点击添加按钮,即可添加一名教师或助教 |
|
创建团队事件 | 1.用户在此界面,输入团队事件名称、团队事件描述和团队事件代码的内容,点击“创建”按钮,即可创建团队事件 2.点击“团队事件说明”,可阅读该说明 3.若信息填写不完整,提示“请完整填写必填信息“ * 创建个人项目和结对项目和创建团队项目类似 |
五、功能描述及验收验证标准
功能 | 描述 | 验收验证标准 |
---|---|---|
用户登录 | 输入账号密码登录 | 1. 用户输入不合法时及时显示的提示信息。 2. 检查账号是否存在及密码是否匹配。 3. 登录成功后转到用户界面。 |
用户注册 | 用户注册新账号 | 1. 用户输入不合法时即时显示提示信息。 2. 识别用户两次输入的密码是否相同。 3. 检查用户输入的注册信息是否正确、是否和其他账号有冲突,如有问题及时提示。 |
用户界面 | 用户登录成功后显示的总览界面 | 1. 不同类型的用户展示不同的信息,提供不同的功能入口。 2. 展示班级列表。 3. 展示任务列表。 4. 展示学生项目列表。 5. 功能的导航栏,供用户快速在各种功能间跳转。 |
班级界面 | 展示、管理班级相关信息 | 1. 不同类型的用户展示不同的信息。 2. 展示班级活动列表。 3. 展示班级任务列表。 5. 提供班级管理接口:学生管理等。 |
任务界面 | 展示、管理任务相关信息 | 1. 展示任务的起止时间。 2. 展示任务的具体要求。 3. 提供提交任务的接口。 |
活动界面 | 展示、管理活动相关信息。 | 1. 展示活动起止时间。 2. 展示活动的具体内容。 |
学生个人界面 | 展示、管理学生个人信息。 | 1. 管理学号、班级等信息。 2. 展示学习情况。 |
教师个人界面 | 管理、展示教学情况。 | 1. 学生学习情况展示。 2. 创建、管理班级的接口。 3. 发布、管理任务的接口。 4. 发布、管理活动的接口。 |
助教个人界面 | 管理、展示教学情况。 | 1. 学生学习情况展示接口。 2. 发布、管理任务的接口。 3. 发布、管理活动的接口。 |
作业测评界面 | 面向个人、结对项目的自动化测评界面。 | 1. 发布DDL提醒的接口。 2. 作业提交接口。 3. 作业代码风格检查、自动化测试。 4. 作业测试结果反馈。 5. 作业情况概览的展示接口。 |
创建班级界面 | 教师可在该界面创建班级 | 1. 填写班级相关信息。 2. 拉取学生和助教。 3. 检查班级信息是否合法、拉取的学生助教是否存在并及时提示。 |
创建任务界面 | 教师和助教可在该界面创建任务 | 1. 确定任务起止时间。 2. 填写任务详情。 3. 指定任务对应群体。 4. 指定提交方式。 5. 检查任务信息是否合法、指定的任务对应群体是否存在等。 |
创捷活动界面 | 教师和助教可在该界面创建活动 | 1. 确定活动起止时间。 2. 填写活动详情。 3. 指定活动负责人。 4. 指定活动对应群体。 5. 检查活动信息是否合法、指定的活动对应群里或负责人是否存在等。 |
学生团队界面 | 展示、管理学生团队及学生项目相关信息。 | 1. 冲刺、项目进度:燃尽图、团队任务看板、版本管理的展示管理接口。 2. 团队信息的展示管理接口。 3. 任务分配的展示管理接口。 4. 贡献分配的展示管理接口。 5. 团队博客发布情况的展示管理接口。 6. 团队会议纪录的展示管理接口。 |
团队任务创建界面 | 学生团队创建任务 | 1. 确定任务起止时间。 2. 填写任务详情。 3. 指定任务对应群体。 4. 指定完成标志、验证标准。 5. 检查任务信息是否合法、指定的任务对应群体是否存在、是否是团队成员等。 |
团队活动创建界面 | 学生团队创建活动 | 1. 确定活动起止时间。 2. 填写活动详情。 3. 指定活动负责人。 4. 指定活动对应群体。 5. 检查活动信息是否合法、指定的活动对应群体或负责人是否存在、是否是团队成员等。 |
贡献分配界面 | 学生团队分配共享 | 1. 指定贡献分配对象。 2. 确定量化贡献大小。 3. 确定贡献分配的名目及详细信息。 4. 检查贡献信息是否合法、指定的分配对象是否是存在、是否是小组成员等。 |
六、产品可能的副作用
- 教师学生使用困难:项目推进时高频和课程组及学生沟通,从而更加贴近课程流程、更加用户友好。
- 限制课程的灵活性:对平台的设计进行打磨,从而在不影响功能的前提下获得更大的灵活性。