まえがき - morikita.co.jp · 3.3 統一モデリング言語uml ..... 53 3.4...

5
まえがき ソフトウェアシステムは人間により開発されたもっとも複雑なシステムと いわれている.またソフトウェア産業は最先端技術産業でありながら,実際 の開発現場は労働集約的な人海戦術による開発がいまだに支配的であるとい うパラドックスを抱えているのが現状である.ソフトウェア工学の発展によ り,このような状況を打破することが期待されている. ソフトウェア工学は,技術的なレベルとビジネス(人間組織)的なレベル の二重構造になっており,これら二つを分けて考える必要がある.実際の開 発環境では,ビジネス的な側面が優先されて方針が決まり,その制約下で技 術的な問題解決が図られるという構造になっている.自然法則を基礎とする 従来の工学体系に比べてソフトウェア工学は,より人間的,認知科学的,心 理学的要素の濃い実践的な学問体系である. 本書ではあらゆる場面で基礎となる技術的なレベルの問題を主体に取り上 げ,ビジネス的なレベルの問題についても必要に応じて適宜触れることにす る.著者は 18 年余の企業でのソフトウェア研究・開発の経験をもっており, これをもとにソフトウェア開発全般にわたる問題を実践的にわかりやすく解 説するとともに,自ら編み出した効率的ないくつかの開発手法についても紹 介する. ソフトウェア工学は,最近注目されている創成科目 (学生の創造性や自主 性を涵養するための科目) の典型例であり,そのための材料も提供する.記 述内容は JABEE (日本技術者教育認定機構) 技術者教育プログラムのお手本 となっているアメリカ教育認定基準 (IEEE-CS/ACM の標準カリキュラム) に準拠している. 本書の構成を以下に示す.1 章はソフトウェアの概要について解説し,ソ フトウェアの全体像を概略把握するために設けられている.2 章から 5 章で はソフトウェアを開発するプロセスに沿って,それぞれのフェーズに関する 問題について詳述する.具体的には,2 章で要求分析,4 章で設計・実装,5 .............................................................................................. i

Upload: others

Post on 09-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: まえがき - morikita.co.jp · 3.3 統一モデリング言語uml ..... 53 3.4 オブジェクト指向開発 ... 第5 章ソフトウェアテストと品質..... 102 5.1 ソフトウェアの品質

まえがきソフトウェアシステムは人間により開発されたもっとも複雑なシステムと

いわれている.またソフトウェア産業は最先端技術産業でありながら,実際の開発現場は労働集約的な人海戦術による開発がいまだに支配的であるというパラドックスを抱えているのが現状である.ソフトウェア工学の発展により,このような状況を打破することが期待されている.ソフトウェア工学は,技術的なレベルとビジネス(人間組織)的なレベル

の二重構造になっており,これら二つを分けて考える必要がある.実際の開発環境では,ビジネス的な側面が優先されて方針が決まり,その制約下で技術的な問題解決が図られるという構造になっている.自然法則を基礎とする従来の工学体系に比べてソフトウェア工学は,より人間的,認知科学的,心理学的要素の濃い実践的な学問体系である.本書ではあらゆる場面で基礎となる技術的なレベルの問題を主体に取り上

げ,ビジネス的なレベルの問題についても必要に応じて適宜触れることにする.著者は 18年余の企業でのソフトウェア研究・開発の経験をもっており,これをもとにソフトウェア開発全般にわたる問題を実践的にわかりやすく解説するとともに,自ら編み出した効率的ないくつかの開発手法についても紹介する.ソフトウェア工学は,最近注目されている創成科目 (学生の創造性や自主

性を涵養するための科目)の典型例であり,そのための材料も提供する.記述内容は JABEE (日本技術者教育認定機構)技術者教育プログラムのお手本となっているアメリカ教育認定基準 (IEEE-CS/ACMの標準カリキュラム)

に準拠している.本書の構成を以下に示す.1章はソフトウェアの概要について解説し,ソ

フトウェアの全体像を概略把握するために設けられている.2章から 5章ではソフトウェアを開発するプロセスに沿って,それぞれのフェーズに関する問題について詳述する.具体的には,2章で要求分析,4章で設計・実装,5

.............................................................................................. i

Page 2: まえがき - morikita.co.jp · 3.3 統一モデリング言語uml ..... 53 3.4 オブジェクト指向開発 ... 第5 章ソフトウェアテストと品質..... 102 5.1 ソフトウェアの品質

章でテスト・品質を扱う.ただし,ソフトウェア開発で確固たる地位を占めつつあるオブジェクト指向技術によるモデル化や分析については,章を改めて 3章で説明する.6 章では,すべてのフェーズにわたりソフトウェア開発を支援するツール群からなるソフトウェア開発環境について述べる.さらに7章でソフトウェア開発プロジェクト管理として,人的な要素,ビジネス的な側面やソフトウェア環境も含めて開発プロセス全体を統括している.本書はおもに大学学部レベルを想定しているが,それ以外の方々にも十分

