项目 内容
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. 我用MRS-ClickHouse构建的用户画像系统,让老板拍手称赞

    摘要:在移动互联网时代,用户数量庞大,标签数量众多,用户标签的数据量巨大.用户画像系统中,对于标签的存储和查询,不同的企业有不同的实现方案.当前主流的实现方案采用ElasticSearch方案.但基于 ...

  2. 1.docker概述及其历史

    一. 为什么会出现docker? 不用说, 肯定是时代进步的产物. 那么, 他为什么能火? 一定是解决了痛点问题. docker也不是一下子就火起来了, 他的火也是有一个过程的, 我们先来看看为什么会 ...

  3. 【转】shell脚本中echo显示内容带颜色的实现方法

    shell脚本中echo显示内容带颜色的实现方法 shell脚本里使用echo输出颜色  

  4. 安装docker遇到:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed

    执行 yum install docker-ce docker-ce-cli containerd.io 提示: 错误: 问题: package docker-ce-3:19.03.8-3.el7.x ...

  5. 深入xLua实现原理之Lua如何调用C#

    xLua是腾讯的一个开源项目,为Unity. .Net. Mono等C#环境增加Lua脚本编程的能力.本文主要是探讨xLua下Lua调用C#的实现原理. Lua与C#数据通信机制 无论是Lua调用C# ...

  6. Sentry 监控 - Environments 区分不同部署环境的事件数据

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  7. CORS跨域请求规则以及在Spring中的实现

    CORS: 通常情况下浏览器禁止AJAX从外部获取资源,因此就衍生了CORS这一标准体系,来实现跨域请求. CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origi ...

  8. 深入学习Composer原理(四)

    本系列第四篇文章,也是最后一篇 首先,我们先看看Composer的源码从哪里看起.当然,请您先准备好源码. composer init或者直接install之后,自动生成了一个vendor目录,这时您 ...

  9. PHP中使用DOMDocument来处理HTML、XML文档

    其实从PHP5开始,PHP就为我们提供了一个强大的解析和生成XML相关操作的类,也就是我们今天要讲的 DOMDocument 类.不过我估计大部分人在爬取网页时还是会喜欢用正则去解析网页内容,学了今天 ...

  10. jquery播放视频事件

    $('video').trigger('play'); $('video').trigger('pause'); 判断video播放器的播放状态,并进行切换播放,需要这样 let video = $( ...