描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302511434丛书名: 软件工程系列教材
2. 注重实用性和特色。坚持“实用、特色、规范、可操作性”原则,突出“教、学、练、做、用一体化”和实用性强及素质能力培养,增加大量典型案例,在内容安排上将理论知识与实际应用有机结合,配有典型及综合应用案例与同步实验指导。
3. 资源配套,便于教学。为了方便师生教学,配有电子教案并附有“同步实验指导”和“课程设计指导”及练习与实践习题,并附有部分习题答案及常用文档指南。
本书既可作为高等院校计算机与信息类、工程与管理类等学科专业的相关课程的教材,也可作为培训及参考用书。可根据“*”进行选学。
第1章软件工程基础1
1.1软件工程的发展1
1.1.1软件危机概述1
1.1.2软件工程的发展过程2
1.2软件及软件工程概述4
1.2.1软件的概念、特点和分类4
1.2.2软件工程的概念、特点和目标6
1.2.3软件工程学及其内容和方法7
1.2.4软件过程及实际开发过程12
1.2.5软件工程的基本原理及原则14
1.3软件生存周期及任务15
1.3.1软件生存周期的相关概念15
1.3.2软件生存周期的阶段划分16
1.3.3软件生存周期各阶段的任务16
1.4常用软件开发模型17
1.4.1瀑布模型概述17
1.4.2快速原型模型概述18
1.4.3增量模型概述18
1.4.4螺旋模型概述20
1.4.5喷泉模型概述20
1.4.6基于面向对象的模型21
1.4.7软件开发模型的选定22
1.5实验1软件开发准备及Visio 2017应用23
1.5.1任务1软件开发团队与选题23
1.5.2任务2Microsoft Visio 2017应用25\软\件\工\程\与\实\践\(第3版)\/目录/ 1.6本章小结28
1.7练习与实践129
第2章可行性分析及研发策划31
2.1软件问题的调研和定义31
2.1.1软件问题的初步调研31
2.1.2软件问题定义的概念33
2.1.3软件问题定义的内容33
2.2可行性分析及项目立项36
2.2.1可行性分析的概念及意义36
2.2.2可行性分析的任务和内容37
2.2.3可行性分析的实施过程41
2.3项目立项、合同和任务书43
2.3.1软件项目立项方法及文档43
2.3.2软件项目签订合同和文档44
2.3.3任务下达的方式及文档45
2.4系统流程图及应用45
2.4.1系统流程图的用途45
2.4.2系统流程图画法及符号46
2.5软件开发计划及方案48
2.5.1软件开发计划的目的及分类48
2.5.2软件开发计划的内容与制订48
2.5.3软件开发计划书及方案51
2.6实验2软件可行性分析报告54
2.6.1实验目的54
2.6.2实验任务及要求55
2.6.3实验内容及步骤55
2.7本章小结56
2.8练习与实践257
第3章软件需求分析60
3.1软件需求分析概述60
3.1.1软件需求分析的概念及特点60
3.1.2软件需求分析的目的和原则62
3.2软件需求分析的任务及过程63
3.2.1软件需求分析的任务63
3.2.2软件需求分析的过程65
3.3软件需求分析方法67
3.3.1软件需求分析方法类型67
3.3.2软件需求分析方法对比67
3.3.3软件需求分析技巧68
3.4结构化分析方法68
3.4.1结构化分析方法的基本思想68
3.4.2结构化分析的步骤69
3.5结构化分析建模工具71
3.5.1实体联系图71
3.5.2数据流图72
3.5.3数据字典78
3.5.4处理过程描述80
3.5.5状态转换图83
3.6软件需求分析文档84
3.6.1软件需求文档概述84
3.6.2软件需求文档编写85
3.7实验3需求分析文档与建模87
3.7.1实验目的87
3.7.2实验要求87
3.7.3实验内容和步骤88
3.7.4实验报告要求88
3.8本章小结88
3.9练习与实践389
第4章软件设计92
4.1软件设计概述92
4.1.1软件设计的概念和目标92
4.1.2软件设计的过程93
4.2软件总体设计94
4.2.1软件总体设计的任务94
4.2.2总体设计的原则和过程94
4.2.3软件总体设计的方法99
4.3软件详细设计103
4.3.1详细设计的任务和原则103
4.3.2详细设计的方法和工具104
4.4数据库设计概述106
4.4.1数据库设计的任务及步骤106
4.4.2概念数据模型设计106
4.4.3逻辑结构及物理结构设计107
4.5网络系统设计概述108
4.5.1网络技术及结构设计108
4.5.2网络站点及接入设计109
4.5.3网络性能及安全性设计110
4.5.4网络设计应用实例111
4.6用户界面设计113
4.6.1界面设计的意义及任务113
4.6.2用户界面的特性及设计原则113
4.6.3屏幕对话界面设计114
4.6.4数据输入界面设计115
4.6.5数据输出界面设计117
4.6.6控制界面的设计118
4.7软件设计文档120
4.7.1系统/子系统设计(结构设计)说明120
4.7.2详细设计文档及其评审120
4.8实验4软件详细设计及文档编写121
4.8.1实验目的121
4.8.2实验内容及步骤121
4.8.3实验结果122
4.9本章小结122
4.10练习与实践4123
第5章面向对象开发方法125
5.1面向对象的相关概念125
5.1.1对象与类的相关概念126
5.1.2继承及多态性的概念127
5.1.3消息与方法的相关概念128
5.2面向对象方法概述128
5.2.1面向对象方法的概念128
5.2.2面向对象方法的特点129
5.2.3面向对象开发过程及范型129
5.2.4面向对象开发方法130
5.3面向对象分析132
5.3.1面向对象分析的原则与任务132
5.3.2面向对象分析的过程133
5.3.3对象建模方法和步骤134
*5.3.4统一建模语言概述136
5.4面向对象设计141
5.4.1面向对象设计的准则及任务141
5.4.2系统设计的过程142
5.4.3对象设计的过程146
5.4.4类设计的目标及方法147
5.5面向对象分析和设计实例148
5.5.1图书管理信息系统OOA实例148
5.5.2Web图书管理信息系统OOD151
5.6实验5Rational Rose应用154
5.6.1用Rational Rose绘制用例图154
5.6.2用Rational Rose绘制类图156
5.7本章小结161
5.8练习与实践5162
第6章软件编程实现163
6.1软件编程实现基础163
6.1.1软件实现的主要任务及过程163
6.1.2软件实现方法的准则164
6.1.3软件实现和软件编程框架166
6.2软件编程语言和技术方法168
6.2.1软件编程语言概述168
6.2.2软件编程语言的选择172
6.2.3常用软件编程方法174
6.2.4软件编程标准、规范和风格176
6.3移动WebApp开发技术应用180
6.3.1移动WebApp开发技术和过程180
6.3.2移动WebApp开发操作应用案例181
6.4软件研发常用工具与环境184
6.4.1常用软件研发工具和集成环境184
6.4.2常用的WebApp开发工具 185
6.4.3编码管理系统及编译程序185
6.4.4软件生成技术186
6.5软件实现文档187
6.5.1实现文档的组成及要求187
6.5.2软件用户手册编写188
6.5.3软件用户手册的审核鉴定190
6.6实验6手机WebApp研发操作应用与软件实现190
6.6.1任务1手机WebApp研发操作应用190
6.6.2任务2应用软件编程实现194
6.7本章小结194
6.8练习与实践6195
第7章软件测试与维护197
7.1软件测试概述197
7.1.1软件测试的概念及内容197
7.1.2软件测试的目的和原则199
7.2软件测试的特点及过程201
7.2.1软件测试的特点201
7.2.2软件测试的过程201
7.3软件测试阶段及任务204
7.3.1单元测试及任务204
7.3.2软件集成与集成测试205
7.3.3有效性测试及要求207
7.3.4系统测试及验收208
7.4软件测试策略及面向对象测试209
7.4.1软件测试策略209
7.4.2面向对象软件测试212
7.5软件测试方法、用例和标准213
7.5.1软件测试方法213
7.5.2软件测试用例设计及方法215
7.5.3软件测试标准和工具220
7.5.4软件测试文档222
7.6软件调试与发布223
7.6.1软件调试的特点及过程223
7.6.2软件调试的方法224
7.6.3软件调试的原则226
7.6.4软件推广及发布226
7.7软件维护227
7.7.1软件维护的类型及特点227
7.7.2软件维护策略及方法228
7.7.3软件维护过程及任务229
7.7.4软件再工程技术230
7.8实验7软件测试与调试应用231
7.9本章小结232
7.10练习与实践7232
第8章软件项目管理234
8.1软件项目管理概述234
8.1.1软件项目管理的概念及特点234
8.1.2软件项目管理过程及内容236
8.2软件项目启动与组织管理237
8.2.1软件项目的启动过程及任务237
8.2.2软件项目组织管理238
8.3软件项目进度管理240
8.3.1软件项目进度估算240
8.3.2软件项目进度安排243
8.4软件项目的过程管理247
8.4.1软件项目的需求管理 247
8.4.2软件项目的质量管理248
8.4.3软件项目的配置管理251
8.4.4软件项目的风险管理253
8.5软件项目监控与验收256
8.5.1软件项目的监控过程256
8.5.2软件项目监控内容及方法257
8.5.3软件项目的评审258
8.5.4软件项目收尾与验收259
8.6实验8软件项目管理应用261
8.7本章小结264
8.8练习与实践8265
第9章软件工程新技术及体系267
9.1软件工程新技术267
9.1.1面向服务的计算268
9.1.2云计算技术270
9.1.3大数据技术274
9.1.4人工智能技术概述276
9.2能力成熟度集成模型278
9.2.1CMMI基本概述278
9.2.2CMMI能力成熟度级别278
9.2.3CMMI的评估及应用279
9.3软件工程新体系281
9.3.1IBM Rational软件工程体系281
9.3.2微软软件工程体系284
9.3.3敏捷软件工程体系288
9.4形式化方法及其软件工程体系291
9.4.1形式化方法291
9.4.2净室软件工程体系294
9.5本章小结297
9.6练习与实践9298
第10章WebApp开发综合应用301
10.1WebApp项目开发基础301
10.1.1WebApp的特点及类型302
10.1.2WebApp开发任务、过程和方法303
10.1.3WebApp需求分析306
10.1.4WebApp设计实现方法309
10.1.5WebApp测试技术和方法312
10.1.6WebApp项目管理316
10.2移动WebApp开发及应用318
10.2.1移动WebApp的制作方法318
10.2.2移动WebApp调试及配置324
10.3Web商品进销存信息系统325
10.3.1系统需求分析325
10.3.2系统设计331
10.3.3系统实现335
10.4Web图书商城信息系统开发340
10.4.1软件研发的可行性分析340
10.4.2软件需求分析341
10.4.3软件设计345
10.4.4软件实现349
10.5课程设计任务书及评价352
10.5.1课程设计任务书352
10.5.2课程设计报告评价355
10.6本章小结356
附录A练习与实践习题部分参考答案357
第1章部分参考答案357
第2章部分参考答案357
第3章部分参考答案358
第4章部分参考答案359
第5章部分参考答案359
第6章部分参考答案359
第7章部分参考答案360
第8章部分参考答案360
第9章部分参考答案360
附录B软件工程部分文档编写指南361
B.1软件需求规格说明(SRS)361
B.2软件(结构)设计说明(SDD)369
参考文献375
当前,已经进入21世纪现代信息化社会,IT技术的快速发展和广泛应用对人们的工作和生活带来深刻影响。一个国家的信息化程度和信息技术应用水平体现了其综合国力,是决定国际竞争地位并取得主动权的战略性重大举措,习近平主席也曾指出“没有信息化就没有现代化”。软件已经成为信息化建设与发展的核心,是信息技术及其应用与发展的关键,备受世界瞩目的软件产业已经成为发展最快的朝阳产业,软件开发、管理与维护能力和先进的软件技术,直接影响企事业单位信息化建设发展和信息技术的应用水平,软件工程技术和管理与应用水平已成为促进软件产业健康发展的关键。随着各行业信息化、数字化、现代化建设的快速发展和广泛应用,对软件研发、管理和维护相关专业人才的需求更加迫切,尽快培养和提高相关知识、素质、能力更为重要。
世界各国都极为重视并加快信息化的建设和软件产品的研发与应用,这也极大地促进了软件工程的快速发展。为了不断提高软件研发的质量和软件管理、应用与维护的水平,必须学习、研究和应用软件工程的基本理论和技术,才能使我国的软件产业在国际竞争中占有一席之地,并带动整个信息化建设、发展和技术应用水平及综合国力的提高。
软件工程(Software Engineering)是一项指导计算机及手机等终端软件系统进行研发、运行、维护、管理和应用的工程技术方法。主要是指利用工程化的思想、概念、原理、技术和方法,在软件研发项目的可行性分析、策划与计划、开发、运行、维护、管理和应用软件过程中,将最佳的技术与方法和科学管理紧密结合,以较经济的手段获得满足用户需求的安全可靠软件的一系列方法,即软件工程=工程原理 技术方法 管理技术。软件工程不仅具有一般工程学科的共性,还具有软件工程学科的系统性、工程化、综合性和学科交叉性的基本特点。 \软\件\工\程\与\实\践\(第3版)\/前言/
软件工程属于综合利用计算机科学、工程科学、管理科学、数学等的综合交叉学科,其涉及的主要内容及研究的范围很广泛,不仅涵盖软件的开发方法和技术、管理与维护技术,还包括软件工具、环境及软件开发的标准和规范。目前,软件工程学科仍然处于发展完善过程中,对其中一些概念、体系结构和内容等的认识尚未统一。根据软件工程研究的对象和任务,软件工程学科主要包括软件工程原理、软件工程过程、软件工程方法、软件工程技术、软件工程模型、软件工程管理、软件工程度量、软件工程环境、软件工程应用等基本内容。30多年来,作者在高等院校和部分企业一直坚持“校企合作、产学研用结合”,始终从事相关的教学、研发和学科专业建设与管理工作,多次主持过相关软件项目的研发,积累了丰富的宝贵实践经验,为满足高校对高等专业人才相关知识、素质和能力培养的需要,本书在前两版很受欢迎,并在十次印刷的基础上再次更新。
本书从实用的角度出发,根据教育部高教司审定的《中国计算机科学与技术学科教程》中对软件工程的要求,并参照美国计算机协会(Association for Computing Machinery,ACM)和IEEE Computing Curricula 教程关于软件工程方面的有关内容,吸取了国内外软件工程的实用技术、新方法、新成果、新应用和新标准规范,也是“十三五”国家重点出版规划项目及上海市高校优秀教材奖获得者和教育部“产学合作协同育人”建设项目部分成果之一。
全书主要内容共分10章,内容包括软件工程基础、可行性分析及研发策划、软件需求分析、软件设计、面向对象开发方法、软件编程实现、软件测试与维护、软件项目管理、软件工程新技术及体系、WebApp开发综合应用。书中内容增加了很多新的典型实际应用案例,以及经过多年的实践总结出来的研发案例分析、同步实验、课程设计指导及最新研究成果等,以便于实际应用。书中带*部分为选学内容。
本书旨在重点介绍软件工程技术、方法和实际应用等方面的最新成果。本规划教材主要是专门针对高校相关高等专业人才培养要求编写的特色教材,其主要特点如下。
(1) 内容先进,结构新颖。吸收了国内外大量的新知识、新技术、新方法和国际通用准则。注重科学性、先进性、操作性。图文并茂,学以致用。
(2) 注重实用性和特色。坚持“实用、特色、规范、可操作性”原则,突出“教、学、练、做、用一体化”和实用性强及素质能力培养,增加大量典型案例,在内容安排上将理论知识与实际应用有机结合,配有典型及综合应用案例与同步实验指导。
(3) 资源配套,便于教学。为了方便师生教学,配有电子教案并附有“同步实验指导”和“课程设计指导”及练习与实践习题,并附有部分习题答案及常用文档指南。
本书由“十三五”国家重点出版规划项目及上海市高校优秀教材奖获得者、多次获得上海市高校精品课程的负责人贾铁军教授任主编、统稿并编写了第1章、第4章、第5章和第10章及附录等。李学相教授(郑州大学)任主编并编写第6章。王学军(石家庄铁道大学)任主编并编写第3章,陈国秦(腾讯控股有限公司)任副主编并编写第2章,李宇佳(上海电机学院)任副主编并编写第7章,王贵鑫(温州商学院)任副主编并编写第8章和第9章,俞小怡、沈学东、王坚等教师和研究生参加了前期编写及审校和修改等工作,对全书的文字、图表进行校对编排及查阅资料等。
非常感谢清华大学出版社为本书的编著提供的帮助、指导意见和参考资料。同时,感谢对本书编著给予大力支持与帮助的各位同仁、院校和相关企业单位。对编著过程中参阅大量的重要文献资料难以完全准确注明,在此对相关作者表示诚挚谢意!
由于水平有限,书中难免存在不妥之处,敬请见谅!欢迎提出宝贵意见和建议。
非常欢迎联系、交流与合作,主编的邮箱为[email protected]。
编者2018年8月于上海
面向对象开发方法
面向对象的方法和应用非常广泛,已经扩展到数据库系统、应用平台、分布式系统、网络管理结构、交互式界面、应用结构、CAD技术、人工智能等领域的研发、管理与维护,具有广泛的应用。面向对象方法注重在软件研发过程中面向客观现实世界或问题域中的事物,采用人类在认识客观世界的过程中习惯的思维方式,更加直观、自然地描述客观世界教学课件
第5章面向对象开发方法中的有关事物,成为一种快速高效的软件开发方法。
教学目标
掌握面向对象及其方法的有关概念和特点。
理解面向对象软件的主要开发任务及过程。
熟悉面向对象分析和面向对象设计的方法。
掌握面向对象分析和设计的实际应用方法。
5.1面向对象的相关概念
【案例51】面向对象方法是主流软件开发方法。
(1) 从世界观的角度认为:世界是由各种具有各自运动规律和内部状态的对象组成,不同对象之间的相互作用和通信构成了完整的现实世界。人类应当按照现实世界本来面貌理解世界,直接通过对象及其相互关系反映世界,以此构建的系统才知识拓展
面向对象方法论的产生 能符合现实世界。
(2) 从方法学的角度认为:面向对象方法是面向对象的世界观在开发方法中的直接运用,强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象构造系统,而不应围绕功能构造系统。
\软\件\工\程\与\实\践\(第3版)\第5章 / 面向对象开发方法/ 5.1.1对象与类的相关概念
掌握面向对象的开发方法,需要理解相关概念。
1. 对象及其三要素
对象(Object)是系统中的基本运行的实体(如函数、控件),是代码和数据的集合,即现实世界中的具体事物,是构成软件系统的基本单位,面向对象系统是数据抽象与过程抽象的综合。面向对象方法以对象分解代替传统方法的功能分解。面向对象的系统由对象组成,复杂的对象由简单的对象组合而成。对象具有三要素: 对象标识、属性和服务。其中,对象标识即对象的名称,用于唯一地识别系统内部对象,在定义或使用对象时指定。属性(Attribute)也称为状态(State)或数据,用于描述对象的静态特征。在某些面向对象知识拓展
面向对象的三大特征 程序设计(Object Oriented Programming,OOP)语言中,属性通常被称为成员变量(Member Variable)或简称变量(Variable)。服务(Service)也称为操作(Operation)、行为(Behavior)或方法(Method)等用于描述对象的动态特征,在某些OOP语言中,服务通常被称为成员函数或简称函数。
2. 封装的概念及含义
封装(Encapsulation)是指将软件内部具体实现进行隐藏,将数据与操作数据的源代码进行有机结合,形成“类”,类的成员包括数据和函数。封装通过抽象得到的数据和行为(或功能)结合,形成一个有机的整体。封装是对象的一个重要特性,在面向对象的系统中,对象是一个封装了数据属性和操作行为的实体。使用某一对象时,只需知道其向外界提供的接口形式,无须知道其数据结构细节和实现操作的算法。也是为实现各种类型的知识拓展
对象的两个视图与封装 数据传送,将被传送的数据结构映射到另一种数据结构的处理方式。封装具有两层含义: 一是对象是其全部属性和服务紧密结合而形成的一个整体;二是对象如同一个密封的“黑盒子”,表示对象状态的数据和实现操作的代码都被封装在其中。
3. 类和实例的概念
类(Class)也称为对象类(Object Class)是对具有相同属性和服务的一组对象的抽象定义。类与对象是抽象描述与具体实例的关系,一个具体的对象被称为类的一个实例(Instance)。具有相同特征和行为的对象集合就是类。对象的状态包含在实例的属性中。【案例52】由“李凯的手机”等各种具体对象,可以得到“手机”类,而这些具体的对象就是该类的实例,如图51所示。
图51类与实例类定义了各个实例所共有的结构,类的每个实例都可使用类中定义的操作。实例的当前状态由实例所执行的操作定义。通常类可视为一个抽象数据类型(ADT)的实现,特别将类看作表示某种概念的一个模型。类实际是单个的语义单元,可以自然地管理系统中的对象,匹配数据定义及操作。类加入操作给记录赋予语义,可以提供各种级别的可访问性。
评论
还没有评论。