Software Engineering Lecture 4/17

Menu Menu

Perl 言語を勉強しながら、大きなソフトウェアプロジェクトを設計し、運営し、参加していく方法を学習する。特に UML (Unified Modeling Language) オブジェクト指向設計とデザインパターンを重視した演習を行う。


参考書

    The Practice of Programming    カーニハン パイク
    実践UML  クレーグ・ラーマン プレンティスホール 
    初めてのPerl 第2版   R.L.Schwartz, T.Christiansen   オライリージャパン


評価方法

    出席状況、演習の結果を総合して判定する。
    


授業計画

 (1) ソフトウェア工学
 (2) 集合、論理、関数
 (3) 型とその整合性
 (4) UML  概念モデル, Perlのオブジェクト
 (5) 関係の実装, Perl/Tk 
 (6) 状態モデル 
 (7) 協調図
 (8) マルチユーザガードゲームの設計
 (9) 設計クラス図
 (10) ソフトウェア・パターン
 (11) 分散プログラム
 (12) デバッグ・テスト・その他

電子メールおよび ura.ie.classes.software のニュースグループを使用する


ソフトウェア工学の基礎となるもの

プログラムとは何か? プログラムを書くということはどういうことか?

自分で作ったものを自分で使うだけではない。

その基準は?

一つの答: プログラムの意味を考える。


仕様、実装、実行

それぞれに対応するプログラムの意味を考える。


プログラムを作る時の方法

仕様、実装、実行の相互の関連を通してプログラムが作られていく。




プログラムの意味を扱う道具

これらを取り扱うための数学的な道具がいろいろある。そして、それらに対応したプログラミング言語とプログラミング手法が考えられた。

もし入力が有限で、出力が一つだけなら、とても簡単になる。入力が無限だったりすると難しい。特にReal-timeプログラミング、並列プログラミングの意味は難しい。

しかし、この三つの道具は、実際には同等な力を持った道具であり、望むならば、論理だけ、関数だけ、集合だけ、ですべてを表現することもできる。しかし、適材適所を考えて使おう。


プログラムの分割

これらのプログラムの意味を表す方法は、平らな方法であり、階層化さていたり、分割されていたりはしない。

しかし、実際には、プログラムを分割しなくては、大きなプログラムは作れないし、複数の人にプログラミングの仕事を分けることもできない。また、分割する時は、全体のプログラムの意味が乱されないように分割しなくてはならない。

また、この分割は、プログラムの内容だけでなく、プログラムを作成していくプロジェクトの構成(人員、期間、組織)などにも依存する。

これからの授業では、この分割の仕方を考えていくことになる。


Shinji KONO / Sun May 20 01:01:19 2001