教学实验平台 + GitLab + CI/CD一体化支撑环境

软件工程类课程实践教学

GitLab项目管理

教学平台与GitLab统一账号登录,集成Git代码托管、项目管理、issue跟踪、wiki文档、在线IDE、代码审查、持续集成/交付等功能。

小组协作

支持学生在同一平台以开发项目的形式提交作业。开发项目支持Git进行代码版本管理,并且能够在Web界面上直观显示项目的分支、编程语言以及代码行占比、提交次数、活动统计、仓库大小等信息。

小组互评

教学平台支持小组学生对其他组学生提交的文档和代码进行匿名评审,并可录入具体的评价意见和评分。

完整的软件工程教学和实验体系

平台能够覆盖从理论教学、到实验、实训一整套的教学和工程能力训练体系。

CI/CD一体化教学支撑环境

教师发布项目题时,可选择项目模式。学生点击该题目时, 平台会根据项目模式在GitLab上自动创建项目。在题目页面,直观呈现学生GitLab项目的各类度量指标信息,学生也可一键提交GitLab仓库到希冀教学平台进行测评或存档。

基于GitLab项目题的“CI/CD桌面运行环境”,在学生端实现系统开发、版本管理(Git)、持续集成(CI)、自动化测试、持续部署(CD)等流程的一体化。

基于在线实验环境的项目开发

在线实验环境(云桌面实验环境与Jupyter实验环境)支持动态绑定GitLab项目, 教师发布实验作业时,可选择项目模式。学生做实验时,平台会自动为学生创建GitLab项目。学生可以在桌面环境中克隆代码仓库开始实验。在学生实验页面和教师评阅页面,可直观查看学生项目的各类度量指标信息,支持一键提交代码仓库到希冀教学平台。

支持三类项目模式:

独立项目模式

平台自动为每一位学生创建一个独立的GitLab项目。

Fork项目模式

教师创建或者选择GitLab项目,所有学生Fork该项目。

分组项目

组长创建项目,并负责添加组员,该方式适合小组协同开发。

实验项目特点

实验项目的核心目标是让学生掌握如何在云原生基础设施环境中运用现代软件开发理念和现代软件开发工具实现软件完整生命周期的管理。实验项目覆盖需求分析、设计、开发、(自动)测试、(持续)集成、(持续)部署、(自动)运维等多个环节。

涵盖现代软件工程开发工具

包含Git、GitLab、Docker、Docker Compose、Kubernetes、LightHouse、CodeClimate等现代生产环境中软件工程项目常用开发工具的实验题目。通过这些题目要求学生掌握对这些工具的基本使用。

开发运维一体化(DevOps)

开发运维一体化理念在现代软件企业中得到了广泛的应用,其强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件生命周期的管理,从而更快、更频繁地交付更稳定的软件。通过DevOps相关实验项目,使得学生掌握如何使用持续集成、持续交付、持续部署、自动化测试、自动化运维等现代思想来完成软件完整生命周期的高效管理。

掌握开源软件协作开发方法

以真实开源项目的issue为例,让学生根据该issue修改开源软件中的bug。修改后重新请求合并主分支,并做版本更新。在该实验中,学生需要完成如下操作:

  • 克隆代码仓库
  • 根据说明文档配置开发环境
  • 根据说明文档熟悉软件功能
  • 重现issue中反馈的bug
  • 修改代码解决该bug
  • 测试修改后的代码
  • 修改后的代码请求合并主分支
  • 通过该项目,让学生具备参与或发起开源软件项目的基本素质,使得学生在后续的学习和工作中,可充分参与到开源软件的开发浪潮中。