ソフトウェアシステム論   Software Systems



◇ 担当教員:渡邉 勝正(わたなべ かつまさ)
◇ 単位数:2 ◇選択・必修:選択 ◇開講時期:U期 月曜3限、水曜1限 ◇講義室:L2

◇ 授業目的:
並行プロセスの計算モデルとプロセス間通信の計算モデルを基礎にして、集中あるいは分散環境で
複数のプログラムが安全に協調して働くソフトウェアシステムを、手続き指向およびオブジェクト
指向により設計して、構成できるようにします。

◇ 授業内容:
コンピュータシステムの変化に伴い、ソフトウェアシステムは、単独のプログラムによる逐次プロ
セスの形態から、複数のプログラムによる並行プロセスの形態へ、さらには、分散環境で通信と
移動する形態へと重みが変ってきています。そのようなソフトウェアの設計と構成に適した計算
モデルを基にして、実際のプログラミングの基本方式について学びます。次いで、複数のプロセス間、
スレッド間、あるいは、オブジェクト間の通信の機構と、分散環境でプログラムが移動する機構を学
びます。
ソフトウェアを設計・創作するにあたって、最も基本となるツールはプログラミング言語です。プロ
グラミング言語を実装するための言語処理系の問題と、それを支援するオペレーティングシステム(OS)
の役割を合わせて考えます。
具体的な項目として、次の順に学んでいきます。
1.設計における言語の役割と、ソフトウェアのテストと検証
2.並行プロセスの計算モデル(π計算モデル)によるプロセス間の通信と同期
3.関数を起動する機構と、遠隔の関数を起動する言語処理系の働き
4.マルチタスクにおけるプロセス間の通信と同期のプログラミング
5.クライアント / サーバ方式と、ピアツーピア方式の通信形態
6.移動するプログラムの基本機構
各項目ごとに課題に対するレポートを提出して、特徴あるレポートの内容を参考に、課題について
議論する。

◇ 教科書 :
教科書として一冊にまとまったものはありません。内容をまとめた資料を配布します。

◇ 参考書 :
1. Robin Milner : Communicating and Mobile System: theπ-Calculus, Cambridge, 1999. 図書記号 (CD10||169)
2. W. Richard Stevens : Inter‐process communications : Unix Network
Programming, Volume−2, Prentice Hall, 1999. 所在 (言語設計学)
3. Charles W. Kann : Creating Components : Object Oriented, Concurrent, and Distributed
computing in Java, Auerbach Publication, 2003. 所在 (言語設計学)

◇ 履修条件:
C、C++ あるいは Javaのプログラムを読めることが望ましい。基礎としてシステムプログラム概論、
計算機構造概論、専門科目の計算理論 I、ソフトウェア工学 Iなどと関連しています。履修希望者は
1回目または2回目の授業時間に履修登録してください。

◇ 成績評価:
試験(70%)および 課題レポート(30%)により評価します。

◇ オフィスアワー:
(B401)月曜日5限・金曜日5限。その他、扉を開けているときは何時でも。