![]()
内容推荐 本书是软件工程的入门教材,系统地阐述了现代软件开发过程、方法、技术以及相关工具,使读者能够全面掌握现代软件工程的相关基础知识以及软件工程师所需要具备的基本实践能力。 全书共分为10章,覆盖了现代软件工程的主要内容,特别是需求分析、软件设计、软件构造、软件测试等。本书各章的顺序按照软件工程师的学习和成长过程进行编排,首先围绕高质量编码所需的知识和能力进行介绍,然后逐渐过渡到更加抽象的软件设计和需求分析等内容。第1章介绍软件工程的含义、发展历程和重要思想。第2章介绍软件过程模型、敏捷方法与精益思想以及开发运维一体化(DevOps)。第3章介绍软件版本管理与开发任务管理。第4章介绍代码质量的含义以及高质量编码方法。第5章介绍软件设计的整体内容并具体介绍组件级详细设计方法。第6章介绍组件级、框架级、平台级三个层次上的软件复用方法。第7章介绍软件体系结构的基本概念以及分布式软件体系结构和云原生软件体系结构。第8章介绍软件需求分析方法、敏捷开发中的需求工程以及可信需求的含义。第9章介绍软件测试方法以及相关工具。第10章介绍软件持续集成、发布以及软件构建和依赖管理。 本书可作为高等院校计算机、软件工程、人工智能、自动化等相关专业的本科生教材,也可供相关领域的专业技术人员参考。 作者简介 赵文耘,复旦大学计算机科学技术学院教授、博士生导师、校教学名师,复旦大学软件工程一级学科学术带头人,软件工程博士后流动站站长,中国计算机学会软件工程专业委员会副主任,中国软件行业协会软件工程分会副理事长。长期从事软件工程的教学和研究工作。“七五”、“八五”、“九五”期间参加杨芙清院士主持的国家重点科技攻关课题“大型软件开发环境—青鸟系统”的研究,为复旦大学所承担的各子专题的主要开发人员或负责人,同时还负责国家863项目6项、国家自然科学基金项目1项、上海市科委项目3项以及多项应用软件的研究和开发。获国家科技进步二等奖、电子工业部科技进步特等奖、上海市科技进步二等奖等多项国家级、省部级奖励。 目录 第1章 软件工程概述 1.1 软件的产生与发展 1.2 软件工程的含义 1.3 软件工程的系统观与演化观 1.4 软件工程师的社会责任 1.5 本书的内容结构 小结 第2章 软件过程 2.1 软件过程概述 2.1.1 基本概念和发展历史 2.1.2 软件生存周期过程标准 2.1.3 软件过程模型 2.1.4 软件过程改进 2.2 敏捷方法与精益思想 2.2.1 敏捷方法 2.2.2 精益思想 2.2.3 敏捷实践方法论 2.3 开发运维一体化 2.3.1 概览 2.3.2 基本原则和技术实践 2.3.3 持续集成、持续交付和持续部署 小结 第3章 版本与开发任务管理 3.1 版本与开发任务管理概述 3.1.1 配置管理概述 3.1.2 版本发布计划 3.2 版本管理 3.2.1 产品版本号命名 3.2.2 代码版本管理 3.2.3 代码分支与基线管理 3.3 特性开发任务管理 3.3.1 特性描述 3.3.2 特性开发任务管理流程 3.3.3 变更管理流程 3.4 缺陷修复过程管理 3.4.1 缺陷描述 3.4.2 缺陷修复处理流程 3.5 基于追踪与回溯的工作量与质量分析 3.5.1 基于追踪的分析 3.5.2 基于回溯的分析 小结 第4章 高质量编码 4.1 代码质量概述 4.1.1 代码质量的含义 4.1.2 可理解性和可维护性 4.1.3 可靠性和信息安全性 4.1.4 高效性 4.1.5 可移植性 4.2 代码风格 4.2.1 标识符命名 4.2.2 排版格式 4.2.3 注释 4.3 代码逻辑 4.3.1 代码编写的基本要求 4.3.2 重复代码问题 4.3.3 代码复杂度问题 4.3.4 高质量的子程序 4.4 安全与可靠性编码 4.4.1 数据验证 4.4.2 代码逻辑问题 4.4.3 错误处理 4.4.4 断言 4.4.5 异常处理 4.4.6 安全编程函数 4.5 代码质量控制 4.5.1 个人测试与调试 4.5.2 代码静态检查与质量门禁 4.5.3 代码评审 4.5.4 代码质量度量 4.6 测试驱动开发 4.6.1 TDD的概念与优势 4.6.2 TDD的过程与原别 4.6.3 TDD中的单元测试 小结 第5章 软件设计 5.1 软件设计概述 5.1.1 软件设计目标 5.1.2 软件设计层次 5.1.3 软件设计思想 5.2 面向对象设计 5.2.1 面向对象设计过程 5.2.2 面向对象设计描述 5.2.3 内聚和耦合 5.2.4 面向对象设计原则 5.2.5 面向切面的编程 5.3 契约式设计 5.4 设计模式 5.5 演化式设计 5.5.1 演化式设计与计划设计 5.5.2 代码坏味道 5.5.3 软件重构 小结 第6章 软件复用 6.1 软件复用概述 6.1.1 软件复用概念 6.1.2 软件复用层次 6.1.3 软件复用过程 6.1.4 软件产品线 6.1.5 开源软件复用 6.2 组件级复用 6.2.1 软件开发库复用 6.2.2 在线服务复用 6.2.3 接口描述规范 6.3 框架级复用 6.4 平台级复用 6.4.1 典型平台能力 6.4.2 基于平台的应用开发过程 6.5 基于复用的软件开发案例 6.5.1 后端服务开发 6.5.2 前端We码小程序开发 小结 第7章 软件体系结构 7.1 软件体系结构概述 7.2 软件体系结构决策 7.3 软件体系结构描述 7.4 软件体系结构风格 7.5 分布式软件体系结构 7.5.1 设计原则 7.5.2 进程间通信 7.5.3 .负载均衡 7.5.4 分布式存储 7.5.5 可靠性保障 7.6 云原生软件体系结构 7.6.1 微服务体系结构 7.6.2 微服务开发框架 7.6.3 容器化部署 小结 第8章 软件需求 8.1 软件需求概述 8.1.1 需求的含义及其来源 8.1.2 需求的类型 8.1.3 需求工程过程 8.1.4 需求的质量要求 8.1.5 系统需求与软件需求 8.2 需求分解和精化 8.2.1 系统愿景与上下文 8.2.2 愿景与目标分解和精化 8.2.3 优先级排序 8.2.4 冲突识别与协商 8.3 需求分析与描述 8.3.1 场景分析与描述 8.3.2 类分析与描述 8.3.3 行为分析与描述 8.3.4 需求文档 8.4 敏捷开发中的需求工程 8.5 软件可信需求 小结 第9章 软件测试 9.1 软件测试概念与原则 9.1.1 软件质量事故 9.1.2 软件测试概念 9.1.3 软件测试原则 9.2 软件测试过程模型 9.2.1 V模型 9.2.2 W模型 9.2.3 敏捷测试模型 9.3 软件测试类型 9.3.1 单元测试 9.3.2 集成测试 9.3.3 系统测试 9.3.4 验收测试 9.4 黑盒软件测试方法 9.4.1 等价类划分法 9.4.2 边界值分析法 9.4.3 判定表 9.4.4 错误推测法 9.5 白盒软件测试方法 9.6 系统测试技术与工具 |