《软件工程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:肖汉主编
  • 出 版 社:北京:国防工业出版社
  • 出版年份:2009
  • ISBN:9787118060010
  • 页数:428 页
图书介绍:本书根据教学、科研和工程项目经验编写,讲述软件工程与软件过程,结构化分析、设计与实现,面向对象的概念、模型、分析、设计与实现,软件项目的计划、组织和控制,软件重用、软件工程环境、设计模式、敏捷开发等内容。

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

第1章 软件工程概述 1

1.1软件工程学的背景和目的 1

1.1.1软件与软件的组成 1

1.1.2软件的特点 2

1.1.3软件的分类 3

1.1.4软件的历史与发展 4

1.1.5软件危机 5

1.1.6软件工程 6

1.2软件开发方法 7

习题 8

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

2.1过程的含义 9

2.2软件过程模型 10

2.2.1瀑布模型 10

2.2.2渐近式模型 13

2.2.3过程的迭代 13

2.2.4V模型 15

2.2.5原型化模型 16

2.3软件开发标准 16

2.3.1国内外标准概述 16

2.3.2软件工程标准的层次 18

习题 19

第3章 可行性研究 20

3.1可行性研究的任务 20

3.1.1问题的定义 20

3.1.2可行性研究的任务 21

3.2可行性研究的步骤 22

3.3系统流程图 24

3.4成本/效益分析 26

3.4.1系统开发成本的计算 26

3.4.2成本/效益分析 27

习题 29

第2篇 传统方法学 30

第4章 需求分析基础 30

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

4.2初步需求获取技术 31

4.2.1访谈与调查问卷 31

4.2.2跟班作业 32

4.2.3组成联合小组 32

4.3需求建模 32

4.4需求规格说明与评审 33

4.4.1需求规格说明书的内容 33

4.4.2需求评审 37

习题 37

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

5.1结构化分析概述 39

5.2数据流图 40

5.2.1数据流图的基本成分 41

5.2.2由外向里画数据流图 42

5.2.3分层数据流图 43

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

5.2.5数据流图的改进 46

5.3数据词典 49

5.3.1词典条目的各种类型 49

5.3.2词典条目的实例 52

5.4小说明 53

5.4.1加工的描述 53

5.4.2结构化语言 54

5.4.3判定表 56

5.4.4判定树 57

5.4.5词典的实现 58

5.5SA方法小结 58

习题 59

第6章 软件设计基础 60

6.1软件设计概述 60

6.1.1软件设计的任务和步骤 60

6.1.2概要设计的基本概念 61

6.1.3详细设计的基本概念 61

6.2模块化设计 64

6.2.1模块概述 64

6.2.2块间联系和块内联系 66

6.3结构图的改进 72

6.4详细设计的描述方式 74

习题 80

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

7.1基本概念和设计过程 81

7.2变换分析 82

7.3事务分析 85

7.4综合设计 85

7.5SD方法小结 86

7.6软件设计文档 86

7.6.1概要设计说明书 86

7.6.2详细设计说明书 89

7.7其他设计方法 91

习题 92

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

8.1程序设计语言 94

8.1.1语言类别 94

8.1.2语言选择 96

8.2SP方法与编程 97

8.3程序内部文档 98

8.4编程风格 99

8.4.1编码原则 99

8.4.2编程风格 101

8.5程序的效率 104

8.6程序设计自动化 105

习题 106

第9章 检验和测试方法 107

9.1检验的基本概念 107

9.1.1概述 107

9.1.2软件检验手段 108

9.2软件评审 109

9.2.1评审过程 109

9.2.2评审条款 111

9.3测试的基本概念 112

9.4白盒法 113

9.4.1概述 113

9.4.2语句覆盖 114

9.4.3判定覆盖 115

9.4.4条件覆盖 115

9.4.5判定/条件覆盖 115

9.4.6条件组合覆盖 116

9.5黑盒法 116

9.5.1等价分类法 117

9.5.2边缘值分析法 119

9.5.3因果图法 120

9.5.4错误推测法 121

9.5.5综合策略 122

9.6测试步骤 123

9.7单元测试 124

9.7.1单元测试概述 124

9.7.2单元测试的方法 125

9.8联合测试 126

9.8.1渐增式和非渐增式 126

9.8.2由顶向下和由底向上渐增式测试 126

9.9有效性测试 128

9.10系统测试 129

9.11综合测试文档 130

习题 131

第10章 软件维护 133

10.1维护的基本概念 133

