修 士 論 文 概 要 書
Summary of Master’s Thesis
Date of submission: 1/31/2012 (MM/DD/YYYY) 専攻名(専門分野)
Department 情報理工学専攻 氏 名
Name 白井 盛太郎
研究指導名 Research guidance
ソフトウェア 開発工学
学籍番号 Student ID number
CD
5110B066-0
指 導 教 員 Advisor
深澤 良彰 教授 印 Seal
研究題目
Title 既存ウインドウ情報の解析による一貫性を持った GUI 自動生成に関する研究
1 はじめに
現在,多くのソフトウェアがGUI(Graphical User
Interface)を備え,専門家以外のコンピュータのユー
ザが増加する一因となっている.多種多様な業務が コンピュータ化されており,ソフトウェアには業務 内容に対応した多くの機能が実装されている.
より良いソフトウェアにするため,GUI 開発にお いて,ソフトウェアの使いやすさを意味する“ユーザ ビリティ”を考慮して GUI の設計をすることが重要 である.高いユーザビリティを持ったソフトウェア を設計する上で考慮すべき要素の一つに“一貫性”が あり,これはひとつのソフトウェアにおいて,GUI オブジェクトの大きさや位置などを統一することで ある.しかし,GUI が増えれば増えるほど,この一 貫性を保つことが難しくなり,開発者への負担も増 加する.
本研究では,一貫性をもったソフトウェアを開発 するうえでの問題点に着目し,ソフトウェアの開発 済みGUIからGUIレイアウトに関するルールを解析 する.そして,未開発部分のGUIをルールに沿って 自動生成する手法を提案する.この手法より,GUI 開発の負担軽減と,機械による一貫性の保証を目指 す.
2 本研究の特徴
本研究では,ソフトウェアの開発済み部分の GUI ソースコードを解析し,複数のウインドウ間で共通 して用いられているレイアウトに関するルールを発 見する.
あるソフトウェアのGUIから生成したレイアウト ルールは,残りのGUIを開発する際に適用させるこ とで,ルールに従ってレイアウトできる.プラット フォームや社内のレイアウトガイドライン[1][2]に 沿って統一された GUI を持つソフトウェアからは,
より厳密なレイアウトルールが解析できる.そのた め,ルールを適用することで,新しく開発するウイ ンドウにもガイドラインに沿ったレイアウトが容易 に適用できる.
また,一度ルールを生成すれば,新しく開発する ソフトウェアのGUIにも適用させることが可能であ り,ベンダー内でソフトウェアのウインドウレイア
ウトに一貫性を持たせる際にも活用できる.
3 レイアウトルール
本研究ではレイアウトルールを位置ルールと組み 合わせルールに分けて定義している.
位置ルールとは,主にボタンなどウインドウ上で の絶対的な位置がある程度決まっているものを対象 としたルールである.例えば,多くのウインドウに は最下部にボタンがあり,これらに使われるラベル 名はある程度限られている.実際に,代表的な28種 類のアプリケーションにおける209 ウインドウにお いて,最下部に位置するボタンのラベルに調査した ところ,“キャンセル”,“OK”,“ヘルプ”,“次へ”というラ ベルをもったウインドウが 10%以上の出現率を持つ という結果が得られた.
組み合わせルールとは,複数のウィジェットが何 らかの意図を持って組み合わせられてレイアウトさ れている部分を対象としたルールである.位置ルー ルの場合と同様に,25種のアプリケーションを調査 した結果,大きく分けて以下の4 つの代表的なウィ ジェットの組み合わせが確認できた.
個別説明ラベル付きウィジェット
自身の説明をするラベルがそばにレイア ウトされているウィジェット
グループ説明ラベル付きウィジェット群
複数のウィジェットのまとまりを説明す るラベルがそばにレイアウトされている ウィジェット群
囲み付きウィジェット群
関連する複数のウィジェットをボックス で囲むレイアウト
子要素付きウィジェット
ON になった場合のみ利用可能になる要 素を持つウィジェット
本研究では,これらのレイアウトルールを既存の GUIから解析する.
4 本研究の手順
本研究では,図 1 に示す手順でレイアウトルール 解析,および新規ウインドウの自動レイアウトを行 う.また,本研究の適用対象は,現段階で Java の
Swingを利用してレイアウトされたGUIを対象とし ている.
4.1 ソースコードの構文解析とAspectJファイルの 生成
本研究では,まずJavaCC[3]を用いて作成したJava の構文解析器(JavaParser)に独自の変更を加えたプ ログラムを用い,構文解析したJavaソースコードに 毎に特化したレイアウト情報出力用 AspectJ プログ ラム[4]を自動生成する.
4.2 GUI情報の抽出
第4.1節で作成したAspectJプログラムをソースプ ログラムに織り込ませて実行することで,GUI 情報 を抽出する.
抽出する情報は,ウィジェットの変数名,ウィジ ェットの変数の型,ウインドウのサイズ,ウィジェ ットの位置,ウィジェットのサイズ,ウィジェット のテキスト情報,ウィジェットの親ウィジェットID の7種である.
4.3 レイアウトルールの解析
第 4.2節で抽出したGUI情報に加え,レイアウト に関する追加情報を算出し,レイアウトルールの解 析を行う.
4.3.1 位置ルールの解析
ウィジェットのテキスト情報を基準に同じテキス トを持つウィジェットをまとめ,テキスト毎に最も 出現する回数が多い配置位置を,そのテキストの位 置ルールとする.
4.3.2 変数名によるルール解析
ウィジェットの変数名を基準に,同じ変数名のキ ーワードを持つウィジェットをまとめる.GUI ウィ ジェットの変数名を,“nameField”といったようにキ ーワードと型の組み合わせで定義することが多く,
同一のウインドウ中で同一のキーワードをもつウィ ジェットに関連があるとする.同一のキーワードを 持つウィジェットの組み合わせにラベルウィジェッ トが含まれる場合,組み合わせの相手となるウィジ ェットとの距離を算出し,相手の型毎に最も出現す る回数が多い配置間隔をその型の個別説明ラベル付 きウィジェットのルールとする.
4.3.3 親ウィジェットIDによるルール解析
ウィジェットの親ウィジェットIDを基準に,同じ 親ウィジェットを持つウィジェットをまとめる.
Swing では,関連するウィジェットをパネルウィジ
ェットの上にまとめて配置することが多く,ここか ら囲み付きウィジェットや,単に意味のあるウィジ ェットをまとめてレイアウトする際のルールを解析 する.
同一の親ウィジェットを持つウィジェットの組み 合わせに置いて同じ型のウィジェットが複数回する 場合,ウィジェット間の距離を算出し,型毎に最も 多く出現する距離をルールとする.
4.3 新規ウインドウの自動レイアウト
解析されたレイアウトルールをもとに,開発者か ら新規開発するウインドウの情報を受け取り,ルー ルと比較した後,ルールが存在する場合に自動でレ イアウトを行う.また,レイアウトの例を図2 に示 す.
5 おわりに
本研究では,既存のソフトウェアのソースコード を解析することで,レイアウトルールを発見し,ル ールを適用させた新しいウインドウを生成する手法 を提案した.
今後の課題は以下の通りである.
より柔軟なルール解析方法の提案
ルール解析対象の拡張
研究のより詳しい評価
参考文献
[1] Microsoft Corporation: Windows User Experience Interaction Guidelines (2010).
[2] Apple Inc.: Mac OS X Human Interface Guidelines (2011).
[3] 五月女健治:JavaCC コンパイラ・コンパイラ for Java, 株式会社テクノプレス (2003).
[4] 長瀬嘉秀, 天野まさひろ, 鷲崎弘宜, 立堀道昭:
AspectJ によるアスペクト指向プログラミング入門,
ソフトバンクパブリッシング株式会社 (2004).
図 1 本研究のシステム構成
図 2 自動レイアウトの例