软件工程与项目管理

软件工程与项目管理 教材名称: 软件工程与项目管理
ISBN号: 978-7-89436-817-1 作者: 石冬凌
字数: 398千字 规格: 16开
印制时间: 2021-03-01 出版日期: 2021-03-01
定价: 56 元 样章下载: 软件工程与项目管理—样章.pdf
购买地址: https://weidian.com/item.html?itemID=4369393593

软件工程是一门工程性学科,它总结了软件开发过程中的种种经验教训和指导性原则,形成了一套相对完整的软件开发思想体系。在构建软件过程中,综合运用了许多计算机科学中的基础学科知识,是理论与实践相结合的综合载体。总体来讲,软件工程这门学科一方面关注软件开发过程中使用的技术方法和工具,另外一方面强调了软件工程在实践过程中应当遵循的基本原理和指导性原则。
为了更好地帮助读者理解所讲述的内容,本教材采用一个真实案例贯穿始终,指导读者在实际项目中如何灵活应用所讲述的知识。在每个项目实施的阶段,都设定一个案例分析环节,剖析项目在实施过程中是如何一步步得到推进,贯彻分析设计技术的,让读者体会如何将理论与实践相结合,如何解决实际问题。最后通过每章课后设置的多项练习,巩固读者对问题的理解,强化读者解决实际问题的能力。
教材的内容结构安排首先从整体上介绍软件工程的整个知识体系及经典的软件开发过程模型,然后以面向对象知识体系为主线,按照软件生命周期的顺序讲解软件从需求确定、系统分析、系统设计、编码实现、软件测试及软件维护等环节的基础理论。教材的逻辑如图1所示。
图1教材编排体系结构逻辑图
在本教材中,软件工程知识体系的相关内容共分为11章。第1章是对软件工程领域的整体概述,着重介绍了软件开发过程模型;第2章是对软件项目管理核心内容的介绍;第3章到第10章是采用面向对象技术,依托一个案例讲解软件生命周期各过程中的基本原理和建模方法。第11章则给出两个完整案例的建模过程供读者参考。
本教材编写团队的成员都属于软件工程课程组的成员,包括石冬凌、吴吉红、任政、常镜洳、贾跃及周慧老师。他们不仅具有多年教授软件工程的丰富授课经验,而且也具有多年丰富的实际项目的实践经验,对于理论与实践的结合都有深刻的理解。在课程组老师的共同努力下,经过多年的教学实践和探索,教学思路已经逐步成熟起来,具备了形成完整知识体系的基础。
本教材中吴吉红老师负责第1章、3章、9章的编写,石冬凌老师负责第4章、5章、6章、7章、第8章正文部分的编写,任政老师负责第8章8.6节及第10、11章的编写,常镜洳老师负责第2章内容的编写,贾跃老师负责第1.8.5节及第4章、5章、6章的课后习题的编写,周慧老师负责7章、8章习题及附录部分的编写。
本教材在编写过程中参阅了大量的资料,在此对所有编著者表示衷心的感谢,由于编写时间仓促、水平有限,书中难免会存在不足之处,敬请读者批评指正。
 
