COVID-19 パンデミック下におけるソフトウェア開発 PBL の実践櫨山淳雄 1
概要：2020 年発生した新型コロナウィルス感染症の感染拡大を防止するために，多くの大学において，遠隔講義を実施することになった．著者らはソフトウェア工学の講義並びにグループ形式のソフトウェア開発演習を完全遠隔環境下で実施した．本稿ではその実践について報告する．

Project-Based Learning of Software Development
during the COVID-19 Pandemic
ATSUO HAZEYAMA†1
Abstract: Owing to the COVID-19 pandemic, educational institutes worldwide have been forced to execute online distributededucation. The author has conducted courses on lectures of software engineering and on project-based learning of softwaredevelopment in a fully online environment during the pandemic. This position paper reports on the practice.

1. はじめに演習実施方法に関して，実施要領で開発プロセス，作成成果物，成績評価の考え方等を規定している．また初回講2020 年初頭に発生した新型コロナウィルス感染症拡大

義時にグループ編成に関するアンケートを実施し，その内防止のために，多くの大学において遠隔講義を実施するこ容と春学期の成績に基づきグループを決定し，2 回目講義とになった．筆者は学部 3 年生を対象に，春学期にはソフ時間からグループ活動を開始している．講義時間では，教トウェア工学に関する概論の講義(以下では「ソフトウェア員や Teaching Assistant (TA)からの全体への連絡事項，開発工学概論講義」と記す)を，秋学期には，グループ形式によ環境 (GitHub)の使い方の説明等，グループでの活動，全体るソフトウェア開発演習(以下では「ソフトウェア開発 PBL」での進捗確認を実施している．と記す)を実施している．これら 2 つの授業を遠隔で実施することになった．
本ポジションペーパではその実践について報告すると開発プロセスはウォーターフォールモデルをベースにしている．開発成果物として次のものを作成することを求めている：要求仕様書，画面シナリオ，クラス図，DB 設計書，ともに，そこで得られた課題について報告する．

シーケンス図，(状態遷移があればステートチャート)，ソー

2. 各講義の概要

スコード，単体/システムテスト報告書，開発計画書，グル

本節では 2 つの授業内容についてその概要を述べる．
2.1

ソフトウェア工学概論講義

講義は東京学芸大学教育学部教育支援専攻情報教育コース(学生定員 15 名)3 年次に開講している「情報システム設計」という選択科目である．この科目では，ソフトウェ
ア工学の基礎知識を学ぶとともに，JSP/サーブレット技術を用いた Web アプリケーション開発の演習を行っている．
本学は全学生にノート PC を保有することを求めており，本科目では各自の PC にソフトウェア開発環境を構築する．
開発環境は，プログラミング言語として Java 言語，統合開発環境 Eclipse，関係データベース管理システム MySQL，ビルドツール Gradle から構成されている．
2.2

ソフトウェア開発 PBL

対象のソフトウェア開発演習は情報教育コースの 3 年次秋学期選択科目として開講している (週 1 回 90 分)．

1 東京学芸大学
Tokyo Gakugei Universityープ進捗報告書(毎週)，開発完了報告書．また機能ごとに担当を決め，シーケンス図作成，コーディング，単体テストは同一の担当者が実施するようにしている．これは全受講生に全工程を経験させるという意図によるものである．
教員からグループへの主たるフィードバックとして(1)
講義時間内での進捗確認，(2)上流工程の成果物に対するインスペクション，(3)受入テストを実施している．(2), (3)は講義時間以外でも実施している．
開発環境に関して，春学期に構築した開発環境を使用する．また，GitHub を利用し，グループごとにリポジトリを提供している．これにより文書の版管理，Issue (グループと教授者間で公式の文字によるコミュニケーションの場)，
Pull Request (成果物へのレビュープロセス)等の機能を活用して開発を進めている[1]．さらに，グループが開発したアプリケーションを動作させるサーバを提供している．

3. 遠隔での授業の実施
3.1

ソフトウェア工学概論講義

本学では Microsoft 社の Teams を遠隔会議システムとして採用している．講義は Teams 上で，ライブ形式で実施した．対面での講義において最も支援を必要とした場面は受講生の PC への開発環境構築時とサンプルプログラムを動作させる時のトラブル対応であった．教室では TA が机間巡視し，また座席が近い学習者同士による教えあいが行いやすいが，遠隔では教えあいをすることが難しい．そのため，開発環境構築はスクリプトで自動化する仕組みを導入した．また，アプリケーション実行時のトラブル解決を効率的に進めるためにアプリケーション実行ログを通知する仕組みを実装した[2]．
3.2

