图书介绍

软件工程PDF|Epub|txt|kindle电子书版本网盘下载

软件工程
  • 李代平编著 著
  • 出版社: 北京:冶金工业出版社
  • ISBN:7502430865
  • 出版时间:2002
  • 标注页数:402页
  • 文件大小:31MB
  • 文件页数:414页
  • 主题词:软件方法/软件工程

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

软件工程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 绪论1

1.1 软件概述1

1.1.1 软件的特点1

1.1.2 软件的发展2

1.1.3 软件危机2

1.2 软件工程4

1.2.1 软件工程与方法学5

1.2.2 软件工程的基本原理6

1.2.3 软件工程的目标7

1.2.4 软件工程的内容8

1.2.5 软件工程面临的问题8

小结8

练习题9

第2章 软件工程的基本理论10

2.1 软件工程过程10

2.2 软件生存周期10

2.2.1 软件分析时期11

2.2.2 软件设计时期12

2.2.3 编码与测试时期13

2.2.4 运行与维护时期14

2.3 软件生存周期模型14

2.3.1 软件生存周期模型的概念14

2.3.2 瀑布模型15

2.3.3 原型模型17

2.3.4 增量模型17

2.3.5 螺旋模型19

2.3.6 喷泉模型20

2.3.7 基于知识的模型21

2.3.8 变换模型22

2.4 软件开发方法22

2.4.1 结构化方法22

2.4.2 Jackson方法23

2.4.3 维也纳开发方法23

2.4.4 面向对象的开发方法24

2.4.5 其他开发方法24

2.5 软件工具与开发24

2.5.1 软件工具箱25

2.5.2 软件开发环境25

2.5.3 计算机辅助软件工程25

小结25

练习题26

第3章 可行性研究27

3.1 可行性研究任务与步骤27

3.1.1 研究任务27

3.1.2 研究步骤29

3.2 系统分析30

3.2.1 系统分析员31

3.2.2 系统分析员任务32

3.2.3 面临的问题域32

3.2.4 通信技术33

3.3 分析原理34

3.3.1 信息域35

3.3.2 建立模型36

3.3.3 分解36

3.4 结构化分析37

3.4.1 自顶向下逐层分解38

3.4.2 结构化分析步骤39

3.5 系统流程图40

3.6 数据流图41

3.6.1 基本图形符号42

3.6.2 画数据流图43

3.6.3 结构化分析方法的应用46

3.7 数据字典50

3.7.1 内容及格式50

3.7.2 数据字典的实现52

3.8 成本-效益分析53

3.9 可行性研究的文档55

3.10 项目开发计划56

小结56

练习题57

第4章 软件需求分析与概念模型58

4.1 需求分析58

4.1.1 需求分析的特点58

4.1.2 需求分析的原则59

4.1.3 需求分析的任务59

4.1.4 需求分析的方法60

4.2 IDEF方法63

4.2.1 IDEFO的表示63

4.2.2 IDEFO方法的特点64

4.2.3 建立功能模型方法64

4.3 概念模型与规范化66

4.3.1 数据依赖66

4.3.2 关系模式的操作异常67

4.3.3 范式67

4.3.4 EAR方法72

小结75

练习题75

第5章 总体设计76

5.1 软件设计的重要性76

5.2 设计过程77

5.2.1 软件设计的发展77

5.2.2 设计活动间的关系77

5.2.3 设计与软件质量78

5.3 软件总体设计78

5.4 设计基本原理80

5.4.1 抽象80

5.4.2 细化81

5.4.3 模块化81

5.4.4 软件体系结构83

5.4.5 程序结构84

5.4.6 数据结构85

5.4.7 软件过程86

5.5 体系结构设计87

5.5.1 软件结构图87

5.5.2 模块的大小89

5.5.3 扇出和扇入与深度和宽度89

5.5.4 模块的藕合90

5.5.5 模块的内聚92

5.5.6 模块设计的一般准则94

5.5.7 模块的作用域与控制域95

5.6 结构化设计97

5.6.1 数据流的类型97

5.6.2 过程步骤98

5.6.3 变换分析设计99

5.6.4 事务分析设计101

5.6.5 混合流设计102

5.6.6 结构化设计方法应用示例103

5.6.7 设计的后期处理104

5.7 IDEFO图的设计方法105

5.8 软件结构优化105

5.8.1 软件结构设计优化准则105

5.8.2 软件结构的HIPO图107

小结108

练习题109

第6章 软件细节设计110

6.1 细节设计的任务与方法110

6.1.1 细节设计的基本任务110

6.1.2 细节设计方法111

6.2 设计表示法112

6.2.1 结构化语言112

6.2.2 判定表113

6.2.3 判定树114

6.3 结构化程序设计114

6.3.1 结点114

6.3.2 三种基本控制结构115

6.3.3 正规程序116

6.3.4 基本程序117

6.3.5 结构化程序118

6.4 结构化定理118

6.4.1 程序函数119

6.4.2 基本定理119

6.4.3 非结构化转换为结构化121

6.4.4 过程设计语言123