第1章软件工程概述1
1.1项目引入1
1.2项目分析1
1.3需要解决的问题1
1.4软件工程的历史2
1.5软件工程的基本概念5
1.6软件工程的基本原理6
1.7软件生命周期7
1.8软件开发过程模型9
1.8.1瀑布模型10
1.8.2原型模型13
1.8.3螺旋模型15
1.8.4迭代开发与RUP17
1.8.5敏捷软件开发21
1.9项目实施28
1.10本章小结30
1.11习题31
第2章软件项目管理33
2.1项目导入33
2.2项目分析33
2.3需要解决的问题34
2.4软件项目管理概述34
2.5项目人力资源管理35
2.5.1项目人力资源管理定义36
2.5.2项目人力资源构成描述37
2.6项目范围管理37
2.6.1项目范围计划37
2.6.2项目范围定义38
2.6.3项目范围确认38
2.6.4项目范围控制39
2.7项目进度管理39
2.7.1创建工作分解结构40
2.7.2活动定义41
2.7.3活动排序41
2.7.4活动资源估算41
2.7.5活动历时估算42
2.7.6制订进度计划42
2.7.7进度控制44
2.8项目风险管理45
2.8.1风险的分类45
2.8.2风险的识别46
2.8.3风险评估46
2.8.4风险的驾驭和监控47
2.9项目配置管理48
2.9.1配置管理相关概念48
2.9.2配置管理计划49
2.9.3变更管理50
2.9.4版本管理51
2.10项目质量管理53
2.10.1质量规划53
2.10.2执行质量保证56
2.10.3执行质量控制56
2.11项目实施57
2.11.1角色的映射57
2.11.2开发案例中的制品58
2.11.3为初始阶段制订计划58
2.12本章小结59
2.13习题59
第3章需求概述62
3.1项目引入62
3.2项目分析62
3.3需要解决的问题62
3.4需求阶段的任务和目标63
3.5基本概念63
3.5.1什么是需求63
3.5.2需求的分类64
3.5.3需求的不同来源663.6需求获取方法66
3.6.1建立联合分析小组66
3.6.2客户访谈67
3.6.3问卷调查67
3.6.4问题分析与确认67
3.6.5快速原型法67
3.7功能建模的方法介绍69
3.7.1数据流图法70
3.7.2功能列表法70
3.7.3原型法70
3.7.4用例模型70
3.7.5用户故事70
3.8需求确认71
3.9迭代中需求的特点71
3.10项目实施73
3.10.1项目背景说明73
3.10.2涉众73
3.10.3用户需求74
3.10.4非功能性需求75
3.11本章小结75
3.12习题75
第4章需求建模77
4.1项目引入77
4.2项目分析77
4.3需要解决的问题78
4.4业务流程描述78
4.4.1什么是业务流程78
4.4.2业务流程的图形化表示78
4.5用例模型81
4.5.1用例的描述形式83
4.5.2用例图86
4.6用例产生的过程87
4.6.1事件列表88
4.6.2从事件列表转换成用例91
4.6.3用例的描述92
4.6.4用例的优先级确定增量94
4.7补充性规格说明95
4.8项目实施95
4.8.1业务流程说明95
4.8.2用例模型97
4.9本章小结102
4.10习题102
第5章系统分析105
5.1项目导入105
5.2项目分析105
5.3需要解决的问题106
5.4领域模型106
5.4.1什么是领域模型107
5.4.2如何构建领域模型108
5.4.3何时构建领域模型112
5.5健壮性分析112
5.5.1健壮图的表示法113
5.5.2健壮图的使用规则114
5.6动态模型——顺序图的转换118
5.6.1将健壮性分析与顺序图对应118
5.6.2为静态类图增加方法119
5.7动态模型——状态的标识121
5.8项目实施122
5.8.1构建领域模型122
5.8.2捕捉状态变迁124
5.8.3健壮性分析125
5.8.4构建顺序图126
5.8.5整理分析类图126
5.9本章小结127
5.10习题127
第6章系统设计130
6.1项目导入130
6.2项目分析130
6.3需要解决的问题131
6.4什么是软件体系结构132
6.5软件设计的通用原则132
6.6应用程序的分割134
6.6.1按照业务划分135
6.6.2按照层次划分136
6.7体系结构模型139
6.7.1客户机/服务器模型139
6.7.2分层体系结构140
6.7.3数据仓库模型141
6.7.4管道过滤器模型141
6.8体系结构的表示142
6.8.1逻辑结构143
6.8.2物理结构144
6.9体系结构设计过程145
6.9.1制定核心业务架构145
6.9.2制定物理体系结构146
6.9.3确定分层策略147
6.9.4确定执行体系结构(选择框架)147
6.10用户界面设计148
6.11持久化设计151
6.11.1设计目标151
6.11.2数据库设计步骤152
6.12项目实施155
6.12.1体系架构设计155
6.12.2数据库的设计157
6.12.3界面设计160
6.13本章小结161
6.14习题161
第7章对象设计163
7.1项目导入163
7.2项目分析163
7.3需要解决的问题164
7.4类的设计原则164
7.4.1单一职责原则165
7.4.2开闭原则166
7.4.3依赖倒转原则168
7.4.4里氏替换原则169
7.4.5接口隔离原则171
7.4.6合成复用原则173
7.4.7最少知识原则174
7.5设计模式的应用175
7.5.1策略模式(Strategy)175
7.5.2单例模式(Singleton)177
7.5.3适配器模式(Adapter)180
7.5.4工厂方法模式(Factory Method)181
7.6设计模式应用的注意事项183
7.7完善软件设计类183
7.8项目实施184
7.9本章小结187
7.10习题187
第8章软件实现190
8.1项目导入190
8.2项目分析190
8.3需要解决的问题191
8.4模型向代码的转换191
8.4.1类图与代码的关系191
8.4.2类之间的关系192
8.4.3顺序图与代码的对应194
8.5编码规范197
8.5.1源程序文档化198
8.5.2数据说明201
8.5.3语句结构201
8.5.4输入/输出202
8.5.5Java Web编码规范203
8.6版本控制205
8.6.1版本控制分类206
8.6.2Git的安装与使用207
8.6.3SVN的安装与使用209
8.7项目实施210
8.8本章小结211
8.9习题211
第9章软件测试213
9.1项目引入213
9.2项目分析213
9.3需要解决的问题213
9.4软件测试的目的和原则214
9.5软件测试与软件开发各阶段的关系215
9.6经典测试方法216
9.7黑盒测试217
9.7.1等价类划分217
9.7.2边界值分析法220
9.7.3错误推测法221
9.7.4因果图法221
9.7.5场景测试法224
9.8白盒测试227
9.8.1逻辑覆盖227
9.8.2基本路径覆盖229
9.9测试过程234
9.9.1单元测试235
9.9.2集成测试237
9.9.3确认测试238
9.9.4系统测试239
9.9.5验收测试239
9.10单元测试工具JUnit239
9.11项目实施244
9.12本章小结247
9.13习题247
第10章软件维护249
10.1项目引入249
10.2项目分析249
10.3需要解决的问题250
10.4软件维护的种类250
10.5软件维护的过程251
10.6软件维护的成本253
10.7项目实施254
10.8本章小结255
10.9习题255
第11章软件项目综合练习257
11.1综合练习一257
11.1.1教师在线答疑系统257
11.1.2参考答案258
11.2综合练习二263
11.2.1空车配货系统263
11.2.2参考答案263
附录面向对象技术概述268
A.1面向对象的基本概念268
A.1.1对象(Object)268
A.1.2类(Class)269
A.1.3实例(Instance)270
A.1.4消息(Message)270
A.1.5方法(Method)270
A.1.6属性(Attribute)270
A.1.7封装(Encapsulation)270
A.1.8继承(Inheritance)271
A.1.9多态性(Polymorphism)271
A.1.10重载(Overloading)271
A.2面向对象方法的总结272
A.3面向对象建模273
A.4小结275
参考文献276
 
