软件工程——基于项目的面向对象研究方法
作者 : 贲可荣 何智勇 编著
出版日期 : 2009-07-20
ISBN : 978-7-111-26683-9
定价 : 32.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 277
开本 : 16
原书名 : 软件工程——基于项目的面向对象研究方法
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书重点介绍软件工程的实际应用,理论性的概念和术语在为确保软件成功开发所必需时才予以介绍。本书把重点放在了应用于班级项目的面向对象的软件开发方法之上。本书提供一种可在15周学习时间内完成一个大软件项目的专门开发方法。为增强本书的实用性,本书提供了2个连续的案例分析,用作为时一学期的项目开发的样板。案例分析中含有制品的样本,举例说明了学生在其项目的生命周期中所要交付的资料类型。
本书重点讲述面向对象的软件开发范型,将面向对象项目按概念、分析、设计及实现的结构予以介绍,并使用统一建模语言(UML)为软件建模。本书介绍了Web应用系统的分析、设计和测试的全面工程方法,以及软件项目管理方法、软件评价方法和软件维护方法。

图书特色

软件工程基于项目的面向对象研究方法
贲可荣 何智勇 编著

本书通过案例分析,说明面向对象软件开发的过程,重点放在应用于班级项目的面向对象的软件开发方法之上。本书提供一种可在15周的学习时间内完成一个大软件项目的专门开发方法,并给出两个连续的案例分析,用作为时一学期的项目开发的样板。
本书重点讲述面向对象的软件开发范型,将面向对象项目按概念、分析、设计及实现的结构予以介绍,并使用统一建模语言(UML)为软件建模。本书还介绍了Web应用系统的分析、设计和测试的全面工程方法,以及软件项目管理方法、软件评价方法和软件维护方法。
本书特点
重点突出。主要讲述面向对象的软件开发范型,将面向对象项目按概念、分析、设计及实现的结构予以介绍。
实用性强。强调软件工程的实际应用,理论性的概念和术语仅在必需时才予以介绍。
案例项目选择合适。所选项目难度适中,可让学生以3?5人为小组在15周内完成。
注意教学资源配套。为任课老师配有电子教案。

图书前言

软件教学的实践表明,如果没有亲身体验,学生很难相信软件工程技术的好处。让学生相信软件工程对其职业开发生涯至关重要的最有效的方法是让他们实际参与和完成软件项目开发。我们开设的软件工程课程是一门以面向对象的软件开发为重点、集实用性与即用性于一体的课程。6年前,我们翻译出版了美国普利茅斯州立大学Evelyn Stiller和Cathie LeBlanc编写的教材《Project-Based Software Engineering》,并应用于我们的教学。近几年,出于双语教学的需要,我们采用Roger S. Pressman的教材《Software Engineering:A Practitioner誷 Approach》。但是,由于学时安排比较少,如何在教学中将教材内容与实践教学紧密结合,一直困扰着我们。目前,市面上有关软件工程方面的教材大多重理论轻实践,一些基于项目的教材并没有把重点放在面向对象的范型上面来。在机械工业出版社华章分社温莉芳总编的鼓励下,我们在这方面进行一些尝试。
什么是软件工程“实践” 一般来讲,实践就是软件工程师日常使用概念、原则、方法和开发工具的集合。实践使得项目经理可以管理软件项目,保证软件工程师按时开发出满足客户要求的计算机程序。实践利用由必要技术和管理组成的软件过程模型,保证开发工作顺利开展。实践将一些杂乱的、容易被忽视的方法转化为更具组织性、更高效并且更容易获得成功的重要规章。
本书重点讲述软件工程的实际应用,介绍基础和必需的理论概念和术语,并主要论述基于项目的面向对象的软件开发方法。
教授一门基于项目的软件工程课程,最重要也最困难的一点是如何选择合适的项目。因为所选项目必须足够复杂,以便学生以3~5人为单位组成一个开发小组,同时又必须能在15周内完成。比达到目标更具挑战性的是所选的项目必须引起学生的兴趣,让其有内在的学习动力。本书提供一种可在15周的学习时间内完成一个大软件项目的专门开发方法。
为增强本书的实用性,我们还提供了2个连续的案例分析,用作一个学期的项目开发的样板。在案例分析中含有制品的样本,举例说明了学生在其项目的生命周期中所要交付的资料的类型。
本书的另一个重要特点是:重点讲述面向对象的软件开发范型,将面向对象项目按概念、分析、设计及实现的结构予以介绍,提出了软件工程技术的历史性观点,还介绍了面向对象范型的先驱。在介绍组成面向对象思想的技术时,使用了统一建模语言(UML)为软件建模。
考虑到Web工程的广泛应用,我们还在书中介绍了Web应用系统的分析、设计和测试的全面工程方法。结合学生毕业后所从事工作的特点,强调软件的评价方法和软件维护的重要性,介绍软件项目的管理方法,提出与计划、管理和控制软件项目的人员有关的问题。
多年来,我们在软件测试、软件可靠性、软件项目管理、软件维护、软件体系结构等方面开展了很多研究工作,得到总装备部、海军装备部、国家自然科学基金、国家863等项目的支持,特此致谢。
本书的工资支付系统案例由何智勇设计和撰写,图也由何智勇绘制;马撰写了软件维护初稿。其余部分由贲可荣撰写,全书由贲可荣统稿。
在本书的编写过程中,参考和引用了许多专家、学者的著作和论文,在正文中未一一注明。在此,谨向相关参考文献的作者表示衷心的感谢。不当之处,恳请读者批评指正。
谨以此书怀念我的导师陈火旺院士。

