Facebook x

ジャンル

第8回 ソフトウェア工学 × QA最前線
ソフトウェア工学 × QA最前線 2023.12.06
x hatenabookmark

「ソフトウェアエンジニアリングは開発の効率化や品質向上を目指せる技術」名古屋大学大学院 森崎修司 准教授

執筆: Qbook編集部

ライター

「ソフトウェアエンジニアリングは開発の効率化や品質向上を目指せる技術」名古屋大学大学院 森崎修司 准教授

ソフトウェア工学やQA(Quality Assurance)に関する様々な角度からの研究について、研究者の方にお話を伺う『QA最前線!』。ソフトウェア開発、品質向上・QAを推進する上でも様々なエコシステムが活用されています。こういった流れの中で実証的ソフトウェア工学の考え方はますます重要になってきました。最先端の研究現場で、今、どのような研究が行われているのか、注目している方も多いと思います。

今回は、名古屋大学 大学院情報学研究科の森崎修司 准教授にお話をいただきます。

今回インタビューを受けてくださった方

0928_face.jpg
森崎 修司 准教授

名古屋大学 大学院情報学研究科
情報システム学専攻 ソフトウェア論 講座

2001年3月に奈良先端科学技術大学院大学情報科学研究科にて博士(工学)取得。同年より情報通信企業においてオンラインストレージサービスの企画・開発・運営にサービス責任者として従事。2005年9月より奈良先端科学技術大学院大学情報科学研究科研究員として、文部科学省リーディングプロジェクト「e‐Society基盤ソフトウェアの総合開発」、経済産業省「先進社会基盤構築ソフトウェア開発事業」においてソフトウエア開発活動を分析。2007年より奈良先端科学技術大学院大学情報科学研究科 助教、2011年4月より静岡大学 情報学部 助教、2013年10月より名古屋大学 大学院情報学研究科 准教授。著書に「間違いだらけの設計レビュー」(日経BP)がある。

もくじ
  1. 「どうやったら開発がうまくいくか?」課題解決のテーマに興味を持つ
  2. ソフトウェア開発の効率化や高品質化を目指す
  3. 業界全体で知見の共有をし、あるべき姿に変えていく
  4. 育成を通じてITエンジニアの地位向上を

「どうやったら開発がうまくいくか?」課題解決のテーマに興味を持つ

――これまでのご経歴を教えてください。

2001年に奈良先端科学技術大学院大学で博士号を取得し、インターネットサービス プロバイダでオンラインストレージの開発、開発管理にソフトウェアエンジニアとして携わりました。その後、大学に転職し、奈良先端科学技術大学院大学情報科学研究科研究員として、文部科学省リーディングプロジェクトや経済産業省のソフトウェア開発事業などに携わりました。2011年より静岡大学情報学部 助教を経て、2013年より現職の名古屋大学 大学院情報学研究科 准教授に着任しました。

現在の主な研究は実証的ソフトウェアエンジニアリング、ソフトウェア計測、ソフトウェア品質の研究で、IPAのワーキング・グループ主査や社会人博士の支援、企業との共同研究をはじめ産学連携にも取り組んでいます。

――実証的ソフトウェア工学、ソフトウェア計測、ソフトウェア品質の研究に興味を持った「きっかけ」は何だったのでしょうか?

小学校高学年で初めてプログラムを書いて、そこからずっとソフトウェア開発が好きになり、「どうやったら開発がうまくいくか」を研究するソフトウェアエンジニアリングに興味を持ちました。

ソフトウェアエンジニアリングの研究を分類すると、開発時の課題解決を中心にするテーマと純粋に興味深い性質や仕組みを考えることをテーマにするものがあると思っています。大学院を修了するまでは興味深い性質や仕組みを考えることに興味を持っていましたが、ソフトウェアエンジニアになった後は、課題解決を中心にしたテーマのほうに興味がうつり、今はそうした研究テーマに取り組んでいます。

――ソフトウェアエンジニアとして社会経験を積まれたことが、今の研究にも影響してらっしゃるんですね。

はい。それと実証的ソフトウェアエンジニアリングが1990年頃から盛んになりはじめたことも影響していると思います。実証的ソフトウェアエンジニアリングの最初のシンポジウムであるISESE(International Symposium on Empirical Software)の初回のシンポジウムの開催が2002年で、米国とオーストラリアとドイツと日本の研究者が主要メンバーとして協力し合いました。僕の出身の研究室の先生がその一人でこのシンポジウムの委員長を務め、日本で開催されたのも影響していますね。こうしたことから一般企業とも共同研究をしてまして、これまでに65社ほどとご一緒しました。

ソフトウェア開発の効率化や高品質化を目指す

――取り組まれているソフトウェア開発における実証的手法(Empirical software engineering)の概要をお教えください。