在国家推动传统产业转型升级,大力发展新一代信息技术产业的政策背景下,随着互联网+产业、产业+互联网深度融合,软件产业将实现持续、稳定的快速增长。根据CSDN(国内规模最大的IT技术交流平台)发布的2019年互联网人才招聘报告,在互联网后端开发(Web开发)领域,Java需求占比仍然最大,占比72.8%。
为积极响应《国家职业教育改革实施方案》,贯彻落实《关于深化产教融合的若干意见》《国家信息化发展战略纲要》的相关要求,应对新一轮科技革命和产业变革的挑战,促进人才培养供给和产业需求结构要素全方位融合,促进教育链、人才链与产业链、创新链有机衔接,推进人力资源供给结构性改革,深化产教融合,着力培养高素质劳动者和技术技能人才,大连东软教育科技集团有限公司、天津东软睿道教育信息技术有限公司联合东软集团、上海芮想信息科技有限公司、大连东软信息学院及多所院校成立Java Web应用开发“课证融通”系列教材编委会,依据教育部《职业技能等级标准开发指南》中的相关要求,以客观反映现阶段行业的水平和对从业人员的要求为目标,在遵循有关技术规程的基础上,以项目为导向,以专业技能为核心,组织开发了Java Web应用开发“课证融通”系列教材。
Java Web应用开发“课证融通”系列教材将企业Java Web服务端开发岗位能力模型和《Java Web应用开发职业技能等级标准》进行整合,贯通于计算机类相关专业Java Web服务端开发方向课程体系中,并综合考虑在实际教学与学习过程中分阶段实施,将内容分解为《Java语言程序设计》《MySQL数据库应用开发》《Java Web开发技术》《软件工程与项目管理》《Java Web框架开发》《Java Web架构设计与开发》6本系列教材,构成进阶式三位一体技能图谱,覆盖Java Web服务端开发职业技能等级标准初、中、高级内容,面向软件系统分析与设计、软件系统应用开发(Web服务端软件开发)、软件测试、软件质量保证、软件部署与运维、技术支持等岗位技术需求。
系列教材以实践能力培养为导向、以企业真实应用为目标,以案例为导引,以项目为载体,遵循企业软件工程标准和技术,对JAVA基础、MVC设计模式、Servlet开发、JSP开发、数据库应用与开发、Spring、SpringMVC、MyBatis三大主流框架、微服务框架开发、SpringBoot、Spring Cloud、Docker等Web服务端开发中的重要技能模块完成知识讲解与技能实践,帮助学习者掌握服务端开发必备技能,并在实际工作场景中加以灵活应用。
Java Web应用开发“课证融通”系列教材适合作为高等职业院校计算机应用技术、软件技术、移动应用开发、大数据技术与应用、人工智能技术与服务等专业教材;适合作为应用型本科院校计算机科学与技术、软件工程、数据科学与大数据、人工智能等专业教材;也适合作为《Java Web应用开发职业技能等级标准》培训指导教材及对Web服务端开发感兴趣的读者使用。