
书名:智能软件工程
ISBN:9787302698722
作者:朱少民 陶伊达
出版日期:2025年9月
《智能软件工程》是第一本智能软件工程教材,也是一部系统化阐述软件工程理论与实践的教材。
本书系统化阐述软件工程理论与实践,紧扣智能化时代的软件工程学科的发展和研发需求,覆盖软件工程的核心内容与最新发展趋势,并结合云计算、大模型等新兴技术,探讨AI在软件工程中的应用。强调问题驱动教学模式、“做中学”实践,教材内容系统、丰富,和工业界的技术实践保持一致。配套视频、题库、课件、大纲等。
内容介绍
《智能软件工程》是一部系统化阐述软件工程理论与实践的教材,紧扣智能化时代的软件研发需求,全面覆盖软件工程的核心内容与最新发展趋势。全书以软件开发生命周期为主线,详细讲解了需求分析、系统设计、编码实现、测试与质量保障、运维与优化等关键环节,并结合人工智能(AI)、云计算等新兴技术,探讨了AI(特别是大模型、智能体等)技术在软件工程中的应用。通过理论与实践的结合,本书不仅帮助读者掌握传统软件工程的基本方法,还引导其理解如何利用大模型完成需求、设计、编程、测试、运维等工作,从而优化开发流程,显著地提升软件研发的效率与质量。
本书的主要特点在于其内容的前沿性与实用性。书中融入了目前先进的软件工程理念、优秀的科研成果和业界实践,并通过丰富的案例分析和实际操作,展示了AI技术如何赋能软件研发与管理。本书语言简洁流畅,结构清晰,既注重理论深度,又突出实践应用。
读者对象
适合高等院校软件工程、计算机科学及相关专业的学生作为教材使用,同时也为软件工程师、项目经理及技术管理人员提供了宝贵的参考资源。无论是初学者还是有经验的从业者,都能从中获得系统的理论与全方位的实践指导。
作者简介
朱少民,同济大学特聘教授、CCF杰出会员。近三十年来一直从事软件工程的教学与研究工作,先后获得多项省、部级科技进步奖,已出版了二十多部著作和4本译作。曾任思科(中国)软件有限公司QA高级总监、IEEE ICST 2019工业论坛主席、多个IEEE国际学术会议的程序委员、《软件学报》和《计算机学报》审稿人等。
陶伊达,南方科技大学计算机科学与工程系讲师。本科毕业于南京大学;博士毕业于香港科技大学。研究方向包括经验软件工程、智能化软件开发等。长期从事程序设计、软件工程等计算机基础课程的教学工作。
✦+
+
教材使用方法
建议教师根据课程安排和学生基础,灵活选择教学内容。对于初学者,教师可以先从基础章节入手,帮助学生建立扎实的软件工程基础; 对于有一定基础的学生,教师可以重点讲解人工智能技术在软件工程中的应用部分,引导学生深入探索前沿知识。在教学过程中,可以结合实际项目案例,组织学生进行小组讨论和实践操作,提高学生的实际应用能力。学生在学习时,应注重理论与实践相结合,积极思考每章的思考题和习题,通过实际操作加深对知识的理解。同时,关注人工智能技术的最新发展动态,将其与教材内容相结合,拓宽自己的视野。
课程视频
PPT课件示例