10.2维护的种类 134

10.3维护的步骤与方法 135

10.3.1维护步骤 135

10.3.2维护方法 136

10.4可维护性 137

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

10.4.2可维护性复审 139

10.5维护工作的管理 140

10.5.1维护的管理和组织 140

10.5.2维护报告 141

10.6维护的副作用 142

10.7软件维护文档 143

习题 147

第3篇 面向对象方法学 148

第11章 统一建模语言UML 148

11.1面向对象方法概述 148

11.1.1面向对象方法的特点 148

11.1.2面向对象的概念 149

11.2UML概述 151

11.2.1UML的特点 151

11.2.2UML的构成 151

11.2.3UML与RUP 152

11.3UML的视图 152

11.4UML的模型元素 153

11.4.1事物 153

11.4.2关系 154

11.5UML的模型图 155

11.5.1用例图 155

11.5.2类图 157

11.5.3对象图 161

11.5.4包图 162

11.5.5状态图 163

11.5.6活动图 163

11.5.7顺序图 165

11.5.8协作图 166

11.5.9组件图 166

11.5.10配置图 167

11.6UML的公共机制 168

11.6.1注释 168

11.6.2修饰 169

11.6.3规格说明 169

11.6.4通用划分 169

11.6.5扩展机制 169

习题 169

第12章 面向对象分析 171

12.1需求分析与用例建模 171

12.1.1用例建模概述 171

12.1.2确定系统的范围和边界 172

12.1.3确定系统的参与者 172

12.1.4确定系统的用例 173

12.1.5描述用例 173

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

12.1.7定义用例图的层次结构 174

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

12.2活动图建模 176

12.3系统分析与建模 177

12.3.1建立对象类静态模型 177

12.3.2建立对象类动态模型 179

12.3.3建立系统功能模型 180

12.3.4系统分析规格说明书 180

12.4面向对象分析案例 181

12.4.1需求分析与系统功能 181

12.4.2创建用例模型 182

12.4.3用例描述与活动图建模 186

12.4.4创建对象类静态模型 189

习题 193

第13章 面向对象设计 194

13.1面向对象设计方法 194

13.1.1面向对象设计概述 194

13.1.2系统分解 194

13.1.3系统设计规格说明书 195

13.2对象类动态模型建模 197

13.2.1交互模型建模 197

13.2.2状态模型建模 199

13.3系统体系结构建模 200

13.3.1软件系统体系结构模型 201

13.3.2硬件系统体系结构模型 202

13.3.3组件图建模 202

13.3.4配置图建模 204

13.4面向对象设计案例 205

13.4.1创建动态模型 205

13.4.2创建系统体系结构模型 212

习题 213

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

14.1Rational Rose简介 215

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

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

14.2.2Rational Rose的安装 216

14.2.3Rational Rose的启动与退出 221

14.3Rational Rose的界面操作 222

14.3.1如何创建新模型 222

14.3.2Rational Rose的主界面 224

14.3.3Rational Rose建模 228

14.4创建用例图 230

14.4.1打开用例图窗口 230

14.4.2用例图工具栏 231

14.4.3添加参与者与用例 231

14.4.4设置属性 231

14.4.5添加关系 232

14.5创建类图 233

14.5.1类图编辑窗口 233

14.5.2创建类 234

14.5.3建立类之间的关系 237

14.6创建包图 240

14.6.1创建包 240

14.6.2设置包的属性 241

14.6.3在包中添加元素 241

14.6.4添加包信息 241

14.6.5添加包之间的依赖关系 242

14.7创建状态图 242

14.7.1状态图编辑窗口 243

14.7.2状态图建模 243

14.8创建活动图 245

14.8.1活动图编辑窗口 246

14.8.2活动图建模 246

14.9创建顺序图 248

14.9.1顺序图编辑窗口 248

14.9.2顺序图建模 249

14.10创建协作图 252

14.10.1协作图编辑窗口 252

14.10.2协作图建模 253

14.11创建组件图 255

14.11.1组件图编辑窗口 255

14.11.2组件图建模 256

14.12创建配置图 259

14.12.1配置图编辑窗口 260

14.12.2配置图建模 260

14.13Rational Rose的双向工程 262

14.13.1双向工程概述 262

14.13.2正向工程——Java代码生成 263

14.13.3逆向工程——Java模型重建 268

14.14数据库设计建模 269

14.14.1设置DBMS 269

14.14.2创建数据库关系模式 271

