講義科目名 複合情報学専攻「実ソフトウェア情報学特論」
担当 講師:岩崎 満
講義室 M棟計算機室
期間 平成24年 9/19(水)〜21(金)
主題と目標 現代社会は大規模・複雑システムが相互に関連する複合社会であり、 これらの現代社会システムはそれを支える情報システムの存在が不可欠である。 大規模化、複雑化する情報システム構築には多くの要素技術のみならず、 アーキテクチャやインテグレーションに付いての高度な知識と技術を要する。 本講義では情報システムを構成するソフトウェア群について、 ハードウェア制御等の低位の処理を含む基本ソフトウェアから データベース等の応用ソフトウェアまでの層に分類し、 各層におけるソフトウェア開発の実践的知識を習得する。  

講義内容
概要 説明 備考
初日 集中講義の概要説明 3日間の講義と演習内容、演習環境についての概要説明。
セキュリティホール 代表例としてバッファオーバフローを取り上げ、その原理を理解し実際のプログラムのセキュリティホールを 利用したクラッキングの演習をおこなう。 VMware、Linux、C言語
アセンブリ言語の基礎 セキュリティホールについての理解をより深めるため、またカーネルデバッグの前提知識として アセンブリ言語の基礎を習得し、実際にプログラミングおよびデバッグをおこなう。 IA32アセンブリ言語、Intelシンタックス、AT&Tシンタックス
二日め カーネル空間およびユーザランドで動作するソフトウェアの開発技術 カーネル空間で動作するソフトウェアと、ユーザランド(ユーザプロセス空間)で動作する一般的な ソフトウェアでは、そもそも動作原理がまったく異なる。それぞれに必要な開発技術を習得する。 VMware、FreeBSD
カーネル空間で動作するソフトウェアの開発技術 ファイルシステムやデバイスドライバなど、カーネル空間で動作するソフトウェアの開発技術を理解し、 簡単なデバイスドライバを作成する。 C言語、カーネルデバッガ、クラッシュダンプ
RDBMSとJavaによるWebアプリケーションの開発 ユーザランドで動作する一般的なソフトウェアの例としてWebアプリケーションを作成する。 postgreSQL, Tomcat, SQL, JSP, Java, JavaScript
2時間で覚えるObjective-C スマートフォン、タブレットのアプリケーション開発言語として再び脚光を浴びているObjective-C言語の基礎を学び、簡単なネットワークアプリケーションを開発する。 Objective-C, GNUstep
三日め システムの信頼性確保 システム全体の信頼性を確保するためには、システムを構成する個々のハードウェアおよび ソフトウェアの品質を確保し、さらに運用時の障害対策を講じる必要がある。 演習を通してソフトウェア品質確保および障害対策の実際を理解する。 VMware、FreeBSD
ソフトウェアの品質確保 必要十分なソフトウェア品質確保のためのテスト手法の理解と、 実際にテストケースを作成する演習をおこなう。 C0/C1メジャー、テストケース
ロードバランサを利用したフェイルオーバ ネットワークアプリケーションを稼動させるノードを複数配置し、 運用系の障害発生時に待機系へ切り替えるフェイルオーバの仕組みをロードバランサを利用して構築する。 またロードバランサソフトウェアのソース解析をおこない、ソース改造による新規機能の追加をおこなう。 C言語、Balance、GLOBAL、ソース解析、diff、patch
運用監視ツールの開発 システムおよびサービスプロセスの状態を監視し、障害の検知および報告、 サービス再起動をおこなう運用監視ツールの開発を通し、実際のシステム運用業務を理解する。 スクリプト言語(sh、perlなど), vmstat, netstat, swatch, knockd