• [敏捷软工团队博客]功能规格说明书


    项目 内容
    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. 检查贡献信息是否合法、指定的分配对象是否是存在、是否是小组成员等。

    六、产品可能的副作用

    • 教师学生使用困难:项目推进时高频和课程组及学生沟通,从而更加贴近课程流程、更加用户友好。
    • 限制课程的灵活性:对平台的设计进行打磨,从而在不影响功能的前提下获得更大的灵活性。
  • 相关阅读:
    Linux的内存管理之道
    Ramdisk根文件系统启动Linux(单独的ramdisk镜像)
    详解 ARM Linux启动过程
    晒晒我的vimrc配置【不定期更新】
    [Python入门及进阶笔记]Pythondecorator装饰器小结
    谷歌10个用户体验设计原则
    用busybox创建基于Linux2.6.24内核的nfs根文件系统
    [Python入门及进阶笔记]Python魔术方法小结(方法运算符重载)
    mysql慢查询
    关于android的各种disk images(看过的讲android image比较细致的好文)
  • 原文地址:https://www.cnblogs.com/the-agiles/p/12652679.html
Copyright © 2020-2023  润新知