理解していただけるように,各項目についてできるだけ具体例を通して詳しく解説するように意を尽くしている.本書を契機として,多くの方々がソフトウェア工学に興味をもたれ,この分野に将来ともかかわっていただければ筆者の望外の喜びである.また著者の浅学ゆえの誤謬や内容の不備などについて読者諸氏のご叱正をいただければ幸いである.本書の執筆にあたり,国内外を問わず多数の文献を参考にさせていただい

た.この場を借りてこれらの著者に感謝の意を表したい.最後に,本書を出版する機会を与えていただき,ひとかたならぬお世話をかけた森北出版の方々に心から感謝申し上げる.

2005年 3月松本 啓之亮

ii .........................................................................................

Page 3: まえがき - morikita.co.jp · 3.3 統一モデリング言語uml ..... 53 3.4 オブジェクト指向開発 ... 第5 章ソフトウェアテストと品質..... 102 5.1 ソフトウェアの品質

目 次

第 1章 ソフトウェアとは .......................................................... 1

1.1 ソフトウェアの定義 .......................................................... 1

1.2 ソフトウェアの階層 .......................................................... 2

1.3 ソフトウェアの特徴 .......................................................... 3

1.4 ソフトウェア工学の概要 .................................................... 5

1.5 ソフトウェア開発プロセス ................................................ 10

1.6 本書の構成 ..................................................................... 17

演 習 問 題 ............................................................................ 19

第 2章 ソフトウェア要求分析................................................... 20

2.1 分析フェーズ .................................................................. 20

2.2 酒屋在庫管理問題 ............................................................ 21

2.3 データフローモデル ......................................................... 22

2.4 コントロールフローモデル ................................................ 25

2.5 有限状態機械モデル ......................................................... 27

2.6 ペトリネットモデル ......................................................... 29

2.7 ERモデル ..................................................................... 40

2.8 オブジェクト指向モデル ................................................... 42

2.9 構造化分析 ..................................................................... 43

演 習 問 題 ............................................................................ 45

第 3章 オブジェクト指向 ......................................................... 47

3.1 オブジェクト指向技術の経緯 ............................................. 47

3.2 オブジェクト指向とは ...................................................... 47

3.3 統一モデリング言語 UML ................................................. 53

3.4 オブジェクト指向開発 ...................................................... 60

............................................................................................ iii

Page 4: まえがき - morikita.co.jp · 3.3 統一モデリング言語uml ..... 53 3.4 オブジェクト指向開発 ... 第5 章ソフトウェアテストと品質..... 102 5.1 ソフトウェアの品質

3.5 ラショナル統一プロセス RUP ........................................... 66

3.6 エクストリームプログラミング (XP) .................................. 67

3.7 MDAにもとづくソフトウェア開発プロセス ........................ 68

3.8 オブジェクト指向の発展型としてのエージェント .................. 75

演 習 問 題 ............................................................................ 76

第 4章 ソフトウェア設計・実装 ............................................... 77

4.1 設計フェーズ .................................................................. 77

4.2 構造化設計 ..................................................................... 81

4.3 構造化プログラミング ...................................................... 84

4.4 オブジェクト指向設計 ...................................................... 86

4.5 オブジェクト指向プログラミング ....................................... 94

4.6 データベース設計 ............................................................ 94

演 習 問 題 .......................................................................... 101

第 5章 ソフトウェアテストと品質 .......................................... 102

5.1 ソフトウェアの品質特性 ................................................. 102

5.2 ソフトウェアの検証 ....................................................... 104

5.3 時制論理を用いた検証法 ................................................. 111

5.4 テストデータによるテスト .............................................. 122

5.5 テストケース設計 .......................................................... 125

演 習 問 題 .......................................................................... 128

第 6章 ソフトウェア開発環境................................................. 129

6.1 単体ツールから統合開発環境へ ........................................ 129

6.2 Webベース開発環境 ...................................................... 133

6.3 Webサービスを用いた電力取引システム ........................... 139

演 習 問 題 .......................................................................... 151

第 7章 ソフトウェア開発プロジェクト管理 ............................. 152

7.1 プロジェクト管理の重要性 .............................................. 152

iv 目 次 ............................................................................

Page 5: まえがき - morikita.co.jp · 3.3 統一モデリング言語uml ..... 53 3.4 オブジェクト指向開発 ... 第5 章ソフトウェアテストと品質..... 102 5.1 ソフトウェアの品質

7.2 ソフトウェア開発プロジェクトにおける管理項目 ................ 153

7.3 コストモデル ................................................................ 155

7.4 プロジェクト管理のレベル .............................................. 158

7.5 プロジェクト管理手法の変遷 ........................................... 159

7.6 分散並行開発と生産性 .................................................... 162

7.7 ソフトウェア構造にもとづく開発対象ソフトウェアの最適分割手法 ................................................................ 163

7.8 ソフトウェア構造にもとづくプロジェクト管理 ................... 169

演 習 問 題 .......................................................................... 174

演習問題略解とヒント .................................................................. 175

参 考 文 献 ................................................................................. 179

索 引 ................................................................................. 181

............................................................................. 目 次 v