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

Slides:



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

ソフトウェア工学 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 玉井哲雄 : 「ソフトウェア工学の基礎」, 岩波書店.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ 金子 拓磨
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
PacSec Nov 6, ISMSおよびその重要性 Richard Keirstead CISSP, BS7799 主任監査員
音声と連携する受注システムの拡張開発 XXX.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
第6章 トランザクション管理 6.1 トランザクションの概念 6.2 同時実行制御 6.3 障害回復.
情報科学科 ネットワークシステムコース 西関研究室.
「C++言語」習得のための実践的研究 -「テンプレート」,「例外処理」,「実行時型情報」-
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
構成管理 構成管理とは、ソフトウェア開発に於ける成果物をある時点で凍結し、 以降の変更を管理する事をいう
要約 きりん、まぐろ、PB.
ソフトウェア工学 第四回 知能情報学部 新田直也.
ソフトウェア工学 第五回 知能情報学部 新田直也.
シミュレーション論 Ⅱ 第15回 まとめ.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
XP Extreme Programming.
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
平成19年10月19日 図書系のための アプリケーション開発講習会
~新たなソフトウェア開発の手法~ 発表 土屋俊介
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
Winter Workshop in Kanazawa -プロセスと方法論-
アスペクト指向言語のための 独立性の高いパッケージシステム
オブジェクト指向言語論 第十四回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
INTRODUCTION TO SOFTWARE ENGINEERING
プロジェクト演習 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
保守請負時を対象とした 労力見積のためのメトリクスの提案
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
UMLモデルを対象とした リファクタリング候補検出手法の提案と実現
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
C#プログラミング実習 第1回.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
Presentation transcript:

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

先週ネット上で広がった話題

みずほ銀行次期システムの破綻 4000億円の損失 20万人月(クフ王のピラミッド建造と同規模!!) 日立,IBM,NTTデータ,富士通が1次受け. 7次受けは時給910円. 問題の本質は? 開発体制 顧客 組織 人員 見積り 技術

ソフトウェア開発の大規模化 カーナビ 300~500万行 原子力制御 600万行 レクサス 700万行 携帯電話 1200万行 カーナビ 300~500万行 原子力制御 600万行 レクサス 700万行 携帯電話 1200万行 スペースシャトル 2560万行 メガバンク勘定系 システム 2000~6000万行 Windows XP 4000万行 Windows Vista 5000万行 Windows 7 1億行

大規模ソフトウェア開発の現状 全開発プロジェクトの約1/3が途中で中止,残る2/3が予算の倍の経費と時間で何とか完成. ある調査では,2009年度の全世界におけるプロジェクト失敗による損失は6兆ドル!! ソフトウェア危機は解決されていない.

ソフトウェア工学は何をしてきたのか? 本質的な問題はまだ解決されていない. 狼人間を撃つ銀の弾は未だ見つかっていない. 複雑性: 大きさの割には他のどの人工構造物より複雑.(似た部分が少ない.) 同調性: ハードウェア,人間の習慣,社会制度などの環境に順応させなければならない. 可変性: 頻繁に変更を要求される. 不可視性: 目に見えない. 狼人間を撃つ銀の弾は未だ見つかっていない.

アジャイル開発はどうか? 優秀な技術者が必要. 中,小規模開発では成功. 少しずつ機能を付け足しながら,動くソフトウェアを改良していく. 設計も必要に応じて改良していく.(リファクタリング) 機能が増えてきても大丈夫か? 最初の方に加えた機能と後で加える機能が競合してしまう場合どうすればよいか? 後から大規模な設計変更はできない. 全体の設計は最初から慎重に行わなければならない.

再利用はどうか? オブジェクト指向は再利用のための技術. アプリケーションフレームワーク: 構造化指向ではライブラリ単位で部品を再利用. オブジェクト指向ではフレームワーク単位で全体設計を再利用. アプリケーションフレームワーク: 親クラス(抽象クラス)の集合. 多相性によってフレームワーク側からアプリケーション側が呼び出される(制御の反転). ハリウッドの原則:「俺に電話するな.必要ならこちらから電話する.」 アプリケーション ライブラリ アプリケーション フレームワーク

再利用の現状 フレームワークは一定の成果を生んでいる. ただし,最初から良いフレームワークを設計することは困難. たとえ良いフレームワークを開発できたとしても,開発者以外がそれをうまく再利用することは困難. 再利用の方法が複雑. 適用可能範囲が複雑.

複雑性への対処 ソフトウェアの複雑性への対処ができていないことが本質的な問題. 大規模で複雑なソフトウェアを適切に抽象化し管理する技術が確立されていない. 構造化指向もオブジェクト指向も抽象化の技術. 複雑すぎて事前に適切な抽象化を行うことができない. 開発が進んだ段階で適切な抽象化を思いついたとしても手遅れ. 適切に抽象化されていないソフトウェアは再利用できない.

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