# 読書会: ソフトウェア工学の基礎 2004 [WYRD読書会](https://hackmd.io/@wyrd/BDC)の第6回です. <img src="https://www.iwanami.co.jp//images/book/264787.jpg" width="100"/> - 課題本: [ソフトウェア工学の基礎 2004](http://ttamai.sakura.ne.jp/indexj.html) - ソフトウェア工学 - 2003年 09月 11日 (平成15年) - PDFは上記のリンクから **著書/訳書(和文)** > **玉井哲雄:ソフトウェア工学の基礎, 岩波書店,2004** を辿ればダウンロードできます ## 進め方 - 希望者を募る - 参加者または参加希望者は[DBC]を確認 - 週1、2回、各1時間実施 - 基本的に毎週月曜日、木曜日のお昼の12時 - 時間になったら読書会を開始 - 全員読んでる前提で話を進める - その会の参加者で持ち回りで読み進める - ヘッドラインや、トピックを1回は読む - ディスカッションをする - 担当者の疑問や提案等 - ファシリテーター ファシリテーターが不参加の場合は、次のファシリテーターが繰り上がりで担当します. 担当は2人づつ前半後半に分けてファシリテートします. | No | Name | Count | | --- |:-------- | -----:| | 1 | miyagaki | 6 | | 2 | satoruk | 4 | | 3 | kando | 5 | | 4 | koyoshi | 5 | | 5 | toyoda | 6 | | 6 | pon-chan | 4 | | 7 | UMA | 6 | ## スケジュール 予定なので状況によって調整されます. | Schedule | Chapter | Subject | |:------------------- | -------:|:------------------------------ | | 02/08 | 第1 章 | ソフトウェアとソフトウェア工学 | | 02/15, 02/18 | 第2 章 | ソフトウェアプロセス | | 02/22 | 第3 章 | 開発計画と要求分析 | | 02/25, 03/01 | 第4 章 | モデル化技法とUML | | | 第5 章 | データの流れモデル | | 03/04 | 第6 章 | 制御の流れモデル | | 03/08 | 第7 章 | 協調モデル | | 03/11, 03/18 | 第8 章 | 状態遷移モデル | | 03/18, 03/22 | 第9 章 | オブジェクト指向モデル | | 03/22, 03/25 | 第10 章 | 形式手法 | | 03/25, 03/29, 04/05 | 第11 章 | 設計技法 | | 04/__ | 第12 章 | 検証技術 | | 04/__ | 第13 章 | ソフトウェアの保守・発展 | ## 目次 <details> <summary> 第1章 ソフトウェアとソフトウェア工学 </summary> | Chapter | Subject | Page | Read At | |:------- |:------------------------------------ | ----:|:---------- | | 1.1 | ソフトウェアとは | 5 | 2021/02/08 | | 1.2 | ソフトウェア工学とは | 5 | | | 1.3 | ソフトウェア工学の歴史 | 7 | | | 1.4 | ソフトウェア工学の範囲 | 8 | | | 1.5 | ソフトウェア工学の工学としての成熟度 | 8 | | </details> <details> <summary> 第2章 ソフトウェアプロセス </summary> | Chapter | Subject | Page | Read At | |:------- |:-------------------------------- | ----:|:---------- | | 2.1 | ライフサイクルモデル | 11 | 2021/02/15 | | 2.2 | 落水型モデル | 11 | | | 2.3 | 落水型に代わる開発モデル | 12 | | | 2.4 | ソフトウェアプロセスの評価 | 14 | | | 2.5 | ソフトウェアプロセスの観察と改善 | 15 | | | 2.6 | プロセスプログラミング | 18 | 2021/02/18 | </details> <details> <summary> 第3章 開発計画と要求分析 </summary> | Chapter | Subject | Page | Read At | |:------- |:---------------------------------------- | ----:|:---------- | | 3.1 | 何を作るか | 21 | | | 3.2 | システム化計画 | 21 | | | 3.2.1 | 実際的な開発標準工程における初期フェーズ | 21 | | | 3.2.2 | コスト見積り | 23 | | | 3.3 | 要求分析 | 24 | 2021/02/22 | | 3.3.1 | 要求工学 | 24 | | | 3.3.2 | 要求分析の考え方 | 25 | | | 3.3.3 | 要求の種類 | 26 | | | 3.4 | 仕様 | 27 | | | 3.4.1 | 仕様と要求の関係 | 27 | | | 3.4.2 | 何を仕様として表すか | 28 | | | 3.4.3 | 仕様を誰が書き誰が使うか | 28 | | | 3.4.4 | よい仕様の条件 | 29 | | </details> <details> <summary> 第4章 モデル化技法とUML </summary> | Chapter | Subject | Page | Read At | |:------- |:------------------------------ | ----:|:---------- | | 4.1 | モデルとは何か | 30 | | | 4.2 | ソフトウェアにおけるモデル | 30 | 2021/02/25 | | 4.2.1 | モデルという語の使われ方 | 30 | | | 4.2.2 | モデルと抽象化 | 31 | | | 4.3 | グラフによるモデル化 | 32 | | | 4.3.1 | さまざまなモデルのグラフ表現 | 32 | | | 4.3.2 | グラフ表現によるモデル化の特徴 | 32 | | | 4.3.3 | グラフとモデル上の物理量 | 33 | | | 4.3.4 | グラフ理論の初歩概念の応用 | 34 | | | 4.3.5 | グラフの弱点と対策 | 34 | | | 4.4 | UML 記法 | 35 | | | 4.4.1 | 経緯 | 35 | | | 4.4.2 | UML の概要 | 36 | | | 4.5 | 共通例題 | 36 | | | 4.5.1 | 酒屋問題 | 37 | | | 4.5.2 | 自動販売機問題 | 38 | 2021/03/01 | </details> <details> <summary> 第5章 データの流れモデル </summary> | Chapter | Subject | Page | Read At | |:------- |:------------------------ | ----:|:------- | | 5.1 | データの流れ図 | 39 | | | 5.2 | 階層化 | 40 | | | 5.3 | Demarco による構造化分析 | 41 | | | 5.4 | データの流れ図の記述方法 | 42 | | | 5.5 | モデルの検証 | 44 | | </details> <details> <summary> 第6章 制御の流れモデル </summary> | Chapter | Subject | Page | Read At | |:------- |:-------------- | ----:|:---------- | | 6.1 | フローチャート | 46 | 2021/03/04 | | 6.2 | 動作図 | 47 | | | 6.3 | 動作図の使い道 | 49 | | </details> <details> <summary> 第7章 協調モデル </summary> | Chapter | Subject | Page | Read At | |:------- |:--------------------------- | ----:|:---------- | | 7.1 | 系列図 | 50 | | | 7.1.1 | 系列図の基本構造 | 50 | | | 7.1.2 | 並行プロセスの表現 | 51 | | | 7.2 | 協調図 | 51 | | | 7.3 | Jackson システム開発法(JSD) | 53 | | | 7.3.1 | JSD モデルの基本構造 | 53 | | | 7.3.2 | 開発手順 | 54 | | | 7.3.3 | 実体行動ステップ | 54 | | | 7.3.4 | 実体構造ステップ | 55 | | | 7.3.5 | 初期モデルステップ | 55 | 2021/03/08 | | 7.3.6 | 機能ステップ | 56 | | | 7.3.7 | システムタイミングステップ | 57 | | | 7.3.8 | 実装ステップ | 57 | | | 7.3.9 | 酒屋問題 | 58 | | | 7.3.10 | 自動販売機問題 | 60 | | </details> <details open> <summary> 第8章 状態遷移モデル </summary> | Chapter | Subject | Page | Read At | |:------- |:---------------------------------------------------- | ----:|:---------- | | 8.1 | 状態遷移モデルの基本的な性質 | 62 | | | 8.1.1 | グラフとしての特徴 | 62 | | | 8.1.2 | 具体例 | 63 | | | 8.2 | 状態遷移モデルの拡張 | 64 | | | 8.2.1 | 出力事象 | 64 | | | 8.2.2 | 遷移条件 | 64 | | | 8.2.3 | 並行システム | 65 | | | 8.2.4 | 状態の階層化 | 65 | | | 8.3 | Statecharts | 65 | 2021/03/11 | | 8.3.1 | Statecharts の基本的特徴 | 65 | | | 8.3.2 | 「アラームつき腕時計」の例題によるStatecharts の詳細 | 66 | | | 8.4 | 自動販売機問題 | 73 | 2021/03/11 | | 8.5 | 状態遷移モデルの系譜 | 73 | 2021/03/18 | | 8.5.1 | オートマトンの系譜 | 73 | | | 8.5.2 | 探索問題の系譜 | 75 | | </details> <details open> <summary> 第9章 オブジェクト指向モデル </summary> | Chapter | Subject | Page | Read At | |:------- |:------------------------------------ | ----:|:------- | | 9.1 | オブジェクト指向技術の歴史 | 77 | | | 9.2 | オブジェクト指向モデルの基本概念 | 78 | | | 9.3 | オブジェクト指向開発方法論 | 79 | | | 9.4 | オブジェクト指向モデルの構築プロセス | 79 | | | 9.4.1 | ユースケースの記述 | 79 | | | 9.4.2 | クラスの同定 | 81 | 2021/03/22 | | 9.4.3 | クラス図の作成 | 81 | | | 9.4.4 | 協調関係の記述 | 82 | | | 9.4.5 | 状態遷移図の作成 | 82 | | | 9.4.6 | パッケージ化 | 82 | | | 9.5 | 酒屋問題 | 82 | | | 9.5.1 | ユースケースの作成 | 83 | | | 9.5.2 | クラスの同定とクラス図 | 84 | | | 9.5.3 | 系列図と状態遷移図 | 84 | | </details> <details open> <summary> 第10章 形式手法 </summary> | Chapter | Subject | Page | Read At | |:------- |:--------------------------------------- | ----:|:---------- | | 10.1 | 形式的抽象化の方法 | 86 | | | 10.2 | 形式的なソフトウェア開発技法 | 86 | | | 10.3 | 機能の形式化 | 87 | | | 10.3.1 | 入力条件/出力条件に注目した機能の抽象化 | 87 | | | 10.3.2 | 関数として機能を捉える方法 | 88 | | | 10.4 | データの形式化 | 88 | 2021/03/25 | | 10.4.1 | 抽象データ型 | 88 | | | 10.4.2 | 代数的仕様記述 | 89 | | | 10.5 | 形式仕様記述言語Z | 89 | | | 10.5.1 | Spivey の例題 | 90 | | | 10.5.2 | Z による酒屋問題の記述 | 91 | | | 10.5.3 | Z における型 | 91 | | | 10.5.4 | スキーマ | 92 | | | 10.5.5 | 汎用構成子 | 93 | | | 10.5.6 | 抽象機械 | 97 | | | 10.5.7 | 仕様の完成 | 100 | | </details> <details open> <summary> 第11章 設計技法 </summary> | Chapter | Subject | Page | Read At | |:------- |:---------------------------- | ----:|:---------- | | 11.1 | アーキテクチャ | 103 | | | 11.1.1 | アーキテクチャとは | 103 | | | 11.1.2 | アーキテクチャの役割 | 103 | 2021/03/29 | | 11.1.3 | 建築様式(Architecture Style) | 104 | | | 11.1.4 | アーキテクチャに関連する概念 | 105 | | | 11.1.5 | 酒屋問題のアーキテクチャ | 106 | | | 11.2 | アルゴリズムの設計 | 108 | | | 11.2.1 | 不変条件 | 110 | | | 11.2.2 | 最大公約数 | 111 | | | 11.2.3 | 探索 | 112 | 2021/04/05 | </details> <details> <summary open> 第12章 検証技術 </summary> | Chapter | Subject | Page | Read At | |:------- |:------------------------------------------------------------------------ | ----:|:---------- | | 12.1 | 検証の基本概念 | 116 | | | 12.1.1 | 用語 | 116 | | | 12.1.2 | 要求と検証 | 116 | | | 12.1.3 | さまざまな検証技術 | 117 | | | 12.2 | プログラムの検証技術 | 117 | | | 12.2.1 | テストの基本的な性質 | 117 | | | 12.2.2 | テストケースの選定 | 119 | 2021/04/08 | | 12.2.3 | テスト環境と結果の評価 | 126 | | | 12.2.4 | テストのプロセス | 126 | | | 12.2.5 | 信頼性モデル | 126 | | | 12.2.6 | テスト重視の開発プロセス | 128 | | | 12.2.7 | 対故障性 | 128 | | | 12.2.8 | 正当性の証明 | 130 | | | 12.3 | 仕様の検証技術 | 131 | | | 12.3.1 | 見直し(レビュー),査閲(インスペクション),徒歩検査(ウォークスルー) | 131 | | | 12.3.2 | モデル検査 | 131 | | </details> <details open> <summary> 第13章 ソフトウェアの保守・発展 </summary> | Chapter | Subject | Page | Read At | |:------- |:---------------------------- | ----:|:------- | | 13.1 | ソフトウェア発展の基本的特徴 | 137 | | | 13.2 | ソフトウェア発展のモデル | 137 | | | 13.2.1 | システムの進化モデル | 137 | | | 13.2.2 | オブジェクトの進化モデル | 138 | | | 13.3 | ソフトウェア発展と保守 | 143 | | | 13.3.1 | ソフトウェアの保守の特性 | 143 | | | 13.3.2 | 保守作業の大きさ | 144 | | | 13.3.3 | 保守のプロセス | 144 | | | 13.3.4 | 保守の分類 | 144 | 2021/04/22 | | 13.3.5 | 保守の体制 | 145 | | | 13.3.6 | 保守の技術とツール | 145 | | | 13.3.7 | 保守の戦略 | 147 | | | 13.4 | 再利用 | 147 | | | 13.4.1 | 再利用のための技術 | 147 | | | 13.4.2 | 再利用を進めるための体制 | 149 | | | 13.5 | 再構築 | 149 | | | 13.5.1 | 再構築と逆構築の関係 | 149 | | | 13.5.2 | 再構築ツールRefine | 149 | | </details> ###### tags: `読書会`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up