|
教員名 : 粂野 文洋
|
授業コード
220547
オムニバス
科目名
高信頼ソフトウェア開発特論
科目名(英語)
Advanced Design Methodology for Reliable Software Systems
配当学年
1年
単位数
2単位
年度学期
2025年度秋学期
曜日時限
火曜1限
対象学科
博前_電子
コース
科目区分
大学院科目
必選の別
選択科目
担当者
粂野 文洋
教室
実務家教員担当授業
実務家の立場から高信頼なソフトウェア開発設計の研究や指導を行った経験を有している.その経験に基づき,高信頼なソフトウェア開発設計に関わる知識・スキルを学べる演習中心の授業を行う
授業の目的と進め方
社会インフラとして機能する大規模システムのソフトウェアの多くは並行性を有している.さらにそうしたシステムは高い信頼性が求められる。本科目では、並行性を有するソフトウェアのプログラミング技術(マルチスレッドプログラミング, go 言語)を学ぶ.さらに並行システムの信頼性を実現するための設計技法としてモデル検査技術を学ぶ。従来の設計技術では発見・除去が難しい並行システムにおけるデッドロックを検証する知識を身につける。
達成目標1
並行性とは何かを説明でき,並行性を有する様々なタイプのソフトウェアを実装できる
達成目標2
命題論理を理解し,命題論理による論理式を読み書きすることができる
達成目標3
時相論理を理解し,時相論理による論理式でシステムが満たすべき性質を読み書きすることができる
達成目標4
モデル検査技術とは何かを説明することができる
達成目標5
達成目標6
達成目標7
アクティブラーニング
ディスカッション
ディベート
グループワーク
プレゼンテーション
○
実習
○
フィールドワーク
その他課題解決型学習
授業計画
授業時間外課題(予習および復習を含む)
第1回
Go言語とは
Go言語とは何かを調べ,プログラミング環境をインストールをしておくこと(2時間)
第2回
Packages, variables, and functions
A tour of the Go programming language.の該当箇所を読み,内容を理解しておくこと(3時間)
第3回
Flow control statements: for, if , else, switch and defer
A tour of the Go programming language.の該当箇所を読み,内容を理解しておくこと(3時間)
第4回
More types: structs, slices, and maps
A tour of the Go programming language.の該当箇所を読み,内容を理解しておくこと(3時間)
第5回
Methods and interfaces
A tour of the Go programming language.の該当箇所を読み,内容を理解しておくこと(3時間)
第6回
Generics
A tour of the Go programming language.の該当箇所を読み,内容を理解しておくこと(3時間)
第7回
Concurrency
A tour of the Go programming language.の該当箇所を読み,内容を理解しておくこと(3時間)
第8回
並行処理入門
テキストの1章を読み,内容を説明できるようにしておくこと(3時間)
第9回
並行性をどうモデル化するか
テキストの2章を読み,内容を説明できるようにしておくこと(3時間)
第10回
Goにおける並行処理の構成要素
テキストの3章を読み,内容を説明できるようにしておくこと(3時間)
第11回
Goでの並行処理パターン
テキストの4章を読み,内容を説明できるようにしておくこと(3時間)
第12回
大規模開発での並行処理
テキストの5章を読み,内容を説明できるようにしておくこと(3時間)
第13回
ゴルーチンとGoランタイム
テキストの6章を読み,内容を説明できるようにしておくこと(3時間)
第14回
モデル検査技術
命題論理および時相論理とは何かを調べ,それぞれ説明できるようにしておくこと(3時間)
課題等に対するフィードバック
課題については講義内ですべて解説し,発表についてもその場で講評コメントする
評価方法と基準
毎回の発表と演習で評価する(発表への取り組み姿勢等も含む)。これらの評価結果の合計(100点)に対し、60点以上の場合に合格とする。
テキスト
Go programming language
Katherine Cox-Buday「Go言語による並行処理」オライリー・ジャパン ISBN 978-4-87311-846-8 ※教科書は変更する場合があります.初回のオリエンテーションで説明します 参考図書
科目の位置づけ(学習・教育目標との対応)
並行性を有するソフトウェアの設計に必要なプログラミング技術と命題論理学、時相論理などの基礎理論を理解し,モデル検査を利用するための知識を身につけるためのゼミ形式の講義を行う
履修登録前の準備
演習でノートPCを使うので持参すること。最低1つのプログラミング言語に通じていることが必須である.さらにオブジェクト指向プログラミング、マルチスレッドプログラミングやソフトウェア工学の知識を有することが望ましい。演習では英語の資料も使う。
|