6.5 图形工具126

6.5.1 PAD图126

6.5.2 盒图127

6.6 面向数据结构的设计128

6.6.1 Jackson图129

6.6.2 纲要逻辑130

6.6.3 Jackson方法131

6.6.4 JSP应用132

6.6.5 JSD方法135

小结140

练习题140

第7章 面向对象方法学141

7.1 传统方法学的缺点141

7.1.1 问题的表现141

7.1.2 问题的原因142

7.2 面向对象的基本概念144

7.2.1 对象(Object)144

7.2.2 类(Class)145

7.2.3 继承(Inheritance)146

7.2.4 封装(Encapsulation)147

7.2.5 消息(Message)147

7.2.6 结构与连接148

7.2.7 多态性149

7.2.8 其他概念150

7.3 对象模型151

7.3.1 表示方法151

7.3.2 表示结构152

7.3.3 例子154

7.4 动态模型154

7.4.1 术语154

7.4.2 表示方法155

7.4.3 例子155

7.5 功能模型156

7.5.1 表示方法156

7.5.2 与其他两种模型的关系156

小结157

练习题157

第8章 面向对象分析158

8.1 分析的基本过程158

8.1.1 过程简述158

8.1.2 基本模型159

8.1.3 主要活动160

8.2 对象的发现和标识162

8.2.1 动机162

8.2.2 方法163

8.2.3 三视图模型(3VM)163

8.2.4 语言信息分析164

8.3 发现对象方法166

8.3.1 系统责任166

8.3.2 问题域研究方法167

8.3.3 确定系统边界168

8.3.4 发现对象169

8.3.5 审查和筛选171

8.3.6 建立类图的对象层172

8.4 定义属性174

8.4.1 对象的属性和服务174

8.4.2 表示方法175

8.4.3 定义属性175

8.5 定义服务177

8.5.1 状态转换图177

8.5.2 行为分类179

8.5.3 发现服务方法180

8.6 定义结构181

8.6.1 一般-特殊结构182

8.6.2 发现一般-特殊结构183

8.6.3 结构的简化185

8.6.4 多继承与多态性186

8.6.5 整体-部分结构191

8.6.6 整体-部分结构表示法192

8.6.7 发现整体-部分结构方法193

8.7 实例连接195

8.7.1 实例连接概念196

8.7.2 实例连接表示法197

8.7.3 建立实例连接方法198

8.8 消息连接200

8.8.1 消息的概念200

8.8.2 表示方法202

8.8.3 建立消息连接方法204

8.9 建立功能模型205

8.9.1 画基本系统模型图205

8.9.2 画功能级数据流图205

8.9.3 描述处理框功能206

小结206

练习题206

第9章 面向对象设计207

9.1 设计的准则207

9.1.1 转向面向对象的设计207

9.1.2 抽象208

9.1.3 信息隐藏208

9.1.4 模块化208

9.1.5 类的设计准则208

9.1.6 面向对象的设计基本原理208

9.1.7 软件复用209

9.1.8 面向对象设计的步骤209

9.2 启发式规则209

9.2.1 简单209

9.2.2 设计变动尽可能小210

9.2.3 设计结果的可懂性210

9.3 系统分解210

9.3.1 子系统之间的两种交互方式211

9.3.2 组织系统的两种方案211

9.3.3 设计系统的拓扑结构212

9.4 设计问题域子系统212

9.5 设计任务子系统216

9.6 设计数据管理子系统217

9.6.1 数据管理方法217

9.6.2 设计数据管理子系统218

9.7 面向对象程序设计219

9.7.1 面向对象程序的特点219

9.7.2 OOPL概观219

9.7.3 OOPL的特征220

9.8 软件重用221

9.8.1 软件重用概述221

9.8.2 软件重用的效果222

9.8.3 软件重用技术223

9.9 统一建模语言UML224

9.9.1 UML的概念模型225

9.9.2 UML的软件分析与开发步骤227

小结228

练习题228

第10章 形式化方法230

10.1 形式化方法的基础知识230

10.1.1 形式化方法概念231

10.1.2 数学知识231

10.1.3 应用数学符号描述形式规约242

10.1.4 形式化规约语言244

10.2 有限状态机(FSM)246

10.3 Petri网的基本原理247

10.3.1 静态结构247

10.3.2 动态特征248

10.3.3 转移启动规则249

10.3.4 行为特性251

10.3.5 行为特性分析方法254

10.3.6 结构特性分析方法260

10.3.7 Petri网到程序结构的转换263

10.4 净室方法学266

10.4.1 净室方法266

10.4.2 净室过程模型267

10.4.3 功能规约268

10.4.4 黑盒规约269

10.4.5 状态盒规约270

10.5 客户/服务器模式270

10.5.1 系统的结构270

10.5.2 中间件和对象请求代理体系结构271

10.5.3 分析建模问题272

10.5.4 对C/S系统的设计272

小结274

练习题275

第11章 用户界面设计276

11.1 界面软件设计概述276

11.1.1 可使用性276

11.1.2 灵活性277

