オブジェクト指向言語論14

オブジェクト指向言語論
第十四回
知能情報学部
新田直也
テトリスの開発
Swingを使用
 開発期間:9時間40分
 コード行数:903行

http://silverbullet.is.konan-u.ac.jp/
lectures/ProgrammingLanguage/tetris.html
開発の様子
プログラミング能力
の個人差
 プログラミング能力の差は大きい.
最優秀者は最低者の約10倍!
 最優秀者は平均作業者の約2.5倍!
 上位半分の平均値は下位半分の平均値の2倍
以上!

何が違うのか?
 知識を十分に持っている.
 必要以上に考え込まない.
→ まず動かして試してみる.
 作業に取り掛かる前によく考える.
→ きちんと設計してからプログラミング.
テトリス開発の流れ
 9時間40分の作業の内訳
最初の実行
設計
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
テトリス開発の流れ
 9時間40分の作業の内訳
設計
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
テトリス開発の流れ
 9時間40分の作業の内訳
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
テトリスの完成
何が違うのか?
 作り始めて20分後に動かしている
→まず動かして試す.
 1時間24分かけて設計している.
→設計してからプログラミング.
ソフトウェアの設計とは?
 後の作業をやり易くするためのもの.
 巨大なソフトウェアの開発では,プロジェクト
の成否を決める.
 ソフトウェアの品質も左右する.
 技術者の経験と勘に頼っている.
テトリスの設計(1)

画面の構成物にどのようなものがあるか?

Block:

Tetromino:

PiledBlocks:
テトリスの設計(2)

構成物を適切に分類する
Model
Movable
Tetromino
PiledBlocks
テトリスの設計(2)
講義で話せなかったこと

プログラム理論:




コンパイラやインタプリタの内部処理:




最適化
構文解析
ガベージコレクション
他のプログラミングパラダイム:



型理論
意味論
計算モデル
関数型プログラミング(特にLisp)
アスペクト指向
開発手法:(後期のソフトウェア工学で…)


デザインパターン
リファクタリング
参考文献,URL

Java


Eclipse


http://www.uml.org/
デザインパターン:


http://www.eclipse.org/
UML:


http://java.sun.com/j2se/1.4.2/ja/download.html
E.Gamma, R.Helm, R.Johnson, J.Vlissides著,本位田真一, 吉田和樹
訳:「オブジェクト指向における再利用のための デザインパターン 改訂版」,
ソフトバンクパブリッシング.
フレームワーク:

R.Johnson, 中村宏明, 中山裕子,吉田和樹著:
「パターンとフレームワーク」, 共立出版 ソフトウェアテクノロジーシリーズ1.
講義を終えるに当たって…

日本のソフトウェア産業




2000年の日本のソフト
ウェアの輸出額は輸入
額の100分の1程度.
1995~2000年の間の
カスタムソフトの輸入の
伸びは約8倍(32%).
輸入元は米国89%,
欧州7%と続く.
中国,インドへのオフショ
アリングの増加.
「ソフトウェア輸出入統計調査」
電子情報技術産業協会(2003)
ソフトウェア産業の未来

ソフトウェアの高度化,大規模化
アプリケーション
コンポーネント指向
ダウンサイジング
アプリケーション
アプリケーション
アプリケーション
低級言語
高級言語
OS
アジャイル
ハードウェア
ハードウェア
OS
フレームワーク
ミドルウェア
高級言語
ビジネスモデリング
ハードウェア
SOA
OS
ハードウェア
オープンソース
世界の潮流を読むこと!!