はやわかりソフトウェア設計学研究室

はじめに

「開発の上流工程」「ソフトウェア開発プロセス」「リポジトリマイニング」…… こんな言葉を聞いてもなんだかよく分からない方がほとんどだと思います.ソフトウェア工学やソフトウェア開発プロセスは,社会におけるニーズが非常に高い一方で,一般の方にはあまり馴染みのない言葉なため,具体的にどのようなことをやっているのかイメージがつかみにくいと思います.

そこで,このページでは,新入生の方を対象に,ソフトウェア設計学研究室が「何を研究しているのか?」「研究室の様子はどんな風なのか?」「学生はどんな生活を送っているのか?」という疑問にお答えしたいと思います.

 

どんな研究をしているの?

ソフトウェア設計学研究室は,ソフトウェア工学と呼ばれる,ソフトウェアの開発,運用,保守に関する理論を応用して,ソフトウェアの生産性や品質を向上させるための研究を行っている研究室です.その中でも,ソフトウェア開発プロセスと呼ばれるソフトウェアの開発過程に着目して研究を行っています.以下では,簡単にどのような研究を行っているか,テーマごとに簡単に説明します.より詳しく知りたい方は,研究紹介のページをご覧下さい.また,見学も随時受け付けていますので,どうぞお越し下さい.

 

 ソフトウェアのプロジェクト運営は難しい

 

パソコン,携帯電話,テレビ,コンビニ,銀行のATM…… 現在ソフトウェアはいたるところで利用されており,社会の中で重要な役割を担っています.一方で,ソフトウェアの開発プロジェクトは,ソフトウェアのリリースに至らず失敗に終わることや,欠陥が見過ごされたままソフトウェアがリリースされてしまうことが多く,莫大な損失を生み出していることが報告されています. この原因としては,プロジェクトの計画が不十分であったり,過去のプロジェクトの知見が活かされていない,開発作業の手順が悪い,といったことが考えられます.

ソフトウェア設計学研究室では,このようなソフトウェア開発プロジェクトで発生する問題を,ソフトウェア開発の過程(ソフトウェア開発プロセス)という観点から分析し,研究を行っています.これまでに,開発計画の立案を支援する手法や,過去のプロジェクトからの知見を活かすための枠組みについて研究を行っています.

 

 お宝を探し出せ!

 

近年,ソフトウェアは地理的に離れた場所にいる開発者が,協調して開発することが多くあります.この際,開発者たちはメールによってやりとりしたり,版管理システムと呼ばれるソースコードを管理するためのツールを用いたりします.このように開発を行った場合,ソースコードをはじめとする成果物や,その開発履歴が蓄積されており,この蓄積されている場所(データベース)をソフトウェアリポジトリと呼びます. ソフトウェアリポジトリには,ソフトウェア開発の状況が記録されており,これを分析することで今後のソフトウェア開発に有用な知見を得ることができると考えられます.ソフトウェアリポジトリにある膨大なデータの中から有用な情報を見つけ出すことを,リポジトリマイニングと呼びます.

ソフトウェア設計学研究室では,リポジトリマイニングに関する研究も多く行われています.これまでに,コードクローンと呼ばれるソースコードの重複する部分を,ソフトウェアリポジトリ内の情報からリアルタイムに検出するツールの開発や,開発段階でソフトウェアの使いやすさに関する問題を検出する手法に関する研究などを行っています.

 

 ソフトウェアで計算機を制御


 

国際的なSoftware Defined Networking 実証実験環境

近年のクラウドコンピューティングの飛躍的な普及の背景には,ソフトウェア技術により計算機資源を仮想化することで,計算機環境の構築・割当を動的かつ自動的に実行できるようになってきたことが挙げられます.近年では計算機だけでなくネットワークをもソフトウェアで完全に制御してしまおうというSoftware Defined Networking (SDN)という概念も生まれています.ソフトウェア設計学研究室では,このSDN技術を中心にネットワーク最適化,機械学習,クラウドゲーミング,IoT,ビッグデータ解析など,クラウドを支えるソフトウェア技術に関して広く研究をしています.

