[敏捷软工团队博客]项目介绍 & 需求分析 & 发布预测
项目 | 内容 |
---|---|
2020春季计算机学院软件工程(罗杰 任健) | 博客园班级博客 |
作业要求 | 团队项目选择 |
我们在这个课程的目标是 | 在团队合作中锻炼自己 |
这个作业在哪个具体方面帮助我们实现目标 | 了解项目整体情况、进行需求分析 |
项目介绍
-
项目名称:基于GitLab的软件工程教学实践平台
-
项目内容:
- 设计和实现一个基于 GitLab 的软件工程教学实践平台,用于支持软件工程课上的实践项目,主要包括个人项目、结对项目和团队项目。
- 将原来针对个人项目和结对项目设计的自动化测试系统迁移到 GitLab 中,构建一个支持对代码签入进行实时代码风格分析,自动化测试和反馈的功能模块。
- 针对团队项目,基于GitLab 已有的 Scrum 插件,集成任务分配,项目进度管理,实现对学生团队项目进展的有效追踪和报告,同时也 提供学生 Scrum 例会报告的自动生成功能,方便团队 PM 对项目的管理。
NABCD分析
1.Need,需求分析
每个成熟的课程都有功能完善的管理测评系统。 —— 沃兹·基索德
敏捷软工课程是北航计算机学院的特色课程。不同于传统软工课程“面向图书/教务管理系统”的设计思路,敏捷软工课程的设计思路更加贴近业界实践。敏捷软工是当前业界的重要方法,集合业界多年的实践经验。课程组要求学生小组构建出实用且创新的任务,从而充分锻炼学生实际的软件工程能力。
理论上贴近前沿,实践上面向实用。这样的课程设计即对学生有很高的要求,也对课程组有很高的要求。当前课程组组织管理学生实践的工具集为:微信群 + 班级博客园 + GitHub. 这三个工具相互独立,老师和助教需要对学生在三个工具中呈现出的工作进行整合。这种管理方式即耗费精力,也限制教学效果。
通过以上分析以及我们在教学中的感受,软件工程课程实践管理系统的具体需求如下:
- 统一集成管理:课程组发布任务,学生提交工作、课程组反馈、评分度量。
- 自动化测试与自动化分析:个人项目和结对项目的自动化测试、自动化分析学生的作业。
- 信息集中管理:个人、班级、结对、团队的信息汇总。
- 不同用户视图:学生入口、助教入口及教师入口。
敏捷软工课程的重点在于团队项目,我们将对团队项目进行具体的需求分析:
- 流程管理:项目计划、冲刺、任务分配等。
- 每日例会:提供每日例会框架,减小重复工作。
- 项目进度管理:完成进度、进展预测、时间告警、燃尽图等。
- 团队管理:角色分配、贡献统计、团队时间记录等。
- 测试支持:支持提交单元测试样例从而完成自动化测试。
2.Approach,方法
实现方法分为前端和后端两部分
- 前端:基于Yan实现前端依赖管理、采用Vue.js实现网页视图页面、采用Element UI作为UI框架、使用Echarts作为图标绘制组件。
- 后端:基于Ruby on Rails实现后端接口、使用Bundler管理后端中的依赖库、采用PostgreSQL作为数据库、使用Nginx作为HTTP服务器和反向代理服务器、使用Webpacker集成前后端。
- GitLab集成:自动对学生提交到GitLab中的代码进行拉取、测试。
3.Benefit,好处
对于课程组
- 统一连贯的任务流程,减少整合学生工作所需的精力。
- 自动化测试个人、结对项目,减少工作量。
- 能够对学生个人和团队进行细粒度、个性化的分析。
对于学生
- 信息集成于一个平台中,减小遗漏信息的概率。
- 能得到课程组及时的反馈。
- 强大的的团队项目管理。
4. Competitors,竞争者
在北航中并没有竞争对手,但是在其他高校中有相似的系统。
- 清华大学于2014年在本科软件工程课程中推广使用在线实践教学平台。该平台集成 Jenkins,SonarQube等工具,配合一套评分度量机制,能够为学生提供即使反馈和详细评估。该平台是清华大学软工课程线上线下相结合的教学方法的体现。
- 清华大学针对数据科学教学开发DataLab教学平台,提供线上开发环境、Jupyter 接口和自动评分等功能。该平台将软件工程引入数据科学教学中,能同时应对多种类型的数据,让学生的注意力集中在数据科学中的核心算法上。从学生行为数据的分析中能够看出 DataLab 平台显著提高了数据科学教学的效率。
5.Delivery,发布
- 如果项目成功,会在下一届北航敏捷软工课程中得到应用。
- 如果在北航敏捷软工课程中应用成功,可以尝试推广到其他国内高校。
用户量评估
-
用户画像:使用这个平台的用户主要学习软件工程的学生以及从事软件工程教学的老师和助教。
-
用户量前景分析:
- 该平台的第一批用户预计是北航计算机学院大三选择罗杰和任健老师的敏捷软工的同学,人数在100人左右。
- 经过一学期的用户反馈与系统调整,考虑到软件工程教学内容以及对平台功能要求的相似性,在下一学期可以推广到北航计算机学院大三所有选择软件工程的同学,人数在300人左右。
- 在完成北航校内普及之后,可以向更多开设软件工程的高校进行推广,并不断进行迭代,预计每学期人数会增加300人。
- 更进一步,借助该平台,可以考虑与课程组合作,在中国大学MOOC上开设软件工程校级精品课,并借此将该平台进一步推广到更多想要学习软件工程的用户,预计每学期会增加600人。
- 最后,我们可以考虑将其转化为一个开源项目,使得项目在各高校之间充分共享,不断迭代与完善,保持项目的生命力。
-
用户量评估:
这里我们需要区分总用户量与活动用户量。总用户量表示在我们的平台上注册的总用户数量,活动用户量为当前实际在使用该平台的用户数量。
-
总用户量
根据对用户量前景的分析中所提到的五个阶段,可以取4年为时间单位,则4年后用户量为100+300*3+300*2+600=2200人。并且会随着学期的迭代每年会增长约1200人。
-
活动用户量
对用户量前景的分析提到的前4个阶段中,1、2由于每年学生数量大致相同,所以对活动用户量的增长没有贡献,3由于涉及到高校之间的推广,每推广到一所新的高校,都会产生活动用户量的增加,同时4也会有推广效果。因此预计4年后的活动量为100+300+300*2+600=1600人。并且会随着学期的迭代每年会增长约500人,其中高校间的推广300人,MOOC平台的推广200人。
-
电梯演说
各位领导/合作伙伴:
当前软件工程的教学缺乏统一平台,教学资源管理分散,我们的软件工程教学管理平台旨在将博客、文档、会议记录、进度监视、小组合作、代码仓库、持续集成、评测等诸多课程教学需要的功能进行有机整合,既为参与课程的同学们提供更加舒适便捷的课程体验,又为老师和助教提供了学生学习情况监督和成绩管理的高效工具。我们的平台不仅适用于某一所高校,鉴于软件工程教学内容的相似性,我们会对平台进行不断的迭代和完善,让它获得更多的用户,帮助更多的老师和同学提高软件工程的教学水平和训练效果,同时我们希望能够将该平台作为开源项目,让更多的人参与并完善,保持项目的生命力。我们相信,我们的项目能够推动软件工程教学的改革和创新,为软件工程的教学事业注入强大的动力。