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