全新正版现货,以书名为准,放心购买,购书咨询18931383650朱老师
¥ 26.99 7.7折 ¥ 35 全新
库存8件
作者马小军、张玉祥
出版社清华大学出版社
ISBN9787302474111
出版时间2017-09
装帧平装
开本16开
定价35元
货号25148742
上书时间2024-10-14
序
软件工程学科的发展有其历史的必然。近半个世纪以来,随着通信、计算机、网络应用的普及,作为其灵魂的软件的开发显得越来越重要。无数的反例证明,如果软件产品的质量达不到要求,带来的损失是极其严重的。为保证或提高软件产品的质量,关键的问题就是从技术和管理两方面双管齐下,使用得到实际考验的一系列软件开发实践,作为我们工作的指导原则,切实做好软件开发的各项活动。
有人讲,软件工程课程学不学没有用处。事实上是这样吗?不是。我在给清华大学计算机系的工程硕士上软件工程课的时候,他们说,他们上的所有课程中,这门课有用。因为他们都是从事软件开发多年的在职研究生,他们反映,多年来困惑他们的很多问题,从课程中都能找到对应的解决方法。有时,看上去是一句普通的“原则”,在实践上却能解决大问题。所以,虽然课本中讲了许多条条框框,其实都是有其实践背景的。
还有人讲,软件工程这门课程太枯燥,听不懂,做不会,学习起来提不起兴趣。这就是学习方法问题了。软件工程有一条主线,即软件生命周期过程。它的特点是分阶段、有迭代。
从软件开发方法来看,不论是传统的结构化方法,还是面向对象方法,或新的面向服务架构,它们都有各自的适用领域,有不同的视角、不同的活动组织方式和不同的架构。
从软件工程过程来看,基本的是开发过程、运行过程和维护过程,此外还有各种支持过程和组织过程,它们为基本过程提供辅助支持和各种保证。
从软件工程管理来看,有整体管理,包括启动、计划、执行、控制和收尾5大过程,此外,还要考虑需求、成本、进度、质量、人员、沟通和风险等方面的管理活动。
如果我们明确了软件工程的主要方面,就可以有目的、系统地进行课程的学习了。
总之,对于软件工程,应首先想到它是有用的,也可能将来工作后用不到操作系统原理、计算机原理等课程所讲的内容,但只要是从事软件开发,软件工程就是回避不了的。其次,要有它不难学的思想。关键是对将来自己工作的领域要有规划,找准方向,有针对性地学习。特别地,由于社会需求〖1〗软件工程基础与应用(第2版)序[3]〖3〗是不断变化的,软件开发技术是不断进步的,软件开发工具是层出不穷的,我们不要一味追求新的,而应该从成熟、可靠的技术和工具学起。在学校里打好基础,将来在工作中就很容易接受新东西。
马小军老师从事软件工程的教学已经20多年了,我与她的相识是在20世纪90年代初她听我的软件工程课的时候。她是一位对工作很认真的老师,在这么多年的教学中已经积累了丰富的教学经验,并领导了许多软件开发项目,从如何培养应用型技术人才角度出发,对软件工程的教学体系、课程内容选材和实践活动组织等各方面都有很好的想法,这本教材的编写就体现了她的教学思路和多年教学的体会,有理论,有案例,全书在内容组织方面注重科学性和系统性,在行文叙述方面颇具简洁性和可读性。我推荐同学们认真阅读,切实领会其实质,不断进步。
清华大学计算机系教授殷人昆
2013年7月
第2版前言
基于近几年来使用本书第1版开展“软件工程”课程教学的感受以及师生们对一些问题的认识与研讨,同时结合软件领域技术的使用状况,本书第2版更注重软件工程基本理论和技术在当前软件开发领域中的实用性、学生在学习过程中的易理解性以及核心概念和技术的拓展应用,主要做了如下调整:
(1) 增加了对软件工程师职业道德及基本素质的论述,使学生对未来成为一名软件工程师有初步的了解。
(2) 略掉了近几年较少使用且容易造成学习和理解障碍的概念和形式化使用,例如受限关联、链属性等。
(3) 对一些常用且很重要的概念、名词和技术使用方法等,则调整了论述的方式,增强了条理性,并加大举例说明的力度,同时也更注重举例的可理解性与前后连贯性,例如模块结构图的与差设计、UI设计、面向对象技术与UML建模过程中类的抓取等。
(4) 针对测试工作重要性的不断提升,特别是Web类软件和游戏类软件的大量推出,测试技术与方法也得到了不断的扩充与完善,增加了自动化测试技术和工具的介绍。
(5) 伴随各章进行系统化应用学习的综合案例被完整替换,选择的是国内所有高校大学生每年都会亲身参与的体能测试活动作为背景,分别采用结构化技术和面向对象技术,进行了项目需求定义、系统分析和系统设计等开发过程的系统化详细论述。对于其他非高校学生读者,鉴于一般也都有体测的经历,与此案例有极大的相似之处,学习理解应该也比较容易。选择此项目的另一个考虑是,测试活动很有可能随着要求和地域的不同发生变化,学生则可以根据已给出的分析和设计成果进行相应的方案调整练习,从而达到理论与实践及时的结合。
(6) 对各章后的练习题都做了调整,不仅增加了对一些容易混淆概念的对比理解题,还增加了一些激励学生结合实际体会或兴趣进行分析思考的题目,以期使学生将原以为枯燥的学习、抽象的技术概念能够马上用于实际问题的解决,提高继续学习的兴趣和热情。
本书第2版的编写依然遵循内容实用和系统化、图形规范和一致的原则,融入了多年的教学和实践经验,并采用通俗易懂的语言和简明完整的举例进行表述。书中所有图形(除界面截图以外)均采用Microsoft Office Visio 2007或2010绘制。〖1〗软件工程基础与应用(第2版)本书共计10章,马小军作为总负责人,提出了总体修改方案,并修改、编写了第1~6章,第7~10章由张玉祥修改、编写。
在本书第2版的修改编写过程中,获得了“北京联合大学‘十三五’规划教材建设项目”的资助,也得到了张冰峰、马楠和廖礼萍三位老师的支持和协助,同时又参阅了大量的文献和资料,为终内容的筛选与论述提供了丰富的借鉴,在此向这些老师、北京联合大学领导和专家以及文献资料的作者再次表示衷心的感谢。
由于时间关系且作者水平有限,书中难免会存在问题和不妥之处,真诚地希望广大读者和软件工程领域的专家能够提出宝贵的意见和建议,我们会虚心地接受并认真思考、修正。作者联系方式: xxtxiaojun@buu.edu.cn。
编者
2017年6月于北京
第1版前言
软件工程以研究如何高效率地开发高质量、高可靠性、易维护的软件产品为核心内容,自从20世纪60年代末推出以来,对软件产业的发展起到了巨大的推动作用。软件工程思想的严谨性、开发过程的规范化,为软件项目开发提供了理论保障;各种开发技术和开发方法的涌现和使用,计算机硬件性能的极大提高,以及网络技术和多媒体技术等的不断完善,为开发功能健全、性能良好、用户满意的软件,提供了技术支持。由此也促进了软件在各行各业、各个领域中的广泛应用,成为企事业单位全面实现信息化建设的核心内容。随着软件应用的广泛化与内部功能更新的频繁化,用户对软件质量和健壮性的要求更加突出,只有严格遵循工程化和规范化思想的指导,软件开发才可能获得成功。
在很多人的概念里,软件开发就是编写程序,即便是一些公司里面的技术人员,对软件工程也缺乏正确的认识,项目开发过于随意,导致公司虽然能够获得了眼前的经济效益,但因产品在后期不断出现问题,直接影响了企业的形象,长远收益大打折扣。21世纪以来,软件工程作为独立的学科体系,与计算机科学、信息工程、计算机工程等并存,体现出国家对软件技术人才的培养更加重视。信息化发展步伐的迈进,使软件人才的社会需求量也显著提高。软件开发不再是软件专业学生独自掌握的知识和专有技能,而变得更加大众化和普遍化。因软件工程不仅强调技术及其应用,也是一种分析问题和解决问题的思想和方法。所以,系统学习软件工程的知识,对任何专业、将来做任何工作的人而言,都是十分有意义和必要的。
目前市面上出版的软件工程教材比较多,所介绍的理论知识和开发技术也很全面,但各部分的举例不够系统性,特别是对于一些非计算机专业的学生而言, 欠缺很多软件方面的专业基础知识,理解起来有一定困难。其结果导致对各章节知识的理解和持续性,特别是技术方法的完整运用,学生难以体会和感受。
为此,我们结合对软件工程的了解与感悟以及多年的教学体会与经验,对软件工程的基本概念、基本理论和主流技术进行系统梳理后编写了本书,书中不仅进行了理论、技术和工具的介绍,同时选择了一个难度和规模适中且学生容易理解的项目作为综合案例,在书中的主要章节贯穿描述,目的是帮助学生正确理解所学内容,系统化地掌握和认识软件工程的思想、技术在实际开发中的具体运用,从而使教材的阅读、学习达到理论与实践的密切结合。
全书共10章,依照软件生存周期的理念展开叙述,具体内容如下。
第1、2章是软件工程综述,主要介绍软件的概念和特点,软件工程提出的背景和基本原理,几种主流开发方法,软件生存周期的组成和开发模型,以及常用的建模工具等。
第3章是需求调研与可行性研究,主要介绍需求调研的基本方法、用户业务流程的描述、项目可行性分析及软件成本/效益分析的常用方法等。
第4、5章是系统分析与设计,重点介绍基于结构化技术的分析与设计方法,包括主要任务、工作原理、基本原则,以及数据流程图、数据字典和软件结构图的构建与优化等。
第6章是详细设计与编码实现,主要介绍算法的常用描述工具、界面设计需要注意的问题以及一般编码原则等。
第7、8章是基于面向对象技术的分析与设计方法以及统一建模语言UML,主要介绍面向对象分析与设计的基本原理、工作过程以及面向对象技术和UML中的主要视图模型与构建方法等。
第9章是软件测试技术与维护,主要介绍测试的概念与方法、软件调试的步骤与方法以及软件维护的概念、影响维护的因素和提高可维护性的方法。
第10章是软件项目管理,主要介绍软件规模估算方法、风险分析与监控、人员的组织与管理、进度与软件质量的控制等。
作为主编,马小军负责本书的结构组织、综合案例的确定和统稿,并编写了第1章、第2章和第4章,廖礼萍编写了第5章、第7章和第8章,第3章、第9章和第10章由张冰峰编写,第6章由马楠编写。全书由马小军统稿。
在本书的编写过程中,参阅了大量的文献和资料,在此向这些文献资料的作者深表崇敬之意并衷心的感谢。
本书的编写以北京联合大学信息学院软件工程平台课教学改革为依托,突出内容的实用性和系统化以及图形的规范化和一致性,语言通俗易懂,结构编排合理;所有举例简明、完整,同时,书后配有丰富的习题。书中所有图形(除界面截图以外)均是用Microsoft Office Visio 2007绘制的。
本书既可作为高等院校相关专业本科生软件工程课程的教材或参考书,也可作为项目管理人员、应用软件开发人员和专业技术人员的技术参考资料。
我们希望读者通过阅读本书,了解软件工程的理念,理解二种主流技术的特点和基本原则,掌握各种模型和建模工具的使用。同时,通过综合举例,感受软件项目开发过程中系统分析和系统设计的关系与具体实施方法,为今后独立从事一个小型软件项目的开发提供参考和帮助。但由于时间关系且作者水平有限,书中难免会存在问题和不妥之处,真诚地希望读者和软件工程领域专家能够提出宝贵的意见和建议,以帮助我们逐步完善和修正。作者联系方式: xxtxiaojun@buu.edu.cn。
〖1〗软件工程基础与应用(第2版)前言[3]〖3〗编者
2013年5月于北京
目录
第1章概述/1
1.1软件的基本概念及特点1
1.1.1软件是什么1
1.1.2软件的分类3
1.1.3软件的发展5
1.2软件工程的提出6
1.2.1软件工程提出的导火索6
1.2.2软件工程的原理8
1.2.3软件工程的目标9
1.3软件开发方法10
1.3.1结构化方法10
1.3.2原型化方法11
1.3.3面向对象方法12
1.3.4敏捷开发方法13
1.4软件工程师的职业道德与素质14
本章小结15
习题16
第2章软件生存周期模型/17
2.1软件生存周期及其组成17
2.1.1软件生存周期的概念和提出的意义17
2.1.2软件生存周期的划分与组成18
2.2软件开发模型19
2.2.1瀑布模型20
2.2.2快速原型模型21
2.2.3增量模型22
2.2.4螺旋模型22
2.2.5喷泉模型23
2.3常用软件建模工具24
2.3.1Microsoft Visio24〖1〗软件工程基础与应用(第2版)目录[3]〖3〗2.3.2Rational
Rose27
本章小结28
习题29
第3章用户需求调研与可行性分析/30
3.1用户需求调研30
3.1.1关于需求30
3.1.2用户需求调研的必要性30
3.1.3需求调研方法32
3.1.4调研内容和步骤32
3.2业务描述35
3.2.1业务流程定义35
3.2.2业务流程图36
3.3软件项目可行性分析39
3.4成本/效益分析41
3.4.1软件开发成本估算41
3.4.2软件效益分析42
本章小结44
习题44
第4章基于结构化方法的需求分析/45
4.1需求分析简述45
4.1.1何为需求分析45
4.1.2需求分析的主要任务46
4.1.3需求分析的原则47
4.1.4需求分析方法的分类48
4.2结构化分析48
4.2.1结构化分析的特点和原则48
4.2.2结构化分析的主要工具49
4.3数据流程图的构建50
4.3.1构建数据流程图的作用50
4.3.2数据流程图的基本符号51
4.3.3构建数据流程图的步骤52
4.3.4构建数据流程图需要注意的问题53
4.4数据字典56
4.4.1构建数据字典的意义和用途56
4.4.2数据字典的主要内容56
4.4.3构建数据字典使用的符号57
4.4.4数据字典举例58
4.5结构化分析建模综合举例58
4.5.1系统数据流程图58
4.5.2系统数据字典61
本章小结64
习题64
第5章系统概要设计/66
5.1简述66
5.1.1概要设计基本任务66
5.1.2概要设计基本方法67
5.2概要设计基本原理69
5.2.1模块化69
5.2.2抽象70
5.2.3逐步求精70
5.2.4信息隐藏和局部化71
5.2.5模块独立性71
5.3结构化系统设计74
5.3.1软件结构图种形式74
5.3.2数据流程图的分类75
5.3.3变换型设计76
5.3.4事务型设计77
5.4软件结构的其他描述工具——HIPO图81
5.5软件结构的优化准则83
5.6结构化设计综合举例85
本章小结88
习题88
第6章详细设计与编码实现/90
6.1详细设计的基本任务90
6.2详细设计的常用工具90
6.2.1程序流程图91
6.2.2盒图92
6.2.3PAD图93
6.2.4判定表与判定树93
6.2.5过程设计语言的使用95
6.3人机界面的设计96
6.3.1人机界面一般风格97
6.3.2人机界面设计原则及相关问题99
6.3.3人机界面设计过程100
6.4详细设计综合举例100
6.4.1人机界面100
6.4.2数据库表设计101
6.4.3模块设计103
6.5编码实现106
6.5.1编码工具介绍106
6.5.2编码工具的选择107
6.5.3编码原则107
6.5.4编码举例108
本章小结111
习题112
第7章面向对象技术/113
7.1面向对象概述113
7.1.1面向对象提出的背景113
7.1.2面向对象方法简介114
7.1.3面向对象基本概念115
7.1.4面向对象的特征118
7.2面向对象分析119
7.2.1面向对象分析任务概述119
7.2.2面向对象分析模型120
7.2.3面向对象分析过程126
7.3面向对象设计128
7.3.1面向对象设计任务128
7.3.2面向对象设计与面向对象分析的关系129
7.3.3面向对象设计基本原则130
7.3.4面向对象设计模型132
7.3.5面向对象设计过程132
本章小结135
习题135
第8章UML建模/137
8.1UML概述137
8.1.1发展历史137
8.1.2UML简介138
8.1.3视图138
8.1.4UML中的图139
8.2用例模型的构建140
8.2.1用例图的模型元素141
8.2.2确定参与者142
8.2.3确定用例142
8.3静态模型的构建146
8.3.1类图和对象图146
8.3.2标识类的方法150
8.3.3包图153
8.4动态模型的构建156
8.4.1顺序图156
8.4.2协作图157
8.4.3状态图和活动图158
8.5物理体系结构的构建161
8.5.1组件图161
8.5.2部署图162
8.6综合实例163
8.6.1系统分析163
8.6.2系统设计172
8.6.3物理结构设计176
本章小结180
习题181
第9章测试与维护/183
9.1软件测试简介183
9.1.1测试定义183
9.1.2软件测试的原则184
9.1.3软件测试的对象185
9.2软件测试模型185
9.2.1V模型185
9.2.2W模型186
9.3软件测试的一般过程187
9.3.1测试需求分析阶段187
9.3.2测试计划阶段187
9.3.3测试方案设计阶段188
9.3.4测试用例实现阶段188
9.3.5测试执行阶段188
9.3.6评价与关闭阶段189
9.4软件测试常用方法189
9.4.1黑盒测试与白盒测试189
9.4.2黑盒测试法189
9.4.3白盒测试法194
9.5面向对象测试197
9.6软件测试自动化
— 没有更多了 —
以下为对购买帮助不大的评价