《现代软件工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张泊平编著
  • 出 版 社:北京:北京交通大学出版社
  • 出版年份:2009
  • ISBN:9787811236958
  • 页数:336 页
图书介绍:本书是作者根据近十年来对软件工程学、面向对象方法等教学研究的实践经验,不仅介绍了传统的结构化程序软件工程方法,而且以面向对象的软件工程技术为主,重点讲解了软件工程的基本理论、软件工程方法学、面向对象软件工程,并以实际案例分析贯穿始终。对于提高学生的软件开发素养具有一定的指导意义。针对初学者的特点力求理论表述通俗易懂,内容新颖实用,尽量用实例来诠释概念和方法,使读者能够轻松地掌握面向对象软件工程的方法和技能,进而在软件企业很快地进入各种角色。

第1章 软件工程概述 1

1.1软件与软件危机 1

1.1.1软件的定义、特点、种类及发展 1

1.1.2软件危机 4

1.2软件工程的概念 5

1.2.1软件工程的定义 6

1.2.2软件工程研究的内容 6

1.2.3软件工程的基本原理 7

1.3软件的开发方法 7

1.3.1结构化方法 7

1.3.2面向数据结构的方法 8

1.3.3面向对象的开发方法 8

1.3.4软件开发新方法 9

1.4软件生存周期 10

1.5软件生存周期模型 11

1.5.1瀑布模型 11

1.5.2原型模型 12

1.5.3增量模型 13

1.5.4螺旋模型 14

1.5.5喷泉模型 17

1.5.6智能模型 18

1.5.7构件组装模型 19

小结 20

习题 20

第2章 可行性分析 22

2.1可行性研究的任务 22

2.2可行性研究的具体步骤 25

2.3可行性研究的文档 26

2.4项目开发计划 27

小结 27

习题 27

第3章 软件需求分析 29

3.1软件需求分析的基本概念 29

3.1.1软件需求分析的任务 29

3.1.2需求分析的过程 30

3.1.3需求分析的困难 31

3.2分析建模 31

3.2.1应该分析什么 31

3.2.2通过什么方式去分析 32

3.2.3需求分析方法 33

3.3结构化分析方法 33

3.4数据流图 34

3.5数据词典 40

3.6加工逻辑说明 41

3.7系统行为建模 43

3.7.1状态图 43

3.7.2 Petri网 44

3.8原型化分析方法 45

3.8.1原型化方法的基本思想 46

3.8.2原型化方法和工具 46

3.8.3采用原型化方法的步骤 46

3.9需求分析文档 47

3.10案例分析——图书馆管理系统 49

3.10.1问题陈述 49

3.10.2图书馆组织结构 50

3.10.3系统业务流程分析 50

3.10.4数据流程图 51

3.10.5数据定义及数据词典 53

3.10.6细化需求规格说明 56

小结 57

习题 57

第4章 软件外部设计——交互设计 60

4.1交互设计概述 60

4.1.1交互设计的概念 60

4.1.2交互设计与界面设计 61

4.1.3交互设计的特征 63

4.1.4交互设计的内容 63

4.1.5怎样进行交互设计 64

4.1.6如何粗略地评估可用性 65

4.2交互设计的方法 65

4.2.1角色设计 65

4.2.2目标设计 66

4.2.3任务设计 67

4.2.4交互样式 68

4.3案例分析——LMS的交互设计 75

小结 77

习题 77

第5章 软件内部设计 79

5.1设计过程 79

5.1.1结构化设计与结构化分析的关系 79

5.1.2设计和软件质量的关系 80

5.2设计概念 80

5.2.1软件设计的观点 80

5.2.2控制层次 83

5.3有效的模块设计 85

5.3.1功能独立性 85

5.3.2内聚性 85

5.3.3耦合 87

5.3.4控制范围与作用范围之间的约束 88

5.4结构化设计方法 89

5.4.1结构化开发方法 89

5.4.2数据流图的分类与典型的系统结构 90

5.4.3变换型系统结构图 91

5.4.4事务型系统结构图 93

5.5详细设计描述工具 95

5.5.1结构化程序设计 95

5.5.2图形设计符号 96

5.6编写软件设计文档 98

5.7案例分析——LMS系统设计 100

5.7.1系统功能设计 100

5.7.2系统环境设计 101

5.7.3数据库设计 102

小结 105

习题 105

第6章 面向对象软件工程基础 107

6.1面向对象的开发方法概述 107

6.1.1类与对象 107

6.1.2继承 108

6.1.3虚函数和多态性 109

6.1.4消息 111

6.1.5方法 112

6.2面向对象开发模型 112

6.2.1面向对象开发模型概述 112

6.2.2建立模型的作用 113

6.2.3创建优质模块 113

6.3面向对象分析 115

6.3.1 SA方法和OOA方法比较 115

6.3.2面向对象分析的特点 115

6.3.3面向对象分析的基本任务 116

6.3.4 OOA过程 117

6.4面向对象设计 119

6.4.1面向对象设计的模型 119

6.4.2面向对象设计的任务 123

6.4.3优质对象系统的属性 125

6.5案例分析——LMS中的产品设计 126

6.5.1面向对象概念化 126

6.5.2耦合 127

6.5.3确定系统的参与者 128

小结 128

习题 128

第7章 统一建模语言 131

7.1 UML概述 131

7.1.1 UML的发展 131

7.1.2 UML的构成 132

7.1.3视图 132

7.1.4 UML的图形表示 134

7.1.5 UML的通用模型元素 135

7.2用例模型 139

7.2.1用例图 139

7.2.2参与者 139

7.2.3用例 141

7.3建立静态模型 145

7.3.1类图 145

7.3.2对象图 151

