图书目录

第一篇软件工程与软件过程

第1章软件工程概述/3

1.1软件工程学的背景和目的/3

1.1.1软件与软件的组成/3

1.1.2软件的特点/4

1.1.3软件的分类/5

1.1.4软件的历史与发展/6

1.1.5软件危机/7

1.1.6软件工程/8

1.2软件开发方法/9

1.3案例——“图书管理系统”项目提出/10

1.4实训——“学生管理系统”项目提出/11

1.4.1实训目的/11

1.4.2实训任务与实训要求/11

1.4.3实训内容与步骤/11

1.4.4实训注意事项/12

1.4.5实训成果/12

习题/12

第2章过程和生命周期的建模/13

2.1过程的含义/13

2.2软件过程模型/14

2.2.1瀑布模型/14

2.2.2渐近式模型/17

2.2.3过程的迭代/17

2.2.4V模型/19

2.2.5原型化模型/19

2.3软件开发标准/20

2.3.1国内外标准概述/20

2.3.2软件工程标准的层次/21

2.4案例——“图书管理系统”软件开发计划/232.5实训——“学生管理系统”软件开发计划/25

2.5.1实训目的/25

2.5.2实训任务与实训要求/25

2.5.3实训内容与步骤/26

2.5.4实训注意事项/26

2.5.5实训成果/26

习题/26

第3章可行性研究/28

3.1问题定义与任务/28

3.2可行性研究的步骤/29

3.3系统流程图/30

3.4成本/效益分析/32

3.5案例——“图书管理系统”可行性分析报告/32

3.6实训——“学生管理系统”可行性分析报告/37

3.6.1实训目的/37

3.6.2实训任务与实训要求/37

3.6.3实训内容与步骤/37

3.6.4实训注意事项/39

3.6.5实训成果/39

习题/39

第二篇传统方法学

第4章需求分析基础/43

4.1需求分析和规格说明阶段的基本概念/43

4.2初步需求获取技术/44

4.2.1访谈与调查问卷/44

4.2.2跟班作业/45

4.2.3组成联合小组/45

4.3需求建模/45

4.4需求规格说明与评审/46

4.4.1需求规格说明书的内容/46

4.4.2需求评审/50

4.5案例——“图书管理系统”需求规格说明书/51

4.6实训——“学生管理系统”需求规格说明书/54

4.6.1实训目的/54

4.6.2实训任务与实训要求/54

4.6.3实训内容与步骤/54

4.6.4实训注意事项/55

4.6.5实训成果/55

习题/55

第5章面向数据流的分析方法/57

5.1结构化分析概述/57

5.2数据流图/58

5.2.1数据流图的基本成分/59

5.2.2由外向里画数据流图/60

5.2.3分层数据流图/61

5.2.4由顶向下画分层数据流图/63

5.2.5数据流图的改进/64

5.3数据词典/67

5.3.1词典条目的各种类型/67

5.3.2词典条目的实例/70

5.4小说明/71

5.4.1加工的描述/71

5.4.2结构化语言/72

5.4.3判定表/73

5.4.4判定树/75

5.4.5词典的实现/76

5.5SA方法小结/76

5.6案例——“图书管理系统”数据流图/77

5.7实训——“学生管理系统”数据流图和数据

字典/80

5.7.1实训目的/80

5.7.2实训任务与实训要求/80

5.7.3实训内容与步骤/81

5.7.4实训注意事项/81

5.7.5实训成果/81

习题/81

第6章软件设计基础/82

6.1软件设计概述/82

6.1.1软件设计的任务和步骤/82

6.1.2概要设计的基本概念/83

6.1.3详细设计的基本概念/83

6.2模块化设计/85

6.2.1模块概述/86

6.2.2块间联系和块内联系/88

6.3结构图的改进/93

6.4详细设计的描述方式/95

6.5案例——“图书管理系统”结构图/100

6.6实训——“学生管理系统”结构图/101

6.6.1实训目的/101

6.6.2实训任务与实训要求/101

6.6.3实训内容与步骤/101

6.6.4实训注意事项/101

6.6.5实训成果/101

习题/101

第7章面向数据流的设计方法/103

7.1基本概念和设计过程/103

7.2变换分析/104

7.3事务分析/106

7.4综合设计/107

7.5SD方法小结/108

7.6软件设计文档/108

7.6.1概要设计说明书/108

7.6.2详细设计说明书/111

