《软件工程理论与实践 第2版》吕云翔 等编著 | PDF下载|ePub下载
软件工程理论与实践 第2版 版权信息
- 出版社:机械工业出版社
- 出版时间:2018-01-01
- ISBN:9787111716501
- 条形码:9787111716501 ; 978-7-111-71650-1
软件工程理论与实践 第2版 本书特色
适读人群 :高等院校计算机科学、软件工程及相关专业学生配套资源:微课视频、电子课件、习题答案、教学大纲、文档、源代码、实验 本书特色: 双色印刷、制作精美,书中内嵌二维码,可扫码看视频。 增加了开源软件开发方法、软件工程人员的职业道德、敏捷软件开发、原型设计等新内容。 针对一些重要的概念和内容,录制了微课视频。
软件工程理论与实践 第2版 内容简介
本书按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。本书共13章, 内容涉及软件工程概述、软件过程、敏捷软件开发、可行性研究与项目开发计划、结构化分析、结构化设计、面向对象方法与UML、面向对象分析、软件体系结构与设计模式、面向对象设计、软件实现、软件测试、软件维护与软件工程管理。本书理论与实践相结合,内容翔实,可操作性强。 本书适合作为高等院校计算机科学、软件工程及相关专业“软件工程”课程的教材。
软件工程理论与实践 第2版 目录
第2版前言
第1版前言
第1章软件工程概述
1.1软件
1.1.1软件的概念及特点
1.1.2软件的分类
1.2软件危机
1.2.1软件危机的表现与原因
1.2.2软件危机的启示
1.3软件工程
1.3.1软件工程的概念
1.3.2软件工程研究的内容
1.3.3软件工程目标和原则
1.3.4软件工程知识体系
1.3.5软件工程的发展
1.4软件开发方法
1.4.1基本的软件开发方法
1.4.2开源软件开发方法
1.4.3群体化软件开发方法
1.5软件工程工具
1.6软件工程人员的职业道德
1.7软件学院“‘墨韵’读书会图书共享平台”案例介绍习题
第2章软件过程
2.1软件过程概述
2.2软件生命周期
2.2.1软件生命周期的概念
2.2.2传统软件生命周期的各个阶段
2.3软件过程模型
2.3.1瀑布模型
2.3.2快速原型模型
2.3.3增量模型
2.3.4螺旋模型
2.3.5喷泉模型
2.3.6基于组件的开发模型
2.3.7统一软件开发过程模型
2.3.8几种模型之间的关系
2.3.9选择软件过程模型
2.4 软件过程实例
习题
第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.1看板概述
3.3.2看板与Scrum的区别
3.4极限编程
3.4.1XP的4个价值观
3.4.2XP的12个核心实践
3.5CI/CD
3.5.1CI/CD概述
3.5.2CI/CD管道
3.5.3CI/CD的优势
3.6DevOps
3.6.1DevOps生命周期
3.6.2DevOps文化
3.6.3DevOps工具
3.7敏捷软件开发、CI/CD和DevOps
3.8敏捷软件开发实例
习题
第4章可行性研究与项目开发计划
4.1项目立项概述
4.2可行性研究的任务
4.2.1技术可行性
4.2.2操作可行性
4.2.3经济可行性
4.3可行性研究的步骤
4.4可行性研究实例
4.5制订项目开发计划
习题
第5章结构化分析
5.1需求分析
5.1.1需求分析的任务和原则
5.1.2需求分析的步骤
5.1.3需求管理
5.1.4需求分析的常用方法
5.1.5原型设计
5.2结构化分析概述
5.3结构化分析的方法
5.3.1功能建模
5.3.2数据建模
5.3.3行为建模
5.3.4数据字典
5.3.5加工规格说明
5.4结构化分析的图形工具
5.4.1层次方框图
5.4.2Warnier图
5.4.3IPO图
5.5结构化分析实例
习题
第6章结构化设计
6.1软件设计的基本概念
6.1.1软件设计的意义和目标
6.1.2软件设计的原则
6.1.3软件设计的分类
6.2数据库结构设计
6.3用户界面设计
6.3.1设计驱动开发
6.3.2目标用户群体
6.3.3简洁与清晰
6.3.4实现模型与心智模型
6.3.5设计的规范性
6.3.6设计的可用性和易用性
6.3.7设计的一致性
6.3.8设计的容错性
6.4结构化软件设计概述
6.5结构化设计与结构化分析的关系
6.6体系结构设计
6.6.1表示软件结构的图形工具
6.6.2面向数据流的设计方法
6.6.3面向数据结构的设计方法
6.7接口设计
6.7.1接口设计概述
6.7.2界面设计
6.7.3UX设计与UI设计的区别
6.8数据设计
6.9过程设计
6.9.1程序流程图
6.9.2N-S图
6.9.3PAD图
6.9.4过程设计语言
6.10软件设计评审
6.11结构化设计实例
习题
第7章面向对象方法与UML
7.1面向对象的软件工程方法
7.1.1面向对象的基本概念
7.1.2面向对象的软件工程方法的特征与优势
7.1.3面向对象的实施步骤
7.2统一建模语言
7.2.1UML简述
7.2.2UML的应用范围
7.2.3UML的图
7.2.4UML“4+1”视图
7.3静态建模机制
7.3.1用例图
7.3.2类图和对象图
7.3.3包图
7.4动态建模机制
7.4.1顺序图
7.4.2协作图
7.4.3状态图
7.4.4活动图
7.5描述物理架构的机制
7.5.1构件图
7.5.2部署图
7.6面向对象方法与UML实例
习题
第8章面向对象分析
8.1面向对象分析方法
8.1.1面向对象分析过程
8.1.2面向对象分析原则
8.2面向对象建模
8.2.1建立对象模型
8.2.2建立动态模型
8.2.3建立功能模型
8.2.43种模型之间的关系
8.3面向对象分析实例
习题
第9章软件体系结构与设计模式
9.1软件体系结构概述
9.1.1软件体系结构的概念
9.1.2软件体系结构建模
9.1.3软件体系结构的分层模型
9.1.4软件体系结构的作用
9.2典型的软件体系结构风格
9.2.1数据流风格
9.2.2调用�N返回风格
9.2.3独立构件风格
9.2.4虚拟机风格
9.2.5仓库风格
9.3软件质量属性
9.4分布式系统结构
9.4.1多处理器体系结构
9.4.2客户机/服务器体系结构
9.4.3分布式对象体系结构
9.4.4对等端体系结构
9.4.5代理
9.5体系结构框架
9.5.1模型-视图-控制器
9.5.2模型-视图-表示器
9.5.3J2EE体系结构框架
9.5.4PCMEF框架
9.5.5PCBMER框架
9.6软件系统的设计模式
9.6.1工厂模式
9.6.2桥接模式
9.6.3策略模式
9.6.4其他模式
9.7软件体系结构与设计模式实例
习题
第10章面向对象设计
10.1面向对象设计与结构化设计
10.2面向对象设计与面向对象分析的关系
10.3面向对象设计的过程与原则
10.3.1面向对象设计的过程
10.3.2 面向对象设计的原则
10.4面向对象设计的启发规则
10.5系统设计
10.5.1系统分解
10.5.2问题域子系统的设计
10.5.3人机交互子系统的设计
10.5.4任务管理子系统的设计
10.5.5数据管理子系统的设计
10.6 对象设计
10.6.1设计类中的服务
10.6.2设计类的关联
10.6.3对象设计优化
10.7面向对象设计实例
习题
第11章软件实现
11.1编程语言
11.1.1编程语言的发展与分类
11.1.2选择编程语言需考虑的因素
11.2编程风格与规范
11.3面向对象实现
11.4代码重用
11.5分析和评价代码的质量
11.6软件实现实例
11.7案例实践:使用WebStorm和PyCharm实现软件学院“‘墨韵’读书会图书共享平台”的“用户登录”模块
习题
第12章软件测试
12.1软件测试的基本概念
12.1.1软件测试的原则
12.1.2软件测试模型
12.2软件测试的分类
12.3测试用例
12.4软件测试方法
12.5黑盒测试
12.5.1等价类划分法
12.5.2边界值分析法
12.5.3错误推测法
12.5.4因果图法
12.5.5决策表法
12.5.6场景法
12.5.7黑盒测试方法的选择
12.6白盒测试
12.6.1代码检查法
12.6.2静态结构分析法
12.6.3程序插桩技术
12.6.4逻辑覆盖法
12.6.5基本路径法
12.6.6白盒测试方法的选择
12.6.7白盒测试与黑盒测试的比较
12.7软件测试的一般步骤
12.8单元测试
12.8.1单元测试概述
12.8.2单元测试内容
12.8.3单元测试方法
12.9集成测试
12.9.1集成测试概述
12.9.2集成测试分析
12.9.3集成测试策略
12.10系统测试
12.10.1系统测试概述
12.10.2系统测试类型
12.11验收测试
12.11.1验收测试概述
12.11.2验收测试内容
12.11.3α测试和β测试
12.12回归测试
12.13面向对象的软件测试
12.14自动化测试
12.14.1手工测试与自动化测试
12.14.2自动化测试的优缺点
12.14.3自动化测试工具
12.15软件调试
12.16软件测试实例
12.17案例实践:使用PyCharm对软件学院“‘墨韵’读书会图书共享平台”的“用户登录”模块进行单元测试
习题
第13章软件维护与软件工程管理
13.1软件维护
13.1.1软件部署与软件交付
13.1.2软件维护的过程
13.1.3软件维护的分类
13.1.4软件的可维护性
13.1.5软件维护的副作用
13.1.6自动化运维
13.1.7软件再工程――重构、正向工程、逆向工程
13.2软件估算
13.2.1软件估算的概念
13.2.2软件估算的方法
13.2.3软件估算的原则与技巧
13.3软件开发进度计划
13.3.1Gantt图
13.3.2PERT图
13.4软件开发人员组织
13.4.1民主制程序员组
13.4.2主程序员组
13.4.3现代程序员组
13.5软件开发风险及其管理
13.5.1软件开发风险
13.5.2软件开发风险管理
13.6软件质量保证
13.6.1软件质量的基本概念
13.6.2软件质量保证的措施
13.7软件配置管理
13.7.1软件配置管理术语
13.7.2配置管理的过程
13.7.3配置管理的角色划分
13.8软件工程标准与软件文档
13.8.1软件工程标准
13.8.2软件文档
13.9软件过程能力成熟度模型
13.10软件项目管理
13.10.1软件项目管理概述
13.10.2软件项目管理与软件工程的关系
习题
参考文献