ソフトウェア開発環境・開発プロセスの研究開発

XDFの機能強化開発
秋口PBL/プロジェクトメンバー : 皆木 沙織、村上 泰、吉岡 英樹
指導教員:秋口 忠三教授(主担)、成田 雅彦教授、 土屋 陽介助教
XDF:XML-based Desktop Application Framework
 JavaによるGUIアプリケーション開発を支援するためのフレームワーク
 GUI構築のコード量を削減できるため開発効率が向上
 アプリケーションの内部ロジックとGUI構築ロジックを分離しているためメンテナンス性が向上
 UIの記述方式をGUIツールキットに依存しなくてよいため移植性が向上
 2008年度秋口PBLメンバーの成果物を、新たに2009年度秋口PBLメンバーで改良・機能強化
XDFによるアプリケーション開発の特徴
画面デザイン
アプリケーションロジック
table.xml
<xdf-window>
<head>
<style src=“
jp.ac.aiit.sample.R.raw.tablestyle" />
<action target=“
group.echoInput button" event="click…
</head>
<frame>
<table>
<tr>
<th>A1</th>
<th>A2</th>
<th>A3</th>
</tr>
</tr>
画面デザインをXMLで論理的に設計
<tr>
タグでボタンなどの部品を並べるだけ
<td><button id="actionbutton" /></td>
サイズ設定なども同時に定義可能
<td><label id="explainA" /></td>
<td><label id="explainB" /></td>
</tr>
画面定義XML
TableAction.java
tablestyle.style
//アプリケーションのタイトルを設定
frame {
title: "Table Application";
}
button#actionbutton {
text:"ボタン";
}
label#explainA {
text:"↓に文字列入力しボタンを押すと";
}
label#explainB {
text:"文字列が反映";
}
label#imglabel {
img:"drawable/icon";
}
label#inputlabel{
text:"入力";
follows:bottom;
}
label#resultlabel{
text:"入力文字列は";
}
高さや幅、背景色などをまとめて定義
HTMLで使われるCSSと同じ書き方
public class TableAction implements Action {
public void execute(Event e) {
Application app = Application.getInstance();
ObjectModel window = app.getWindow("main");
//入力フォーム取得
ObjectModel input = Selector.find("#input",
window).get(0);
//出力エリア取得
ObjectModel result = Selector.find("#result",
window).get(0);
//値を取得
String value = (String) input.attr("text");
//取得した値を設定
result.attr("text", value);
//入力フォームに入力された文字列を消去
result.attr("text", "");
}
}
スタイルシート
ボタンが押された際のアクションを記述
定型的なコードでアクションを実装可能
アクション実装
GUIアプリケーション
複雑なAPIを使わずに画面デザインが可能
画面デザインとアプリケーションロジックの分離
生産性
メンテナンス性
拡張性
の向上
XDFがサポートするコンポーネント
XML画面定義文書で指定可能なタグ定義の一覧
タグ定義名
group
tab
button
toggle
textfiled
passwordfield
textarea
label
combobox
checkbox
radio
list
table
コンポーネント
コンポーネント群をグルーピング
1枚のタブ
ボタン
押す度に状態が遷移するボタン
1行で構成される改行なしのテキスト入力フィールド
文字列がマスクされるテキスト入力フィールド
複数行で構成されるテキストエリア
基本コンポーネントをサポート
文字列やアイコン
プルダウンリスト
コンポーネントの機能を強化
チェックボックス
択一選択可能なボタン
独自コンポーネントの
複数項目を表示するためのリスト
追加が可能
行と列から構成されるテーブル
XDFのアーキテクチャが提供するメリット
XDFのマルチプラットフォーム対応を実証
•2009年度の改良により、Swingプラグインだけでなく、Androidプラグインを新たに開発&サポート
•プラグイン変更だけで、容易にアプリケーションをAndroid-Swing間で移動可能
XDFアプリケーション
画面定義XML
スタイルシート
アクション実装
Androidへのインストール
Swingへのインストール
*.jar
*.apk
XDF Swing
Plug-in
XDF Android
Plug-in
XDF Core
XDF Core
Java SE / AWT, Swing
Java SE / Android Libs
Java VM
Dalvik VM
PC
PDA, Smart Phone
各プラットフォーム用プラグインを用意するだけ
移植性のさらなる向上
ソフトウェアとしての完成度向上
今年度の成果
•マルチプラットフォーム対応への可能性を示すため、フレームワークのアーキテクチャを改良
•新プラグインの追加が新たに必要となった場合でも、追加に対応出来るフレームワークへ進化
•Swing Plug-inにおける利用可能コンポーネントを追加 (前期:toggle, passwordfield / 後期:table)
•コンポーネントの機能強化 (新属性への対応:スクロールバー、文字の折り返し、文字列・アイコンの配置場所指定)
•XDFを手軽に利用してもらうためのドキュメント類を整備