目录
第1章 什么是软件工程
1.1 软件工程诞生
1.1.1 软件工程的定义
1.1.2 从三个视角看软件工程
1.1.3 软件工程方法学
1.1.4 软件工程管理学
1.1.5 软件工程要素
1.1.6 软件工程的基本思想
1.1.7 软件工程知识体系SWEBOK
1.2 软件工程1.0
1.2.1 瀑布模型的不足
1.2.2 V模型诠释软件过程
1.3 软件工程2.0
1.3.1 敏捷开发历史
1.3.2 敏捷开发原则
1.3.3 极限编程
1.3.4 行为驱动开发
1.3.5 Scrum开发框架
1.3.6 软件即服务
1.4 软件工程3.0
1.4.1 软件工程3.0的特征
1.4.2 软件工程三个时代的比较
小结
思考题
参考文献
第2章 过去我们是如何开发软件的
2.1 软件研发的三种基本思维
2.1.1 产品思维
2.1.2 项目思维
2.1.3 工程思维
2.2 软件工程中的主要活动
2.2.1 产品定义
2.2.2 需求定义
2.2.3 设计
2.2.4 编程
2.2.5 测试
2.2.6 部署与运维
2.3 开源软件运动
2.4 精益开发
2.4.1 看板
2.4.2 精益软件开发实践
2.5 开发与运维的融合: DevOps
2.5.1 DevOps的概念及其工具链
2.5.2 经典案例: 凤凰项目
思考题
参考文献
第3章 如何定义好的软件需求
3.1 软件需求工程概要
3.2 软件有哪些需求
3.2.1 业务需求
3.2.2 用户角色需求
3.2.3 系统的功能需求
3.2.4 系统非功能性需求
3.2.5 其他需求类型
3.3 真实需求的获取
3.3.1 需求获取的过程
3.3.2 传统的需求获取方法
3.3.3 针对新产品的其他方法
3.3.4 针对已有产品的其他方法
3.3.5 智能需求获取方法
3.4 智能需求分析与定义
3.4.1 去伪存真
3.4.2 结构化分析方法
3.4.3 面向对象的分析方法
3.4.4 面向敏捷的分析方法
3.4.5 场景分析方法
3.5 需求评审
3.5.1 如何确定传统软件需求的评审标准
3.5.2 如何评审敏捷需求——用户故事
3.5.3 智能需求评审
3.6 需求跟踪与变更管理
3.6.1 需求跟踪
3.6.2 需求变更管理
3.7 业务架构
3.7.1 业务架构的价值与构建
3.7.2 业务架构的框架与工具
小结
思考题
参考文献
第4章 如何设计软件
4.1 软件设计的基本原则
4.1.1 抽象与精化
4.1.2 模块化
4.1.3 信息隐藏
4.1.4 关注点分离
4.1.5 面向对象设计
4.1.6 智能问答: 让设计原则不再高冷
4.2 软件系统架构设计
4.2.1 单体架构
4.2.2 分布式架构
4.2.3 面向服务的架构
4.2.4 微服务架构
4.2.5 无服务架构
4.3 微服务架构设计
4.3.1 如何定义“服务”
4.3.2 如何实现服务间的沟通
4.3.3 REST与消息机制
4.3.4 AI辅助的软件架构设计
4.3.5 最佳实践
4.4 接口设计
4.4.1 设计维度
4.4.2 设计原则
4.4.3 案例研究: 使用Cursor辅助的接口设计
4.5 UI设计
4.5.1 视觉
4.5.2 交互
4.5.3 原型
4.5.4 智能化工具
4.6 数据设计
4.6.1 数据组织
4.6.2 数据存储
4.6.3 AI辅助的数据设计
小结
思考题
参考文献
第5章 如何高效地进行软件开发
5.1 AI辅助编程
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 Dependabot与智能构建
5.3 软件文档
5.3.1 读者类型
5.3.2 文档类型
5.3.3 文档的重要性
5.3.4 编写高质量文档的挑战
5.3.5 最佳实践:文档即代码
5.3.6 AI文档生成
5.4 代码审查
5.4.1 关键要素
5.4.2 工作流程
5.4.3 自动化与智能化
小结
思考题
参考文献
第6章 如何保障软件质量
6.1 深入理解软件质量
6.1.1 什么是质量
6.1.2 软件质量属性
6.1.3 软件缺陷: 质量的对立面
6.2 软件质量工程体系
6.2.1 传统的质量管理体系
6.2.2 构建软件质量工程体系
6.2.3 根据上下文定制SQES
6.3 软件测试目标、原则和类型
6.3.1 软件测试目标
6.3.2 软件测试的分类
6.3.3 测试的原则
6.4 智能测试分析与计划
6.4.1 LLM驱动测试需求分析
6.4.2 生成测试计划书
6.5 智能测试设计与开发
6.5.1 智能测试方法概述
6.5.2 基于测试需求文档生成测试用例
6.5.3 基于业务流程图生成E2E测试用例
6.5.4 测试用例的复审
6.5.5 生成功能测试脚本
6.5.6 生成API测试脚本
6.6 LLM驱动非功能性测试
6.6.1 LLM驱动性能测试
6.6.2 LLM驱动安全性测试
6.7 智能测试评估
6.7.1 智能缺陷定位
6.7.2 评估测试覆盖率
6.7.3 测试报告生成
小结
思考题
参考文献
第7章 如何实现持续集成与持续交付
7.1 持续交付
7.1.1 软件交付概述
7.1.2 软件交付的反模式
7.1.3 持续交付的理念
7.2 持续集成
7.2.1 过程与方法
7.2.2 最佳实践
7.2.3 智能化持续集成
7.3 持续测试
7.3.1 测试的分类
7.3.2 与持续交付集成的持续测试策略
7.4 部署与发布
7.4.1 自动化部署
7.4.2 低风险发布
7.5 部署流水线
7.5.1 执行流程解析
7.5.2 定制的部署流水线
7.5.3 部署流水线平台与工具链
7.6 云原生的CI/CD
7.6.1 “云原生”概念
7.6.2 搭建云原生的CI/CD工作流
7.6.3 智能云
7.7 智能化应用的CI/CD
7.7.1 机器学习模型
7.7.2 基于LLM的软件应用
小结
思考题
参考文献
第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.2.5 架构重构
8.2.6 弃用
8.3 向智能化软件演进
8.3.1 任务智能化
8.3.2 功能智能化
8.3.3 过程智能化
小结
思考题
参考文献
第9章 如何更好地支持系统运维
9.1 基础设施维护与验证
9.1.1 基础设施即代码
9.1.2 对基础设施进行验证
9.1.3 系统运维工具
9.2 A/B测试
9.2.1 A/B测试设计
9.2.2 A/B测试平台与测试执行
9.2.3 关于用户体验度量
9.3 监控告警系统
9.3.1 日志分析及Elastic Stack的使用
9.3.2 调用链分析及Skywalking的使用
9.3.3 指标监控及Prometheus的使用
9.3.4 监控系统解决方案
9.4 安全性监控
9.4.1 安全监控与审计框架
9.4.2 智能安全监控
9.5 智能运维
9.5.1 从自动化运维到智能运维
9.5.2 智能运维的典型场景
小结
思考题
参考文献
第10章 智能化浪潮下软件工程的未来
10.1 现状
10.1.1 需求
10.1.2 设计
10.1.3 实现
10.1.4 质量管理
10.1.5 维护与演化
10.2 挑战
10.2.1 大模型在软件工程任务上的局限性
10.2.2 计算资源与基础设施
10.3 未来
10.3.1 自然的人机交互
10.3.2 端到端工作流
10.3.3 隔离环境
10.3.4 自学习与自适应
小结
思考题
参考文献
附录 实验
精彩样章





                    上一篇:湖南2026年艺术类统考启动报名
                
下一篇:第十四届中国艺术节上的川渝联动