実証的ソフトウェアエンジニアリングと呼ばれています。ソフトウェアエンジニアリングは体系的な方法でソフトウェア開発の効率化やソフトウェアの高品質化を目指します。ソフトウェアエンジニアリングはソフトウェア工学とも呼ばれています。「実証的」の部分は技術、手法の効果、限界を実際の開発で確かめることを指し、大まかには実際のソフトウェア開発を通じて、開発の効率化やソフトウェアの高品質化につながるような知見を積み上げます。
その際に、開発の背景や状況によって効果や限界も変わるので、これらをコンテキスト(context)と呼んで、コンテキストとともに効果や限界の知見を積み上げることが推奨されています。というのも、かけられるコスト、求められる品質、開発に関わるメンバーの経験等によって効果や限界が変わるからです。

極端な例ですが、スマートフォンのゲームのソフトウェアと自動車の制御ソフトウェアでは同じ技術や手法を使っても効果が異なりますよね。そのため、それを意識しながら知見を積み上げていくことが重要だと実証的ソフトウェアエンジニアリングでは考えています。

――この分野での研究は、現在のソフトウェア開発業界の関心が高いジャンルだと思います。どのように企業との共同研究を進めておられますか?

主に企業側からお声掛けいただくことが多いです。その際、原則的に機密保持とコミットメントのために費用をいただく形で共同研究契約を締結して進め、契約締結前に課題の理解と双方のアウトプットを想定してから開始しています。というのも、特に課題の理解が不十分だといくら分析や構築した技術や手法が優れていても、結果として使えなくなってしまうことが多いからです。想定しているアウトプットはさまざまですが、企業側では社内標準/規定、ツール、プロセスになることが多いですね。

大学側では知見を形式化して論文等で発表することが目的なので、まず、その研究が論文としての価値があるような内容になっているかどうかを考えています。

また、共同研究の活動がはじまってからはどうしても目先の作業に集中しがちなので、双方のアウトプットにつながるかどうかを継続的にチェックするよう心がけています。

――その他にも自動運転やAIについての論文もお持ちですが、具体的にどのような研究をされているのでしょうか?

自動車の自動運転に関しては、主に安全の論証、テストの効率化、運行設計領域を含む仕様や制約の定義の方法に関して研究しています。現在、自動運転用オープンソースソフトウェアの開発を主導する、スタートアップの株式会社ティアフォーとの共同研究や同社の技術顧問を務めています。同社の「テストをどうやって減らすのか」「安全性の前提としていることが継続的に守られていることをどう確かめるか」などに関わる研究テーマについても顧問としてアドバイス等を行っています。

AIは少し定義が広いので、想定しているものをお伝えしておくと、機械学習モデルのうちディープニューラルネットワークのような、入力と出力の関係を外部から明瞭に把握することができないようなものを想定しています。その前提で、ソフトウェアエンジニアリングにおけるAIは大きく2つに話がわかれると思います。

1つは、プロダクトの中にAIを含めてプログラムのように使う話です。こちらは実行時に想定外が起こらないかどうかと、開発時に期待する振る舞いと異なる振る舞いをしたときにどのように対処するかを考えていく必要があります。これに関しては世界中で相当な研究リソースが投じられていますが、まだブレークスルーが見つかっていないのが現状で注視しているところです。

もう1つは、開発作業の一部にAIを使う話です。プログラムやドキュメントの一部や原案を生成AIに書いてもらうことを想定いただくとイメージしやすいのではないでしょうか。こちらはできそうな部分や効果が高い部分から使っていって洗練していくフェーズに入っていると思います。

業界全体で知見の共有をし、あるべき姿に変えていく

――現在の研究を通じて社会にどのようなインパクトを与えたいとお考えでしょうか。

広範囲にはコンテキストを意識した技術や手法の採用が進むことを目指しています。実証的ソフトウェアエンジニアリングの説明の通り、実証的ソフトウェアエンジニアリングはコンテキストを含めて技術や手法の効果を評価します。ITの歴史はまだそれほど長くはないので、新しいものほど優れているということがよくあるのですが、すべてに当てはまるかというとそういうわけではありません。古いものにも適したものがあります。

技術や手法の効果や限界を把握しつつ適切なものを使う、まだ効果や限界はよくわかっていないけれどとりあえず使っているという場合には、よくわかってはいないということを意識し、よりよいものが見つかれば変えていくというのがあるべき姿だと思います。現状では世間の動向、インフルエンサーやツール、サービスの提供者(ベンダー)主導で積極的な理由がないけれど「なんとなく技術や手法を使っている」ことも少なくないと思い、これを変えていきたいと考えています。そのときにコンテキストの考えが活きてきます。

――今後の研究の目標をお教えください。