7.3.3包图 152

7.4动态模型 154

7.4.1对象之间的交互——消息 154

7.4.2状态图 155

7.4.3时序图 158

7.4.4协作图 162

7.4.5活动图 164

7.5实现模型 166

7.5.1构件图 166

7.5.2配置图 168

7.6案例分析——LMS的UML模型 169

7.6.1 UCCD类的分析过程 169

7.6.2 LMS分析 172

7.6.3 LMS设计 178

7.6.4 LMS的交互图 183

小结 187

习题 187

第8章 软件编码与实现 189

8.1程序设计语言 189

8.1.1程序设计语言的分类 189

8.1.2程序设计语言的选择 190

8.2程序设计基础 191

8.2.1结构化程序设计 191

8.2.2程序设计风格 191

8.2.3程序效率 194

8.3编程安全 195

8.3.1保护性编程 195

8.3.2 冗余编程 196

8.4软件实现后编写的文档 196

8.5案例分析——LMS系统实现(编码) 198

8.5.1读者注册系统的实现 198

8.5.2读者留言板的实现 200

小结 203

习题 203

第9章 软件测试 204

9.1软件测试的基本概念 204

9.1.1软件测试的目的和重要性 204

9.1.2软件测试的原则 206

9.1.3软件测试的几个定义 207

9.1.4软件测试的基本步骤 209

9.1.5静态分析与动态测试 209

9.2软件测试的基本方法 210

9.2.1测试用例 210

9.2.2白盒测试 211

9.2.3黑盒测试 214

9.3软件测试的策略 217

9.3.1单元测试 218

9.3.2组装测试 219

9.3.3确认测试 222

9.3.4系统测试 223

9.4排错技术 224

9.4.1排错的原则 225

9.4.2排错方法 226

9.5面向对象的测试 227

9.5.1面向对象测试原理 228

9.5.2面向对象的单元测试 228

9.5.3面向对象的集成测试 229

9.5.4面向对象的确认测试 230

9.6软件测试计划与测试分析报告 230

9.6.1软件测试计划 230

9.6.2测试分析报告 233

9.7 LMS测试 235

9.7.1测试计划 235

9.7.2系统地提出测试用例 237

小结 238

习题 239

第10章 软件维护 241

10.1软件维护的定义、分类、特点 241

10.1.1软件维护的定义 241

10.1.2软件维护的分类 242

10.1.3软件维护的特点 243

10.2软件维护过程及组织 244

10.2.1软件维护过程 244

10.2.2软件维护组织 245

10.3软件的可维护性 246

10.3.1软件的可维护性概念 246

10.3.2影响可维护性的因素 247

10.3.3提高软件可维护性的方法 250

10.3.4软件维护的副作用 253

小结 254

习题 254

第11章 软件复用和构件技术 256

11.1软件复用概述 256

11.1.1软件复用的概念 256

11.1.2软件复用的分类和复用级别 256

11.1.3软件复用的形式 258

11.1.4软件复用的实施过程 258

11.2可复用构件与构件工程 259

11.2.1可复用构件 259

11.2.2基于构件的软件工程 260

11.3领域分析和基于构件的开发 261

11.3.1领域分析 261

11.3.2构件的开发与构件库 261

11.4基于构件的开发 264

小结 265

习题 266

第12章 软件项目计划与管理 267

12.1软件项目管理 267

12.1.1软件项目管理的特点 267

12.1.2软件工程管理的内容 267

12.2软件项目计划 269

12.2.1软件开发进度计划 269

12.2.2软件项目计划内容 269

12.2.3软件项目进度安排 270

12.3项目成本估算 274

12.3.1影响成本估算的因素 274

12.3.2成本估算模型 275

12.3.3 Halstead理论模型 275

12.3.4专家估算模型 275

12.3.5 IBM估算模型 276

12.3.6 Putnam估算模型 276

12.3.7 COCOMO模型 277

12.3.8成本估算方法 279

12.4软件复杂性 279

12.4.1软件复杂性的基本概念 279

12.4.2软件复杂性的度量方法 280

12.5软件可靠性 281

12.5.1软件可靠性定义 281

12.5.2软件可靠性指标 281

12.5.3软件可靠性模型 282

12.6软件能力成熟度模型(CMM) 283

12.6.1 CMM的基本概念 283

12.6.2软件过程的成熟度等级 284

12.6.3在软件企业中实施CMM 285

小结 287

习题 287

第13章 软件工程环境 289

13.1软件工程环境概述 289

13.1.1软件工程环境定义 289

13.1.2软件开发环境的特性 289

13.1.3软件开发环境的分类 290

13.2软件开发工具 291

13.3软件开发工具实例Rational Rose 293

13.3.1 Rose工具简介 293

13.3.2业务用例图 294

13.3.3用例图 295

13.3.4类图 296

13.3.5协作图与时序图 298

13.3.6活动图 299

13.3.7状态图 300

13.3.8构件图和部署图 301

13.3.9正向工程和逆向工程 302

小结 304

习题 304

第14章 软件工程课程设计 305

14.1课程简介 305

14.2课程设计参考案例——音像社信息管理系统 306

14.2.1开发前的准备 306

14.2.2描述企业概图 308

14.2.3系统分析 309

14.2.4系统设计 312

14.2.5系统实施 315

14.2.6系统运行与维护 317

14.3汽车租赁企业信息管理系统 317

14.3.1汽车租赁系统的需求分析 317

14.3.2系统的时序图 322

14.3.3系统的协作图 325

14.3.4系统的状态图 326

14.3.5系统的活动图 327

14.3.6系统中的类 328

14.3.7系统的配置模型与实现模型 330

14.3.8系统实现 332

参考文献 335

后记 336