ソフトウェア工学 知能情報学部 新田直也.

Slides:



Advertisements
Similar presentations
ソフトウェア工学 知能情報学部 新田直也. リファクタリング  リファクタリング( refactoring ): 「プログラムの外的振る舞いを変えることなく,その内 部構造を改善すること」  もともと Smalltalk のコミュニティで使われていた.  M. ファウラーの 1999 年の著書.
Advertisements

ソフトウェア工学 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 玉井哲雄 : 「ソフトウェア工学の基礎」, 岩波書店.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
メタモデル記述を用いた成果物間の依存関係追跡手法
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
表計算ソフトで動作するNEMUROの開発
ソフトウェア工学 知能情報学部 新田直也.
報告 (2006/9/6) 高橋 慧.
情報処理学会・経営情報学会 連続セミナー第3回 情報システム構築アプローチ 主旨
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
UMLとは           032234 田邊祐司.
ソフトウェア工学 第四回 知能情報学部 新田直也.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
ソフトウェア工学 第五回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
2017年度 情報技術マップ調査 ITディレクトリの構成とSI要素技術
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
学生の相互評価を用いた モデリング支援システムの開発
社会シミュレーションのための モデル作成環境
SOA基盤製品 「見る、聞く、体験する SOAノウハウツアー」
横断的関心事に対応したオブジェクト指向言語GluonJとその織り込み関係の可視化ツール
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
Winter Workshop in Kanazawa -プロセスと方法論-
アスペクト指向言語のための 独立性の高いパッケージシステム
オブジェクト指向言語論 第十四回 知能情報学部 新田直也.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第15回放送授業.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
Ibaraki Univ. Dept of Electrical & Electronic Eng.
プロジェクト演習 知能情報学部 新田直也.
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
設計情報の再利用を目的とした UML図の自動推薦ツール
アスペクト指向言語のための視点に応じた編集を可能にするツール
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
プログラム分散化のための アスペクト指向言語
ロールを基にした構造進化の表現 Role based Evolution Dependency Structure Matrix
開発者との対話を活かした 横断的構造の表現
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
ソフトウェア工学 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
GluonJ を用いたビジネスロジックからのデータベースアクセスの分離
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
Presentation transcript:

ソフトウェア工学 知能情報学部 新田直也

ソフトウェア工学の現在 ソフトウェア工学の議論は,いつでもプロセス(開発工程)かプロダクト(成果物)が中心. プロセス: プロダクト: アジャイル開発 ← ハッカー モデル駆動型アーキテクチャ(MDA) ← IBM ソフトウェアファクトリ ← マイクロソフト プロダクト: UML デザインパターン フレームワーク 可変性分析,マルチパラダイムデザイン アスペクト指向,サブジェクト指向 サービス指向アーキテクチャ(SOA)

プロセスにおける論点 基本的にパラダイムはオブジェクト指向から進歩していない. 論点は,軽量級か重量級か? アジャイル: 軽量級(人間性を重視) モデル駆動型アーキテクチャ,ソフトウェアファクトリ: 重量級(工学性,機械性を重視) 根本には,ソフトウェア開発は技芸か?数理か?という議論がある. 個人的な立場: 基本的には技芸だが,未知の数理によって開発がもっと楽になるのでは?

モデル駆動型アーキテクチャ UMLはOSや言語に依存しない. UMLを高級プログラミング言語とみなせないか? 個人的な批判: OMG(Object Management Group)主導で進められている. Eclipseなどでも対応しつつある. 個人的な批判: 図で書くよりプログラミングする方が早い. 図だけで細かい処理を記述するのは困難. 結局,ウォーターフォールの延長線上にある.

統一プロセス(Unified Process) UMLは記法の統一のみであった. UMLのスリーアミーゴがプロセスの統一も目指した. 3つの特徴. ユースケース駆動: ユースケース図を基本に開発を進める. アーキテクチャ中心: アーキテクチャ(システムの全体構造)を洗練させていく. 繰り返し型開発: 基本的にスパイラルモデルと同様.ただし,各繰り返しは方向付け,推敲,構築,移行というフェーズによって構成される.

プロダクトにおける論点 結局,パラダイムはオブジェクト指向から進歩していない. この先,どこへ向かうのか? UML デザインパターン フレームワーク この先,どこへ向かうのか? オブジェクト指向によってプログラムの設計がより強く意識されるようになった. 設計にパターンしか見出せていないということは,結局,設計に関する理論がまだ未完成であるということ. 可変性分析,マルチパラダイムデザインが新しい方向性.

フレームワーク アプリケーション間で共有されるソフトウェアの骨組みに相当するソースコード. オブジェクト指向技術に基づく. 社内の複数アプリケーション間で共有. 世界中で共有.(フレームワーク単体で流通.) オブジェクト指向技術に基づく. 親クラス(抽象クラス)の集合. 多相性によってフレームワーク側からアプリケーション側が呼び出される(制御の反転). ハリウッドの原則:「俺に電話するな.必要ならこちらから電話する.」 アプリケーション ライブラリ アプリケーション フレームワーク

フレームワークの長所と問題点 長所: 問題点: ライブラリより再利用の単位が大きい. 実装だけでなく設計も再利用することができる. メインループを再利用することができる. 問題点: 使い方が難しい. 理解するのに時間がかかる. 開発できるアプリケーションが制限される. 場合によっては実装工程終盤でフレームワークが使えないことが判明し,プロジェクトが進まなくなってしまうこともあり得る.

サービス指向アーキテクチャ ソフトウェア部品や機能(サービス)をネットワーク上にインタフェースと共に公開. サービス間の連携によってシステムを構築する. Webサービス インタフェース記述: WSDL 遠隔呼出し(バインド): SOAP 分散オブジェクトシステムとほぼ同義. 呼出し側の記述が簡潔になったことが特長.

アスペクト指向 オブジェクト指向を補完するパラダイム. 主にIBMが主導. オブジェクト指向におけるクラス階層は単一の視点から見たものに過ぎない.その視点でモデル化できない処理は複数クラスに分散.(横断的関心事) たとえばログ出力処理は,ほとんどすべてのクラスに散らばる. 横断的関心事をアスペクトとして抜き出す. アスペクトはコンパイル時または実行時にクラスに織り込まれる.(ウィービング)

まとめ まさに現在進行形なのでまとめることは不可能. ただし,プロセスの観点とプロダクトの観点は重要. ソフトウェア工学が面白い時代? (過渡期?) 混乱しているということは,裏を返せば,新しいパラダイムの誕生前夜なのかもしれない.

ソフトウェア工学のまとめ ソフトウェア工学: ソフトウェアの開発,運用,保守に対する,系統的で統制され定量化可能な方法.すなわちソフトウェアへの工学の適用. ソフトウェア工学は未だ確立していない. 銀の弾丸などない(人月の神話,F.P.ブルックス,Jr.) → 一歩一歩ゆっくりと進歩していくしかない. ソフトウェアの本質: 複雑性 同調性 可変性 不可視性

まとめのまとめ 結局,特効薬(銀の弾丸)はまだ存在しない. 技術の地道な積み重ねによってのみ発展する? → 新しい技術をチェックしておくこと. ただし,ソフトウェア工学分野には使えない技術も多いので注意が必要. 「ここが明るくて探しやすいからですよ。」 後は,実務経験を積むこと. 失敗 苦労