7.7其他设计方法/112

7.8案例——“图书管理系统”概要设计说明书/114

7.9实训——“学生管理系统”概要设计说明书/119

7.9.1实训目的/119

7.9.2实训任务与实训要求/120

7.9.3实训内容与步骤/120

7.9.4实训注意事项/121

7.9.5实训成果/121

习题/121

第8章程序设计语言和编码/122

8.1程序设计语言/122

8.1.1语言类别/122

8.1.2语言选择/124

8.2SP方法与编程/125

8.3程序内部文档/125

8.4编程风格/127

8.4.1编码原则/127

8.4.2编程风格/129

8.5程序的效率/132

8.6程序设计自动化/133

8.7案例——“图书管理系统”详细设计说明书/133

8.8实训——“学生管理系统”详细设计说明书/137

8.8.1实训目的/137

8.8.2实训任务与实训要求/137

8.8.3实训内容与步骤/137

8.8.4实训注意事项/138

8.8.5实训成果/138

习题/138

第9章检验和测试方法/139

9.1检验的基本概念/139

9.1.1概述/139

9.1.2软件检验手段/140

9.2软件评审/141

9.2.1评审过程/141

9.2.2评审条款/142

9.3测试的基本概念/144

9.4白盒法/145

9.4.1概述/145

9.4.2语句覆盖/146

9.4.3判定覆盖/146

9.4.4条件覆盖/147

9.4.5判定/条件覆盖/147

9.4.6条件组合覆盖/148

9.5黑盒法/148

9.5.1等价分类法/149

9.5.2边缘值分析法/151

9.5.3因果图法/152

9.5.4错误推测法/153

9.5.5综合策略/154

9.6测试步骤/155

9.7单元测试/155

9.7.1单元测试概述/155

9.7.2单元测试的方法/156

9.8联合测试/157

9.9有效性测试/160

9.10系统测试/160

9.11综合测试文档/161

9.12案例——“图书管理系统”测试分析报告/163

9.13实训——“学生管理系统”测试分析报告/165

9.13.1实训目的/165

9.13.2实训任务与实训要求/166

9.13.3实训内容与步骤/166

9.13.4实训注意事项/166

9.13.5实训成果/167

习题/167第10章软件维护/168

10.1维护的基本概念/168

10.2维护的种类/169

10.3维护的步骤与方法/170

10.3.1维护步骤/170

10.3.2维护方法/171

10.4可维护性/172

10.4.1决定软件可维护性的因素/172

10.4.2可维护性复审/174

10.5维护工作的管理/175

10.5.1维护的管理和组织/175

10.5.2维护报告/176

10.6维护的副作用/177

10.7软件维护文档/178

10.8案例——“图书管理系统”软件维护手册/181

10.9实训——“学生管理系统”软件维护手册/185

10.9.1实训目的/185

10.9.2实训任务与实训要求/185

10.9.3实训内容与步骤/185

10.9.4实训注意事项/186

10.9.5实训成果/186

习题/186

第三篇面向对象方法学

第11章统一建模语言/189

11.1面向对象方法概述/189

11.1.1面向对象方法的特点/189

11.1.2面向对象的概念/190

11.2UML概述/191

11.2.1UML的特点/192

11.2.2UML的构成/192

11.2.3UML与RUP/192

11.3UML的视图/193

11.4UML的模型元素/194

11.4.1事物/194

11.4.2关系/195

11.5UML的模型图/195

11.5.1用例图/195

11.5.2类图/198

11.5.3对象图/202

11.5.4包图/202

11.5.5状态图/203

11.5.6活动图/204

11.5.7顺序图/205

11.5.8协作图/205

11.5.9组件图/206

11.5.10配置图/207

11.6UML的公共机制/209

11.6.1注释/209

11.6.2修饰/209

11.6.3规格说明/209

11.6.4通用划分/209

11.6.5扩展机制/209

习题/210

第12章面向对象分析/211

12.1需求分析与用例建模/211

12.1.1用例建模概述/211

12.1.2确定系统的范围和边界/211

12.1.3确定系统的参与者/212

12.1.4确定系统的用例/212

12.1.5描述用例/213

12.1.6用例分类,确定用例之间的关系/214

12.1.7定义用例图的层次结构/214

12.1.8软件需求分析规格说明书/214

12.2活动图建模/216

12.3系统分析与建模/217

12.3.1建立对象类静态模型/217

