
配套资源:电子课件、教学计划、习题参考答案、设计文档和代码
本书特色:
★本书详细而全面地介绍了可以实际用于软件开发实践的各种技能。
★提供教学计划、部分习题的参考答案。
★附录对课程设计进行了指导,并提供可供模仿的一个完整项目,包括文档和代码。
★通过实验讲述流行的软件开发工具(如软件绘图工具Microsoft Visio、面向对象建模工具Rational Rose、软件实现工具Visual Studio、软件测试工具UnitTest和软件项目管理工具Microsot Project等)。
本书配套资源或样书可联系微信15910938545索取
《软件工程理论与实践》按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。《软件工程理论与实践》共14章,主要内容包括软件工程与软件过程、软件需求分析、软件设计、软件编程与软件测试,以及软件维护与软件工程管理,如软件规模估算、进度计划、人员组织和软件开发风险管理等内容。 《软件工程理论与实践》可以作为普通高校计算机相关专业“软件工程”课程的教材,也可以供学习软件工程的读者单独使用(包括参加计算机等级考试或相关专业自学考试)参考。
前言 软件工程是研究软件开发和管理的一门工程科学,是计算机学科及相关专业的主干课程,也是软件从业人员必不可少的专业知识。目前,软件工程的理论在我国各企业和部门的软件开发中得到了广泛应用,软件工程课程也受到了各大专院校相关专业的重视。 软件工程是一门理论与实践并重的课程。本书在讲述软件工程的基本概念、原理和方法的基础上,详细而全面地介绍了可以实际用于软件开发实践的各种技能。旨在使学生通过有限课时的学习后,不仅能对软件工程的原理有所认识,而且能具备实际开发软件的各种技能,比如熟练使用各种软件工程工具,按照标准和规范编写文档等。 本书共分为14章,内容涉及软件工程的基本原理和概念、软件开发生命周期的各个阶段、软件工程管理的相关内容、如何使用各种自动化工具来辅助软件开发的过程,以及课程设计。 本书与其他书的不同之处在于,除了讲述必要的软件工程理论之外,还通过实验讲述流行的软件开发工具(如软件绘图工具Microsoft Visio、面向对象建模工具Rational Rose、软件实现工具Visual Studio、软件测试工具UnitTest和软件项目管理工具Microsot Project等),以及它们是如何应用于“‘墨韵’读书会书籍共享平台”的开发的。附录对课程设计进行了指导,如怎样进行项目选题、组建团队、团队工作方式和项目进度安排等。附录B中所提供的“‘墨韵’读书会书籍共享平台”(包括文档和代码)是学生在做课程设计中可供模仿的一个完整项目。所有这些使得软件工程的三要素——过程、方法和工具,在本书中得到了充分体现。 建议先修课程:计算机导论、面向对象程序设计、数据结构和数据库原理等。 建议理论教学时数:3248学时。 建议实验(实践)教学时数:1632学时。 教师可以按照自己对软件工程的理解适当省略一些章节,也可以根据教学目标,灵活地调整章节的顺序,增减各章的学时数。 另外,与本书配套的各章节的部分习题的参考答案,以及教学PPT可在机械工业出版社教育服务网(wwwcmpeducom)的本书页面中免费注册下载。 本书在编写的过程中,得到了杨婧团队、傅博团队、张昊文团队、王子烈团队以及翁学平、刘宇翔、杨承昊的大力支持,在此表示感谢。感谢所有为本书做出贡献的同仁们。 由于软件工程是一门新兴学科,软件工程的教学方法本身还在探索之中,加之编者的水平和能力有限,本书难免有疏漏之处。恳请各位同仁和广大读者给予批评指正,也希望各位能将实践过程中的经验和心得与我们进行交流(yunxianglu@hotmailcom)。 编者2017年6月
前言
第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.5软件工程工具
1.6“‘墨韵’读书会书籍共享平台”
案例介绍
习题
第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.3.10选择软件过程模型
2.4软件过程模型实例
习题
第3章可行性研究及需求分析
3.1可行性研究
3.1.1项目立项概述
3.1.2可行性研究的内容
3.1.3可行性研究的步骤
3.2需求分析
3.2.1需求分析的任务
3.2.2需求分析的步骤
3.2.3需求管理
3.2.4需求分析的常用方法
3.3软件开发计划书编写指南
3.4需求规格说明书编写指南
3.5可行性研究实例
习题
第4章结构化分析
4.1结构化分析概述
4.2结构化分析方法
4.2.1功能建模
4.2.2数据建模
4.2.3行为建模
4.2.4数据字典
4.2.5加工规格说明
4.3结构化分析图形工具
4.3.1层次方框图
4.3.2Warnier图
4.3.3IPO图
4.4结构化分析实例
4.5实验:使用Visio绘制“‘墨韵’
读书会书籍共享平台”的数据
流图
习题
第5章面向对象方法与UML
5.1面向对象的软件工程方法
5.1.1面向对象的基本概念
5.1.2面向对象的软件工程方法的
特征与优势
5.1.3面向对象的实施步骤
5.2统一建模语言UML
5.2.1UML简述
5.2.2UML的特点
5.2.3UML的应用范围
5.2.4UML的图
5.2.5UML“4+1”视图
5.3静态建模机制
5.3.1用例图
5.3.2类图和对象图
5.3.3包图
5.4动态建模机制
5.4.1顺序图
5.4.2协作图
5.4.3状态图
5.4.4活动图
5.5描述物理架构的机制
5.5.1构件图
5.5.2部署图
习题
第6章面向对象分析
6.1面向对象分析方法
6.1.1面向对象分析过程
6.1.2面向对象分析原则
6.2面向对象建模
6.2.1建立对象模型
6.2.2建立动态模型
6.2.3建立功能模型
6.2.43种模型之间的关系
6.3面向对象分析实例
6.4实验
6.4.1利用Rose创建“‘墨韵’读书会
书籍共享平台”的用例模型
6.4.2利用Rose绘制 “‘墨韵’读书会
书籍共享平台”的类图
6.4.3利用Rose绘制 “‘墨韵’读书会
书籍共享平台”的对象图
6.4.4利用Rose绘制“‘墨韵’读书会
书籍共享平台”的包图
6.4.5利用Rose绘制 “‘墨韵’读书会
书籍共享平台”的状态图
6.4.6利用Rose绘制“‘墨韵’读书会
书籍共享平台”的顺序图
习题
第7章软件设计
7.1软件设计的基本概念
7.1.1软件设计的意义和目标
7.1.2软件设计的原则
7.1.3软件设计的分类
7.2数据库结构设计
7.3用户界面设计
7.3.1设计驱动开发
7.3.2目标用户群体
7.3.3简洁与清晰
7.3.4实现模型与心智模型
7.3.5设计的规范性
7.3.6设计的可用性和易用性
7.3.7设计的一致性
7.3.8设计的容错性
7.4软件设计说明书编写指南
习题
第8章软件体系结构与设计模式
8.1软件体系结构的概念
8.1.1什么是软件体系结构
8.1.2软件体系结构建模
8.1.3软件体系结构的分层模型
8.1.4软件体系结构的作用
8.2典型的软件体系结构风格
8.2.1数据流风格
8.2.2调用/返回风格
8.2.3独立构件风格
8.2.4虚拟机风格
8.2.5仓库风格
8.3软件质量属性
8.4分布式系统结构
8.4.1多处理器体系结构
8.4.2客户端/服务器体系结构
8.4.3分布式对象体系结构
8.4.4对等端体系结构
8.4.5代理
8.5体系结构框架
8.5.1模型-视图-控制器
8.5.2模型-视图-表示器
8.5.3J2EE体系结构框架
8.5.4PCMEF框架
8.5.5PCBMER框架
8.6软件系统的设计模式
8.6.1工厂模式
8.6.2桥接模式
8.6.3策略模式
8.6.4其他模式
习题
第9章结构化设计
9.1结构化软件设计概述
9.2结构化设计与结构化分析
的关系
9.3体系结构设计
9.3.1表示软件结构的图形工具
9.3.2面向数据流的设计方法
9.3.3面向数据结构的设计方法
9.4接口设计
9.4.1接口设计概述
9.4.2界面设计
9.5数据设计
9.6过程设计
9.6.1程序流程图
9.6.2N-S图
9.6.3PAD图
9.6.4结构化语言
9.7结构化设计实例
9.8实验:利用Visio绘制“‘墨韵’
读书会书籍共享平台”的
结构图
习题
第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面向对象设计实例
10.8实验
10.8.1利用Rose绘制“‘墨韵’读书会
书籍共享平台”的活动图
10.8.2利用Rose绘制“‘墨韵’读书会
书籍共享平台”的协作图
10.8.3利用Rose绘制“‘墨韵’读书会书
籍共享平台系统”的构件图
10.8.4利用Rose绘制“‘墨韵’读书会
书籍共享平台”的部署图
习题
第11章软件编程
11.1编程语言
11.1.1编程语言的发展与分类
11.1.2选择编程语言需要考虑
的因素
11.2编程风格
11.3面向对象实现
11.4软件编程实例
11.5实验:利用Visual Studio实现
“‘墨韵’读书会书籍共享
平台”的用户登录模块
习题
第12章软件测试概述
12.1软件测试的基本概念
12.1.1软件测试的原则
12.1.2软件测试模型
12.2软件测试的分类
12.3测试用例
12.3.1测试用例编写
12.3.2测试用例设计
12.3.3测试用例场景
12.4测试分析报告编写指南
习题
第13章软件测试方法与过程
13.1软件测试方法
13.2黑盒测试
13.2.1等价类划分法
13.2.2边界值分析法
13.2.3错误推测法
13.2.4因果图法
13.2.5决策表法
13.2.6场景法
13.2.7黑盒测试方法选择
13.3白盒测试
13.3.1代码检查法
13.3.2静态结构分析法
13.3.3程序插桩技术
13.3.4逻辑覆盖法
13.3.5基本路径法
13.3.6白盒测试方法选择
13.3.7白盒测试与黑盒测试的比较
13.4软件测试的一般步骤
13.5单元测试
13.5.1单元测试概述
13.5.2单元测试内容
13.5.3单元测试方法
13.6集成测试
13.6.1集成测试概述
13.6.2集成测试分析
13.6.3集成测试策略
13.7系统测试
13.7.1系统测试概述
13.7.2系统测试类型
13.8验收测试
13.8.1验收测试概述
13.8.2验收测试内容
13.8.3 α测试和β测试
13.9回归测试
13.10面向对象的软件测试
13.11软件调试
13.11.1调试过程
13.11.2调试途径
13.12软件测试实例
13.13实验:利用Visual Studio对
“‘墨韵’读书会书籍共享
平台”的用户登录模块
进行单元测试
习题
第14章软件维护与软件工程管理
14.1软件维护
14.1.1软件维护的过程
14.1.2软件维护的分类
14.1.3软件的可维护性
14.1.4软件维护的副作用
14.1.5软件再工程技术
14.2软件估算
14.2.1软件估算的概念
14.2.2软件估算的方法
14.2.3软件估算的原则与技巧
14.3软件开发进度计划
14.3.1Gantt图
14.3.2PERT图
14.4软件开发人员组织
14.4.1民主制程序员组
14.4.2主程序员组
14.4.3现代程序员组
14.5软件开发风险及其管理
14.5.1软件开发风险
14.5.2软件开发风险管理
14.6软件质量保证
14.6.1软件质量的基本概念
14.6.2软件质量保证的措施
14.7软件配置管理概述
14.7.1软件配置管理术语
14.7.2配置管理的过程
14.7.3配置管理的角色划分
14.8软件工程标准与软件文档
14.8.1软件工程标准
14.8.2软件文档
14.9软件过程能力成熟度模型
14.10软件项目管理
14.10.1软件项目管理概述
14.10.2软件项目管理与软件工程
的关系
14.11软件复用
14.12实验:利用Project管理
“‘墨韵’读书会书籍共享
平台”的开发过程
习题
附录课程设计
附录A课程设计指导
附录B案例——“墨韵”读书会书
籍共享平台 (通过扫描二维
码获取文档和代码)
参考文献