ソフトウェア開発 PBL

ソフトウェア開発 PBL もすべての活動をオンラインで実施することになった．そのため対面で実施していた活動をオンラインで実施できるようにする必要がある．対面で行っていたことは週に 1 度の講義時間内での全体への連絡，進捗確認 (各グループが資料を提示しながら進捗を報告し，内容について質問コメントを行う)，グループでの話し合いである．このオンラインでの活動は従来の対面講義に可能な限り近い形で実施したい．これらを遠隔会議システム上で実施することとした． Teams 上に本科目用のチームを作成した．この時アクセス制限のために Private で作成した．
教室ではスライドをスクリーンに映して，説明や報告を行っていたが，それは Teams の画面共有機能と音声会話の組み合わせで実施した．グループごとの話し合いの場としてチームの下に各グループ用のチャネルを準備した．
2020 年度は開発課題を学内の教員(以下顧客と呼ぶ)から提供いただいた．利用者となる教員や教員の研究室に所属する学生もチームに参加していただいた．要求仕様書はTeams のファイル登録機能によりチームにアップロードし，質問等のコミュニケーションはチームあるいはグループのチャネルで行った．グループと授業担当教員や TA と開発成果物に関わるコミュニケーションは GitHub を使用した．
ドメイン知識に関する DB の準備とその利用方法の説明，実行環境構築については TA に支援していただいた．

4. 遠隔での実施の成果と課題
4.1

ソフトウェア工学概論講義

遠隔でのライブ講義は問題なく実施することができた．
開発環境構築ツールも効果的に機能した．一方で，アプリケーション実行時のトラブル支援については，受講生は画面共有による解決支援を希望することが多く，個別対応することにより TA の負担が大きくなることとなった．
4.2

ソフトウェア開発 PBL(1)遠隔でのソフトウェア開発活動

遠隔会議システムを活用した進捗確認，グループ活動は，春学期に同じシステムを用いた講義を実施していたこともあり問題はなかった．教員からのフィードバックの(2)，(3)はこれまでも非同期分散環境下での実績があることもあり，問題は生じなかった．開発を行った大多数の受講生も遠隔環境でのグループによるソフトウェア開発活動に大きな困難を感じることなく，新たな生活様式による働き方のスキルを修得できたようである[3]．本演習ではコーディングから単体テストに至る約 1 か月間，TA と教員は成果物を確認するプロセスを導入していない．そのためグループからの的確な進捗報告により問題点の発見が重要となる．受講生からはお互いの進捗状況を把握することの難しさを指摘する意見もあり，改善が必要である．担当教員が在宅勤務により受入テストに例年より時間を割くことができ，システムの品質向上に寄与できたことも１つの成果である．
(2)顧客からの依頼に対するシステム開発
顧客からは要求仕様を作成していただき，その実現可能性を確認することを，顧客，TA，教員で事前に行った．特にドメイン知識を DB に反映することを TA の支援により実施したが，TA が十分理解して準備できたことは有効であった．それでも受入テストに入る段階で顧客からの仕様変更要求が寄せられた．ここでも顧客，TA，教員で変更内容，その必要性，最小限の変更内容の吟味を行い，グループに変更要求を依頼することとした．また，受入テスト時にユーザビリティに関するバグが多数報告された．上流工程において画面シナリオのインスペクションを実施しているが，バグを分析してプロセス改善を検討したい．このような経過を経て開発は完了し，附属学校や大学の授業において試行していただく機会を得た．

5. おわりに
本稿では COVID-19 パンデミック下で実施したソフトウ
ェア開発 PBL を中心とした実践について報告した．初めてすべての活動を遠隔で行い，かつ，顧客からの依頼による実用アプリケーション開発を完成させることができた．

謝辞
TA 各位，受講生各位，開発課題をいただき，PBL に積極的に関与いただいた先生方に感謝いたします．

参考文献[1]宮下弓槻他,小規模ソフトウェア開発 PBL における GitHub を用いた軽量設計文書インスペクションプロセスの提案とその実
践・評価, コンピュータ ソフトウェア, 38(1), pp. 1_3-1_17,2021.
[2] 山田侑樹他,完全遠隔講義におけるソフトウェア開発演習支
援ツールの開発とその評価, ソフトウェアエンジニアリングシン
ポジウム 2020 論文集, pp. 171-176, 2020.
[3]櫨山淳雄他,遠隔オンライン環境下でのグループによるソフトウェア開発演習の実践結果の分析, 日本経営工学会 2021 年度春季大会, pp. 133-134, 2021.