14.14.3生成数据库代码 275

14.14.4数据库建模的逆向工程 278

习题 279

第4篇 软件项目管理学 281

第15章 软件项目管理 281

15.1软件度量 281

15.1.1度量、测量和估算 282

15.1.2面向过程软件度量 282

15.1.3面向对象软件度量 283

15.2软件项目估算 285

15.2.1功能点估算 285

15.2.2COCOMO模型 286

15.3软件质量度量 287

15.3.1软件质量定义及三层次度量模型 287

15.3.2软件质量要素 287

15.4软件复杂性度量 289

15.4.1软件复杂性及度量原则 289

15.4.2结构复杂性度量 290

15.4.3基于UML的类复杂性度量 291

15.5软件可靠性度量 292

15.5.1软件可靠性的概念 292

15.5.2软件可靠性估算 293

15.6软件开发过程的管理 293

15.6.1风险分析 293

15.6.2进度安排 294

15.6.3软件开发人员的组织与分工 295

15.6.4软件项目的开发过程管理 295

15.7软件过程及软件能力成熟度模型 296

15.7.1引言 296

15.7.2能力成熟度模型CMM 298

15.7.3能力成熟度集成模型CMMI 306

15.7.4我国软件能力评估标准的制定与实施 309

习题 311

第16章 软件工程管理技术 312

16.1软件工程管理概述 312

16.2软件项目计划 313

16.2.1组织开发团队、申请项目资源 313

16.2.2软件项目开发计划 313

16.2.3项目跟踪和监控计划 316

16.3软件配置管理 317

16.3.1软件配置管理的定义 318

16.3.2实施配置管理的好处 318

16.3.3软件配置管理的主要功能 319

16.3.4软件配置管理的角色与配置过程 321

16.3.5常用的配置管理软件 322

习题 322

第5篇 高级课题 323

第17章 软件重用技术 323

17.1软件重用 323

17.1.1软件重用的概念 323

17.1.2软件重用的发展历史和重用过程 323

17.1.3软件重用的方法和主要实现途径 324

17.2软构件技术 326

17.2.1构件技术的概念 326

17.2.2可复用构件的设计准则 327

17.2.3JavaBeans构件模型 327

17.3领域工程 328

17.3.1域工程 329

17.3.2域分析 329

17.3.3域模型 330

17.3.4域分析方法 330

17.3.5领域分析过程框架 331

17.3.6领域分析过程的UML描述 333

17.3.7域设计 333

17.3.8域实现 333

17.4软构件库的开发 334

17.4.1构件库的基本概念 334

17.4.2构件库设计与实现 334

17.5面向对象的软件重用技术 338

17.6软件重用度量 339

习题 340

第18章 软件工程环境 341

18.1计算机辅助软件工程及CASE工具 341

18.1.1计算机辅助软件工程 341

18.1.2CASE工具 341

18.2软件工程环境介绍 343

18.3需求分析和规格说明工具 345

18.4概要设计工具 347

18.5编程工具 349

18.6测试工具 351

习题 353

第19章 设计模式 354

19.1设计模式简介 354

19.2GoF的23种设计模式内容 354

19.2.1创建型设计模式 355

19.2.2结构型设计模式 358

19.2.3行为型设计模式 362

19.2.4非GoF的设计模式 368

19.3对设计模式的理解 369

19.3.1对面向对象的基本原则的领悟 369

19.3.2讨论几个具体的模式 370

19.3.3模式在开发平台中的应用 372

19.4设计模式表述的设计原则 373

19.4.1通用职责分配软件模式——GRASP 373

19.4.2比模式更重要的是原则——设计原则 377

19.4.3更高层次的设计原则 381

19.5如何使用设计模式 381

19.5.1使用设计模式的方式 381

19.5.2一个项目案例 382

习题 382

第20章 敏捷开发 383

20.1敏捷开发 383

20.1.1敏捷软件开发宣言 383

20.1.2敏捷宣言遵循的原则 384

20.2极限编程 385

20.3XP过程中的各个阶段 388

20.3.1计划 389

20.3.2测试驱动 391

20.3.3重构 393

习题 397

附录A文档格式 398

A.1用户手册 398

A.2操作手册 401

A.3C程序编程工程化约束 403

附录B课程实习项目实例 408

B.1可行性研究报告 408

B.2项目开发计划任务书 411

B.3需求规格说明书 413

B.4概要设计说明书 415

B.5详细设计说明书 422

B.6用户操作手册 426

参考文献 428