《软件工程与项目管理》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:肖汉主编;张玉,郭运宏副主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302363422
  • 页数:494 页
图书介绍:本书主要介绍软件开发技术、软件管理的思想和方法。内容包括可行性研究、需求分析、面向数据流的分析方法、软件设计基础、面向数据流的设计方法、程序设计语言和编码、软件检验和测试方法、软件维护、面向对象的分析与设计方法、软件项目管理、软件工程管理与技术、软件项目计划与管理、软件重用技术、设计模式以及敏捷开发等内容,并特别在软件工程开发的每个阶段提供了相应的案例和实训内容,同时介绍了软件工程标准化文档知识。

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

第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.4 V模型 19

2.2.5原型化模型 19

2.3软件开发标准 20

2.3.1国内外标准概述 20

2.3.2软件工程标准的层次 21

2.4案例——“图书管理系统”软件开发计划 23

2.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

第二篇 传统方法学 43

第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.5 SA方法小结 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.5 SD方法小结 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.2 SP方法与编程 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

第三篇 面向对象方法学 189

第11章 统一建模语言 189

11.1面向对象方法概述 189

11.1.1面向对象方法的特点 189

11.1.2面向对象的概念 190

11.2 UML概述 191

11.2.1UML的特点 192

11.2.2 UML的构成 192

11.2.3 UML与RUP 192

11.3 UML的视图 193

11.4 UML的模型元素 194

11.4.1事物 194

11.4.2关系 195

11.5 UML的模型图 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.6 UML的公共机制 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.1 Rational Rose简介 254

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

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

14.2.2 Rational Rose的安装 255

14.2.3 Rational Rose的启动与退出 260

14.3 Rational Rose的界面操作 260

14.3.1如何创建新模型 260

14.3.2 Rational Rose的主界面 262

14.3.3 Rational 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.13 Rational 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

第四篇 软件项目管理 321

第15章 Project入门 321

15.1 Project简介 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.3 COCOMO模型 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基于U M L的类复杂性度量 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

第五篇 高级课题 415

第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.3 JavaBeans构件模型 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.2 GoF的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.3 XP过程中的各个阶段 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