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

软件工程(第二版)

中国水利水电出版社
    【作 者】王伟 杜文洁 英皓 赵志刚 张 【I S B N 】978-7-5170-7043-6 【责任编辑】张玉玲 【适用读者群】本专通用 【出版时间】2018-11-20 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】288 【千字数】440 【印 张】18 【定 价】45 【丛 书】普通高等教育“十三五”规划教材(软件工程专业) 【备注信息】
图书详情

    本书详细阐述了软件工程的基础知识及相关实用技术,内容包括软件工程概述、软件可行性研究、软件需求分析、软件总体设计、软件详细设计、面向对象技术、统一建模语言(UML)、程序编码、软件测试、软件实施与维护、软件重用技术、软件项目计划与管理、软件开发工具与软件工程环境、综合实例—超市在线销售系统。

    本书注重软件工程基础知识和基本概念的形象表述,注重理论与实践的结合,力求做到通俗易懂、突出实用性。本书通过对软件工程常用方法的介绍,展现软件设计的实际运作过程,帮助读者掌握相关知识并在实践中加以运用。

    本书可作为高等院校、高职高专院校计算机和软件相关专业的教材,也可作为社会上软件开发技术的培训教材,同时还可以供从事软件开发工作的技术人员参考。

    内容丰富、先进——反映软件开发技术的最新成果

    结构系统、合理——章节设计循序渐进、深入浅出、突出实用性

    讲解详细、全面——阐述了软件工程的基础理论知识及相关的实用技术

    软件工程是一门运用工程学的原理和方法来组织和管理软件的开发、运行和维护,力求以高效率生产出高质量的软件产品的学科。软件工程是计算机科学技术领域的一个重要分支,在软件开发实践中起到基础指导的作用。

    当今,国内软件工程教材较多,相关内容的深浅度、侧重点各有不同。我们依据高等院校本科生“软件工程”学科教学大纲所规定的教学要求编写了本书,同时把多年来软件工程的教学经验和教学实践成果融入到书中。本书介绍了软件工程的基础理论、软件开发流程以及相关实践操作,从而指导学生进行软件开发活动。本书适合高职高专计算机和软件技术及相关专业的学生使用。

    本书在编写上,本着深入浅出的原则,注重内容的先进性、系统性和实用性,力求反映软件开发技术的最新成果;在结构安排上,通俗易懂地阐述软件工程的基础理论知识,循序渐进,注重结合实践内容,在每章内容后面基本都附有小结和课后习题。

    本书共14章,针对计算机专业和软件技术专业学生的实际特点设计了知识结构,全面系统地阐述了软件工程的知识体系、软件开发的相关流程,具体如下:

    第1章,软件工程概述。本章主要介绍了软件工程的概念、软件生存周期和软件开发模型。

    第2章,软件可行性研究。本章概括描述了可行性研究的内容、可行性研究的步骤和可行性研究报告。

    第3章,软件需求分析。本章系统介绍了需求分析、面向数据流的分析方法、需求分析方法与图形工具、实体-联系图和需求规格说明与评审。

    第4章,软件总体设计。本章介绍了软件设计、总体设计的图形描述工具、模块化设计和面向数据流的设计方法。

    第5章,软件详细设计。本章介绍了详细设计、详细设计的图形描述工具、Jackson设计方法和Warnier设计方法。

    第6章,面向对象技术。本章介绍了面向对象技术、面向对象的开发模型、面向对象的分析、面向对象的系统设计、面向对象的实现。

    第7章,统一建模语言(UML)。本章介绍了UML概况、UML的概念模型、UML的静态建模机制、UML的动态建模机制和UML的物理架构建模。

    第8章,程序编码。本章介绍了程序设计语言、结构化程序设计、程序设计风格、程序设计效率和程序复杂性度量。

    第9章,软件测试。本章介绍了软件测试的基本概念、软件测试方法、软件测试流程、测试用例的设计、面向对象软件测试和软件测试相关文档。

    第10章,软件实施与维护。本章介绍了软件产品的实施、软件产品的维护活动、软件维护过程、软件维护文档、软件可维护性和软件维护的深化—软件再工程。

    第11章,软件重用技术。本章介绍了软件重用技术、基于构件的软件开发和面向对象的软件重用技术。

    第12章,软件项目计划与管理。本章介绍了软件项目的计划与组织、软件成本估算及控制、软件工程标准与软件文档。

    第13章,软件开发工具与软件工程环境。本章介绍了软件开发工具、软件工程环境和CASE技术。

    第14章,综合实例—超市在线销售系统。

    本书由王伟、杜文洁、英皓、赵志刚、张明林、王树彬等编著,周功、尹叔杰、王若鹏、刘玲也参与了部分内容的编写。全书统稿工作由王伟完成。

    由于时间仓促及作者水平有限,书中难免存在错误和不妥之处,恳请广大读者批评指正。

    编者

    2018年7月

    第1章 软件工程概述 1
    1.1 软件危机 1
    1.1.1 软件的概念及特点 1
    1.1.2 软件危机的产生 2
    1.1.3 解决软件危机的方法 3
    1.2 软件工程的概念 4
    1.2.1 软件工程的定义及原理 4
    1.2.2 软件工程的原则及目标 6
    1.3 软件生存周期 7
    1.3.1 软件生存周期的含义 7
    1.3.2 软件的计划阶段 7
    1.3.3 软件的开发阶段 7
    1.3.4 软件的运行阶段 8
    1.4 软件开发模型 8
    1.4.1 瀑布模型 8
    1.4.2 演化模型 10
    1.4.3 增量模型 11
    1.4.4 螺旋模型 12
    1.4.5 喷泉模型 13
    1.5 小结 14
    1.6 习题 14
    第2章 软件可行性研究 15
    2.1 可行性研究的内容 15
    2.1.1 经济可行性 16
    2.1.2 技术可行性 16
    2.1.3 方案可行性 17
    2.2 可行性研究的步骤 18
    2.3 可行性研究报告 20
    2.4 小结 22
    2.5 习题 22
    第3章 软件需求分析 23
    3.1 需求分析概述 24
    3.1.1 需求分析的任务 24
    3.1.2 需求分析的步骤 25
    3.1.3 需求分析的原则 27
    3.2 面向数据流的分析方法 28
    3.2.1 基于数据流的分析方法 28
    3.2.2 数据流图 28
    3.2.3 数据字典 32
    3.2.4 加工逻辑说明 35
    3.3 需求分析方法与图形工具 37
    3.4 实体—关系图 39
    3.5 需求规格说明与评审 41
    3.6 小结 43
    3.7 习题 44
    第4章 软件总体设计 45
    4.1 软件设计概述 45
    4.1.1 软件设计的概念与重要性 45
    4.1.2 总体设计的步骤 46
    4.2 总体设计的图形描述工具 48
    4.2.1 层次图 48
    4.2.2 HIPO图 48
    4.2.3 结构图 49
    4.3 模块化设计 50
    4.3.1 模块化与局部化 50
    4.3.2 模块独立性 52
    4.3.3 抽象与信息隐蔽 61
    4.4 面向数据流的设计方法 61
    4.4.1 基本概念 62
    4.4.2 事务分析 69
    4.4.3 设计优化原则 70
    4.5 小结 71
    4.6 习题 71
    第5章 软件详细设计 72
    5.1 详细设计概述 72
    5.1.1 详细设计的任务 72
    5.1.2 详细设计的步骤 73
    5.2 详细设计的图形描述工具 73
    5.2.1 程序流程图 74
    5.2.2 N-S图 76
    5.2.3 PAD图 78
    5.2.4 过程设计语言PDL 79
    5.2.5 判定表和判定树 83
    5.3 Jackson设计方法 85
    5.3.1 Jackson方法概述及其图例 85
    5.3.2 Jackson程序设计过程 88
    5.4 Warnier设计方法 89
    5.4.1 Warnier方法概述及其图例 89
    5.4.2 Warnier程序设计过程 92
    5.5 小结 92
    5.6 习题 95
    第6章 面向对象技术 97
    6.1 面向对象技术的概述 97
    6.1.1 面向对象的基本概念 98
    6.1.2 面向对象技术的优势 100
    6.2 面向对象的开发模型 101
    6.3 面向对象的分析 104
    6.3.1 论域分析 104
    6.3.2 应用分析 105
    6.4 面向对象的系统设计 106
    6.4.1 系统设计过程 107
    6.4.2 子系统设计 107
    6.4.3 人机交互设计 108
    6.4.4 任务管理设计 110
    6.4.5 数据管理设计 111
    6.5 面向对象的实现 111
    6.5.1 程序设计语言 111
    6.5.2 类和应用程序的实现 112
    6.6 小结 113
    6.7 习题 113
    第7章 统一建模语言(UML) 115
    7.1 UML概述 115
    7.1.1 UML概念 115
    7.1.2 UML的演变 116
    7.1.3 UML的主要内容 117
    7.1.4 UML的应用 118
    7.2 UML的概念模型 118
    7.2.1 UML的构造块 119
    7.2.2 UML的规则 122
    7.2.3 UML的公共机制 122
    7.3 UML的静态建模机制 124
    7.3.1 用例模型 124
    7.3.2 类和对象模型 125
    7.3.3 包 127
    7.4 UML的动态建模机制 128
    7.4.1 消息 128
    7.4.2 状态图 129
    7.4.3 时序图 131
    7.4.4 协作图 132
    7.4.5 活动图 133
    7.5 UML的逻辑架构与物理架构建模 135
    7.5.1 逻辑架构与物理架构 135
    7.5.2 构件图和配置图 135
    7.6 小结 137
    7.7 习题 138
    第8章 程序编码 139
    8.1 程序设计语言 139
    8.1.1 程序设计语言的分类 139
    8.1.2 程序设计语言的特点 142
    8.1.3 程序设计语言的选择 144
    8.2 结构化程序设计 145
    8.3 程序设计风格 146
    8.3.1 源程序文档化 147
    8.3.2 数据说明方式 148
    8.3.3 语句构造方法 148
    8.3.4 输入/输出技术 149
    8.4 程序设计效率 150
    8.5 程序复杂性度量 152
    8.5.1 代码行度量法 152
    8.5.2 McCabe度量法 152
    8.5.3 Halstead方法 153
    8.6 小结 156
    8.7 习题 156
    第9章 软件测试 157
    9.1 软件测试的基本概念 157
    9.1.1 软件测试的定义 157
    9.1.2 软件测试的原则 158
    9.2 软件测试方法 158
    9.2.1 静态测试与动态测试 158
    9.2.2 黑盒测试 160
    9.2.3 白盒测试 164
    9.3 软件测试流程 167
    9.4 测试用例的设计 169
    9.5 面向对象软件测试 171
    9.6 软件测试相关文档 174
    9.7 小结 175
    9.8 习题 176
    第10章 软件实施与维护 177
    10.1 软件产品的实施 177
    10.1.1 软件产品实施概述 177
    10.1.2 软件产品实施过程 178
    10.2 软件产品的维护活动 181
    10.3 软件维护过程 186
    10.4 软件维护文档 188
    10.5 软件可维护性 189
    10.5.1 决定软件可维护性的因素 189
    10.5.2 软件可维护性的度量 190
    10.5.3 提高软件可维护性的方法 191
    10.6 软件维护的深化—软件再工程 193
    10.7 小结 195
    10.8 习题 196
    第11章 软件重用技术 197
    11.1 软件重用技术概述 197
    11.1.1 软件重用定义 198
    11.1.2 软件重用形式 198
    11.1.3 软件重用分类 198
    11.1.4 软件复用的现状和流行的软件
    重用技术 200
    11.2 基于构件的软件开发 201
    11.2.1 可重用软件构件的开发 202
    11.2.2 可重用软件构件的组织 203
    11.2.3 可重用软件构件的分类和检索 204
    11.3 面向对象的软件重用技术 205
    11.4 小结 208
    11.5 习题 209
    第12章 软件项目计划与管理 210
    12.1 软件项目的计划与组织 210
    12.1.1 软件开发的进度计划 210
    12.1.2 软件开发的组织机构 214
    12.1.3 软件人员配备 217
    12.2 软件成本估算及控制 219
    12.3 软件工程标准与软件文档 226
    12.3.1 软件工程标准 226
    12.3.2 软件文档 229
    12.4 小结 235
    12.5 习题 235
    第13章 软件开发工具与软件工程环境 236
    13.1 软件开发工具 236
    13.1.1 软件开发工具的功能 236
    13.1.2 常用软件开发工具介绍 237
    13.2 软件工程环境 245
    13.2.1 软件工程环境的概念 245
    13.2.2 软件开发环境的特点 247
    13.3 CASE技术 248
    13.3.1 CASE定义 248
    13.3.2 CASE环境的组成与结构 249
    13.4 小结 251
    13.5 习题 251
    第14章 综合实例—超市在线销售系统 252
    14.1 问题定义 252
    14.2 需求分析 252
    14.2.1 系统用户 252
    14.2.2 系统功能需求 253
    14.2.3 性能需求 256
    14.3 软件设计 257
    14.3.1 系统体系结构 257
    14.3.2 功能模块 257
    14.3.3 数据库设计 258
    14.4 系统实现 264
    14.4.1 系统管理员子系统实现 264
    14.4.2 超市管理员子系统实现 267
    14.4.3 用户自助服务子系统实现 270
    14.5 系统功能测试 274
    14.5.1 系统管理员功能测试 274
    14.5.2 超市管理员功能测试 275
    14.5.3 用户自助服务子系统功能测试 276
    参考文献 278





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册