贲可荣
2009年5月

上架指导

计算机\软件工程

封底文字

本书通过案例分析,说明面向对象软件开发的过程,重点放在应用于班级项目的面向对象的软件开发方法之上。本书提供一种可在15周的学习时间内完成一个大软件项目的专门开发方法。本书提供了两个连续的案例分析,用作为时一学期的项目开发的样板。
本书重点讲述面向对象的软件开发范型,将面向对象项目按概念、分析、设计及实现的结构予以介绍,并使用统一建模语言(UML)为软件建模。本书还介绍了Web应用系统的分析、设计和测试的全面工程方法,以及软件项目管理方法、软件评价方法和软件维护方法。
本书特点:
·实用性强
·包括了能力成熟度模型(CMM)的介绍
·包含用于说明完整软件生命周期的运行实例
·包括概念理解、项目分析等类型的习题

图书目录

前言

第1章  软件工程概述 1
1.1  软件及其特点 1
1.2 军用软件的作用和特点 3
1.3  软件工程的定义及内涵 4
1.4  软件开发范型要素 5
1.4.1  项目的概念化 5
1.4.2  项目表示 6
1.4.3  项目实现 7
1.5  软件工程技术简史 7
1.5.1  结构化编程 7
1.5.2  功能分解 8
1.5.3  结构化分析与设计 9
1.5.4  以数据为中心的范型 10
1.5.5  面向对象范型 10
1.5.6  面向Agent范型 12
1.5.7  面向构件的范型 14
1.5.8  面向服务的软件范型 16
1.6  软件灾难故事 18
1.6.1  失效案例简介 18
1.6.2  失效原因 18
1.6.3  CONFIRM 19
1.6.4  电话和通信 20
1.6.5  阿丽亚娜5型火箭 21
1.6.6  不按工程生产软件的代价 22
1.7  为什么软件工程不是万能的 22
1.8  基于项目学习软件工程 23
1.8.1  项目的作用 23
1.8.2  分小组工作 23
1.8.3  创建项目小组 24
1.9  班组项目:功能需求 25
1.9.1  MCGame项目概况 25
1.9.2  MCGame需求规约 25
1.10  学期大作业 27
1.10.1  项目名称 27
1.10.2  项目时间框架 30
习题 30
第2章  面向对象范型概述 33
2.1  熟悉班组项目 33
2.1.1  创建非正式场景指南 33
2.1.2  非正式场景示例:用户一个
时间片内的鼠标点击 34
2.2  面向对象概念化 34
2.2.1  特殊应用关系 35
2.2.2  继承 35
2.2.3 聚合/组合 36
2.2.4  其他关系 36
2.3  软件开发过程模型 36
2.3.1  瀑布模型 37
2.3.2  原型开发 38
2.3.3  增量模型 38
2.3.4  螺旋模型 39
2.3.5  敏捷软件开发过程模型 41
2.4  面向对象建模 43
2.4.1  建立模型的作用 43
2.4.2  创建优质模块 43
2.4.3  建模符号 44
2.4.4  软件工程中模型的使用 45
2.5  良好面向对象系统的属性 46
2.6  分组工作 46
2.6.1  主程序员组 47
2.6.2  召开有效的小组会议 47
习题 48
第3章  面向对象分析 50
3.1  需求分析介绍 50
3.2  需求规约 51
3.3  案例研究:工资支付系统规约 53
3.4  评价需求规约 53
3.5  细化需求规约 54
3.6  验证需求规约 58
3.7  通过开发扩展需求 59
3.8  需求分析过程 59
3.8.1  识别UCCD的类 60
3.8.2  案例分析:识别工资支付
系统中的类 61
3.8.3  识别用例 62
3.8.4  案例分析:识别工资支付
系统中的用例 63
3.8.5  场景开发 64
3.8.6  实例分析:工资支付系统中
的样本场景 64
3.8.7  用UML对系统建模 65
3.8.8  类图 65
3.8.9  案例分析:工资支付系统的类图 66
3.8.10  用例图 69
3.8.11  案例分析:工资支付系统中
的用例图 69
3.8.12  需求分析小结 70
3.9  分析班组项目 71
3.10  分组工作 72
3.11  案例:MCGame需求分析 72
3.11.1  名词列表 72
3.11.2  名词表的分析 73
3.11.3  主类列表 74
3.11.4  用例开发 74
3.11.5  场景 76
3.11.6  细化后的类列表 78
3.11.7  建模 78
习题 79
第4章  体系结构设计 81
4.1  软件体系结构 81
4.2  数据设计 82
4.2.1  体系结构级的数据设计 82
4.2.2  构件级的数据设计 83
4.2.3  对象持久化 83
4.2.4  案例分析:工资支付系统中的
对象持久化 85
4.3  体系结构风格和模式 86
4.3.1  体系结构风格的简单分类 87
4.3.2  体系结构模式 89
4.4  体系结构设计 90
4.4.1  系统的环境表示 90
4.4.2  定义原始模型 91
4.4.3  将体系结构精化为构件 92
4.4.4  描述系统实例 92
4.4.5  评估可选的体系结构设计 93
4.5  进程体系结构 94
4.5.1  多节点建模 94
4.5.2  进程间通信建模 95
4.5.3  状态机 95
4.5.4  多重控制线程建模 97
4.5.5  网络资源的有效利用 97
4.5.6  案例分析:MCGame
进程体系结构 97
4.6  小结 99
习题 99
第5章  用户界面设计 100
5.1  用户界面 100
5.2  用户界面分析 100
5.3  用户界面设计原则 103
5.3.1  了解用户 103
5.3.2  界面设计规则 104
5.3.3  交互样式 105
5.4  界面设计步骤 110
5.4.1  定义界面对象和动作 110
5.4.2  用户界面设计模式 110
5.4.3  设计问题 111
5.5  案例分析:工资支付系统的用户界面 113
5.6  分组工作 115
5.7  班组项目用户界面设计 116
5.8  小结 117
习题 117
第6章  类设计 119
6.1  类设计过程 119
6.1.1  类构架 120
6.1.2  案例研究:工资支付系统的类构架 120
6.1.3  系统细化 121
6.2  进一步介绍UML 122
6.2.1  类图的符号修饰 122
6.2.2  交互图 123
6.2.3  案例分析:工资支付系统交互图 123
6.2.4  协作图的创建 125
6.2.5  案例分析:工资支付系统中
更多的交互图 125
6.2.6  评估设计 126
6.2.7  案例分析:工资支付系统
的评估设计 126
6.2.8  对象图 127
6.2.9  案例分析:工资支付系统的对象图 127
6.2.10  对象图的创建 127
6.3  类设计阶段的目标 128
6.3.1  代码重用 128
6.3.2  案例分析:工资支付系统中
的代码重用 128
6.3.3  设计良好的类与方法 129
6.3.4  数据完整性 129
6.4  类设计的验证 129
6.5  设计班组项目 130
6.6  案例分析:MCGame类设计 131
6.6.1  交互图 131
6.6.2  对象图 132
6.6.3  重用 133
6.6.4  类构架 134
6.7  案例分析:MCGame方法设计 137
6.7.1  确定方法 137
6.7.2  MCGame方法设计 138
6.7.3  创建优质方法 139
习题 140
第7章  实现 143
7.1  实现途径 143
7.1.1  “大突击”实现 144
7.1.2  自顶向下与自底向上实现 144
7.1.3 自顶向下与自底向上方法结合 146
7.1.4  实现的线程方法 147
7.2  实现计划 147
7.3  实例研究:工资支付系统的实现计划 148
7.4  编程风格 151
7.4.1  越短越简单 152
7.4.2  越简单的代码判断越少 152
7.4.3  应避免过量的嵌套逻辑 153
7.5  注释和内部文档 154
7.5.1  头注释块 154
7.5.2  行注释 155
7.6  项目编码标准 156
7.7  实现班组项目 158
习题 158
第8章  测试 160
8.1  什么是测试 160
8.2  面向对象测试原理 160
8.3  定义 161
8.3.1  错误、缺陷、故障和失效 161
8.3.2  测试计划 162
8.3.3  测试喻示 163
8.3.4  测试用例 163
8.3.5  白盒测试 164
8.3.6  黑盒测试 164
8.3.7  单元测试 165
8.3.8  集成测试 166
8.3.9  确认测试 167
8.3.10  系统测试 168
8.4  测试步骤 169
8.5  测试面向对象系统的特殊论题 170
8.6  案例研究:测试工资支付系统 172
8.6.1  测试计划 172
8.6.2  单元测试阶段 173
8.6.3  系统地提出测试用例 174
8.7  测试班组项目 174
8.8  面向变化的测试:配置管理 175
8.9 小结 177
习题 177
第9章  Web应用的分析、设计和测试 179
9.1  Web工程概述 179
9.1.1 基于Web的系统及应用的特点 179
9.1.2  WebApp工程的层次 180
9.1.3  Web工程过程 181
9.1.4  Web工程工作量的度量 182
9.2  WebApp分析 182
9.2.1  WebApp的需求分析 183
9.2.2  WebApp的分析模型 184
9.2.3  关系导航分析 186
9.3  WebApp设计 187
9.3.1  Web工程的设计问题 187
9.3.2  Web工程设计 189
9.3.3  面向对象的超媒体设计方法 196
9.4  WebApp测试 197
9.4.1  概述 197
9.4.2  内容测试 200
9.4.3  用户界面测试 200
9.4.4  构件级测试 202
9.4.5  导航测试 203
9.4.6  配置测试 204
9.4.7  安全性测试 205
9.4.8  性能测试 206
9.5  小结 207
习题 207
第10章  项目管理 209
10.1  引论 209
10.2  项目经理职责 210
10.2.1  软件度量 210
10.2.2  案例研究:项目估计 214
10.2.3  质量控制度量 215
10.3  配置管理 216
10.3.1  版本控制 216
10.3.2  变更控制 217
10.3.3  配置审核 217
10.3.4  配置状态报告 218
10.4  项目计划和监督 218
10.4.1  项目演化 219
10.4.2  案例分析:MCGame演化 219
10.4.3  项目计划 220
10.4.4  案例研究:MCGame项目计划 221
10.4.5  任务调度 222
10.4.6  监督进度 223
10.5  项目组 224
10.5.1  组建项目组 224
10.5.2  团队建设的四个阶段 225
10.5.3  冲突 226
10.5.4  解决冲突 227
10.6  风险管理 227
10.6.1  技术风险起源 228
10.6.2  人员风险起源 230
10.6.3  降低风险 231
10.6.4  案例研究:工资支付系统
风险分析 232
10.7  软件过程 233
10.7.1  过程框架 233
10.7.2  CMM和CMMI 236
10.8  小结 243
习题 243
第11章  软件产品评价与软件维护 245
11.1  软件质量概述 245
11.1.1  软件质量和质量特性 245
11.1.2  质量的分层定义 245
11.1.3  使用质量的质量模型 246
11.1.4  软件质量管理和软件产品评价 247
11.1.5  评价级别 247
11.2  软件产品的一般评价过程 248
11.2.1  确立评价需求 249
11.2.2  规定评价 249
11.2.3  设计和执行评价 250
11.3  评价过程 252
11.3.1  评价内容 252
11.3.2  评价过程的实施 253
11.3.3  评价报表示例 255
11.4  软件维护的基本概念 256
11.4.1  软件维护的定义 256
11.4.2  软件维护的分类 256
11.5  软件维护的特点及过程 257
11.5.1  影响软件维护的因素 257
11.5.2  软件维护的标准化 258
11.5.3  软件维护的特点 258
11.5.4  软件维护过程 259
11.5.5  软件维护策略 261
11.6  软件再工程 262
11.6.1  遗留系统 262
11.6.2  软件再工程过程模型 263
11.6.3  逆向工程 264
11.6.4  重构 264
11.6.5  正向工程 265
11.7  小结 265
习题 266
第12章  完成并展示班组项目
12.1  成功完成班组项目 268
12.2  对项目的思考 269
12.3  展示项目 270
12.3.1  非技术类用户的类型 270
12.3.2  非技术展示要点 270
12.3.3  技术展示要点 271
12.3.4  项目展示 271
后记 272
参考文献 274

教学资源推荐
作者: [印] 佩瑟鲁·拉吉(Pethuru Raj) 阿诺帕马·拉曼(Anupama Raman) 德维亚·纳加拉杰(Dhivya Nagaraj) 悉达多·杜格拉拉 (Siddhartha Duggirala) 著
作者: (英)George K.Batchelor
作者: [印度]拉杰·拉杰库马尔(Raj Rajkumar)卡内基-梅隆大学 [美]迪奥尼西奥·德·尼茨(Dionisio de Niz)卡内基-梅隆大学 马克·克莱恩(Mark Klein)美国软件工程研究所 著
参考读物推荐
作者: 陈俊良 主编
作者: 余建国 陈广巍 陈艳艳 等编著