关于本书的内容有任何问题,请联系 许金霞
目录 第 1章 深入认识软件 1 1.1 问题引入 1 1.2 何为软件 1 1.2.1 软件概念 1 1.2.2 软件特点 5 1.2.3 软件分类 6 1.3 软件特征变化 8 1.4 软件生命周期 10 1.5 软件质量 12 1.5.1 软件质量概念及模型 12 1.5.2 软件的内部质量和外部质量 12 1.6 开源软件 14 1.6.1 何为开源软件 14 1.6.2 开源软件的优势 15 1.6.3 开源软件许可证 16 1.6.4 开源软件的利用 17 1.7 本书的软件案例 18 1.7.1 小米便签软件 18 1.7.2 Mini-12306软件 19 1.8 本章小结和思维导图 19 1.9 阅读推荐 20 1.10 知识测验 20 1.11 工程实训 20 1.12 综合实践 21 第 2章 走进软件工程 23 2.1 问题引入 23 2.2 为什么会产生软件工程 23 2.2.1 软件危机的表现 23 2.2.2 缺乏理论支持和方法指导 25 2.3 何为软件工程 26 2.3.1 软件工程概念 27 2.3.2 软件工程目标 27 2.4 软件工程如何解决软件危机 28 2.4.1 软件工程三要素 28 2.4.2 软件工程基本原则 30 2.4.3 计算机辅助软件工程 32 2.5 软件工程发展 35 2.5.1 软件工程发展历程 35 2.5.2 软件工程发展特点 38 2.6 软件工程教育 40 2.6.1 软件工程师及其类别 41 2.6.2 软件工程师的职业道德 41 2.7 本章小结和思维导图 42 2.8 阅读推荐 44 2.9 知识测验 44 2.10 工程实训 45 2.11 综合实践 45 第3章 软件开发过程及方法 46 3.1 问题引入 46 3.2 何为软件开发过程 46 3.3 重型软件开发方法 47 3.3.1 重型软件开发方法的思想 47 3.3.2 典型的重型软件开发方法 48 3.4 敏捷软件开发方法 52 3.4.1 敏捷软件开发方法的思想 52 3.4.2 Scrum方法 55 3.4.3 测试驱动开发方法 55 3.4.4 DevOps方法 56 3.4.5 支持敏捷开发的CASE工具 59 3.5 软件开发方法的选择和应用 62 3.6 本章小结和思维导图 63 3.7 阅读推荐 64 3.8 知识测验 64 3.9 工程实训 65 3.10 综合实践 65 第4章 软件项目管理 67 4.1 问题引入 67 4.2 何为软件项目管理 67 4.2.1 何为项目 67 4.2.2 何为软件项目 68 4.2.3 软件项目管理的对象 68 4.2.4 软件项目管理的内容 69 4.3 如何管理软件项目 71 4.3.1 软件度量、测量和估算 71 4.3.2 制定软件项目计划 73 4.3.3 软件项目跟踪 76 4.3.4 软件配置管理 78 4.3.5 软件风险管理 81 4.3.6 软件质量保证 84 4.3.7 软件项目团队管理 86 4.3.8 软件项目管理示例 87 4.4 与软件项目管理相关的规范和标准 87 4.4.1 ISO9001系列标准 87 4.4.2 GJB9001系列标准 87 4.4.3 CMM和CMMI系列标准 88 4.4.4 GJB 5000系列标准 90 4.5 支持软件项目管理的CASE工具 90 4.5.1 Git工具 90 4.5.2 Project工具 91 4.6 软件项目经理 91 4.7 本章小结和思维导图 92 4.8 推荐阅读 93 4.9 知识测验 93 4.10 工程实训 94 4.11 综合实践 94 第5章 获取软件需求 96 5.1 问题引入 96 5.2 何为软件需求 96 5.2.1 软件需求概念 96 5.2.2 软件需求类别 97 5.2.3 软件需求特点 99 5.2.4 软件需求的重要性 99 5.3 软件需求获取的方式和方法 100 5.3.1 获取软件需求的方式 100 5.3.2 获取软件需求的方法 102 5.3.3 获取软件需求的过程 103 5.4 描述初步的软件需求 108 5.4.1 自然语言描述 108 5.4.2 软件原型描述 108 5.4.3 用例图描述 108 5.5 软件需求文档化和评审 113 5.5.1 撰写软件需求文档 113 5.5.2 评审初步软件需求 113 5.5.3 软件需求变更管理 114 5.5.4 输出的软件制品 114 5.6 软件可行性分析 114 5.7 支持需求获取的CASE工具 115 5.8 软件需求工程师 116 5.9 本章小结和思维导图 116 5.10 阅读推荐 117 5.11 知识测验 118 5.12 工程实训 118 5.13 综合实践 119 第6章 软件需求分析 120 6.1 问题引入 120 6.2 为何要分析软件需求 120 6.3 如何分析软件需求 121 6.3.1 软件需求分析的任务 121 6.3.2 软件需求分析的过程 123 6.4 分析和确定软件需求的优先级 123 6.4.1 分析软件需求的重要程度 123 6.4.2 分析软件需求的优先级 124 6.4.3 确定用例分析和实现的次序 124 6.5 结构化软件需求分析方法 125 6.5.1 数据流图及软件需求模型 125 6.5.2 面向数据流的软件需求分析步骤和策略 126 6.5.3 步骤1: 建立顶级数据流图 126 6.5.4 步骤2: 精化数据流图中的转换 127 6.5.5 步骤3: 建立数据字典 130 6.6 面向对象需求分析方法 130 6.6.1 面向对象建模的基本概念 130 6.6.2 统一建模语言UML及支持需求建模的图 131 6.6.3 面向对象的软件需求分析步骤和策略 139 6.6.4 步骤1: 构建和分析用例的交互模型 139 6.6.5 步骤2: 构建和分析系统的分析类模型 143 6.6.6 步骤3:构建和分析立对象的状态模型 146 6.7 支持需求建模和分析的CASE工具 146 6.8 软件需求文档化和评审 147 6.8.1 撰写软件需求规格说明书 147 6.8.2 软件需求评审 147 6.8.3 输出的软件制品 149 6.9 本章小结和思维导图 149 6.10 阅读推荐 150 6.11 知识测验 150 6.12 工程实训 151 6.13 综合实践 151 第7章 软件体系结构设计 152 7.1 问题引入和思考 152 7.2 何为软件设计 152 7.2.1 软件设计概念 152 7.2.2 软件设计元素 153 7.2.3 软件设计过程 154 7.2.4 软件设计质量要求 155 7.2.5 软件设计原则 156 7.3 何为软件体系结构 157 7.3.1 软件体系结构概念 157 7.3.2 软件体系结构风格 158 7.3.3 软件体系结构设计的重要性 161 7.4 软件体系结构设计的任务和策略 161 7.5 结构化的软件体系结构设计方法 162 7.5.1 基本思想 163 7.5.2 步骤1:变换型数据流图的设计方法 164 7.5.3 步骤2:事务型数据流图的设计方法 166 7.6 面向对象的软件体系结构设计 168 7.6.1 软件体系结构的面向对象建模 168 7.6.2 步骤1:设计初步的软件体系结构 170 7.6.3 步骤2:精化软件体系结构设计 172 7.6.4 步骤3:设计软件部署模型 174 7.7 基于大模型的智能化软件体系结构设计 175 7.8 软件体系结构设计的文档化和评审 176 7.7.1 软件体系结构设计文档化 176 7.7.2 软件体系结构设计评审 177 7.7.3 软件体系结构设计输出 177 7.9 支持软件设计的CASE工具 177 7.10 软件设计工程师和软件架构师 178 7.11 本章小结和思维导图 178 7.12 阅读推荐 179 7.13 知识测验 180 7.14 工程实训 180 7.15 综合实践 181 第8章 软件用户界面设计 183 8.1 问题引入 183 8.2 何为用户界面 183 8.2.1 用户界面的组成 183 8.2.2 用户界面的表示 184 8.3 如何设计用户界面 185 8.3.1 用户界面设计的过程 185 8.3.2 用户界面设计的原则 186 8.3.3 初步设计用户界面 187 8.3.4 建立用户界面间的跳转关系 188 8.3.5 精化用户界面设计 189 8.5 用户界面设计的文档化和原型化及评审 190 8.5.1 用户界面设计的文档化和原型化 190 8.5.2 用户界面设计的评审 190 8.6 本章小结和思维导图 191 8.7 阅读推荐 192 8.8 知识测验 192 8.9 工程实训 192 8.10 综合实践 193 第9章 软件详细设计 194 9.1 问题引入 194 9.2 何为详细设计 194 9.2.1 软件详细设计的概念 194 9.2.2 软件详细设计任务 195 9.2.3 软件详细设计的原则 195 9.3 结构化详细设计方法 196 9.4 面向对象详细设计方法 197 9.4.1 面向对象详细设计过程 197 9.4.2 用例设计 198 9.4.3 类设计 203 9.4.4 数据设计 206 9.5 基于大模型的智能化软件详细设计 208 9.6 支持详细设计的CASE工具 209 9.7 软件详细设计的文档化和评审 209 9.8 本章小结和思维导图 211 9.9 阅读推荐 211 9.10 知识测验 212 9.11 工程实训 212 9.12 综合实践 212 第 10章 代码编写与部署 214 10.1 问题引入 214 10.2 何为编写代码 214 10.2.1 编写代码的任务 214 10.2.2 编程语言选择 214 10.3 如何编写代码 215 10.3.1 编写代码的依据和过程 215 10.3.2 编写代码的原则 216 10.3.3 结构化编程与面向对象编程 216 10.3.4 基于大模型的智能化代码生成和推荐 217 10.3.5 基于代码片段的重用来编写代码 218 示例10.2 软件开发知识分享社区中的代码片段及其重用 218 10.4 代码缺陷和调试 218 10.4.1 软件缺陷、错误和失效的概念 218 10.4.2 软件缺陷的描述 219 10.4.3 程序调试 219 10.4.4 基于群智知识来解决代码调试和纠错问题 220 10.5 代码质量保证 221 10.5.1 程序内部质量和外部质量 221 10.5.2 程序编码风格 222 10.5.3 模块化程序设计 223 10.5.4 代码重用 224 10.5.5 程序质量分析 225 10.6 软件部署 226 10.6.1 软件运行环境 226 10.6.2 软件部署的概念和原则 227 10.6.3 软件部署方式 227 10.7 支持代码编写和部署的CASE工具 228 10.8 程序员 229 10.9 本章小结和思维导图 230 10.10 阅读推荐 231 10.11 知识测验 231 10.12 工程实训 232 10.13 综合实践 232 第 11章 软件测试 233 11.1 问题引入 233 11.2 何为软件测试 233 11.2.1 软件测试的概念 233 11.2.2 软件测试的机理 234 11.2.3 软件测试面临的挑战 234 11.3 如何进行软件测试 235 11.3.1 软件测试用例的描述 235 11.3.2 软件测试用例的设计-白盒测试技术 236 11.3.3 软件测试用例的设计-黑盒测试技术 238 11.3.4 非功能测试技术 240 11.3.5 软件测试的实施 240 11.3.6 智能化软件测试 241 示例11. 6 借助智能化软件开发工具来自动生成软件测试用例 242 11.4 软件测试的过程和活动 242 11.4.1 软件测试的步骤 242 11.4.2 软件测试的活动 243 11.5 支持软件测试的CASE工具 244 11.6 软件测试工程师 244 11.7 本章小结和思维导图 245 11.8 阅读推荐 246 11.9 知识测验 246 11.10 工程实训 247 11.11 综合实践 247 第 12章 软件维护 248 12.1 问题引入 248 12.2 何为软件维护 248 12.2.1 软件维护概念 248 12.2.2 软件维护的特点 249 12.2.3 软件的可维护性 250 12.3 为什么要对软件进行维护 250 12.3.1 软件逻辑老化问题 250 12.3.2 产生软件逻辑老化的原因 251 12.3.3 处理软件逻辑老化问题的策略 252 12.4 如何进行软件维护 252 12.4.1 软件维护面临的问题 252 12.4.2 软件维护的过程 253 12.4.3 软件维护技术 254 12.5 支持软件维护的CASE工具 256 12.6 软件维护工程师 256 12.7 本章小结和思维导图 257 12.8 阅读推荐 258 12.9 知识测验 258 12.10 工程实训 258 12.11 综合实践 258
本书从初学者的角度出发,用通俗易懂的语言对Java Web开发的相关知识进行深入讲解。本书共11章,详细讲解网...
本书是《数字电路与逻辑设计(微课版)》配套的实验指导与习题解析参考书。全书分为3部分6章。第一部分包括1~3章...
本书是主教材《数据库原理(微课版)》(ISBN:978-7-115-63107-7)的配套教材。全书分为两部分...
本书以零基础读者为核心,全面地介绍了数据可视化的流程和Python数据可视化的应用,并详细阐述了使用Pytho...
本书借鉴了工业界项目管理的理论、方法和实践,结合敏捷软件开发模式的特点,全面介绍软件项目管理。本书按照软件项目...
我要评论