12.3.2建立对象类动态模型/220

12.3.3建立系统功能模型/220

12.3.4系统分析规格说明书/221

12.4面向对象分析案例/222

12.4.1需求分析与系统功能/222

12.4.2创建用例模型/222

12.4.3用例描述与活动图建模/226

12.4.4创建对象类静态模型/229

习题/233

第13章面向对象设计/234

13.1面向对象设计方法/234

13.1.1面向对象设计概述/234

13.1.2系统分解/234

13.1.3系统设计规格说明书/235

13.2对象类动态模型建模/237

13.2.1交互模型建模/237

13.2.2状态模型建模/239

13.3系统体系结构建模/240

13.3.1软件系统体系结构模型/241

13.3.2硬件系统体系结构模型/242

13.3.3组件图建模/242

13.3.4配置图建模/244

13.4面向对象设计案例/245

13.4.1创建动态模型/245

13.4.2创建系统体系结构模型/252

习题/253

第14章面向对象软件开发工具——Rational Rose/254

14.1Rational Rose简介/254

14.2Rational Rose的安装、启动与退出/255

14.2.1Rational Rose安装前的准备工作/255

14.2.2Rational Rose的安装/255

14.2.3Rational Rose的启动与退出/260

14.3Rational Rose的界面操作/260

14.3.1如何创建新模型/260

14.3.2Rational Rose的主界面/262

14.3.3Rational Rose建模/266

14.4创建用例图/268

14.4.1打开用例图窗口/268

14.4.2用例图工具栏/268

14.4.3添加参与者与用例/269

14.4.4设置属性/269

14.4.5添加关系/270

14.5创建类图/271

14.5.1类图编辑窗口/271

14.5.2创建类/272

14.5.3建立类之间的关系/274

14.6创建包图/277

14.6.1创建包/278

14.6.2设置包的属性/278

14.6.3在包中添加元素/279

14.6.4添加包信息/279

14.6.5添加包之间的依赖关系/279

14.7创建状态图/280

14.7.1状态图编辑窗口/280

14.7.2状态图建模/280

14.8创建活动图/283

14.8.1活动图编辑窗口/283

14.8.2活动图建模/284

14.9创建顺序图/285

14.9.1顺序图编辑窗口/285

14.9.2顺序图建模/286

14.10创建协作图/289

14.10.1协作图编辑窗口/290

14.10.2协作图建模/290

14.11创建组件图/292

14.11.1组件图编辑窗口/293

14.11.2组件图建模/294

14.12创建配置图/297

14.12.1配置图编辑窗口/297

14.12.2配置图建模/297

14.13Rational Rose的双向工程/300

14.13.1双向工程概述/300

14.13.2正向工程——Java代码生成/300

14.13.3逆向工程——Java模型重建/304

14.14数据库设计建模/306

14.14.1设置DBMS/306

14.14.2创建数据库关系模式/307

14.14.3生成数据库代码/312

14.14.4数据库建模的逆向工程/315

习题/317

第四篇软件项目管理

第15章Project入门/321

15.1Project简介/321

15.2启动Project Professional/321

15.3视图/324

15.4报表/328

15.5创建新项目计划/331

15.6设置非工作日/332

15.7输入项目属性/333

习题/333

第16章软件项目介绍/334

16.1项目管理背景/334

16.2项目定义及其特征/334

16.2.1软件项目特征综述/335

16.2.2软件项目要素组成/335

16.3软件项目的生命周期/336

16.4国内外软件项目现状/337

习题/339

第17章软件项目管理/340

17.1项目管理概述/341

17.1.1项目管理定义/342

17.1.2项目管理类型/342

17.1.3项目管理的特征及重要性/343

17.2软件项目管理过程/343

17.2.1项目范围确定/344

17.2.2项目计划/344

17.2.3项目跟踪控制/344

17.2.4项目结束过程/344

17.3软件项目管理面对的问题/345

17.3.1常见的问题/345

17.3.2潜在的问题/345

17.4软件项目管理的范围/346

17.4.1项目管理五要素/346

17.4.2战术意义上的项目管理/346

17.4.3战略意义上的项目管理/346

17.5过程管理与软件项目管理的关系/347

17.5.1过程定义/347

17.5.2过程管理在软件项目中的作用/348

17.5.3过程管理与项目管理的关系/349

17.6项目管理资格认证/350

习题/350

第18章软件工程管理与技术/351

