• 検索結果がありません。

– OOP

ドキュメント内 PowerPoint プレゼンテーション (ページ 42-59)

パターンの多用(Visitor,SPIなど)

フレームワーク(2)

~重要なクラス・インタフェース~

クラス名・インタフェース名 説明

Application アプリケーションを表す

ApplicationReader アプリケーションを読み取る汎用リーダを表す

ApplicationWriter アプリケーションを書き込む汎用ライタを表す

Translator アプリケーションを変換するための汎用

トランスレータを表す

Visitor アプリケーションを変換する際のビジターを表す

VisitorTranslator Visitorパターンを用いて実装したトランスレータ

フレームワーク(3)~概要クラス図~

クラスとインタフェースはSPIに基づいて設計.

柔軟なインスタンス生成,部品の組み合わせをサポート.

フレームワーク(4)

~変換アルゴリズム~

特徴

Visitorパターンを用いる.

メタ情報・ウィジェット情報・スタイル情報に関しては,XMLの木構造 を再帰的に変換する形で処理を行う.

振舞い情報は,抽象構文木(AST:Abstract Syntax Tree)を対象に 再帰的に処理を行う.

VisitorパターンはXMLと相性がいい.継承または委譲に

よる再利用で,既存のコードの上に追加処理のみを書ける.

フレームワーク(5)

~疑似コードによる説明~

/**

* Web-IRの変換を説明するための擬似コード.

* この例では,入力と出力をそれぞれAjaxと * 中間表現と仮定している.

* @param e0 変換されるHTMLの要素 * @return e0と等価な中間表現の要素 */

Element visit(Element e0){

switch(e0){

case "<input type='checkbox'>":

Element e1 = new Element("<checkbox>");

while(e0.hasMoreChild()){

e1.appendChild(visit(e0.nextChild()));

}

return e1;

case "<input type='text'>":

Element e1 = new Element("<textbox>");

return e1;

...

}

評価テスト1~前提~

• 評価軸

各RIA技術と中間表現間で画面情報が相互にどの程度変換 できるか

出現頻度による重みを考慮

Web上のトラフィック上位10サイトからクローラを用いて算出.

• 入力RIA技術

– Ajax・Flex(RIAのシェア双璧)

• 出力RIA技術

– OpenLaszlo・HTML5・JavaFX

Ajaxを処理できるということは,それ以外の既存のWeb

アプリケーション(いわゆる「レガシーWebアプリ」)も

評価テスト1

~トラフィックTOP10サイト~

ランク サイト名 URL

1 Google http://www.google.com/

2 Facebook http://www.facebook.com/

3 YouTube http://www.youtube.com/

4 Yahoo! http://www.yahoo.com/

5 Blogger.com http://www.blogspot.com/

6 Baidu.com http://www.baidu.com/

7 Wikipedia http://www.wikipedia.org/

8 Windows Live http://www.live.com/

9 Twitter http://www.twitter.com/

10 QQ.COM http://www.qq.com/

データ提供:Alexa, Internet.

評価テスト1

~集計結果(HTML・抜粋)~

ランク タグ 出現回数 出現率(%)

(出現数/全出現数)

1 a 1,482 27.15

2 div 1,290 23.63

3 span 828 15.17

4 img 376 6.89

5 li 313 5.73

6 br 298 5.46

7 button 146 2.67

8 script 106 1.94

9 p 70 1.28

10 option 67 1.22

評価テスト1

~集計結果(CSS・抜粋)~

ランク プロパティ 出現回数 出現率(%)

(出現数/全出現数)

1 width 1,235 7.44

2 padding 919 5.53

3 height 902 5.43

4 display 902 5.43

5 color 842 5.07

6 background 692 4.17

7 margin 605 3.64

8 font-size 575 3.46

9 background-position 575 3.46

10 position 559 3.36

評価テスト1

~ウィジェット情報の変換率~

入力 出力 変換率(%) 重みを考慮した 変換率(%)

Ajax 中間表現 80.6 93.8

Flex 中間表現 44.0 N/A

中間表現 OpenLaszlo 100.0 100.0 中間表現 HTML5 90.0 N/A 中間表現 JavaFX 100.0 100.0

・Ajaxに対しては,90%以上の変換が実現できる.

・Flexの変換率は低いのは,Flexのコンポーネント数が多いため である(中間表現の拡張機能を使えば,変換率は100%になる).

評価テスト1

~スタイル情報の変換率~

入力 出力 変換率(%) 重みを考慮した 変換率(%)

Ajax 中間表現 100.0 100.0

Flex 中間表現 33.3 N/A

中間表現 OpenLaszlo 42.6 54.8 中間表現 HTML5 100.0 100.0 中間表現 JavaFX 62.3 95.8

・Ajax・HTML5以外のスタイルの変換率が低いのは,CSSが

実際にはあまり用いられない多くのプロパティをもつためであり,

実用上は問題がない(ことが多い).

評価テスト2~前提~

• 評価軸

– RIAの画面開発による工数を比較.

• 前提条件

被験者はRIAの初学者.

外観が同じになるように作成.

評価テスト2~作る画面~

評価テスト2~結果~

単純な画面であっても,開発には多くの工数がかかる

(スタイルポリシーや流儀の違い,不慣れが原因か).

RIA技術

学習コスト

(人時)

開発コスト

(人時)

JavaFX 1.0 3.5

OpenLaszlo 1.0 9.5

評価テスト3~前提~

• 評価軸

– Web-IRの使用の有無によるRIA変換システムの実装にかか

る工数を比較.

• 前提条件

– 3種類のRIAの変換システムの試作から評価を行った.

変換対象は画面情報のみ(振舞いを含まない).

評価テスト3~結果~

入力 出力

Web-IRの

使用の有無

工数

(人時)

行数

Ajax OpenLaszlo × 10.0 1,450

Ajax OpenLaszlo

5.0 960

Flex HTML5 × 24.0 1,818

Flex HTML5

18.0 1,231

Ajax JavaFX × 20.0 3,156

Ajax JavaFX

12.0 1,627

Web-IRを用いると,RIAの変換システムを構築する際の工数と行数

が2/3から半分程度になる(設計方法論の強制によるものと推測).

※数値のマジックに要注意:削減率がたったの1割でも,案件規模が

おわりに

RIAの移植性の問題を解決するために,XMLベースの

中間表現とJavaベースのフレームワークを使用するモ デルを提案した.

• 上述のモデルを実装したWeb-IRを開発した.

3つの実証例を用いた評価は,我々のモデルが前述の

問題の工数削減に有用であることを示した.

• 振舞い情報の変換に関しては,機能を重要度ごとに分 別し,重要度の高いものから逐次対応を強化したい.

• (もっとさきの課題)システム全体の工数を削減するた めには文字コードやSQLの標準化なども重要.

ドキュメント内 PowerPoint プレゼンテーション (ページ 42-59)

関連したドキュメント