





定价:69.8元
印次:1-2
ISBN:9787302606840
出版日期:2023.02.01
印刷日期:2024.02.20
图书责编:付弘宇
图书分类:教材
全书共5篇、14章,涵盖软件工程领域涉及的主要内容。前四篇内容主要包括:软件的发展历程,软件的定义和特点,软件危机产生的原因,软件工程产生的背景以及软件生命周期中各阶段的工作;如何利用数据流图、状态转换图和数据字典等来建模用户需求,如何采用层次图、IPO图及程序流程图来设计软件,如何有效地将结构化设计结果转换为程序代码,对完成的软件进行测试;如何提取用户需求、分析用户活动、建模系统状态、提取类的候选者和类关系,对象之间如何交互来完成业务逻辑、如何实现面向对象设计结果,为以面向对象方法实现的软件设计测试用例;经典的软件开发过程、现代主流的软件开发过程以及项目开发过程中的管理实践。最后一篇讲解腾讯公司内部的敏捷开发流程和开发平台,以及结合领域驱动设计总结如何分析、设计和实现云原生软件系统。 本书配有1000分钟左右的MOOC视频、教学大纲、PPT课件、习题等丰富的教学资源。 本书可作为高等学校计算机相关专业的教材、软件工程专业的导论课教材,也可作为计算机软件相关领域从业者的参考资料和相关培训的教材。
杜文峰,深圳大学计算机与软件学院副教授,软件工程系副系主任。具有丰富的软件开发、设计经验,且具备三个千万级软件项目开发管理经验,创业2次,多次讲授软件工程课程,在该领域具有一定的技术和经验积累。
我一直以为前言是写书前的激情和计划安排,如今才明白前言是对已完成工作的总结。执笔3年,既是对领域知识的总结,也是一个自我修行和自我完善的过程。 “盛年不重来,一日难再晨”。站在三尺讲台,看着一张张朝气蓬勃的面孔,我总是如履薄冰,担心误人子弟。相比于学生时代不谙世事的我们,如今年轻的学生面临更多的机遇与挑战,同时也有更多关于选择的迷茫。如何做好一名合格的“老师”,以及如何成就自己的“价值”,成为我著书期间思考最多的问题。 回顾从求学到工作的这些年,从用pctools修改内存数据、进行病毒分析到“单挑”一个中型项目,从小型项目管理到公司部门管理,从代码coding到市场竞标,从创业到创业失败,从研究转向教学……似乎冥冥中有一根线把我牵引到这里,让我在此留下三年值得回首的光阴。 与其他计算机课程解决“0→1”的问题不同,“软件工程”作为一门综合性的计算机课程,主要讲解软件开发中的基本原理、概念、技术和方法,需要解决“1→N”的问题。随着对软件工程领域知识的钻研和对相关内容的深入理解,原来信心满满的我才知所学内容仅为“沧海一粟”,也让我在编写本书的过程中“如临深渊”。为了准确理解程序效率,我在不惑之年再次挑战了“算法分析与设计”和“数据结构”两门课程;在编写云原生相关内容时又体会了《侠客行》中贝海石由“白首太玄经”反推前23句内容的艰辛。 编撰思路 经过多年的教学实践,且翻阅了可以获得的近乎所有软件工程教材及相关书籍之后,作者发现大部分的教材在形式上都将“软件过程”置于软件工程概述之后、软件开发方法之前。同时,由于各位作者对软件方法内容理解的深度和范围...
第一篇 软件工程基础
第1章 软件发展史及软件工程 3
1.1 软件的发展历程 3
1.2 软件的定义和特点 5
1.3 软件危机 6
1.4 软件工程 7
1.5 软件开发方法 9
1.6 软件工程知识体系 12
1.7 小结 13
1.8 习题 13
第2章 软件生命周期 14
2.1 项目构想和立项 14
2.2 可行性分析 15
2.3 项目开发计划 17
2.3.1 制订项目开发计划 17
2.3.2 项目开发计划评审 19
2.4 需求分析 19
2.4.1 需求的定义和组成 20
2.4.2 需求管理 21
2.5 软件设计 24
2.5.1 软件设计的目标和任务 25
2.5.2 软件设计阶段 26
2.5.3 模块化与模块独立 26
2.5.4 经典软件体系结构 27
2.5.5 设计复审 34
2.6 软件实现 35
2.6.1 程序设计语言的选择 35
2.6.2 软件编码规范 37
2.6.3 软件效率 38
2.7 软件测试 41
2.7.1 软件测试的发展历程 42
2.7.2 软件测试技术 45
2.7.3 软件测试策略 50
2.7.4 软件测试步骤 55
2.7.5 软件测试的原则 56
2.7.6 软件调试 58
2.7.7 软件可靠性 61
2.8 软件维护 61
2.8.1 软件维护分类 62
2.8.2 软件维护实施 62
2.9 小结 67
2.10 习题 67
第...
2. 本课程团队与腾讯科技股份有限公司合作,将本书的内容制作成了高质量MOOC课程,获评“2022年教育部-腾讯产学研合作协同育人杰出项目案例”。
3. 借鉴了“新工科”理念,邀请腾讯科技股份有限公司的TAPD团队协助编写了敏捷开发的相关内容和云原生的相关介绍。
4. 从“求学”的角度来组织内容,在介绍软件工程概念、软件生命周期模型的基础上,直接进入软件开发方法的学习,而将“软件过程”置于软件开发方法之后。通过这种组织方式,帮助读者在具备了基本的软件开发能力后,更好地理解“过程”在项目开发和管理中的重要性。