18.1软件工程管理概述/351

18.1.1管理的目的与内容/351

18.1.2软件估算/352

18.2软件项目特点、管理的特殊性及软件管理

功能/358

18.2.1软件项目的特点/358

18.2.2软件管理的功能/359

18.2.3确定软件项目的工作范围/359

18.2.4软件管理方案/359

18.3软件配置管理/360

18.3.1基线/360

18.3.2软件配置项(SCI)/361

18.3.3软件配置管理(SCM)过程/362

18.4成本估计/365

18.4.1参数方程/365

18.4.2标准值法/366

18.4.3COCOMO模型/368

18.5进度计划/371

18.5.1Gantt图(甘特图)/371

18.5.2工程网络/372

18.5.3估算进度/373

18.5.4关键路径/375

18.5.5机动时间/375

18.6人员组织/377

18.6.1程序设计小组的组织/377

18.6.2主程序员组/378

习题/379

第19章软件项目计划与管理/380

19.1软件项目计划/380

19.1.1项目计划内容/380

19.1.2项目报告/381

19.1.3变动控制/382

19.2软件度量/382

19.2.1度量、测量和估算/382

19.2.2面向过程软件度量/383

19.2.3面向对象软件度量/384

19.3软件质量度量/385

19.3.1软件质量定义及三层次度量模型/385

19.3.2软件质量要素/386

19.4软件复杂性度量/388

19.4.1软件复杂性及度量原则/388

19.4.2结构复杂性度量/388

19.4.3基于UML的类复杂性度量/390

19.5软件可靠性度量/390

19.5.1软件可靠性的概念/391

19.5.2软件可靠性估算/391

19.6软件开发过程管理/392

19.6.1风险分析/392

19.6.2进度安排/392

19.6.3软件开发人员的组织与分工/393

19.6.4软件项目的开发过程管理/394

19.7软件能力成熟度模型/394

19.7.1概述/395

19.7.2能力成熟度模型/397

19.7.3能力成熟度集成模型/404

19.7.4我国软件能力评估标准的制定与

实施/406

19.8确定软硬件资源/408

19.8.1人力资源/409

19.8.2硬件/409

19.8.3软件/409

19.9质量保证/410

19.9.1软件质量/410

19.9.2质量保证措施/411

习题/412第五篇高 级 课 题

第20章软件重用技术/415

20.1软件重用/415

20.1.1软件重用的概念/415

20.1.2软件重用的发展历史和重用过程/415

20.1.3软件重用的方法和主要实现途径/417

20.2软构件技术/418

20.2.1构件技术的概念/418

20.2.2可复用构件的设计准则/418

20.2.3JavaBeans构件模型/419

20.3领域工程/420

20.3.1域工程/420

20.3.2域分析/421

20.3.3域模型/422

20.3.4域分析方法/422

20.3.5领域分析过程框架/423

20.3.6领域分析过程的UML描述/424

20.3.7域设计/425

20.3.8域实现/425

20.4软构件库的开发/425

20.4.1构件库的基本概念/425

20.4.2构件库设计与实现/426

20.5面向对象的软件重用技术/430

20.6软件重用度量/431

习题/432

第21章设计模式/433

21.1设计模式简介/433

21.2GoF的23种设计模式内容/433

21.2.1创建型设计模式/434

21.2.2结构型设计模式/437

21.2.3行为型设计模式/441

21.2.4非GoF的设计模式/448

21.3对设计模式的理解/449

21.3.1对面向对象的基本原则的领悟/449

21.3.2讨论几个具体的模式/450

21.3.3模式在开发平台中的应用/451

21.4设计模式表述的设计原则/452

21.4.1通用职责分配软件模式/452

21.4.2比模式更重要的是原则

——设计原则/456

21.4.3更高层次的设计原则/460

21.5如何使用设计模式/461

21.5.1使用设计模式的方式/461

21.5.2一个项目案例/461

习题/462

第22章敏捷开发/463

22.1敏捷开发/463

22.2极限编程/465

22.3XP过程中的各个阶段/468

22.3.1计划/468

22.3.2测试驱动/471

22.3.3重构/473

习题/477

附录A软件工程标准化文档/478

A.1可行性分析报告的正文格式/478

A.2软件开发计划的正文格式/480

A.3系统/子系统需求规格说明(SSS)的格式/486

A.4软件测试报告(STR)的格式/492

参考文献/494