新書推薦:
《
盗墓笔记之秦岭神树4
》
售價:NT$
259.0
《
战胜人格障碍
》
售價:NT$
302.0
《
逃不开的科技创新战争
》
售價:NT$
467.0
《
漫画三国一百年
》
售價:NT$
250.0
《
希腊文明3000年(古希腊的科学精神,成就了现代科学之源)
》
售價:NT$
374.0
《
粤行丛录(岭南史料笔记丛刊)
》
售價:NT$
374.0
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:NT$
286.0
《
女人的中国医疗史:汉唐之间的健康照顾与性别
》
售價:NT$
484.0
|
編輯推薦: |
面向对象方法学是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在对象概念基础上的方法学。用面向对象方法开发软件项目,通过面向对象分析(OOA)、面向对象设计(OOD)以及面向对象编程(OOP)对软件项目的对象模型、功能模型和动态模型进行迭代开发。利用面向对象测试和项目管理控制软件项目的质量。项目维护则能延长项目使用时间。本书内容包括软件工程基础知识、项目启动阶段、项目实施阶段、项目维护和管理等四篇共13章,以面向对象方法为例,叙述面向对象软件工程生命周期各个阶段的任务、过程、方法和工具,从项目可行性研究和项目计划开始,到OOA、OOD、OOP、OOT,直至项目发布和维护。
|
內容簡介: |
内容简介: 教材分为软件工程基础知识、项目启动阶段、项目实施阶段、项目维护和管理等四篇共13章,以面向对象方法为例,叙述面向对象软件工程生命周期各个阶段的任务、过程、方法和工具,从项目可行性研究和项目计划开始,到OOA、OOD、OOP、OOT,直至项目发布和维护。 教材以具体案例(机票预订系统)贯穿到项目开发各个阶段。*篇介绍软件工程基础知识。第二篇利用数据流程图和数据字典对项目做简要的需求分析,在项目得出可行结论后,即可制定项目计划和组织项目团队。第三篇首先利用UML建立对项目进行迭代开发,在原则、原理和规则的指导下,建立面向对象模型(主要包括对象模型、功能模型和动态模型);然后,运用Spring Boot框架建立软件分层结构接着;实现功能模型中确定的所有功能;*后,部署和发布项目。第四章则对项目进行管理和维护。 教材在项目每个开发阶段末期,都会给出一个文档模板,记录开发流程。 本教材除了介绍面向对象软件工程方法学、原理、原则和规则外,还介绍了建模技术、软件实现框架以及项目管理技术。
|
關於作者: |
曹平,主要作者从事计算机科学与技术专业及软件工程专业教学工作近20年,有着丰富的教学经验,主讲《JAVA语言程序设计》、《软件设计师考试辅导》、《JavaWeb项目实战》、《Java框架技术》、《软件工程》、《数据结构》等课程,辅导学生参加互联网 创新创业大赛及软件外包服务大赛,已编写《数据结构》(用C语言描述)
|
目錄:
|
第1篇软件工程基础知识
第1章软件工程3
1.1软件与软件危机4
1.1.1软件的定义及特点4
1.1.2软件危机4
1.2软件工程概述5
1.2.1软件工程的定义5
1.2.2软件工程的基本原理6
1.2.3软件工程方法学7
1.2.4软件工程的基本原则9
1.2.5现代软件工程9
1.3计算机辅助软件工程10
1.4随堂笔记12
第2章软件过程15
2.1软件生命周期16
2.2软件过程的定义18
2.3软件过程模型19
2.3.1瀑布模型19
2.3.2快速原型模型20
2.3.3增量模型22
2.3.4螺旋模型23
2.3.5喷泉模型25
2.3.6统一过程26
2.3.7敏捷过程与极限编程28
2.4软件过程管理31
2.5随堂笔记32
第2篇项目启动阶段
第3章项目可行性研究37
3.1可行性研究任务38
3.2可行性研究过程39
3.3数据流图和数据字典40
3.3.1数据流图40
3.3.2数据字典47
3.4项目可行性分析报告格式49
3.5成本效益分析50
3.5.1成本估计技术50
3.5.2成本效益分析的方法51
3.6随堂笔记52
第4章软件需求分析56
4.1需求分析概述57
4.2需求分析任务57
4.2.1确定对系统的综合要求57
4.2.2分析系统的数据要求58
4.2.3导出系统的逻辑模型58
4.2.4修正系统开发计划58
4.3需求分析过程58
4.4需求分析建模与需求规格说明60
4.4.1需求分析建模60
4.4.2软件需求规格说明60
4.5软件需求规格说明书的格式62
4.6需求管理63
4.7随堂笔记63
第5章项目计划与团队建设67
5.1制订项目计划68
5.1.1制订项目计划的目的68
5.1.2项目计划的制订68
5.1.3设计项目计划71
5.1.4项目计划的修改与维护72
5.2建立项目团队72
5.2.1项目团队的定义72
5.2.2建立项目团队的目的73
5.2.3建立和管理项目团队73
5.2.4项目团队的组织结构74
5.3随堂笔记75
第3篇项目实施阶段
第6章统一建模语言81
6.1UML概述82
6.1.1可视化建模和UML82
6.1.2UML的组成83
6.1.3UML中的图86
6.2PowerDesigner概述91
6.2.1PowerDesigner的发展历程92
6.2.2PowerDesigner功能模型92
6.2.3PowerDesigner与其他建模平台的比较94
6.3UML初步实践96
6.3.1用例图97
6.3.2类图和对象图98
6.3.3顺序图和通信图101
6.3.4状态图103
6.3.5活动图103
6.3.6组件图与部署图104
6.4随堂笔记106
第7章面向对象分析与建模111
7.1面向对象分析方法112
7.1.1面向对象分析的基本过程112
7.1.2需求陈述113
7.1.3对象模型114
7.1.4动态模型118
7.1.5功能模型121
7.1.6定义服务123
7.2面向对象分析实践123
7.2.1建立功能模型124
7.2.2建立对象模型125
7.2.3建立动态模型126
7.3需求分析说明书的格式128
7.4随堂笔记129
第8章面向对象设计132
8.1设计过程133
8.2设计原理134
8.3启发规则140
8.4系统设计143
8.4.1软件架构设计143
8.4.2数据库设计146
8.4.3系统运行软件154
8.4.4概要设计说明书格式154
8.5对象设计156
8.5.1对象设计的任务156
8.5.2程序设计的工具157
8.5.3对象设计原则162
8.5.4实践项目包设计164
8.5.5实践项目对象的设计165
8.5.6实践项目界面的设计173
8.6技术设计说明书格式178
8.7随堂笔记179
第9章面向对象编程184
9.1编码概述185
9.1.1选择程序设计语言185
9.1.2形成程序设计风格186
9.2Spring Boot概述187
9.2.1Spring Boot简介187
9.2.2Spring Boot的特征188
9.2.3Spring Boot开箱即用的依赖模块配置189
9.3Spring Boot项目实践193
9.3.1开发框架193
9.3.2准备工作194
9.3.3建立Entity层194
9.3.4建立DAO层196
9.3.5建立Service层198
9.3.6建立Controller层204
9.3.7编写Web页面212
9.4随堂笔记220
第10章软件测试223
10.1软件测试基础224
10.1.1软件测试的定义和目标224
10.1.2软件测试的准则224
10.1.3测试方法225
10.2测试步骤226
10.2.1单元测试226
10.2.2集成测试227
10.2.3确认测试232
10.2.4系统测试232
10.2.5验收测试233
10.2.6平行运行234
10.3测试用例234
10.3.1测试用例的定义234
10.3.2测试用例的作用和重要性234
10.3.3测试用例的设计原则235
10.3.4测试用例的设计步骤235
10.3.5测试用例设计文档模板236
10.4测试技术236
10.4.1白盒测试技术236
10.4.2黑盒测试242
10.4.3灰盒测试251
10.5面向对象测试252
10.5.1面向对象方法对测试的影响252
10.5.2面向对象测试模型252
10.5.3测试计划的制订253
10.5.4面向对象的单元测试261
10.5.5面向对象的集成测试268
10.5.6面向对象的系统测试270
10.6软件测试报告格式271
10.7软件测试工具实践275
10.7.1JUnit简介275
10.7.2JUnit特点276
10.7.3JUnit 4中的注释276
10.7.4JUnit 4中常用的断言276
10.7.5JUnit 4实践277
10.8随堂笔记280
第11章软件部署283
11.1软件部署的任务和目标284
11.1.1软件部署的定义284
11.1.2软件部署的步骤284
11.1.3软件部署的需求分析285
11.2制订软件部署计划287
11.3安全部署288
11.4软件部署实践289
11.4.1软件部署的准备工作289
11.4.2软件项目部署290
11.4.3验证部署项目292
11.5随堂笔记293
第4篇项目维护和管理
第12章软件维护299
12.1软件维护的定义300
12.2软件维护的特点300
12.2.1结构化维护与非结构化维护的差别巨大301
12.2.2维护的代价高昂301
12.2.3维护的问题很多302
12.3软件维护过程302
12.4软件的可维护性304
12.4.1决定软件可维护性的因素304
12.4.2软件文档305
12.4.3可维护性复审310
12.4.4软件问题报告311
12.5预防性维护312
12.6软件再工程过程313
12.7随堂笔记315
第13章软件项目管理318
13.1软件项目管理概述319
13.1.1项目及其特点319
13.1.2软件项目管理简介319
13.1.3软件项目管理职责和活动319
13.2估算软件规模320
13.2.1代码行技术320
13.2.2功能点技术321
13.3工作量估算323
13.3.1静态单变量模型323
13.3.2动态多变量模型324
13.3.3COCOMO 2模型324
13.4进度计划326
13.4.1估算开发时间327
13.4.2Gantt图328
13.4.3PERT图330
13.4.4估算工程进度331
13.4.5关键路径333
13.4.6机动时间334
13.5质量保证335
13.5.1软件质量335
13.5.2软件质量保证的措施336
13.6软件配置管理338
13.6.1软件配置338
13.6.2软件配置管理过程339
13.7应用Project340
13.7.1Project的功能及特点340
13.7.2Project工作界面342
13.7.3项目管理专用术语浏览343
13.7.4Project操作入门345
13.7.5Project项目管理实践345
13.8随堂笔记350
参考文献353
附录A实践环节任务分配表354
|
內容試閱:
|
高校计算机专业、软件工程专业以及信息管理类专业都会开设软件工程课程。目前,软件工程的教材较多,且大都关注理论教学,涉及具体项目的比较少。也有少量教材将实际项目作为软件开发原型贯穿于理论教学之中,但是,对于初识软件工程学的读者来说,理论知识的欠系统性和欠完整性会直接影响读者对软件开发过程的理解。
本书权衡了软件工程学的理论和实践,以理论为指导、铺垫,随着具体案例的实施,将理论付诸实现;同时,实施中问题的解决又有助于更深入地理解理论。总之,教材将具体的软件项目开发案例贯穿于理论教学中,介绍了运用面向对象方法开发软件的全过程,包括可行性研究、面向对象分析、面向对象设计、面向对象编程、面向对象测试,以及软件项目的部署、维护和管理。
编写本书的目的是让读者在具体的实践中体会软件工程,提高开发软件的综合能力,包括分析建模能力、迭代开发能力、编程能力、设计测试用例和组织测试能力、沟通和协作能力,以及编写软件文档能力等。
1. 本书的特点
参与本书编写的教师是从事软件工程课程和软件应用课程教学的一线教师,有丰富的教学经验;此外,也包含众多软件从业人员多年工作经验的总结。值得一提的是,本书的案例是学生毕业设计的作品。因此,本书最终可作为一本实践指导攻略书。
本书使用面向对象方法,围绕具体软件项目案例展开课程教学。本书共有4篇: 软件工程基础知识、项目启动阶段、项目实施阶段,以及项目维护和管理。每篇又由若干章组成,每章包括导读、章节内容、随堂笔记。其中,随堂笔记包括本章摘要(由读者总结)、习题和拓展阅读(读读书),其中习题包括练练手(章节基础练习)和动动脑(综合练习)。各章节的习题源于软件水平考试真题、研究生入学考试真题、教材案例开发需求。
本书在讲解软件开发各个阶段的同时,给出了各个阶段性文档模板格式,有助于读者将实施过程记录归档,保证开发的持续性和一致性;同时,学习本书能提高读者的文档编制能力。
2. 本书的主要内容
本书涉及的主要内容包括以下几方面。
(1) 阐述了软件工程的基本概念、基本原理和原则、软件工程方法学、软件生命周期、软件工程、软件生命周期模型以及软件过程管理,使读者对软件工程有一个整体的、概念性的了解,为之后的软件工程实践打下理论基础。
(2) 可行性研究在软件项目启动前,主要对软件项目进行一次简要的需求分析,得出项目是否值得实施的结论。此阶段,通过数据流图、数据字典等图形工具对软件项目进行结构化分析。此外,该阶段还需要对项目成本效益进行分析。
(3) 软件需求分析的概述、项目计划的编写以及团队的建设,说明软件项目进入启动阶段,为项目的实施做好铺垫。
(4) 由于本书是使用面向对象方法展开软件开发,因此,在项目实施阶段前期叙述了UML的作用以及组成,重点介绍了UML中的图以及这些图在建模工具PowerDesigner中的实践。
(5) 面向对象软件工程(OOSE)包括面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)以及面向对象测试(OOT)各个阶段。本书的重点是通过项目案例阐述上述各个阶段的关键理论,并付诸实践。
① 通过用UML建立面向对象软件开发中的三种模型,即对象模型、功能模型及动态模型,详细介绍和说明面向对象软件工程中各阶段的迭代开发理念,以及面向对象设计原则对软件开发的指导作用。
② 详细介绍了软件测试的基础概念、测试方法和测试步骤。从面向对象技术角度出发,介绍了面向对象测试的特点、测试方法和测试过程。
③ 通过项目案例,介绍系统设计和对象设计的范畴,详细介绍了数据库设计、对象设计和用户界面设计的过程,并指导读者在具体的IDE(集成开发环境)下实施项目。
(6) 在介绍项目实施后,介绍了项目的具体部署和软件维护阶段的主要任务,以及如何提高软件的可维护性。
(7) 从项目管理的角度出发,阐述了项目开发过程中的进度管理、风险管理以及质量管理,并通过Project讲解如何通过工具进行项目管理。
(8) 给出各个阶段性文档的书写格式,规范了软件文档。
3. 本书的读者
本书的定位是软件工程导论,旨在通过项目案例使读者更容易理解软件工程思想,包括软件工程的观念、方法、策略和规范。本书通过进阶式的练习和课外拓展阅读,使读者在巩固软件工程基础知识的基础上能深入学习和实践。
因此,本书可作为计算机和软件工程专业的教材,也可作为软件工程专业的考研应试生、软件水平考试应试生、参与科技竞赛人员以及从事软件开发人员的参考书。
4. 项目案例使用说明
本书中项目案例的设计和实施只是为了更好地说明软件工程思想和软件开发的过程。案例基于目前比较流行的Spring Boot框架,目的是简化新Spring应用的初始搭建以及开发过程。
项目案例在具体的实施过程中可以根据读者的实际水平略做调整: 可以使用比较流行的框架,也可以使用一般的Web开发机制,甚至可以是一般的Java项目(或者是别的面向对象语言开发的一般项目)。重点关注的是,项目案例的设计和实施能呈现在软件工程思想指导下的软件开发过程。
5. 致谢
感谢参与本书编写和校验的所有教师和学生。计算机1501班的徐家鑫同学参与了本书项目案例的设计和实现工作,软件1601实验班的学生完成了项目案例的初步测算工作,在此向他们表示感谢。
感谢清华大学出版社提供的这次合作机会,使得本书能够早日与读者见面。
本书难免会存在一些问题,希望各位读者赐教,并提出宝贵建议。
曹平2020年12月
|
|