OpenCourseWare(OCW)を勉強するWiki
6.170 Laboratory in Software Engineering Lecture 1
最終更新:
匿名ユーザー
-
view
MIT OpenCourseWare > 6.170 Laboratory in Software Engineering, Fall 2001 > 6.170 Laboratory in Software Engineering Lecture 1
MIT OpenCourseWare 6.170 Laboratory in Software Engineering, Fall 2001, Lecture 1: Introduction のまとめ
ラジオの方では vol.1 にあたりました。Lecture Noteを読むときの助けにしてください。
6.170 Laboratory in Software Engineering, Fall 2001のLecture NoteのPDFはこちら
(※2006年4月16日現在、上記講義は6.170 Laboratory in Software Engineering, Fall 2005にアップデートされたようですが、PDFはまだ拾うことができます。)
6.170 Laboratory in Software Engineering, Fall 2001のLecture NoteのPDFはこちら
(※2006年4月16日現在、上記講義は6.170 Laboratory in Software Engineering, Fall 2005にアップデートされたようですが、PDFはまだ拾うことができます。)
1.1 What 6170's About
このコースの主な単元
- オブジェクト指向プログラミング
- オブジェクト指向のソフトウェアデザイン
- ソフトウェア開発の演習(ネットラジオでは対象外とします)
このコースで身につくもの
- ソフトウェアのデザイン 抽象化のメカニズムやパターンを以下に上手に実現するか、デザインの表現
- Javaによる実装
- dependable, flexibleなソフトウェアの実現
重要なのはデザインに重点を置いていることで、プログラミングは前提知識。
また、hackingすることが目的ではない。
また、hackingすることが目的ではない。
- ローレベルのコーダーではなくアーキテクトになる
- デバッグに時間をかけない
1.2 Admin & Policies
講義資料
(ただしこのネットラジオでは2つ目のlecture notesのみ使い、残りはDJの力量でカバーしていきます……多分)
(ただしこのネットラジオでは2つ目のlecture notesのみ使い、残りはDJの力量でカバーしていきます……多分)
- course text: Liskov, Barbara. Program Development in Java: Abstraction, Specification, and Object-Oriented Design. Reading, MA: Addison-Wesley, 2001. ISBN: 0201657686.
- lecture notes: usually published the day of the lecture
- ‘Gang of Four’design patterns book: recommended
- ‘Effective Java’by Bloch: recommended
- Javaのチュートリアル
1.3 Why Software Engineering Matters
ソフトウェアエンジニアリングの、主に社会的な重要性。
1996年の調査では
- ソフトウェアは輸出黒字最上位 $24Bを輸出し$4Bが輸入($20Bの黒字)
- 他の産業では… agriculture 26-14-12, aerospace 11-3-8, chemicals 26-19-7, vehicles 21-43-(22), manufactured goods 200-265-(64)
(元資料 Software Conspiracy, Mark Minasi, McGraw Hill, 2000).
ソフトウェアの役割はインターネットだけではなくtransportation, energy, medicine, financeなどにまで。たとえば車には10から100のプロセッサが載っていて、ブレーキからオーディオまで関わっている。
購入のコストはゼロに近づいているが、維持のコストが多くかかっている。
開発の失敗、アクシデント、質の低いソフトウェアなど。
開発の失敗、アクシデント、質の低いソフトウェアなど。
1.3.1 Development failures
開発の失敗例の分類
IBM survey, 1994
- 55%のシステムがオーバーコスト
- 68%がスケジュールをオーバー
- 88%が実質的に再デザイン
Advanced Automation System (FAA, 1982-1994)
- 業界平均は$100/行だが, 本来は$500/行ぐらいかかっている
- 結局$700-900/行ぐらい払っている
- $6Bの仕事が無駄になっている
Bureau of Labor Statistics (1997)
- 新しいシステムは6個中2個はキャンセルされてる
- 最大のシステムのキャンセル割合は50%
- スケジュールオーバーが50%
- 3/4のシステムが運用に失敗
1.3.2 Accidents
アクシデントについて。
“The most likely way for the world to be destroyed, most experts agree, is by accident. That’s where we come in. We’re computer professionals. We cause accidents.”
Nathaniel Borenstein, inventor of MIME,in: Programming as if People Mattered: Friendly Programs, Software Engineering and Other Noble Delusions, Princeton University Press, Princeton, NJ, 1991.
“The most likely way for the world to be destroyed, most experts agree, is by accident. That’s where we come in. We’re computer professionals. We cause accidents.”
Nathaniel Borenstein, inventor of MIME,in: Programming as if People Mattered: Friendly Programs, Software Engineering and Other Noble Delusions, Princeton University Press, Princeton, NJ, 1991.
アクシデントの例。
Therac-25 (1985-87) ‘interpretation of beam block data by software’ was a factor
http://sunnyday.mit.edu/therac-25.html
http://www.fda.gov/cdrh/ocd/panamaradexp.html
Therac-25 (1985-87) ‘interpretation of beam block data by software’ was a factor
http://sunnyday.mit.edu/therac-25.html
http://www.fda.gov/cdrh/ocd/panamaradexp.html
- Ariane-5 (June 1996) It’s quite rare for bugs in the code to be the cause; usually, the problem goes back to the requirements analysis,
(テキストの参照先がデッドリンク)
- London Ambulance Service (1992) really a managerial one. they made the terrible mistake of trying to go online abruptly, without running the new and old systems together for a while.
PITAC report, Information Technology Research: Investing in Our Future
“The demand for software has grown far faster than our ability to produce it. Furthermore, the Nation needs software that is far more usable, reliable, and powerful than what is being produced today. We have become dangerously dependent on large software systems whose behavior is not well understood and which often fail in unpredicted ways.”
“The demand for software has grown far faster than our ability to produce it. Furthermore, the Nation needs software that is far more usable, reliable, and powerful than what is being produced today. We have become dangerously dependent on large software systems whose behavior is not well understood and which often fail in unpredicted ways.”
1.3.3 Software Quality
ソフトウェアの質を計る1つの基準はバグ数/kloc。
- デリバー後にわかる
- 業界平均は10
- 1以下なら高品質
Praxis CDIS system (1993)の例 0.75 defects/klocだった
1.4 Why Design Matters
この授業では‘hacking code’がソフトウェア作りの全てではなく、コードを語るより良い方法が必要であることを示す。
ソフトウェアデザイン者の心得
- 予め考える(安いし)
- 最後に品質を上げようと考えてはいけない
- チームワークが可能な権限委譲をする
- 駄目なデザインはユーザーに影響する
- 駄目なデザインは開発者に影響する
1.4.1 The Netscape Story
solid designに基づいてIE3を作ったMSとデザインに注意を払わなくて手遅れになったNetscapeの失敗例
1.5 Advice
Course strategy
- don’t get behind: pace is fast!
- attend lectures: material is not all in textbook
- think in advance: don’t rush to code
- de-sign, not de-bug
today's visitor: -
total visitor: -
total visitor: -


