热门关键字:  听力密码  单词密码  新概念美语  巧用听写练听力  零起点

软件工程

中国水利水电出版社
    【作 者】曹哲 高诚 主编 【I S B N 】978-7-5084-5932-5 【责任编辑】李炎 【适用读者群】科技 【出版时间】2008-10-01 【开 本】16开本 【装帧信息】平装(光膜) 【版 次】2008年10月第1版 【页 数】300 【千字数】 【印 张】 【定 价】30 【丛 书】普通高等教育“十一五”国家级规划教材 【备注信息】
图书详情

      本书根据教育部“普通高等教育‘十一五’国家级规划教材”的精神编写。本书从实用的角度出发系统地介绍了软件工程的基本概念、方法、技术、工具和环境。全书共14章,内容主要包括:该书、软件项目管理、计算机系统工程、需求分析、面向数据流的分析方法、面向数据的分析方法与形式化方法、软件设计基础、面向数据流的设计方法、面向数据的设计方法、人机界面设计、程序设计语言与编码、软件测试、软件维护、面向对象的系统开发方法等。

      本书教学内容的深度、广度定位准确,具有鲜明的应用本科特色,并紧跟新技术,以典型案例和流行工具为依托,突出实用性,结构合理、概念清楚、通俗易懂、内容翔实、实例丰富、习题思考题与内容配合紧密。

      本书既可作为高等院校“软件工程”课程的教材或教学参考书,也可作为软件开发人员的参考书。

    结构更加合理,系统介绍了软件工程的基本原理、概念、方法和工具。

    定位准确,具有鲜明的应用本科特色,深度和广度合适,难点分散。

    紧跟新技术,以典型案例和流行工具为依托,突出实用性,强调实践动手能力。

    概念清楚、通俗易懂、内容翔实、实例丰富,习题思考题与内容配合紧密。

      软件工程是计算机学科中一个非常有价值并具有广阔发展空间的研究领域。多年来,随着计算机硬件技术的迅猛发展,人们开发优质软件的能力远远落后于社会各个领域对计算机软件的需求,也就是说,时至今日,仍然经受着“软件危机”的困扰。为了克服“软件危机”,自20世纪60年代末期以来,人们在这一领域做了大量的研究与实践工作,积累了大量的软件开发技术和方法,进而逐渐形成了系统的软件项目开发与管理理论。于是,一门新兴的学科——软件工程学(简称软件工程)诞生了。软件工程所研究的范围十分广泛,主要包括软件项目开发和软件维护的有关理论、技术、方法、标准、计算机辅助工具和环境以及软件项目管理等诸多方面。软件工程领域的研究成果为缓解软件危机发挥了关键性作用。

      “软件工程”课程是高等学校计算机学科教学计划中的一门主干课程。本书正是为普通高校计算机学科“软件工程”课程而编写的教材。本书共14章,其中第1章介绍软件工程的基本概念;第2章介绍软件项目管理,其中增加了新的COCOMOⅡ成本估算模型,并把 “软件配置管理”的内容也放在第2章中,但把 “软件可靠性度量”的内容放到第12章“软件测试”中,以求达到难点分散,结构更合理的目的;第3章介绍计算机系统工程;第4~6章介绍传统需求分析的有关内容,包括需求分析概念、面向数据流、面向数据、形式化等需求分析方法、需求规格说明与评审等;第7~10章介绍传统的软件设计的有关内容,包括软件设计的概念、设计过程和一般性技术,面向数据流、面向数据以及人机界面的设计方法、技术与工具、设计规格说明与评审等;第11~13章介绍软件的实现、测试与维护,主要包括程序设计语言与编码、软件测试与调试、软件维护等;第14章以案例驱动的方法较系统地介绍了使用UML(统一建模语言)和流行的Rational Rose工具进行面向对象的系统开发方法。

    本书具有以下几个特点:

    (1)结构更加合理,系统介绍了软件工程的基本原理、概念、方法和工具。

    (2)定位准确,具有鲜明的应用本科特色,深度和广度合适,难点分散。

    (3)紧跟新技术,以典型案例和流行工具为依托,突出实用性,强调实践动手能力。

    (4)概念清楚、通俗易懂、内容翔实、实例丰富,习题思考题与内容配合紧密。

      本书可以作为高等院校“软件工程”课程的教材或教学参考书,也可以作为软件开发人员的参考书。

      本书由曹哲、高诚任主编,由车进辉、曹晶人、姜卓任副主编,全书由曹哲统稿。具体分工为:第1章由曹哲编写,第5、6、7、8、9、10章由高诚编写,第14章由车进辉编写,第2、12章由曹晶人编写,第3、4、11、13章由姜卓编写。

    在本书的编写过程中,北华大学计算机科学技术学院软件工程课程组的全体同志参与了大纲讨论,并提出了许多宝贵意见;张玲玲  为本书的可靠性估算例题提供了第二种解法。在此,编者向他们表示衷心的感谢。

      由于编者水平有限,书中难免存在疏漏和不妥之处,恳请广大读者批评指正。

      编者联系方式:caozhe02@163.com

    前言
     
    第1章  概述 1
    1.1  软件 1
    1.1.1  软件 1
    1.1.2  软件危机 2
    1.2  软件工程的概念 4
    1.2.1  软件工程的定义 4
    1.2.2  软件工程的基本原理 4
    1.2.3  软件工程的目标 6
    1.2.4  软件工程的原则 7
    1.3  软件生存周期 7
    1.3.1  软件定义 8
    1.3.2  软件开发 9
    1.3.3  软件的使用与维护及退役 10
    1.4  软件开发模型 11
    1.4.1  瀑布模型 11
    1.4.2  原型模型 13
    1.4.3  螺旋模型 13
    1.4.4  喷泉模型 15
    1.4.5  变换模型 15
    1.4.6  基于四代技术的模型 16
    1.4.7  基于知识的智能模型 16
    1.5  软件开发方法、工具及环境 17
    1.5.1  软件开发方法 17
    1.5.2  软件开发工具与环境 17
    1.5.3  计算机辅助软件工程 17
    习题 18
    第2章  软件项目管理 19
    2.1  软件度量 19
    2.1.1  软件度量的基本概念 19
    2.1.2  面向规模的度量 21
    2.1.3  面向功能的度量 22
    2.2  软件项目估算 24
    2.2.1  软件项目的估算方法 24
    2.2.2  代码行和功能点的估算 26
    2.2.3  软件项目的经验估算模型 26
    2.3  软件质量度量 35
    2.3.1  软件质量的定义 36
    2.3.2  软件质量的度量模型 36
    2.4  软件复杂性度量 39
    2.4.1  软件复杂性的概念及度量原则 39
    2.4.2  McCabe度量模型 40
    2.4.3  Halstead度量模型 41
    2.5  软件开发过程的管理 42
    2.5.1  软件开发项目管理过程 42
    2.5.2  风险分析 43
    2.5.3  进度安排 46
    2.5.4  软件质量保证 49
    2.5.5  软件项目组织的建立与人员分工 51
    2.5.6  软件项目的跟踪与控制 53
    2.5.7  软件配置管理 53
    2.5.8  软件开发标准 59
    习题 60
    第3章  计算机系统工程 62
    3.1  计算机系统工程的概念 62
    3.1.1  硬件工程 63
    3.1.2  软件工程 63
    3.1.3  人机工程 65
    3.1.4  数据库工程 66
    3.2  可行性研究 67
    3.2.1  可行性研究的任务及步骤 67
    3.2.2  经济可行性研究 68
    3.2.3  技术可行性研究 69
    3.2.4  选择方案 70
    3.3  系统模型 71
    3.4  系统规格说明书与评审 73
    3.4.1  系统规格说明书 73
    3.4.2  系统规格说明书的评审 74
    习题 74
    第4章  需求分析 75
    4.1  需求分析的任务 75
    4.2  需求分析的一般性技术 76
    4.2.1  初步需求获取技术 76
    4.2.2  需求建模技术 78
    4.2.3  快速原型技术 78
    4.2.4  问题分解与抽象、多视点分析技术 79
    4.3  需求规格说明书与评审 79
    4.3.1  需求规格说明书的作用与内容 79
    4.3.2  需求评审 81
    习题 81
    第5章  面向数据流的分析方法 83
    5.1  数据流图与数据字典 83
    5.1.1  数据流图 83
    5.1.2  数据字典 86
    5.2  实体—关系图 88
    5.2.1  数据对象、属性与关系 88
    5.2.2  实体—关系图 90
    5.3  基于数据流的分析方法 91
    5.3.1  创建数据流模型 91
    5.3.2  过程规格说明 92
    5.4  基于CASE工具的需求分析 93
    5.4.1  核心思想 93
    5.4.2  基于CASE工具的需求分析 94
    习题 95
    第6章  面向数据的分析方法与形式化方法 96
    6.1  面向数据结构的系统开发方法 96
    6.1.1  Warnier图 96
    6.1.2  DSSD方法 97
    6.2  Jackson系统开发方法 99
    6.2.1  Jackson图 100
    6.2.2  改进的Jackson图 100
    6.2.3  标识实体与行为 100
    6.2.4  生成实体结构图 101
    6.2.5  创建软件系统模型 101
    6.3  形式化方法简介 103
    6.3.1  形式化方法的引入 103
    6.3.2  形式化方法的主要思想 104
    6.3.3  形式化方法的分类 105
    6.3.4  软件形式化开发方法 105
    6.3.5  形式化方法的优缺点 105
    6.3.6  应用形式化方法的准则 106
    习题 106
    第7章  软件设计基础 107
    7.1  软件设计基本概念 107
    7.1.1  软件设计过程 107
    7.1.2  抽象与逐步求精 108
    7.1.3  模块化与信息隐藏 110
    7.1.4  软件总体结构设计 115
    7.1.5  数据结构设计 116
    7.1.6  软件过程设计 116
    7.2  软件过程设计技术和工具 117
    7.2.1  结构化程序设计 117
    7.2.2  程序流程图 118
    7.2.3  盒图(N-S图) 118
    7.2.4  PAD图 120
    7.2.5  判定表与判定树 121
    7.2.6  过程设计语言(PDL) 122
    7.3  设计规格说明书与评审 124
    习题 126
    第8章  面向数据流的设计方法 128
    8.1  SD方法的设计过程及有关概念 128
    8.2  变换分析 129
    8.3  事务分析 135
    8.4  设计优化及原则 138
    8.4.1  启发式设计策略 138
    8.4.2  设计优化原则 140
    习题 141
    第9章  面向数据结构的设计方法 143
    9.1  面向数据结构设计的概念 143
    9.2  Jackson系统开发方法 144
    9.2.1  JSD技术 144
    9.2.2  Jackson伪代码逻辑结构 144
    9.2.3  确定输入/输出数据的逻辑结构 145
    9.2.4  找出输入/输出数据结构中有对应关系的数据单元 145
    9.2.5  产生过程表示 146
    9.2.6  列出所有操作和条件并分配到Jackson结构图中 147
    9.2.7  根据Jackson结构图产生结构正文描述 148
    9.3  基于结构化数据的系统开发(DSSD)方法 149
    9.3.1  DSSD设计步骤 149
    9.3.2  推导输出数据的逻辑结构 150
    9.3.3  推导处理过程的逻辑结构 151
    9.3.4  复杂过程逻辑的描述 152
    习题 153
    第10章  人机界面设计 155
    10.1  人的因素 155
    10.1.1  人类感知基础 155
    10.1.2  用户的技能 156
    10.1.3  任务与用户的特殊要求 156
    10.2  人机界面风格 156
    10.3  人机界面设计过程 157
    10.3.1  界面设计的有关模型 157
    10.3.2  任务分析与建模 158
    10.3.3  界面设计的一般问题 158
    10.3.4  实现工具 160
    10.4  人机界面实现的原则与标准 161
    10.4.1  一般可交互性 161
    10.4.2  信息显示 161
    10.4.3  数据输入 162
    10.4.4  人机界面标准 163
    习题 163
    第11章  程序设计语言与编码 164
    11.1  程序设计语言的特性及选择 164
    11.1.1  程序设计语言特性 164
    11.1.2  程序设计语言的选择 165
    11.2  程序设计风格 168
    11.3  程序设计效率 170
    11.3.1  代码效率 170
    11.3.2  内存效率 170
    11.3.3  I/O效率 170
    11.4  冗余编程 171
    习题 172
    第12章  软件测试 173
    12.1  软件测试的基本知识 173
    12.1.1  软件测试的目标与原则 173
    12.1.2  软件测试的常用方法 174
    12.1.3  测试阶段的信息流 175
    12.1.4  软件测试的步骤 175
    12.1.5  软件测试中常见的错误类型 177
    12.2  软件测试技术 178
    12.2.1  白盒测试 178
    12.2.2  黑盒测试 183
    12.3  软件测试过程 186
    12.3.1  单元测试 186
    12.3.2  集成测试 188
    12.3.3  验收测试 191
    12.3.4  系统测试 192
    12.4  调试 193
    12.4.1  调试的概念 193
    12.4.2  调试策略 194
    12.5  软件可靠性度量 195
    12.5.1  软件可靠性的有关概念 195
    12.5.2  软件可靠性的估算 197
    12.5.3  软件可靠性估算举例 198
    12.6  测试工具 200
    12.6.1  自动测试工具 201
    12.6.2  调试工具 201
    习题 201
    第13章  软件维护 203
    13.1  软件维护概述 203
    13.1.1  软件维护的定义 203
    13.1.2  影响维护工作的因素 204
    13.1.3  维护成本 204
    13.2  软件可维护性 204
    13.2.1  软件可维护性的定义 205
    13.2.2  可维护性的度量 205
    13.2.3  可维护性复审 207
    13.3  软件维护的特点 207
    13.3.1  非结构化维护和结构化维护 207
    13.3.2  维护的困难性 207
    13.3.3  软件维护的费用 208
    13.4  软件维护的实施 209
    13.4.1  维护的组织 209
    13.4.2  维护的流程 210
    13.4.3  维护技术 211
    13.4.4  维护的副作用 211
    习题 212
    第14章  面向对象开发方法 213
    14.1  面向对象基本问题 213
    14.1.1  面向对象的基本概念 213
    14.1.2  面向对象的编程 215
    14.1.3  结构化与面向对象 219
    14.2  面向对象开发方法和过程 220
    14.2.1  面向对象方法 220
    14.2.2  Rational统一过程(Rational Unified Process,RUP) 228
    14.2.3  面向对象的工具 230
    14.2.4  统一建模语言(UML) 230
    14.3  业务建模 236
    14.3.1  业务建模概述 236
    14.3.2  业务用例模型 237
    14.3.3  业务用例实现(business usecase realization) 241
    14.4  需求 244
    14.4.1  需求建模概述 244
    14.4.2  从业务模型到系统模型 244
    14.4.3  获取系统需求 245
    14.4.4  系统主角的提取 245
    14.4.5  需求的用例描述 246
    14.4.6  用例的精化 248
    14.5  分析 249
    14.5.1  分析建模概述 249
    14.5.2  发现分析类 250
    14.5.3  分析类之间的关系 254
    14.5.4  发现分析包 256
    14.5.5  用例实现 259
    14.5.6  活动图 262
    14.6  设计 262
    14.6.1  设计概述 262
    14.6.2  架构设计 264
    14.6.3  设计类 264
    14.6.4  精化分析类之间的关系 267
    14.6.5  接口、组件和子系统 270
    14.6.6  用例实现—设计 274
    14.6.7  状态图 275
    14.7  实现 277
    14.7.1  实现概述 277
    14.7.2  组件图(component diagram) 278
    14.7.3  从设计模型到代码的映射 278
    14.8  面向对象系统的测试 280
    14.8.1  面向对象测试概述 280
    14.8.2  面向对象软件的测试过程 281
    14.9  部署 282
    14.9.1  部署概述 282
    14.9.2  架构实现 283
    14.9.3  部署图 283
    14.10   RUP生命周期 285
    14.10.1  迭代概述 286
    14.10.2  先启阶段 288
    14.10.3  精化阶段 289
    14.10.4  构建阶段 290
    14.10.5  产品化阶段 290
    习题 291
    参考文献 292
     
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册