L0960000

ソフトウェア工学B

Software Engineering B

開講部

工学部

開講学科

情報工学科

開講学年

3年次

開講時期

後期

単位数

2

単位区分

選択

系列区分

専門

講義区分

講義
教授古宮誠一

授業の概要

ソフトウェア工学の目的は,いかにしてソフトウェアの生産性と信頼性を向上させるかを探ることである。この授業では,ソフトウェアの信頼性向上策に力点を置いて講義する。特に,高度情報演習2Bに必要な知識の解説に力点を置いて講義する。

達成目標

1.ソフトウェア工学の基本的な考え方を理解すること。
2.ソフトウェアライフサイクル・モデルの考え方を理解すること。
3.オブジェクト指向の概念を理解すること。
また,オブジェクト指向の利点や欠点を理解すること。
4.プログラム・テストの被覆率の概念を理解すること。
テストケースの設計法を理解すること。
5.各種のプログラム・デバッグ法を理解すること。

授業計画

1. ソフトウェア工学の誕生とその背景
  − 理想的なプログラムが備えるべき性質
  − 良いプログラムを作成するための基本原理
  − ソフトウェア工学誕生以前の主な研究成果
2.ソフトウェアライフサイクル・モデル(1)
  − 複雑で難しい問題を解くときの常套手段
  − ライフサイクル・モデルの表現方法
  − Stagewiseモデル/ウォーターモフォール・モデル
  − ウォーターフォール・モデル VS プロトタイピング
3.ソフトウェアライフサイクル・モデル(2)
  − 漸増的開発モデル/進化的開発モデル/自動化に基づくモデル/
    スパイラル・モデル/反復型モデル
4.プログラム言語の種類
  − 機械語/アセンブラ/コンパイラ/インタープリータ/スクリプト言語
  − 手続き型言語/論理型言語/関数型言語/抽象データ型言語
  − オブジェクト指向言語
5.オブジェクト指向言語
  − オブジェクト指向言語の歴史
  − オブジェクト指向計算モデル
6.データ型とコンパイラによるプログラム・エラーの検出
  − データ型とは/データ型の情報の使用目的/型誤りとは/型検査とは/
    型検査の種類とその特徴/型危険とは/形付けの強い言語と弱い言語
7.プログラム・デバッグの方法
  − 力ずくのデバッグ/帰納法によるデバッグ/推定によるデバッグ/
    逆戻りデバッグ/テストによるデバッグ/デバッグの原則/エラー分析
8.プログラム・テストの方法(1)
  − プログラム・テストとは
  − テストケースの設計法(ブラックボックス/ホワイトボックス・テスト)
  − ブラックボックス・テストの手法
  − ホワイトボックス・テストの手法
9.プログラム・テストの方法(2)
  − テストの種類
  − 単体テスト(機能テスト/構造テスト/スタブやドライバを用いたテスト)
  − 結合テスト(増加テスト/非増加テスト)
  − 増加テスト(トップダウン/ボトムアップ/サンドウィッチ・テスト)
  − 非増加テスト(ビックバン・テスト)
10.プログラム検証(1)
  − 種々のプログラム意味論
  − フローチャート・プログラムの検証
11.プログラム検証(2)
  − Hoareの検証規則によるwhile文の検証
12.プログラム検証(3)
  − リカーシブ・プログラムにおける正当性の証明
13.信頼度成長モデルとプログラム出荷時期の推定(1)
  − 時間計測モデル
  − 個数計測モデル
14.信頼度成長モデルとプログラム出荷時期の推定(2)
  − アベイラビリティ・モデル
  − 傾向曲線モデル
15.その他のアプローチ
  − 品質表と品質機能展開による製品の改良
  − 信頼性・安全性向上のためのFTA/ETA/FMEAによる分析

評価方法と基準

課題レポートの提出と期末試験

教科書・参考書

教科書: Glenford J. Myers著,長尾真 監訳,松尾正信 訳「ソフトウェア・テストの技法」近代科学社

履修前の準備

C言語を習得済みであることが必要。

オフィスアワー

疑問があれば,いつでも良いから研究室へ押しかけて質問すること。

環境との関連

環境に関連しない科目

最終更新 : Thu Mar 28 07:50:13 JST 2013