项目 内容
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人。

电梯演说

各位领导/合作伙伴:

当前软件工程的教学缺乏统一平台,教学资源管理分散,我们的软件工程教学管理平台旨在将博客、文档、会议记录、进度监视、小组合作、代码仓库、持续集成、评测等诸多课程教学需要的功能进行有机整合,既为参与课程的同学们提供更加舒适便捷的课程体验,又为老师和助教提供了学生学习情况监督和成绩管理的高效工具。我们的平台不仅适用于某一所高校,鉴于软件工程教学内容的相似性,我们会对平台进行不断的迭代和完善,让它获得更多的用户,帮助更多的老师和同学提高软件工程的教学水平和训练效果,同时我们希望能够将该平台作为开源项目,让更多的人参与并完善,保持项目的生命力。我们相信,我们的项目能够推动软件工程教学的改革和创新,为软件工程的教学事业注入强大的动力。

[敏捷软工团队博客]项目介绍 & 需求分析 & 发布预测的更多相关文章

  1. [敏捷软工团队博客]Beta阶段项目展示

    团队成员简介和个人博客地址 头像 姓名 博客园名称 自我介绍 PM 测试 前端 后端 dzx 秃头院的大闸蟹 大闸蟹是1706菜市场里无菜可卖的底层水货.大闸蟹喜欢音乐(但可惜不会),喜欢lol(可惜 ...

  2. [敏捷软工团队博客]The Agiles 团队介绍&团队采访

    项目 内容 课程:北航-2020-春-敏捷软工 博客园班级博客 作业要求 团队作业-团队介绍和采访 团队名称来源 The Agile is The Agile. 敏捷就是敏捷.我们只是敏捷的践行者罢了 ...

  3. [敏捷软工团队博客]Beta阶段使用指南

    软件工程教学实践平台使用指南 项目地址:http://20.185.223.195:8000/ 项目团队:the agiles 进入界面如图: 目录 软件工程教学实践平台使用指南 学生端 登录 iss ...

  4. [敏捷软工团队博客]Beta阶段事后分析

    设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的问题是:现在的软工课程的作业分布在博客园.GitHub上,没有一个集成多种功能的一体化 ...

  5. [敏捷软工团队博客]Beta阶段发布声明

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 Beta阶段发布声明 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 对Bet ...

  6. [敏捷软工团队博客]Beta设计和计划

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 Beta设计和计划 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 对Beta ...

  7. [敏捷软工团队博客]Beta阶段测试报告

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 Beta阶段测试报告 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 对Bet ...

  8. [no_code团队]项目介绍 & 需求分析 & 发布预测

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 团队项目选择 我们在这个课程的目标是 在团队合作中提升软件开发水平 这个作业在哪个具体方面帮助我们实现目标 进行项目 ...

  9. 2020BUAA软工个人博客作业-软件案例分析

    2020BUAA软工个人博客作业-软件案例分析 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分 ...

随机推荐

  1. AntDesign VUE:上传组件自定义限制的两种方式(Boolean、Promise)

    AntD上传组件 AntDesign VUE文档 第一种方式 beforeUpload(file) { let isLt = true if (filesSize) { isLt = file.siz ...

  2. 前后端数据交互(八)——请求方法 GET 和 POST 区别

    WEB 开发同学一看 get 和 post 请求方法的区别,第一感觉都是 So easy! 学习ajax.fetch.axios时,发送网络请求携带参数时,都需要分别处理get和post的参数.所以我 ...

  3. spark集群的构建,python环境

    个人笔记,问题较多 符号说明 [] 表示其中内容可以没有 su [root] 获取root权限 vi /etc/sudoers 1.点击I或Insert获得插入权限 2.在root ALL=(ALL) ...

  4. 5.21学习总结——android开发实现用户头像的上传

    最近在做个人头像的上传,具体是能调用摄像头和从相册进行选择.本篇文章参考的我的同学的博客,大家有兴趣可以去原作者那里去看看: Hi(.・∀・)ノ (cnblogs.com) 1.使用glide进行图片 ...

  5. 设置自启动nginx(适用于其他软件)(LinuxDeploy里的Ubuntu)

    LinuxDeploy里的Ubuntu自启动nginx(适用于其他软件) 网上的教程是这样的,基本能用 1.编写脚本(这个文件及其内容安装Nginx后自动生成,没有的话内容自己Google) $ su ...

  6. 学习PHP中的国际化日期格式化操作

    对于国际化功能来说,日期相关的格式化操作也是一块重头戏,毕竟不同的时区,不同的国家对于日期的表示方式都会有些不同.今天我们主要来学习的就是国际化地表示日期相关的信息内容. 日期格式化 首先就是最直接的 ...

  7. PHP中一个好玩的性别判断扩展

    今天我们来学习的一个扩展同时它也是非常小众的一个扩展,其实说白了,或许是根本没什么人用过得扩展.当然,我们也只是出于学习的目的来看看这个扩展到底是什么东西,有什么好玩的地方. 扩展说明 Gender ...

  8. 学习PHP中的国际化功能来查看货币及日期信息

    做为一门在世界范围内广泛使用的编程语言,国际化能力往往是衡量一个编程语言是否能够大范围流行的重要内容.特别是对于 PHP 这种以 Web 页面编程为主战场的语言来说,国际化能力更是重中之重.在 PHP ...

  9. JS高级面试题思路(装箱和拆箱、栈和堆、js中sort()方法、.js中Date对象中的getMounth() 需要注意的、开发中编码和解码使用场景有哪些)

    1.装箱和拆箱: 装箱:把基本数据类型转化为对应的引用数据类型的操作: var num = 123 // num var objNum = new Num(123) // object console ...

  10. 使用Gitmoji进行git commit的快速查阅指南

    目录 前言 1. 查阅方法:脚本法 1.1 利用 VS Code 编辑多行文本快速写脚本文件 1.2 给脚本添加可执行权限 1.3 修改环境变量 PATH 使脚本在所有路径下都可以执行(全局执行) 2 ...