本文へジャンプ

複雑なソフトウェアの仕組みやはたらきを
視覚的にわかりやすく表現します

鈴木研究室 SUZUKI Laboratory
准教授:鈴木 正人(Suzuki Masato)

E-mail:suzukijaist.ac.jp
[研究分野]
ソフトウェア工学、ソフトウェア構成、プログラム言語処理系、組込みシステム
[キーワード]
ソフトウェア開発支援環境/ツール, ソフトウェアアーキテクチャ,/コンポーネント、アスペクト、プロダクトライン

研究を始めるのに必要な知識・能力

C/C++/Java などどれか1つのプログラム言語によるプログラミング(授業科目「プログラミング基礎」相当)

この研究で身につく能力

最初にWEB技術を用いた最新のソフトウェア開発方法論(やりかた)を体験し、問題点を自分で発見してもらいます。次にアスペクト指向やアーキテクチャ指向などのソフトウェア工学の最先端の技術に基づく開発を体験します。これらを通じソフトウェアやその開発方法自体を客観的に評価する、すなわち与えられた要求を単に満たすだけでなく、「より速く」「より正確で」「より変更しやすい」「よりわかりやすい」性質をもったソフトウェアを作成するにはどうしたらよいかを考える能力を習得します。これらの研究を通じ、現在の産業界において即戦力となりうる知識と経験のみでなく、その根底にある理論を理解する能力、および5年後、10年後に要素技術が変化したとしてもそれらを理解/応用し時代に適応する能力を身に付けることができます。

【就職先企業・職種】 情報通信企業、ネットワーク管理運営企業、組込みシステム企画/開発企業など

研究内容


アーキテクチャを利用した理解支援と構成支援

 当研究室では大きく「ソフトウェアの理解」と「ソフトウェアの(再)構成」の2つのテーマについて開発者を支援する環境やツールの研究を行っています。

  1. 理解支援とは現在あるソフトウェアの仕組みと働きを理解し、新しい機能の追加や新しい環境上で実行させるために修正が必要となる箇所や内容を開発者に示唆する活動です。最近ではWEB技術の発達とスマートフォンなどの小型端末の性能向上によりスタンドアローンで動作していたシステムをネットワーク上で動作させる要求が高まっています。また自動車などに代表される組込みシステムでは機能の多様化と高度化によりそのソフトウェアの規模はここ5年間で約1万行から約100万行まで急激に増加しています。膨大な量の情報から開発者が必要とする情報を的確に抽出するにはフィルタリングの技術が重要です。従来のフィルタリングでは変数/関数名などの文字情報に基づくものがほとんどであり、抽出結果に不要な情報が多いなどの問題点がありました。これに対し変数と関数には引数や戻り値、関数同士では呼出し元/呼出し先といった「プログラムの構造」に対応したフィルタリングを行うことで精度を高める研究を中心に行っております。またプログラムの意味を変えずに構造をわかりやすくすること(リファクタリング)によって、複雑になりすぎたプログラムを改善し次の変更に備えることができるようになります。改善可能な構造の発見支援も重要な研究課題です。
  2. 構成支援とは新しくソフトウェアを作成する際に必要となる作業として「ソフトウェアの部品」と「組み合わせ方」を開発者に示唆する活動です。最近では何もないところから数万行のソフトウェアを開発することは現実的ではなく、基本的な機能を実現したソフトウェア部品(コンポーネント)を利用するのが一般的です。コンポーネントはその機能により数十行から数千行まで多種多様ですが、いずれも使い方(インターフェース)が決められており、正しく組み合わせないと動作しない点では共通です。従来のプログラム言語では組み合わせの方法が限定されており、例えば関数の引数と戻り値のデータ型が一致していれば問題なく動作していました。しかし最近の言語で記述されたものはデータの型以外にも様々な情報を含んでおり、それらの整合性の検査を人手で行うのは現実的ではありません。さらに日々刻々と変化するネットワーク環境においてコンポーネントを動作させるためには、接続のための情報も更新していかなければなりません。これらの実現にはアスペクトという技術が注目されています。アスペクトとは複数の構成要素の間で連動して追加や更新が必要となる情報を管理するための仕組みであり、従来技術で開発された部品からアスペクトを抽出し部品を使いやすくする研究なども行っております。

主な研究業績

  1. 鈴木正人:「PBL形式による組込みシステム教育事例 −プロセス適応による品質特性の実現−」ソフトウェア技術者協会/情報処理学会 SEAソフトウェアシンポジウム2013
  2. 海津 智宏、磯部 祥尚、鈴木 正人:SDVerifier: プロセス代数CSPを用いたシーケンス図検証ツール,コンピュータソフトウェア,2015年第2号,日本ソフトウェア科学会
  3. Lin Wang, Tomoyuki Aotani, Masato Suzuki:Improving the quality of AspectJ application translating name-based pointcuts to analysis-based pointcuts, Proceeding of 14th International Conference on Quality Software(QSIC2014), IEEE

使用装置

エレベータ動作模型(電子ブロック機器製造製)
組込みシステム開発実習装置(レゴマインドストーム EV3, Arduino)

研究室の指導方針

私達の使命は「ソフトウェア工学を適用して産業界に有用な知見を提供可能な学生を輩出する」ことです。ソフトウェアおよびその開発保守は高度な知的活動であり、常に変化・改善を求められています。新しいものを創り出す楽しさを理解したうえで、理論と実践のバランスを意識しながら研究活動を進めていきます。「作って動けば終わり」ではなく、「なぜそうなるのか」「もっとよい方法はないか」「これを作る/使うことで私達の生活はどう変わるのか」といったソフトウェアに対する客観的で幅広い視点を習得することを指導方針としています。

[研究室HP] URL:http://www.jaist.ac.jp/~suzuki/

ページの先頭へもどる