いくつかのレベルでそれぞれ目指していることがあります。

まず広い範囲で、業界にとって有益な知見を共有していきたい。私はソフトウェア品質シンポジウムという技術者向けのイベントの企画委員の委員長を10年ほど続けてきました。ここでも品質向上にはさまざまな技法や考え方があることを業界全体で共有していくとともに委員で成功事例を見つけ、その考え方ややり方を広めていけるよう今後も活動していきたいと考えています。

次に、少し狭い範囲になりますが、特定分野特化で具体的な指針につながるような活動も目指しています。これまでそうしたガイドラインとしてIPAのつながる世界の品質指針検討ワーキング・グループで作成した「つながる世界の品質確保に向けた手引き」や IoT 高信頼化検討ワーキング・グループで作成した「『つながる世界の開発指針』の実践に向けた手引き」 のようなガイドラインがあります。これらはIoTやDXといった取り組みをはじめるエンジニア向けのガイドとして作成したものです。私は、各分野の専門家で構成されたワーキンググループの主査として議論のとりまとめを担当しました。

最後に、個別のレベルでは、共同研究とその成果を論文として発表することがあります。また、国内で見ると製造業のソフトウェア技術者をはじめ、特にグローバルでうまくいっている製造業になると「なぜうちはソフトの面でGoogleやMicrosoftになれてないんだ」と指摘されて、肩身の狭い思いをされている方が多くいらっしゃると思います。そうした指摘をされる方たちに向けても「このコンテキストでは、これで十分でこれ以上は人類の限界への挑戦と言えます」と、ソフトウェアについて十分にはご存知ない経営陣や管理職の方に説明していったり、「これは素晴らしい取り組みです」と広めていったりするのも研究で俯瞰的に見ている立場にある私の役目だと考えています。

――先生は著書も出版されていますよね。

はい。私の研究テーマである品質向上技法や定量化の方法が直接役立つことを想定し、品質向上手法の基礎的な部分に関しては著書「間違いだらけの設計レビュー」でカバーしています。電子書籍を含めると出版数は2万部を超えており、韓国語にも翻訳されていて、多くの方に読んでいただいていると思います。興味があればぜひご覧いただきたいです。今年初版から10年目になり第3版になります。第3版では、レビューのノウハウをアジャイル開発で活かすための工夫を追加しました。

より詳細なものや分野特化のものは共同研究等の成果として論文でカバーしていますので、そちらも参考にしていただければと思います。最近のものだと、この研究領域のトップカンファレンスであるInternational Conference on Software Engineeringの実践共有のカテゴリ(SEIP: Software Engineering In Practice track)で、共同研究の成果を共著の論文として発表しており、この論文のエッセンス部分は日経xTechの記事として共同研究メンバーの方が寄稿しています。

81StWQGsSAL._SL1500_.jpg

なぜ重大な問題を見逃すのか? 間違いだらけの設計レビュー第3版

「要件定義書や設計書などのドキュメントレビューに時間をかけているのに、重大な問題を見逃してしまう」。その原因は、間違ったレビューのやり方にある。本書は、誰にでもできる効果的なレビューの手順を解説する実務書だ。チームリーダーおよび数人のレビューアーがドキュメント作成者とともにレビュー会議を開いて問題を指摘する典型的なチームレビューを想定し、リーダー、レビューアー、ドキュメント作成者ごとに手順を示している。

育成を通じてITエンジニアの地位向上を

――研究室はもちろん、社会人博士の支援もされているとのことですが、どんな人材を育成したいと考えておられますか?

企業で長く開発活動をされている方の中には、ご自身の問題意識や解決策をお持ちの方が多くいらっしゃるのですが、なかなか博士を取ろうとまで考える人は少ないのが現状です。また自分でよいと思っていても、厳密に他の方法とは比較していなかったり、客観的な定義はできていなかったりするので、そうした点を支援しています。業務として実績やお考えのある方たちが学位を取得することでITエンジニアの地位向上にもつながるのではないかと考えて頑張っているところです。

――最後に実証的ソフトウェア工学に興味を持った読者の方にメッセージをお願いいたします。

コンテキストを意識して、理由や裏付けをもって技術や技法を選んだり使ったりすると、さまざまな改善点が見つかると思います。ただなんとなく使っているというものと、理由を持って使っているというものがどれか、を考えるだけでも自信が持てますので、おすすめです。そうした気づきとなることを目指して、X(旧:Twitter)やブログ等でも研究に関連する内容を発信していますのでご覧ください。また、共同研究や社会人博士に興味がある方は、お気軽にご連絡いただければと思います。

――本日はいろいろお話をしてくださり、ありがとうございました。

ソフトウェア工学 × QA最前線
x hatenabookmark

執筆: Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。