特に上図のPRAGMA-ENTは,当研究室がプロジェクトの代表となり進めている国際共同研究プロジェクトで,世界中に分散する研究機関・大学を学術高速ネットワークで接続し,大規模なSDN環境を構築しようとするものです.学生が考えたネットワークやクラウドに関する実験のアイデアを直ぐに国際ネットワーク環境で実証し,分析・評価する環境を有しています.詳しくはこちらのページをご覧ください

 

研究室の様子は?

 個性あふれる人たち

ソフトウェア設計学研究室の教員は,様々なバックグラウンドの教員・学生が所属しています.教員は,ソフトウェア工学,特にソフトウェアプロセスに精通しており,世界最先端のソフトウェア工学に関する研究機関に所属していた者もいます.

学生のバックグラウンドも様々で,これまでに飛び級入学した学生社会人経験のある学生留学生を多数受け入れてきました.またIT SpiralCloud Spiralという現実の開発プロジェクトを題材にした教育プログラムや,GEIOTというIoTをベースにしたアントレプレナー(起業家)育成教育プログラムにも,多数参加しています.

 

 幅広い連携

ソフトウェア工学の研究にあたっては,大学だけではなく実際の現場と連携して研究を行っていく必要があります.ソフトウェア設計学研究室では,現在までに日立製作所など民間企業と共同で多数の研究を行ってきています.また,情報処理推進機構 ソフトウェア・エンジニアリング・センターから実際に企業で実施されたプロジェクトのデータの提供も受け,分析を行った実績もあります.また,本研究室は国際的なSoftware Defined Networking (SDN) の実証実験環境の構築プロジェクト,PRAGMA-ENTを率いており,様々な研究組織と連携した共同研究を実施しています.具体的には,アメリカ テキサス大学 オースティン校カリフォルニア大学サンディエゴ校ドイツ フラウンホッファ 実験的ソフトウェア工学研究所タイ カセサート大学情報通信機構(NICT)産業総合研究所(AIST)国立情報学研究所(NII)など,国内外の研究機関との連携研究を行っています.

 

 最先端のソフトウェア研究環境 …… 設備など

 

ソフトウェア設計学研究室に配属された学生には,デスクトップPCおよびノートPCを支給します.また,研究に必要な場合には,ワークステーションなど必要な物品を支給します.研究室では,ソフトウェア工学,特にソフトウェア設計やソフトウェアプロセスに関する各種学術雑誌や書籍を購入しています.また,研究だけでなく,リフレッシュすることも重要であるという方針から,有志によるコーヒーの会や漫画購読も行っています.1階の実験室には,超高性能サーバクラスタや60インチのフルスペック・ハイビジョンモニタ6枚を組み合わせた巨大液晶モニタを完備しており,大規模なプロジェクト分析が可能となっています.

 

研究室での生活は?

研究室では,週1回,各自の進捗を報告するミーティング(全体ミーティング)と,各自の研究テーマに関連する文献を紹介する輪講を行っています.また,研究室配属当初は,ソフトウェア工学分野に関する基礎知識の養成とプレゼンテーションの練習を目的としたM1向け輪講も開催します.これに加えて,各自の研究テーマについて深く議論する場として,別途個別ミーティング(研究ミーティング)を行っています.

ソフトウェア設計学研究室に配属された学生は,基本的に自分のライフスタイルに合わせて,自由に研究を行うことができます.ミーティングと輪講の時間以外は特にコアタイムを設けていません.ですが,研究を進めるにあたっては,教員や先輩との密な連携が重要となります.教員や博士後期課程の学生は,いつでも研究の相談に乗りますので,できるだけ研究室にはいた方が良いでしょう.

研究室には,飲んだり食べたりすることが好きな人がたくさんいます.前触れもなくいきなり飲み会が始まったりすることも少なくありません.新たなお店を開拓しに行くこともありますし,みんなで買い出しに行って料理をして研究室で飲み会をすることもあります.

 

 もっと知りたい人は

いかがでしたか? なんとなく研究室の雰囲気だけでもわかっていただければ幸いです.さらに詳しく知りたい方は,研究室説明会に是非お越し下さい.なお,また時間に都合の付かない方は,随時教員・学生が対応いたしますので,A棟3階のソフトウェア設計学研究室まで直接お越し下さい.みなさまのお越しをお待ちしています.