目录
第一部分软件工程概述
第1章绪论
1.1软件的概念及特点
1.2软件危机
1.2.1软件危机的表现与产生原因
1.2.2软件危机的启示
1.3软件工程
1.3.1软件工程的概念
1.3.2软件工程的基本目标和原则
1.3.3软件工程的发展
1.4软件开发方法
1.5计算机辅助软件工程及其工具
1.6软件工程人员的职业道德
1.6.1软件工程人员的职业道德概述
1.6.2软件工程人员的职业道德实例
1.7“小型网上书店系统”案例介绍
拓展阅读: 青鸟工程——以科技报国诠释爱国与奉献精神
本章小结
习题
第2章软件过程
2.1软件生命周期与软件过程
2.1.1软件生命周期
2.1.2软件过程
2.2典型的软件过程模型
2.2.1瀑布模型
2.2.2快速原型模型
2.2.3增量模型
2.2.4螺旋模型
2.2.5喷泉模型
2.2.6基于组件的开发模型
2.2.7统一软件开发过程模型
2.2.8几种过程模型的对比
2.2.9几种过程模型之间的关系
2.2.10选择软件过程模型
2.3软件过程模型实例
拓展阅读: 微信——以极致创新重构数字生活
本章小结
习题
第3章敏捷软件开发
3.1敏捷方法
3.2Scrum
3.2.1Scrum概述
3.2.2Sprint
3.2.3每日站会
3.2.4用户故事
3.2.5Backlog
3.2.6结对编程
3.3极限编程
3.3.1XP方法的4个价值观
3.3.2XP方法的12个核心实践
3.4看板
3.4.1看板概述
3.4.2看板与Scrum的区别
3.53种敏捷方法的对比
3.6CI/CD
3.6.1CI/CD概述
3.6.2CI/CD的优势
3.7DevOps
3.7.1DevOps概述
3.7.2DevOps的特点
3.8敏捷软件开发、CI/CD和DevOps
3.9测试驱动开发
3.9.1测试驱动开发概述
3.9.2测试驱动开发与敏捷软件开发
3.10敏捷软件开发实例(1)
3.11敏捷软件开发实例(2): 大语言模型如何赋能敏捷软件开发
拓展阅读: 钉钉软件——以求实精神深耕企业数字化
本章小结
习题
第二部分软件需求与设计
第4章可行性研究与项目开发计划
4.1项目立项概述
4.2可行性研究的任务
4.2.1技术可行性
4.2.2操作可行性
4.2.3经济可行性
4.3可行性研究的步骤
4.4可行性研究实例
4.5制订项目开发计划
4.6案例: “小型网上书店系统”的软件开发计划书
拓展阅读: 汉字激光照排系统——以创新与奉献精神铸就印刷革命
本章小结
习题
第5章软件需求
5.1什么是软件需求
5.1.1软件需求的本质
5.1.2软件需求的特点与重要性
5.1.3软件需求的分类与层次
5.1.4软件需求与需求工程
5.2需求工程的过程
5.2.1需求工程的一般步骤
5.2.2软件需求获取
5.2.3软件需求分析
5.2.4软件需求文档化
5.2.5软件需求确认和验证
5.2.6软件需求管理
5.3敏捷软件开发中的软件需求
5.4软件需求实例(1)
5.5软件需求实例(2): 大语言模型如何赋能软件需求
拓展阅读: 高斯数据库——以工匠精神铸就国产数据库标杆
本章小结
习题
第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.2.4分层体系结构风格
6.2.5客户端/服务器体系结构风格
6.2.6MVC体系结构风格
6.2.73种体系结构风格的对比
6.3软件体系结构设计
6.3.1软件体系结构设计的目的
6.3.2软件体系结构多视图的设计
6.3.3软件体系结构设计的一般步骤
6.4用户界面设计
6.5软件详细设计
6.5.1什么是软件详细设计
6.5.2数据设计
6.6软件设计规约与评审
6.7软件设计实例(1)
6.8软件设计实例(2): 大语言模型如何赋能软件设计
拓展阅读: 鸿蒙操作系统——以奋斗精神铸就国之重器
本章小结
习题
第7章结构化分析与设计
7.1结构化分析
7.1.1结构化分析概述
7.1.2结构化分析建模
7.2结构化设计
7.2.1结构化设计概述
7.2.2结构化设计与结构化分析
7.2.3结构化设计的启发规则
7.2.4结构化概要设计
7.2.5结构化详细设计
7.3结构化分析与设计实例
拓展阅读: DeepSeek——以民族精神领跑中国AI
本章小结
习题
第三部分面向对象分析与设计
第8章面向对象方法与UML
8.1面向对象方法
8.1.1面向对象的基本概念
8.1.2面向对象方法的优势
8.1.3面向对象方法的实施步骤
8.2UML
8.2.1UML简述
8.2.2UML图
8.3静态建模机制
8.3.1用例图
8.3.2类图与对象图
8.3.3包图
8.4动态建模机制
8.4.1顺序图
8.4.2协作图
8.4.3状态图
8.4.4活动图
8.5描述物理架构的机制
8.5.1组件图
8.5.2部署图
8.6面向对象方法与UML实例
拓展阅读: 抖音——以包容精神连接万千世界
本章小结
习题
第9章面向对象分析
9.1面向对象分析方法
9.1.1面向对象分析的过程
9.1.2面向对象分析的原则
9.2面向对象建模
9.2.1建立用例模型
9.2.2建立对象模型
9.2.3建立动态模型
9.2.4建立功能模型
9.2.54种模型之间的关系
9.3面向对象分析实例(1)
9.4面向对象分析实例(2): 大语言模型如何赋能面向对象分析
9.5案例: “小型网上书店系统”的需求规格说明书
拓展阅读: 北斗卫星导航系统——群星闪耀的中国精神
本章小结
习题
第10章面向对象设计
10.1面向对象设计与面向对象分析的关系
10.2面向对象设计的过程与原则
10.2.1面向对象设计的过程
10.2.2面向对象设计的原则
10.3面向对象设计的启发规则
10.4软件设计模式
10.4.1工厂模式
10.4.2桥接模式
10.4.3策略模式
10.4.4其他模式
10.5系统设计
10.5.1系统物理架构设计
10.5.2系统软件架构设计——子系统设计
10.5.3问题域子系统的设计
10.5.4人机交互子系统的设计
10.5.5任务管理子系统的设计
10.5.6数据管理子系统的设计
10.6用户界面设计
10.7对象设计
10.7.1用例设计
10.7.2类设计
10.7.3数据设计
10.7.4对象设计优化
10.8面向对象设计实例(1)
10.9面向对象设计实例(2): 大语言模型如何赋能面向对象设计
10.10案例: “小型网上书店系统”的软件设计说明书
拓展阅读: 银河麒麟——以砥砺前行精神铸牢国产系统根基
本章小结
习题
第四部分编码实现、测试、运营与维护
第11章编码实现
11.1选择编程语言需考虑的因素
11.2编码风格与规范
11.3面向对象实现
11.3.1提高可重用性
11.3.2提高可扩展性
11.3.3提高健壮性
11.4代码重用
11.5分析和评价代码的质量
11.6智能时代的编码实现
11.7编码实现实例(1)
11.8编码实现实例(2): 大语言模型如何赋能编码实现
11.9案例: 使用Visual Studio Code、Vue和Django实现“小型网上书店
系统”的“用户登录”模块
11.10案例: “小型网上书店系统”的源代码和部署文档
拓展阅读: 大疆科技——以实干担当书写中国智造传奇
本章小结
习题
第12章软件测试
12.1软件测试的基本概念
12.1.1软件测试的目标
12.1.2软件测试的原则
12.1.3软件测试的分类
12.2测试用例
12.2.1测试用例的编写
12.2.2测试用例的设计
12.3软件测试方法
12.3.1白盒测试
12.3.2黑盒测试
12.3.3灰盒测试
12.4软件测试的一般步骤
12.4.1单元测试
12.4.2集成测试
12.4.3系统测试
12.4.4验收测试
12.5回归测试
12.6面向对象测试
12.7自动化测试
12.8敏捷测试
12.9软件调试
12.10软件测试实例(1)
12.11软件测试实例(2): 大语言模型如何赋能软件测试
12.12案例: 使用Visual Studio Code和unittest对“小型网上书店系统”的
“用户登录”模块进行单元测试
12.13案例: “小型网上书店系统”的测试分析报告
拓展阅读: 飞桨PaddlePaddle——以技术自强精神铸牢中国AI根基
本章小结
习题
第13章软件运营与维护
13.1软件交付、部署与运营
13.2软件维护的传统方法
13.2.1软件维护的过程
13.2.2软件维护的分类
13.2.3软件的可维护性
13.2.4软件维护的副作用
13.3软件维护的现代方法
13.4软件再工程——重构、正向工程、逆向工程
13.5软件运营与维护实例(1)
13.6软件运营与维护实例(2): 大语言模型如何赋能软件运营与维护
拓展阅读: 宇树科技——敢为人先,拓荒机器人新蓝海
本章小结
习题
第五部分软件工程管理
第14章软件工程管理
14.1软件项目管理
14.1.1软件项目管理概述
14.1.2软件项目管理与软件工程的关系
14.2软件估算
14.2.1软件估算的概念
14.2.2软件估算的方法
14.2.3软件估算的原则与技巧
14.3软件开发进度计划
14.3.1甘特图
14.3.2PERT图
14.4软件开发人员组织
14.5软件开发风险与风险管理
14.5.1软件开发风险
14.5.2软件开发风险管理
14.6软件质量保证
14.6.1软件质量的基本概念
14.6.2软件质量保证的措施
14.7软件配置管理
14.8软件过程能力成熟度模型
14.9软件工程管理实例(1)
14.10软件工程管理实例(2): 大语言模型如何赋能软件工程管理
14.11案例: 使用Project管理“小型网上书店系统”的开发过程
14.12案例: “小型网上书店系统”的用户使用说明书
拓展阅读: WPS Office——以亮剑精神守护民族软件之光
本章小结
附录A软件工程常用工具及其应用
附录B基于“小型网上书店系统”的实验
附录C软件开发项目综合实践详解(机票预订系统)
附录D综合案例
附录E本书配套微课视频清单
参考文献
