150 likes | 346 Views
深澤研究室パターン班の紹介. 2006 年 4 月 10 日 深澤研究室 D1 久保 淳人. ソフトウェア開発と知識. ソフトウェア開発 : 様々な知識を用いて、問題領域に関する知識から解決領域に関する知識への対応付けをおこなう知的作業 知識 : 経験に基づいて理解し認識した事柄. 解決領域に関する知識. 問題領域に関する知識. 対応付け. ツール. 要求. プログラミング言語. ドメイン. 開発方法論・プロセスに関する知識. 知識そのものに関する知識. 組織形成に関する知識. 対応付けに関する知識. ソフトウェアパターンとは.
E N D
深澤研究室パターン班の紹介 2006年4月10日 深澤研究室 D1 久保 淳人
ソフトウェア開発と知識 • ソフトウェア開発: • 様々な知識を用いて、問題領域に関する知識から解決領域に関する知識への対応付けをおこなう知的作業 • 知識: 経験に基づいて理解し認識した事柄 解決領域に関する知識 問題領域に関する知識 対応付け ツール 要求 プログラミング言語 ドメイン 開発方法論・プロセスに関する知識 知識そのものに関する知識 組織形成に関する知識 対応付けに関する知識 パターン班紹介
ソフトウェアパターンとは 問題解決のノウハウ 熟練技術者 パターンを適用し 直面した問題を解決 他の技術者 • 解決すべき問題 • 制約条件は何か? • 制約条件を考慮した解法・指針 • 関連する他のパターン パターン パターン班紹介
ソフトウェアパターンとは (続き) • 定義 • ソフトウェア開発経験における特定の文脈上で、繰り返し発生する一定の出来事から得られる知識に名前を付けたもの • 繰り返し発生する状況について、解決すべき問題と調節すべき制約、および、解法を特定の形式に従って文書化 • 特徴 • 表現上の基準: 3つ組(文脈・フォース体系・ソフトウェア構成) • パターンは作り出すものではなく、思い起こすもの • 誰もが、自分のパターンを持っている • 適用実績が必要 (Rule of Three) • パターンは、単なる問題・解決対では “ない”ことに注意 パターン班紹介
パターンと問題解決対 • 問題-解決対? • パターンは、単なる問題・解決対では “ない”ことに注意 • フォース(制約)を解消する解決 • こういう面を考慮する場合は、この解決が適切という道筋 問題1 問題 フォース1 フォース2 解決1 解決 ・・・ 解決2 パターン1 パターン2 問題-解決対 問題‘ 解決‘ パターン‘ パターン班紹介
ソフトウェアパターン活動と知識 • ソフトウェアパターン活動とは? • ソフトウェアパターンをソフトウェア開発に活用する活動 • 抽出: 発見 → 記述 → 提出 → 洗練 • 利用: 選択 → 拡張 → 適用 → 評価 提出・洗練 発見・記述 ソフトウェア集合 ソフトウェア パターン ソフトウェア 開発知識 開発者 コミュニティ パターン班紹介 適用・評価 選択・拡張
パターンの例: アーキテクチャパターン • 例えばMVCパターン • 名前: Model-View-Controller • 対象: 対話型アプリケーション • 問題: • UIは要求仕様の変更の影響を受けやすい • UIと機能中核部分の結合度が高いと,変更や保守が困難 • フォース: • モデルに対してモデルに同期する複数のビュー • UIの変更が容易 • L&Fがアプリケーションの中核機能と独立 • 解決 • 処理(Model),出力(View),入力(Controller)に分割 • UIは、ViewとControllerを合わせたもの • UIの同期処理に、Observerパターンを利用 パターン班紹介
アーキテクチャパターン(2) • MVCパターン • Model: 問題対象としてのデータとデータ操作 • View: 画面への出力 • Controller: ユーザ入力への反応 ロジック部(Model) と GUI処理部(View,Controller)の分離 Observer ・ViewはModelに依存 ・Modelの状態変化通知を受け ViewはGUI出力を自動更新 Model View Controller パターン班紹介
アーキテクチャパターン(3) • Java SwingにおけるMVCアーキテクチャの適用 • Model: コンポーネントのデータとデータ操作(Model) • UI: 画面への出力(View) • コンポーネント自身: ユーザ入力への反応(Controller) Model Controller View ComponentUI 各種Look&Feel ButtonModel JButton ButtonUI plaf.metal. MetalButtonUI <<implements>> plaf.basic. BasicButtonUI plaf.motif. MotifButtonUI DefaultButtonModel plaf.windows. WindowsButtonUI JDK標準デモプログラムにおけるLook&Feelの切替え パターン班紹介
パターン班の体制 2006.4~ • メンバ構成 • ボス: 深澤良彰 教授(早稲田大学) • リーダ: 鷲崎弘宜 助手(国立情報学研究所) • 学生: 新D1・新M2 各1名 • 卒業生: 1名 (2003年度から) • 募集人員 • 1名 • 大学院への進学希望は問わない • 希望者が複数いる場合には進学希望者を優先します パターン班紹介
ゼミの形式 • 周期: 週1回、曜日を固定 夜の開催が多い(19時~) • 場所: 情報学科会議室 または 深澤研究室 • 内容: • 基礎学習: • オブジェクト指向技術・パターン技術に関する学習 • パターンの利用・パターンライティング • 論文紹介 • 研究: • 目標を設定し、解決法を探り、実装を行う • 1対1形式で議論 • 他のメンバへの発表 パターン班紹介
研究の姿勢 • 方針 • 外を意識する。研究室に閉じこもっていては全く意味がない。 • 面白いこと・意味のあること・役に立つことを目指し、実現していく • 知識を共有し、外へ伝える • 自分で考えて、他人と議論する • 対外発表(うち、学生関与分) • 論文: 2(2) • 国際会議: 3(2) +α • 国内会議: 5(5) +α • 書籍・雑誌: 2(0) +α • 講演: 多数 • 成果物の公開 • ソフトウェア: “動く” 研究成果の公開 • 技術文書: ノウハウを広く公開 パターン班紹介
現メンバと研究テーマ • 新D1:久保 • 文書類似度を用いたパターン間関連の自動分析 • 多数のパターン間関連を自動分析 • 人間が気づかなかったパターン間関連の示唆 • パターンを計算機で扱うためのモデル化 • テキスト処理技術の利用 • 論文:Atsuto Kubo, Hironori Washizaki, Atsuhiro Takasu and Yoshiaki Fukazawa, "Extracting Relations among Embedded Software Design Patterns," Journal of Design & Process Science, 2006. • 新M2:中山 • パターン集合中の重要度順位付け手法 • 多数のパターン集合から、重要なパターンを抽出 • GoogleのPageRankに似た手法をパターンやパターンカタログに適用 • 国内会議:中山弘之, 鷲崎弘宜, 久保淳人, 深澤良彰, 重要度算出に基づくソフトウェアパターン検索システム, ソフトウェア工学の基礎ワークショップ (FOSE2005), (November 10-12, 2005) パターン班紹介
関係するプロジェクト • 情報処理学会ソフトウェア工学研究会パターンワーキンググループ http://patterns-wg.fuka.info.waseda.ac.jp/ • 企業の方々との共同でのセミナー開催など • パターン班のメンバは、必ず参加し活動してもらいます • 米国非営利活動法人 The Hillside Group, Inc. • ソフトウェアパターンの総本山としての団体 • ソフトウェアパターンの収集・整理・議論・国際会議開催 • 日本からは、鷲崎ほか 4名が Member として参画 パターン班紹介
おわりに • 学術機関におけるパターン研究はまだ少数 • 全く新しく挑戦できる、パターンは楽しい • 抽象的な議論ではなく、具体的なシステムの実装を目指す • 研究テーマ案 • パターンの分類・検索 • パターンの適用支援 • パターンの合成・抽出 • パターンの閲覧支援 • 質問があれば直接あるいはメールで自由に問い合わせてください パターン班紹介