计算机类教材 > 软件工程
软件工程案例教程(第二版)
书号:9787113273224 套系名称:“十三五”职业教育规划教材
作者:汪作文?何婧 出版日期:2020-12-01
定价:42.00 页码 / 开本:244 /16
策划编辑:徐海英 翟玉峰 责任编辑:王春霞 彭立辉
适用专业:计算机教材 适用层次:高职高专
最新印刷时间:
资源下载
教学课件
教学素材(暂无)
习题答案
教学案例(暂无)
教学设计(暂无)
教学视频(暂无)
内容简介
前言
目录
作者介绍
图书特色
为了满足广大读者对软件开发技术的学习需求,特别是为了提高高等职业院校计算机专业学生的软件开发技术和能力,本书采用实际的软件项目——“尚品购书网站系统”作为案例进行讲解。通过该项目在软件开发各个阶段的文档设计,系统地介绍了软件项目的开发过程,为学习软件开发技术的学生和软件开发技术人员提供了帮助和借鉴。本书比较系统地介绍了软件工程的概念、技术和方法,内容包括软件工程概述、可行性分析、需求分析基础、结构化分析方法、结构化设计方法、面向对象的分析与设计、软件编码与实现、用户界面设计、软件测试、软件项目管理等。在面向对象的分析和设计方法中,还讲述了统一建模语言UML;各章重点与难点突出,文字通俗易懂,便于教学与自学。 本书适合作为高等职业院校计算机专业的教材,也可供从事软件开发与应用的工程技术人员和软件项目管理人员阅读参考。
软件开发技术是一门新兴的技术,而软件工程则是指导软件开发与维护的工程学科。自20世纪60年代末期以来,人们为克服“软件危机”在这一领域进行了深入的研究,逐渐形成了系统的软件开发与维护理论、技术和方法,这些理论、技术和方法在指导软件的开发实践中发挥了重要作用。 软件工程学的研究范围非常广泛,学科内的新技术、新方法不断涌现。本书着重借助一个实际的软件开发案例,从实用角度讲解软件开发技术的相关概念、基本原理和技术方法,同时也注意了其系统性和先进性。 本书共分10章,第1章介绍了软件工程的概念、软件工程的发展和软件危机,着重介绍了软件生存周期、软件开发模型及软件工程的基本概念和基本内容。第2章介绍了可行性分析的具体内容。从第3章开始到第9章是本书的重点,分别论述了需求分析基础、结构化的分析与设计、面向对象的分析与设计、软件编码与实现、用户界面设计、软件测试等各个阶段的各种方法和技术,对SAD方法、数据流图、数据字典、结构图、N-S图、PDL语言、判定树、判定表等做了比较详细的介绍,对敏捷软件开发技术也做了讲解。同时也介绍了OOA、OOD、OOP等面向对象的分析和设计技术以及标准建模语言UML、UML的静态建模机制、UML的动态建模机制、UML软件开发过程等内容。第10章主要介绍了软件项目管理的相关知识。全书采用实际的软件项目——“尚品购书网站系统”作为案例,通过该项目在软件开发各个阶段的文档设计,系统地介绍了软件项目的开发过程。 本书内容新颖,借助实际的软件开发案例贯穿整个教学过程,语言文字通俗易懂;各章重点、难点突出,原理、技术和方法的阐述融于丰富的实例之中;每一章开始都有本章要点,从第2章开始,每一章都指出了相应的软件文档。每一章均有习题,便于教学与自学。本书适合作为高等职业院校计算机专业的教材,也可供从事软件开发与应用的工程技术人员和软件项目管理人员阅读参考。 编写团队对《软件工程案例教程》第一版的教材做了一些修订,例如,增加了目前流行的敏捷软件开发模型以及软件项目管理等章节。另外,为了适应信息化教学的需要,同时也为了方便任课老师的教学和学生的学习,作者组织建设了“软件工程”课程的MOOC教学资源,主要有以下内容:教学微视频、教学课件、试题、习题等,MOOC平台网址:http://mooc.wtc.edu.cn/portal/session/bulletin/index/1060.mooc。平台的公用账户为casual-user,密码为user123。 本书由汪作文、何婧编著,汪作文负责全书统稿。 由于时间仓促,编者水平有限,书中难免存在疏漏与不妥之处,恳请专家和读者批评指正。 编??者 2020年7月
软件工程概述 1 1.1?软件工程背景 1 1.1.1?软件的定义 1 1.1.2?软件的特点和分类 2 1.1.3?软件的发展 3 1.1.4?软件危机 5 1.2?软件工程的基本原理 5 1.2.1?软件工程的定义 5 1.2.2?软件工程的目标和原则 6 1.2.3?软件工程的基本原理 7 1.3?软件生存周期 8 1.4?软件体系结构 9 1.4.1?层次结构 9 1.4.2?C/S结构 9 1.4.3?B/S结构 10 1.4.4?B/S和C/S结构的比较 10 1.5?软件开发模型 11 1.5.1?瀑布模型 11 1.5.2?原型模型 12 1.5.3?螺旋模型 13 1.5.4?基于四代技术的模型 14 1.6?软件工程标准 15 1.6.1?软件工程国际标准 15 1.6.2?ISO9000系列标准基本思想 15 1.6.3?ISO9000-3标准 16 1.6.4?ISO9000标准与CMM 17 习??题 18 可行性分析 19 2.1?问题定义 19 2.1.1?问题定义的内容 19 2.1.2?问题定义的步骤 20 2.2?可行性分析 20 2.2.1?可行性分析的任务 20 2.2.2?经济可行性 22 2.2.3?技术可行性 23 2.2.4?方案选择 23 2.2.5?可行性分析的步骤 25 2.3?系统流程图 25 2.3.1?系统流程图的符号 25 2.3.2?系统流程图举例 26 2.4?制订软件项目开发计划 27 2.4.1?确定软件项目开发计划 27 2.4.2?复审软件项目开发计划 29 习 题 30 需求分析基础 31 3.1?需求分析的概念和内容 31 3.1.1?需求的问题 31 3.1.2?需求的定义与分类 32 3.2?需求工程 32 3.2.1?需求获取 33 3.2.2?需求分析 35 3.3?软件需求分析方法 37 3.4?需求规格说明与评审 39 3.4.1?需求规格说明书的内容 39 3.4.2?需求评审 41 3.4.3?需求变更管理 42 3.5?原型化方法 43 3.5.1?软件原型化方法概述 43 3.5.2?快速原型开发模型(原型生存期) 45 3.5.3?软件开发过程 47 3.6?案例分析——“尚品购书网站”系统 需求分析与需求规格说明 49 3.6.1?“尚品购书网站”系统需求分析 49 3.6.2?“尚品购书网站”系统软件 需求规格说明 50 习 题 54 结构化分析方法 55 4.1?结构化分析方法概述 55 4.2?数据流图 56 4.2.1?数据流图中的主要图形元素 56 4.2.2?数据流与加工之间的关系 57 4.2.3?数据流图的分层 57 4.2.4?数据流图的画法 58 4.3?数据字典 59 4.3.1?数据流的描述 59 4.3.2?加工的描述 63 4.4?实体-联系图 65 4.4.1?数据对象、属性与联系 65 4.4.2?实体-联系的表达方法 66 4.5?结构化分析方法 67 4.5.1?创建数据流模型 67 4.5.2?过程规格说明 69 4.6?案例——“尚品购书网站”系统 结构化分析 69 4.6.1?数据流图(第一层) 69 4.6.2?数据存储 73 4.6.3 数据流图(第二层) 75 4.6.4?“尚品购书网站”系统数据流图 (第三层) 77 4.6.5?实体-联系模型(E-R图) 78 习 题 79 结构化设计方法 80 5.1?结构化设计的基本概念 80 5.1.1?模块化设计 80 5.1.2?自顶向下逐层分解 84 5.1.3?启发式规则 84 5.1.4?软件总体结构设计 86 5.1.5?数据结构设计 87 5.1.6?软件过程设计 88 5.2?过程设计技术和工具 89 5.2.1?结构化程序设计 89 5.2.2?图形表示法 89 5.2.3?判定表 91 5.2.4?过程设计语言 92 5.3?结构化设计方法 94 5.4?变换分析 95 5.5?事务分析 100 5.6?模块优化设计准则 103 5.7?案例——“尚品购书网站”系统 结构化设计 105 5.7.1?软件总体结构设计:用系统 结构图描述 105 5.7.2?模块接口设计:可用系统结构图 (或构件图)描述 105 5.7.3?软件数据结构设计:用数据字典描述 106 习 题 107 面向对象的分析 与设计 108 6.1?面向对象的方法概述 108 6.1.1?对象 109 6.1.2?类和实例 110 6.1.3?消息方法和属性 110 6.1.4?关系 110 6.1.5?封装 112 6.1.6?多态性 112 6.2?面向对象分析过程 112 6.3?UML语言及UML的静态建模 机制 113 6.3.1?用例图 113 6.3.2?类图、对象图和包 116 6.3.3?组件图和部署图 120 6.4?UML的动态建模机制 122 6.4.1?消息 122 6.4.2?状态图 122 6.4.3?顺序图 123 6.4.4?合作图 124 6.4.5?活动图 124 6.4.6?四种图的运用 126 6.5?面向对象的分析方法 127 6.5.1?面向对象分析的任务 127 6.5.2?面向对象分析的步骤 127 6.6?面向对象设计 129 6.6.1?面向对象设计的概念 129 6.6.2?面向对象设计准则 130 6.7?案例——“尚品购书网站”系统 面向对象的设计 132 6.7.1?用例图、类图、状态图、顺序图 132 6.7.2?活动图 134 习 题 136 软件编码与实现 137 7.1?程序设计语言的分类和特点 137 7.1.1?程序设计语言的发展和分类 138 7.1.2?程序设计语言的特点 139 7.1.3?选择程序设计语言的方法 141 7.2?程序设计风格 142 7.2.1?结构化程序编码 142 7.2.2?写程序的风格 142 7.3?Java程序设计风格 145 7.4?软件复用与构件技术 147 7.4.1?软件复用分类 147 7.4.2?实现复用的关键因素 148 7.4.3?领域工程 149 7.4.4?软件构件技术 151 7.4.5?复用成熟度模型和复用效益 154 7.5?敏捷软件开发技术 155 7.5.1?敏捷开发技术的基本概念 155 7.5.2?极限编程 158 7.6?案例——“尚品购书网站”系统 编码设计 162 7.6.1?导言 162 7.6.2?编码书写格式规范 162 7.6.3?命名规范 164 7.6.4?声明规范 165 7.6.5?语句规范 166 7.6.6?注释规范 167 7.6.7?代码范例 168 7.6.8?目录规范 170 习 题 170 用户界面设计 171 8.1?用户分类 171 8.2?用户界面的设计目标 172 8.3?用户界面设计方法 172 8.3.1?界面的一致性 172 8.3.2?菜单的一致性 173 8.3.3?鼠标与键盘的对应原则 174 8.3.4?向导使用原则 174 8.3.5?系统响应时间 174 8.3.6?用户帮助设施 175 8.3.7?出错信息和警告 175 8.3.8?输入界面设计 175 8.3.9?输出界面设计 176 8.3.10?基于Web界面设计 177 习 题 181 软件测试 182 9.1?软件测试的基本概念 182 9.1.1?软件测试的目标 182 9.1.2?测试阶段的信息流程 183 9.1.3?测试用例的设计 184 9.1.4?软件测试的步骤 184 9.2?静态测试 185 9.2.1?文档审查 185 9.2.2?代码审查 185 9.3?动态测试 185 9.3.1?白盒测试 186 9.3.2?黑盒测试 189 9.3.3?选择测试技术的综合策略 192 9.4?软件测试过程 193 9.4.1?单元测试 193 9.4.2?集成测试 194 9.4.3?确认测试 195 9.4.4?系统测试 196 9.4.5?排错 196 9.5?面向对象的软件测试 197 9.5.1?面向对象测试的特点 197 9.5.2?面向对象测试的步骤 198 9.5.3?面向对象软件测试的设计 200 9.6?案例——“尚品购书网站”系统 测试方案及文档 201 9.6.1?软件确认测试计划 201 9.6.2?功能测试种类 201 9.6.3?功能测试的测试用例设计 201 9.6.4?程序模块测试计划 206 习 题 209 软件项目管理 212 10.1?软件项目的特点和软件管理职能 213 10.1.1?项目与项目管理 213 10.1.2?软件项目的规模 214 10.1.3?软件项目的特点 216 10.1.4?软件项目管理的职能及存在的 困难 217 10.2?成本估算 217 10.2.1?经验估算法 218 10.2.2?因素估算法 218 10.2.3?WBS基础上的全面详细估算 218 10.3?进度计划 219 10.3.1?成员能力评估 219 10.3.2?工期与预算分摊 220 10.4?人员管理 221 10.4.1?组织计划编制 221 10.4.2?人员募集 222 10.4.3?项目团队建设 222 10.5?质量保证 223 10.5.1?软件质量设计 224 10.5.2?软件质量管理 224 10.5.3?软件质量评审 224 10.5.4?软件质量保证过程 224 10.6?项目计划 227 10.6.1?项目计划内容 227 10.6.2?制订WBS计划 228 10.6.3?项目时间管理 229 10.7?软件管理工具 230 习 题 236 参考文献 236
无
无