Presentation is loading. Please wait.

Presentation is loading. Please wait.

プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.

Similar presentations


Presentation on theme: "プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也."— Presentation transcript:

1 プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也

2 AWT(1) 以下の3種類のGUI部品を用いる. トップレベル・コンポーネント(コンテナ) 中間コンポーネント(コンテナ)
他の部品を追加できるが他の部品に含まれないもの. 中間コンポーネント(コンテナ) 他の部品に含まれ,他の部品を追加できるもの. アトミック・コンポーネント 他の部品を追加できないもの. トップレベル コンポーネント 中間コンポーネント アトミックコンポーネント

3 AWT(2) コンポーネントのクラス階層. アトミックコンポーネント トップレベル コンポーネント

4 AWT(3) リスナインタフェース 各コンポーネント毎に追加され,そのコンポーネントで発生するイベント(マウスクリックなど)を監視する.
各コンポーネントでイベントが発生したときに,イベントの種類に応じたメソッドが呼ばれる. 実際のイベント処理は,リスナインタフェースを実装した 各具象クラス(ユーザが自由に定義する)に記述する.

5 AWT(4)

6 フレームワーク フレームワークとは… 抽象クラスの集合とそのインスタンス間の相互作用によって表現された,システムの全体または一部の再利用可能な設計(ソースコード) 開発者がカスタマイズできる,アプリケーションの骨組み 例: AWT, JavaBeans, OLE, CORBA, San Francisco, … アプリケーション1 アプリケーション2 アプリケーション3 フレームワークの再利用 → 開発の効率化,アプリケーションの統一性 フレームワーク フレームワーク フレームワーク

7 フレームワークとアプリケーション フレームワーク (17クラス) アプリケーション

8 フレームワークの技術 フレームワークで用いる主な技術: 抽象クラス,インタフェース
フレームワーク中の多くクラスは抽象クラスかインタフェース. アプリケーションクラスは,フレームワークのクラスを継承または実装して用いる.(ホワイトボックス再利用) 制御の反転(IoC, Inversion of Control) メインループがフレームワーク側に存在する. アプリケーションのコードは必要に応じて呼び出される. フレームワーク mouseClicked main windowClosing アプリケーション

9 MVCフレームワーク MVC(Model-View-Controller)フレームワーク: MVCの構造:
最初に広く使われたフレームワーク(’70年代後半) Smalltalk-80のユーザインタフェースのフレームワーク 後世のさまざまなフレームワークに影響 アプリケーションロジックとユーザインタフェースを分離するのが目的 MVCの構造: ユーザインタフェース アプリケーション ロジック ビュー 表示 モデル コントローラ 入力 データを保持

10 フレームワークの現状 現状: 問題点: GUIに限らず,さまざまな分野でフレームワークが発展している.
多くはオブジェクト指向技術に基づいたもの. 商用(あるいはオープンソース)のものと,自社開発用のものがある. コンポーネント技術(ActiveX, JavaBeansとしても発展),アプリケーション構築ツールとも連動. 問題点: 習得が困難(優れたドキュメント,長時間のトレーニング) 開発も困難 (対象領域の注意深い分析が必要,後で変更しにくい)

11 デザインパターン E. Gamma, R. Helm, R. Johnson, J. Vlissides (GoF:ギャングオブフォー): 「オブジェクト指向における再利用のための デザインパターン 改訂版」,ソフトバンクパブリッシング. ソフトウェアで頻繁に出現する設計のパターンをカタログ化. 上記書籍では23種類のパターンを紹介. MVCフレームワークはデザインパターンの原型. 各パターンは以下の4つの要素で構成される. パターン名 → パターンとして抽出し名前をつけたことが重要!! 問題 解法 結果

12 Observerパターン(1) MVCフレームワークの主要部分.(モデルとビューに相当) 問題: Observers (Views)
表示の更新 データの要求,変更 d[0][0] = 20.4 d[0][1] = 27.4 : Subject (Model)

13 Observerパターン(2) 問題の詳細: 論理的な情報はSubjectが保持し,外観に関する情報は各Observerが有する.

14 Observerパターン(3) フレームワーク側 解法: アプリケーション側 複数個のObserverを参照 データを保持
ConcreteSubjectを知っている アプリケーション側

15 Factory Methodパターン 問題:アプリケーションはドキュメントを生成し保持するが,具体的なドキュメントのクラスを知らないため,自身ではドキュメントをインスタンス化できない. 解法: アプリケーション側 フレームワーク側

16 Compositeパターン 問題: オブジェクトを木構造に組み立てる際,個々のオブジェクトとそれらを合成したものを一様に扱いたい. 解法:
アトミックコンポーネント コンテナ AWTのコンポーネントとコンテナ

17 フレームワークとパターン 抽象度: フレームワークはコードの再利用.パターンは設計の再利用.
粒度: 一般にフレームワークは複数のパターンを含んでいる. パターンはフレームワークより小さい要素. 汎用性: 多くのフレームワークは特定のアプリケーション分野に特化している.パターンは分野によらず使用できる.

18 講義で話せなかったこと プログラム理論: コンパイラやインタプリタの内部処理: 他のプログラミングパラダイム:
型理論 意味論 計算モデル コンパイラやインタプリタの内部処理: 最適化 構文解析 ガベージコレクション 他のプログラミングパラダイム: 関数型プログラミング(特にLisp) アスペクト指向 開発手法:(後期のソフトウェア工学で…) RAD リファクタリング

19 参考文献,URL Java Eclipse UML: デザインパターン: フレームワーク:
Eclipse UML: デザインパターン: E.Gamma, R.Helm, R.Johnson, J.Vlissides著,本位田真一, 吉田和樹 訳:「オブジェクト指向における再利用のための デザインパターン 改訂版」, ソフトバンクパブリッシング. フレームワーク: R.Johnson, 中村宏明, 中山裕子,吉田和樹著: 「パターンとフレームワーク」, 共立出版 ソフトウェアテクノロジーシリーズ1.

20 講義を終えるに当たって… 日本のソフトウェア産業 2000年の日本のソフトウェアの輸出額は輸入額の100分の1程度.
1995~2000年の間の カスタムソフトの輸入の伸びは約8倍(32%). 輸入元は米国89%, 欧州7%と続く. 中国,インドへのオフショアリングの増加. 「ソフトウェア輸出入統計調査」 電子情報技術産業協会(2003)

21 ソフトウェア産業の未来 ソフトウェアの高度化,大規模化 世界の潮流を読むこと!! コンポーネント指向 ダウンサイジング ビジネスモデリング
ハードウェア アプリケーション 高級言語 OS フレームワーク ミドルウェア コンポーネント指向 ダウンサイジング ハードウェア アプリケーション 高級言語 OS ハードウェア アプリケーション 低級言語 OS アプリケーション ビジネスモデリング アジャイル ハードウェア SOA オープンソース 世界の潮流を読むこと!!


Download ppt "プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也."

Similar presentations


Ads by Google