11.1.3 复杂性和可靠性277

11.1.4 用户界面设计存在的问题277

11.2 设计人-机交互子系统278

11.2.1 准则278

11.2.2 策略278

11.2.3 设计的形式279

11.2.4 交互工具281

11.3 图形用户界面设计281

11.3.1 菜单的选择281

11.3.2 对话框283

11.3.3 窗口284

11.4 多媒体用户界面设计284

11.4.1 多媒体用户界面的设计特点285

11.4.2 虚拟现实285

11.4.3 多通道人机交互技术286

11.4.4 多媒体用户界面细节设计286

11.5 用户界面模型287

11.6 用户界面的描述方法与技术288

11.7 用CASE工具支持界面设计288

11.8 新一代界面的主要特征289

小结290

练习题290

第12章 软件质量291

12.1 软件质量概述291

12.1.1 软件质量的定义291

12.1.2 软件质量特性291

12.1.3 软件质量特性之间的竞争294

12.2 软件质量的度量和评价296

12.2.1 软件质量的度量296

12.2.2 软件质量度量的分类297

12.2.3 软件质量评价297

12.3 软件质量保证300

12.3.1 软件质量保证的概述300

12.3.2 软件质量保证原则300

12.3.3 软件质量保证计划301

12.3.4 软件质量保证的措施301

12.3.5 软件质量管理小组301

12.4 技术评审与审查302

12.4.1 评审过程302

12.4.2 选择参加评审的成员303

12.4.3 评审的管理和组织303

12.4.4 评审的方法303

12.4.5 走查和审查304

12.4.6 开发过程的评审304

12.4.7 对评审的综合评价305

12.5 软件的可靠性306

小结306

练习题307

第13章 软件实现308

13.1 程序设计语言的特性及选择308

13.1.1 程序设计语言特性308

13.1.2 程序设计语言的选择309

13.2 程序设计风格312

13.3 程序设计效率314

13.3.1 代码效率314

13.3.2 内存效率314

13.3.3 I/O效率315

13.4 冗余编程315

13.5 软件容错技术316

13.5.1 容错软件316

13.5.2 容错的一般方法317

13.5.3 容错软件的设计过程320

13.5.4 软件的容错系统结构320

小结323

练习题324

第14章 软件测试325

14.1 软件测试概述325

14.1.1 软件测试的目的325

14.1.2 软件测试的原则325

14.2 测试方法326

14.2.1 静态测试326

14.2.2 动态测试326

14.3 测试用例的设计327

14.3.1 白盒技术327

14.3.2 黑盒技术332

14.4 测试过程336

14.4.1 软件测试过程中的信息336

14.4.2 软件测试的步骤与各开发阶段的关系336

14.4.3 单元测试337

14.4.4 集成测试338

14.4.5 确认测试341

14.5 调试342

14.5.1 调试的目的342

14.5.2 调试技术342

小结343

练习题344

第15章 软件维护345

15.1 软件维护概述345

15.1.1 软件维护的定义345

15.1.2 影响维护工作的因素346

15.1.3 维护成本346

15.2 软件可维护性346

15.2.1 软件可维护性的定义347

15.2.2 可维护性的度量347

15.3 软件维护的特点349

15.3.1 非结构化维护和结构化维护349

15.3.2 维护的困难性350

15.3.3 软件维护的费用350

15.4 软件维护的实施351

15.4.1 维护的组织351

15.4.2 维护的流程352

15.4.3 维护技术353

15.4.4 维护的副作用353

15.5 维护“老化代码”354

15.6 逆向工程和再工程355

15.6.1 预防性维护355

15.6.2 逆向工程的元素356

15.6.3 再工程中的重构技术357

小结360

练习题360

第16章 软件项目管理与计划361

16.1 软件项目管理概述361

16.1.1 软件管理的对象361

16.1.2 软件开发中的资源362

16.1.3 分解技术363

16.2 项目管理过程363

16.3 软件开发成本估算364

16.3.1 软件开发成本估算方法365

16.3.2 软件开发成本估算的经验模型366

16.4 风险分析367

16.4.1 风险识别368

16.4.2 风险估算368

16.4.3 风险评价369

16.4.4 风险驾驭和监控370

16.5 进度安排372

16.5.1 软件开发小组人数与软件生产率372

16.5.2 任务的确定与并行性372

16.5.3 制定开发进度计划373

16.5.4 进度安排的图形方法374

16.5.5 项目的追踪和控制375

16.6 软件项目的组织375

16.6.1 软件项目管理的特点375

16.6.2 软件项目组织的建立376

16.6.3 人员配备379

小结380

练习题381

附录 软件产品的主要文件382

A.1 任务书383

A.2 可行性研究报告384

A.3 软件需求报告388

A.4 数据要求说明书391

A.5 概要设计说明书392

A.6 数据库设计说明书394

A.7 细节设计说明书395

A.8 测试计划396

A.9 编码与单元测试评审报告397

A.10 用户手册398

A.11 项目开发总结报告400

A.12 鉴定会纪要402

热门推荐