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

软件工程--原理、方法与应用(第二版)

中国水利水电出版社
    【作 者】肖孟强 王宗江 主编 【I S B N 】978-7-5084-5686-7 【责任编辑】张玉玲 【适用读者群】本科 【出版时间】2008-07-01 【开 本】16开本 【装帧信息】平装(光膜) 【版 次】2008年07月第2版 【页 数】280 【千字数】 【印 张】 【定 价】29 【丛 书】21世纪高等院校规划教材 【备注信息】
图书详情

      本书是根据教育部应用型本科规划教材指导思想与原则的要求,充分考虑应用型本科人才的培养目标和教学特点编写而成。2005年10月出版了第一版,本次再版进一步扩充了应用性内容,缩减了部分理论章节,增加了现代软件工程技术。 

      全书共10章,内容主要包括:软件工程概念、可行性研究与需求分析、软件设计、编码及测试、软件维护、面向对象技术、面向对象的软件开发方法、软件工程管理与质量保证、软件工程标准化及软件工程环境、现代软件工程技术。本书在每一章的开头均给出本章的教学目标、教学任务和重点难点,每一章的最后给出实例分析和本章小结,附以部分习题,以便于教学与自学。

      本书强调内容的实用性。按软件工程的过程安排与组织,条理性强,以案例教学为驱动,易于学生学习与掌握。本书可作为应用型本科计算机、自动化、机电类等专业和高职高专计算机专业的教材,也可作为自学教材和软件开发人员的参考用书。

    在总结多年教学经验和科研实践的基础山,结合当前软件工程发展的新成果,对软件工程的原理、技术和应用进行系统介绍;以传统的软件工程为主线,结合现代软件工程技术,以案例为主导,从原理、技术到应用都做了全面介绍;理论与实践有机结合,内容由浅入深,符合应用型人才的培养方向,同时注重标准和文档的重要性

      计算机技术的迅速发展带动了软件行业的快速发展,软件工程作为一门如何运用工程化的方式有效地管理和规范软件开发的学科,已逐渐被广大计算机行业的人士所接受和运用。作为计算机专业学生的必修课,同样也受到了广泛的重视。

      本书在总结多年教学经验和科研实践的基础上,结合当前软件工程发展的新成果,对软件工程的原理、技术和应用作了系统介绍。本书以传统的软件工程为主线,结合现代软件工程技术,以案例为主导,从原理、技术到应用都做了全面的介绍,思路清晰,理论与实践的结合性较好,使读者真正理解软件工程的原理在实践中的广泛应用及其重要意义,达到学习软件工程的目的与要求。

      本书在讲解理论基础的同时,注重实际应用,通过分析归纳,介绍解决工程实际问题的思想和方法,然后进行概括总结,可操作性强。以案例为主导的教学方式,使学生在工程实例的引导下掌握理论知识,增强了实践能力。本书的特点是理论与实践有机结合,内容由浅入深,理论与实践的融合适中,符合应用型人才的培养方向,同时注重标准和文档的重要性。

      本书考虑到软件工程中不断出现的新技术、新方法和逐步完善的软件工程过程,在传统软件工程理论的基础上,增加了新技术、新知识、新工艺的内容。对于比较流行的方法也做了简单介绍,拓宽了读者的知识层面,为进一步学习软件工程理论打下基础。

      全书共由10章组成。第1章是软件工程概论,以实际案例为先导,主要介绍软件工程的产生发展及概念、软件危机以及软件的生存周期模型。第2章是可行性研究与需求分析,主要介绍软件可行性研究与需求分析基本知识和方法。第3章是软件设计,主要讲解软件设计基本概念和设计过程、结构化设计方法和详细设计常用工具。第4章是编码与测试,主要介绍编程语言、编码风格以及软件测试的概念和方法、软件调试等相关知识。第5章是软件维护,主要讲解软件维护的一些基本概念、软件维护的过程、软件的可维护性以及提高可维护性的方法。第6章是面向对象技术,主要讲解面向对象的基本概念、面向对象的开发模型、UML统一建模语言。第7章是面向对象软件开发方法,主要讲解面向对象的分析方法、面向对象的设计过程以及面向对象的实现过程。第8章是软件工程管理与质量保证。第9章是软件工程标准化及软件工程环境,主要讲解软件工程标准化的基本内容、软件工程环境以及CASE环境。第10章是现代软件工程技术,主要讲解现代软件工程技术以及嵌入式系统软件技术。

    本书在第一版的基础上主要进行了如下修改和调整:

    (1)按照先讲传统方法,再讲面向对象方法的思路,对章节进行了调整。

    (2)结合工作实际,对常用的软件开发模型进行了修改。

    (3)在结构化分析方法中,增加了比较实用的实体-联系图和数据规范化。

    (4)人机界面设计是软件设计的主要内容之一,因此本版增加了该项内容。

    (5)鉴于在编码过程中也需要测试,因此将编码与软件测试两章内容整合成一章,并对软件测试的内容按顺序进行了调整。

    (6)面向对象的章节进行了组合和调整,增加了面向对象的新的开发技术。

    (7)软件工程管理、标准化和软件工程环境的内容比较抽象,本版将原来的3章整合成现在的两章。

    (8)软件工程发展较快,新技术层出不穷,为此在原来的嵌入式系统技术的基础上增加了新的软件开发方法,整合成现在的现代软件工程技术。

      本书由肖孟强、王宗江任主编,韩殿元、解圣庆、曲秀清任副主编。第1、10章由肖孟强编写,第2、3章由韩殿元编写,第4、5章由王宗江编写,第6、7章由曲秀清编写,第8、9章由解圣庆编写。全书由肖孟强统稿、整理。

      由于作者水平有限,加之编写时间仓促,书中难免存在缺点与不足之处,恳请广大读者和同行批评指正。


    第二版前言
    第一版前言
     
    第1章  软件工程概论 1
    本章学习目标 1
    1.1  引言 1
    1.2  软件概述 3
    1.2.1  软件的定义 3
    1.2.2  软件的特点 3
    1.2.3  软件的分类 4
    1.2.4  软件的发展 5
    1.3  软件危机 7
    1.3.1  软件危机产生的原因 7
    1.3.2  软件危机的表现形式 8
    1.3.3  解决软件危机的途径 8
    1.4  软件工程 8
    1.4.1  软件工程的定义及目标 8
    1.4.2  软件工程学的范畴 9
    1.4.3  软件过程 12
    1.4.4  软件工程的基本原理 13
    1.5  软件生存周期 13
    1.5.1  软件生存周期定义 13
    1.5.2  软件生存周期划分阶段的原则 14
    1.5.3  软件生存周期各阶段的任务 14
    1.6  软件生存周期模型 15
    1.6.1  瀑布模型 16
    1.6.2  快速原型模型 17
    1.6.3  增量模型 18
    1.6.4  螺旋模型 18
    本章小结 20
    习题一 20
    第2章  可行性研究与需求分析 22
    本章学习目标 22
    2.1  问题的定义与可行性研究 22
    2.1.1  问题的定义 22
    2.1.2  可行性研究的任务 23
    2.1.3  可行性研究的过程 23
    2.1.4  成本/效益分析 26
    2.2  需求分析的任务 29
    2.2.1  确定对系统的综合要求 29
    2.2.2  分析系统的数据要求 30
    2.2.3  导出系统的逻辑模型 30
    2.2.4  修正系统开发计划 30
    2.3  需求获取的常用方法 30
    2.3.1  常用的需求获取方法 30
    2.3.2  快速原型方法 31
    2.4  结构化分析方法 34
    2.4.1  结构化分析的过程 34
    2.4.2 实体—联系图 35
    2.4.3  数据规范化 37
    2.4.4  数据流图 37
    2.4.5  数据字典 42
    2.4.6  状态转换图 45
    2.4.7 其他图形工具 48
    2.5  需求分析评审 50
    2.5.1  需求规格说明书 50
    2.5.2  评审过程 51
    本章小结 53
    习题二 53
    第3章  软件设计 54
    本章学习目标 54
    3.1  软件设计的任务 54
    3.2  软件结构设计 56
    3.2.1  软件设计过程 56
    3.2.2  软件结构设计基本原理 57
    3.2.3 模块化 59
    3.2.4 模块独立性 60
    3.3  描绘软件结构的图形工具 65
    3.3.1  层次图和HIPO图 65
    3.3.2  结构图 66
    3.4  面向数据流的设计方法 67
    3.4.1  基本概念 67
    3.4.2  变换分析 69
    3.4.3  事务分析 72
    3.4.4  设计优化 74
    3.5  详细设计 77
    3.5.1  详细设计概述 77
    3.5.2  程序流程图 78
    3.5.3  N-S图 80
    3.5.4  PAD图 82
    3.5.5  判定表与判定树 83
    3.5.6  过程设计语言 84
    3.6  人机界面设计 85
    3.6.1  设计问题 86
    3.6.2  设计过程 88
    3.6.3  人机界面设计指南 88
    3.7  面向数据结构的设计方法 90
    3.7.1  Jackson图 91
    3.7.2  改进的Jackson图 92
    3.7.3  Jackson方法 93
    本章小结 93
    习题三 94
    第4章  编码与测试 95
    本章学习目标 95
    4.1  编码 95
    4.1.1  编码语言的发展 95
    4.1.2  编码语言的选择 97
    4.1.3  编码风格 99
    4.2  软件测试的基础 105
    4.2.1  软件测试的目标 105
    4.2.2  软件测试的原则 106
    4.2.3  测试方法 107
    4.2.4  测试步骤 108
    4.2.5  测试阶段的信息流 109
    4.2.6  人工测试 110
    4.3  软件测试过程 111
    4.3.1  单元测试 111
    4.3.2  集成测试 114
    4.3.3  确认测试 117
    4.3.4  系统测试 119
    4.4  黑盒测试技术 119
    4.4.1  等价划分 120
    4.4.2  边界值分析 122
    4.4.3  错误推测法 123
    4.5  白盒测试 123
    4.5.1  逻辑覆盖 124
    4.5.2  控制结构测试 128
    4.6  软件调试 130
    4.6.1  调试过程 130
    4.6.2  常用的调试方法 130
    4.6.3  调试原则 132
    本章小结 132
    习题四 133
    第5章  软件维护 135
    本章学习目标 135
    5.1  软件维护概述 135
    5.1.1  软件维护的基本概念 135
    5.1.2  软件维护的种类 135
    5.1.3  影响软件维护工作量的因素 137
    5.1.4  软件维护的策略 137
    5.1.5  修改程序的副作用 138
    5.2  软件维护的过程 138
    5.2.1  维护机构 139
    5.2.2  软件维护申请报告 139
    5.2.3  软件维护工作流程 140
    5.2.4  软件维护记录及评价 141
    5.3  软件的可维护性 141
    5.3.1  可维护性的定义 142
    5.3.2  可维护性的度量 142
    5.3.3  软件文挡 144
    5.4  提高可维护性的途径 145
    5.4.1  建立明确的软件质量目标和优先级 145
    5.4.2  使用提高软件质量的技术和工具 145
    5.4.3  进行明确的质量保证审查 146
    5.4.4  选择可维护的程序设计语言 148
    5.4.5  改进程序的文档 149
    5.5  逆向工程和再工程 149
    本章小结 150
    习题五 150
    第6章  面向对象技术 151
    本章学习目标 151
    6.1  面向对象的概念 151
    6.1.1  对象 151
    6.1.2  类 152
    6.1.3  面向对象 152
    6.1.4  继承 152
    6.1.5  消息 153
    6.1.6  多态性 153
    6.1.7  封装性 153
    6.2  面向对象方法学 154
    6.2.1  面向对象方法学概述 154
    6.2.2  面向对象的软件过程 154
    6.2.3  面向对象方法学的主要优点 155
    6.3  面向对象的开发模型 155
    6.3.1  面向对象方法的开发模型 156
    6.3.2  面向对象软件开发方法 156
    6.3.3  面向对象建模 158
    6.4  UML统一建模语言 159
    6.4.1  UML语言的产生 159
    6.4.2  UML的定义 159
    6.4.3  UML的目标 159
    6.4.4  UML语言的应用 160
    6.5  UML语言概述 160
    6.5.1  视图 160
    6.5.2  图 161
    6.5.3  UML的模型元素及表示方法 161
    6.5.4  UML的通用机制和扩展机制 164
    6.5.5  UML的规则 166
    6.6  静态建模 166
    6.6.1  用例模型 166
    6.6.2  类和对象模型 167
    6.6.3  类之间的关系 168
    6.7  动态建模 171
    6.7.1  消息 172
    6.7.2  状态图和时序图 172
    6.7.3  协作图和活动图 174
    6.8  物理架构建模 176
    6.8.1  逻辑架构与物理架构 176
    6.8.2  组件图与部署图 177
    本章小结 178
    习题六 178
    第7章  面向对象软件开发方法 179
    本章学习目标 179
    7.1  面向对象分析 179
    7.1.1  面向对象分析过程 179
    7.1.2  建立对象模型 181
    7.1.3  建立动态模型 186
    7.1.4  建立功能模型 188
    7.2  面向对象设计 189
    7.2.1  面向对象设计准则 189
    7.2.2  启发式规则 190
    7.2.3  系统设计 190
    7.2.4  问题域的设计 192
    7.2.5  人机界面的设计 193
    7.2.6  任务管理部分设计 193
    7.2.7  数据管理部分设计 194
    7.2.8  对象设计 195
    7.3  面向对象系统的实现 196
    7.3.1  选择程序设计语言 196
    7.3.2  面向对象程序设计 197
    7.4  面向对象测试 198
    7.4.1  面向对象测试 198
    7.4.2  面向对象的测试策略 199
    7.4.3  面向对象测试用例设计 200
    本章小结 201
    习题七 202
    第8章  软件工程管理与质量保证 203
    本章学习目标 203
    8.1  软件工程管理概述 203
    8.2  软件规模估算 203
    8.2.1  代码行度量技术 203
    8.2.2  功能点度量 204
    8.2.3  静态单变量模型 206
    8.2.4  动态多变量模型 207
    8.2.5  COCOMO2模型 207
    8.3  进度计划 209
    8.3.1  估算开发时间 209
    8.3.2  Gantt图 210
    8.3.3  工程网络技术 211
    8.4  人员组织 212
    8.4.1  民主制小组 212
    8.4.2  主程序员组 213
    8.4.3  层次式小组 214
    8.4.4  人员配备 214
    8.5  质量保证 215
    8.5.1  软件质量 216
    8.5.2  软件质量保证措施 217
    8.6  软件可靠性 219
    8.7  软件容错技术 220
    8.8  软件配置管理 221
    8.8.1  软件配置 221
    8.8.2  软件配置管理过程 222
    本章小结 224
    习题八 225
    第9章  软件工程标准化及软件工程环境 226
    本章学习目标 226
    9.1  软件工程标准化 226
    9.1.1  软件工程标准化的概念 226
    9.1.2  软件工程标准化的意义 227
    9.2  软件质量认证 227
    9.2.1  ISO 9000系列标准 227
    9.2.2  软件质量认证 228
    9.2.3  ISO 9000-3的要点 228
    9.3  CMM模型 229
    9.3.1  软件过程成熟度模型 229
    9.3.2  关键过程域 230
    9.3.3  成熟度提问单 230
    9.4  软件工程环境 232
    9.4.1  什么是软件工程环境 232
    9.4.2  软件工程环境的特点 233
    9.4.3  软件工程环境的模型 235
    9.5  CASE环境 235
    9.5.1  CASE环境概述 235
    9.5.2  CASE环境的组成与结构 236
    9.5.3  CASE环境的类型 238
    本章小结 238
    习题九 239
    第10章  现代软件工程技术 240
    本章学习目标 240
    10.1  软件形式化技术 240
    10.1.1  形式方法的引入 240
    10.1.2  形式方法的分类 241
    10.1.3  形式方法的优缺点 241
    10.1.4  软件形式开发方法 242
    10.2  软件重用技术 242
    10.2.1  软件重用的概念 242
    10.2.2  软件重用的基本方法 243
    10.2.3  软件可重用性 244
    10.2.4  面向应用领域的软件重用 244
    10.3  基于软件构件的开发技术 244
    10.3.1  软件构件的概念 244
    10.3.2  软件构件库 245
    10.3.3  软件体系结构 245
    10.3.4  几种开放的分布式计算构件
    模型规范 246
    10.3.5  基于构件/架构的软件开发 250
    10.4  软件智能化技术 250
    10.4.1  智能系统的目标 250
    10.4.2  智能行为 250
    10.4.3  智能系统的主要分支 251
    10.4.4  智能技术在软件工程中的应用 251
    10.4.5  软件工程的未来发展 252
    10.5  嵌入式系统软件技术 252
    10.5.1  嵌入式系统的定义 252
    10.5.2  嵌入式系统的特点 253
    10.5.3  嵌入式系统的应用 254
    10.6  嵌入式系统开发过程 255
    10.6.1  嵌入式软件的开发特点 255
    10.6.2  嵌入式软件的开发过程 256
    10.7  嵌入式软件的测试 259
    10.7.1  嵌入式软件的测试方法 259
    10.7.2  嵌入式软件的测试策略 260
    10.7.3  嵌入式软件的测试工具 261
    10.8  嵌入式系统的调试 262
    10.8.1  嵌入式系统的调试方式 262
    10.8.2  嵌入式系统的调试方法 263
    本章小结 264
    习题十 265
    参考文献 266
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册