系统分析与设计方法及实践
作者 : 窦万峰 主编 宋效东 史玉梅 李东振 赵菁 等参编
出版日期 : 2013-01-21
ISBN : 978-7-111-40217-6
适用人群 : 本书适合作为高等院校软件工程和软件开发课程的教材,
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 298
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书为开发计算机软件提供了一套软件分析与设计的方法,着重讲述结构化软件分析与设计方法、面向对象软件分析与设计方法和软件分析与设计工具三个方面的内容,是指导软件生产的重要的应用实践。本书分别从传统的结构化开发范型和面向对象开发范型两个方面,把软件工程的概念和理论知识融入到实践当中,通过丰富的案例分析与设计,更深入地理解软件开发中各个阶段的技术与方法。同时引导学生学习软件分析与设计中所用到的CASE工具,把软件分析与设计的概念和理论知识融入到实践当中,更深入理解软件开发中的技术和工具基本使用。

图书特色

本书结合作者多年的软件工程教学和项目开发经验,通过6个案例和3个工具软件,为开发计算机软件提供了一套软件分析与设计的方法,着重讲述了结构化软件分析与设计方法、面向对象软件分析与设计方法和软件分析与设计工具3个方面的内容,从不同的角度和范型介绍软件开发过程中所涉及的原理、方法与技术。
本书特点
将结构化软件分析与设计和面向对象软件分析与设计分开讲述,有利于学生理解软件开发的不同范型的特点和适用情况。
案例研究注重分析与思考实现过程,通过案例分析让学生理解软件分析与设计的思想和原理。
通过3个工具软件Visio、Rose和PowerDesigner介绍如何应用这些工具快速、准确地开发系统。
采用由结构化到面向对象再到工具的路线,便于学生逐步接受软件开发的思想和本质。

图书前言

软件分析与设计是软件系统开发的重要组成部分,它包含了一系列原理、方法和实践,指导人们进行正确的软件开发。软件开发强调从工程化的原理出发,按照标准化规程和软件开发实践来引导软件开发人员进行软件开发,并进行过程改进,促进软件企业向标准化和成熟化发展。软件分析与设计是一门理论与实践相结合的课程,注重通过实践来理解理论、原理与方法。为此,本书结合作者多年的软件工程教学和项目开发经验,通过6个案例和3个工具软件,从不同的角度和范型循序渐进地介绍软件开发过程中所涉及的原理、方法与技术。
全书分为4部分:
  第一部分:软件分析与设计基础。这一部分共安排了3章内容,初步介绍软件工程的基本概念、软件过程生命周期及其模型,以及本教材的案例与要求。
  第二部分:结构化分析与设计。这一部分共安排了5章内容,介绍结构化分析与设计的基本概念、分析与设计过程、分析与设计模型,以及相关技术与方法,包括需求分析、结构化分析方法、结构化设计概念、结构化概要设计和结构化详细设计的内容。本部分用案例进一步深化结构化分析与设计的原理、方法及过程。
  第三部分:面向对象分析与设计。这一部分共安排了5章内容,介绍面向对象分析与设计的基本概念、用例分析模型与设计过程、面向对象分析与设计模型,以及相关技术与方法,包括用例需求分析、面向对象分析方法、面向对象设计、统一开发过程和高要求的系统分析与设计等内容。
  第四部分:软件分析与设计工具。这一部分共安排了3章内容,介绍软件分析与设计中常见的建模工具的使用和案例开发模型,包括结构化分析工具Visio、面向对象分析与设计工具Rose和面向数据分析与设计工具PowerDesigner。
编写思想
  - 将传统结构化分析与设计和面向对象分析与设计进行对比介绍,有利于学生理解软件开发的不同范型的特点和适用情况,适合作为教材使用。
  - 注重介绍软件分析与设计的思想,通过案例分析让学生理解这些思想和原理。
  - 通过工具的介绍进一步理解软件开发的过程和实施技术,同时理解企业的主流开发工具与做法。
内容特点
  - 分为软件分析与设计基础、结构化分析与设计、面向对象分析与设计和软件分析与设计工具四个方面。对于每一个方面分别介绍软件分析和设计的过程、原理、方法和案例,以及工具支持。
  - 将结构化软件分析与设计和面向对象软件分析与设计分开来讲述,并通过不同的案例来帮助读者理解两种范型的特点和适用对象。
  - 结构化软件分析与设计部分介绍结构化开发的过程、原理、思想,这些都可以推广到面向对象的分析与设计过程中。此外,通过一个需求稳定的案例介绍传统结构化开发的基本方法和做法。
  - 面向对象软件分析与设计部分注重面向对象分析模型和设计模型的构建,强调它们之间的关系,抓住面向对象模型开发的要点,通过UML来描述分析和设计过程。书中还介绍了高要求系统的分析与设计过程以及建模要点,进一步加深读者对面向对象模型开发本质及其适用情况的理解。统一开发过程的描述帮助读者深入理解当今流行的软件开发过程和具体做法,并通过复杂的系统案例分析理解面向对象分析与设计的思想。
  - 案例研究注重分析与思考实现过程,通过三个软件工具Visio、Rose和PowerDesigner介绍如何应用这些工具快速、准确地开发系统。
  - 采用由结构化到面向对象再到工具的路线,便于学生逐步接受软件开发的思想和本质,尤其适合没有任何开发概念(未接触软件工程概念)的学生阅读。
  本书内容翔实,有典型案例支持,便于读者学习和深入体会软件分析与设计的原理和方法。
  本书第1~8章由窦万峰编写,第9~10章由窦万峰和彭涛编写,第11~12章由窦万峰和洪奎编写,第13章由窦万峰和赵菁编写,第14~15章由宋效东编写,第16章由史玉梅和李东振编写。全书由窦万峰统稿、校对。
  本书适合作为高等院校软件工程和软件分析与设计课程的教材,既适用于计算机专业的学生,也适用于其他非计算机专业的学生和从事软件开发、应用及管理的技术人员。
  由于作者水平有限,书中难免有疏漏之处,恳请各位读者指正。尤其是案例的详细程度和方案的多样性,请读者给予意见,以便以后改进和完善。

上架指导

计算机\软件工程

封底文字

本书结合作者多年的软件工程教学和项目开发经验,通过6个案例和3个工具软件,为开发计算机软件提供了一套软件分析与设计的方法,着重讲述了结构化软件分析与设计方法、面向对象软件分析与设计方法和软件分析与设计工具3个方面的内容,从不同的角度和范型介绍软件开发过程中所涉及的原理、方法与技术。
本书特点
 将结构化软件分析与设计和面向对象软件分析与设计分开讲述,有利于学生理解软件开发的不同范型的特点和适用情况。
 案例研究注重分析与思考实现过程,通过案例分析让学生理解软件分析与设计的思想和原理。
 通过3个软件工具Visio、Rose和PowerDesigner介绍如何应用这些工具快速、准确地开发系统。
 采用由结构化到面向对象再到工具的路线,便于学生逐步接受软件开发的思想和本质。

图书目录

前言
教学建议
第一部分 软件分析与设计基础
第1章 软件分析与设计概述 2
1.1 什么是软件 2
1.1.1 软件定义与特性 2
1.1.2 软件的演化 3
1.1.3 软件危机 3
1.1.4 软件危机的解决途径 3
1.2 什么是软件分析与设计 4
1.2.1 基本原理 4
1.2.2 基本原则 5
1.3 软件系统开发范型 6
1.3.1 结构化开发范型 6
1.3.2 面向对象开发范型 6
1.4 软件生产活动 7
1.5 小结 8
习题 8
第2章 软件分析与设计过程及其模型 9
2.1 软件生命周期 9
2.2 敏捷软件开发 10
2.2.1 敏捷方法与开发原则 10
2.2.2 极限编程及其模型 11
2.3 结对编程方法 12
2.3.1 什么是结对编程 12
2.3.2 结对编程分析 15
2.3.3 分布式结对编程 16
2.4 软件过程模型 17
2.4.1 传统软件过程模型 17
2.4.2 面向对象过程模型 21
2.5 能力成熟度模型CMM 24
2.5.1 什么是能力成熟度模型 24
2.5.2 CMM的5级模型 25
2.6 小结 26
习题 27
第3章 案例研究 28
3.1 案例研究中涵盖的内容 28
3.2 案例1:POS机系统 28
3.3 案例2:ATM系统 28
3.4 案例3:图书馆系统 29
3.5 案例4:电子商务系统 29
3.6 案例5:胰岛素输送系统 29
3.7 案例6:分布式结对编程系统 30
3.8 小结 30
习题 30
第二部分 结构化分析与设计
第4章 需求分析 32
4.1 软件系统需求 32
4.2 需求分析过程 33
4.3 需求分析技术 36
4.3.1 会谈技术 36
4.3.2 问卷调查技术 36
4.3.3 场景分析技术 36
4.3.4 用例分析技术 37
4.4 小结 43
习题 44
第5章 结构化分析方法 45
5.1 结构化分析 45
5.2 结构化分析模型 45
5.3 数据实体建模方法 46
5.4 数据流建模方法 47
5.4.1 数据流建模 47
5.4.2 图书馆系统案例分析 50
5.5 状态转换建模方法 52
5.6 小结 52
习题 52
第6章 结构化设计基础 53
6.1 软件设计过程 53
6.1.1 概要设计 53
6.1.2 详细设计 55
6.2 模块化设计原理 56
6.2.1 分解 56
6.2.2 抽象 57
6.2.3 信息隐蔽 57
6.2.4 逐步求精 58
6.2.5 模块独立性 58
6.3 模块独立性度量 58
6.3.1 内聚性 58
6.3.2 耦合性 59
6.4 软件组成结构 59
6.4.1 软件结构图 60
6.4.2 结构优化 60
6.5 软件体系结构 61
6.5.1 系统构成模型 61
6.5.2 系统控制模式 63
6.6 小结 64
习题 64
第7章 结构化概要设计方法 65
7.1 数据流模型 65
7.1.1 变换型数据流 65
7.1.2 事务型数据流 65
7.1.3 混合型数据流 65
7.2 面向数据流的设计方法 66
7.2.1 设计过程 66
7.2.2 变换流设计 67
7.2.3 事务流设计 68
7.2.4 混合流设计 68
7.3 面向数据的设计方法 69
7.3.1 数据结构的表示 70
7.3.2 面向数据结构的设计过程 70
7.3.3 信用卡记账系统案例分析 71
7.4 图书馆系统概要设计 73
7.4.1 问题定义和数据流描述 73
7.4.2 系统结构图 73
7.5 小结 75
习题 75
第8章 结构化详细设计 77
8.1 结构化详细设计的结构和优点 77
8.2 结构化详细设计工具 78
8.2.1 程序流程图 78
8.2.2 N-S盒图 78
8.2.3 PAD 79
8.2.4 HIPO图 81
8.2.5 判定表与判定树 83
8.2.6 过程描述语言 85
8.3 人机交互界面设计 86
8.3.1 交互界面分析 86
8.3.2 交互界面设计步骤 88
8.3.3 交互界面设计指南 89
8.3.4 CAD系统绘图操作案例分析 89
8.4 数据库设计 90
8.5 编码实现 92
8.5.1 编码语言 92
8.5.2 编码风格 92
8.6 小结 93
习题 94
第三部分 面向对象分析与设计
第9章 面向对象基础 98
9.1 面向对象概念 98
9.2 面向对象模型 98
9.3 统一建模语言UML 101
9.3.1 UML的组成 101
9.3.2 UML模型 102
9.4 UML与面向对象方法学的关系 102
9.5 小结 102
习题 103
第10章 面向对象分析 104
10.1 用例驱动分析 104
10.2 领域与业务建模 107
10.2.1 识别业务类或分析类 108
10.2.2 开发业务类图与交互图 109
10.2.3 识别属性和操作 111
10.2.4 开发协作图 111
10.3 系统行为建模 113
10.3.1 建立系统顺序图 113
10.3.2 建立操作契约 114
10.3.3 开发UML顺序图 115
10.4 建立系统状态模型 116
10.4.1 建立系统状态图 116
10.4.2 POS机案例分析 117
10.5 分布式结对编程系统案例分析 119
10.6 小结 122
习题 122
第11章 面向对象设计 123
11.1 面向对象设计概述 123
11.1.1 系统逻辑架构 123
11.1.2 面向对象设计模型 123
11.2 构件级设计 125
11.2.1 构件 125
11.2.2 构件级设计步骤 126
11.2.3 基于构件的设计原则 127
11.3 确定并发性 128
11.4 使用设计模式 129
11.4.1 基于职责的对象设计 130
11.4.2 常见的设计模式 130
11.5 面向对象详细设计 134
11.5.1 领域模型精化 134
11.5.2 逻辑架构的精化设计 138
11.5.3 分层设计 139
11.5.4 POS机案例分析 142
11.6 类精化设计 152
11.7 数据存储与持久性设计 154
11.7.1 数据存储 154
11.7.2 持久性设计 154
11.8 部署与构件图 160
11.9 面向对象设计案例分析 161
11.9.1 POS机系统 161
11.9.2 分布式结对编程系统 164
11.10 小结 167
习题 167
第12章 统一过程与模型 168
12.1 概述 168
12.1.1 统一过程是用例驱动的过程 168
12.1.2 统一过程是迭代、增量的过程 168
12.2 用例驱动开发过程 169
12.2.1 捕获用例 169
12.2.2 ATM系统案例分析 170
12.3 软件构架 174
12.3.1 什么是软件构架 174
12.3.2 构架描述 175
12.4 需求捕获工作流 176
12.4.1 需求捕获过程 177
12.4.2 电子商务交易系统
案例分析 178
12.5 分析工作流 180
12.5.1 分析过程 181
12.5.2 电子商务交易系统
案例分析 182
12.6 设计工作流 185
12.6.1 设计过程 185
12.6.2 设计工作活动与应用 186
12.7 实现工作流 191
12.7.1 实现模型 192
12.7.2 实现活动 192
12.8 小结 194
习题 194
第13章 高要求系统的分析与设计 195
13.1 概述 195
13.2 高要求系统的特性及其关系 196
13.2.1 高要求系统的特性 196
13.2.2 可用性和可靠性的关系 197
13.2.3 安全性和保密性的关系 197
13.3 高要求系统的需求分析 198
13.3.1 系统的风险描述 199
13.3.2 系统的安全性描述 200
13.3.3 系统的保密性描述 201
13.3.4 系统的可靠性描述 202
13.4 案例分析 203
13.4.1 胰岛素输送系统的需求分析 203
13.4.2 ATM系统的可靠性需求 207
13.5 形式化描述方法 207
13.5.1 系统的形式化描述方法 207
13.5.2 接口的形式化描述方法 208
13.5.3 对象约束语言 212
13.5.4 系统行为的形式化描述 214
13.5.5 胰岛素输送系统案例分析 214
13.6 高要求系统的设计 215
13.6.1 系统设计过程 215
13.6.2 监控系统 216
13.6.3 案例分析 216
13.7 高要求系统的开发策略 219
13.7.1 可靠的软件过程 220
13.7.2 可靠的编程 220
13.7.3 容错设计 221
13.7.4 容错体系结构 222
13.8 系统验证 223
13.8.1 可靠性验证 223
13.8.2 安全性保证 224
13.8.3 信息安全评估 225
13.8.4 胰岛素输送系统案例分析 226
13.9 小结 228
习题 229
第四部分 软件分析与设计工具
第14章 结构化分析工具Visio 232
14.1 概述 232
14.2 Visio的基本使用 232
14.2.1 Visio初步 233
14.2.2 Visio提供的文件类型 234
14.3 数据流模型绘制 235
14.3.1 数据流图 235
14.3.2 案例分析 235
14.4 状态机模型 237
14.4.1 状态图 237
14.4.2 案例分析 238
14.5 JSD模型 239
14.5.1 Jackson图 239
14.5.2 案例分析 240
14.6 实体-关系模型 241
14.6.1 实体-关系图 241
14.6.2 案例分析 242
14.7 小结 242
习题 242
第15章 面向对象分析与
设计工具Rose 244
15.1 概述 244
15.2 Rational Rose的基本使用 244
15.2.1 Rational Rose主界面 244
15.2.2 Rational Rose基本操作 246
15.2.3 Rational Rose模型 247
15.3 用例模型 248
15.3.1 用例图 248
15.3.2 案例分析 248
15.4 类模型与类图 251
15.4.1 类模型 252
15.4.2 类图 252
15.4.3 案例分析 254
15.5 交互模型 255
15.5.1 协作图与案例分析 255
15.5.2 顺序图与案例分析 257
15.5.3 顺序图与协作图的转换 258
15.6 部署模型 259
15.6.1 部署图 259
15.6.2 案例分析 259
15.7 小结 260
习题 260
第16章 面向数据分析与设计工具PowerDesigner 261
16.1 概述 261
16.2 PowerDesigner基本操作 262
16.2.1 PowerDesigner操作步骤 262
16.2.2 PowerDesigner模型 263
16.3 概念数据模型构建 265
16.3.1 概念数据模型的功能 265
16.3.2 概念数据视图 265
16.3.3 案例分析 269
16.4 业务处理模型构建 274
16.4.1 业务处理模型图 274
16.4.2 案例分析 275
16.5 物理数据模型构建 279
16.5.1 物理数据模型 279
16.5.2 物理数据视图 279
16.6 小结 287
习题 288
参考文献 289

教学资源推荐
作者: 麻志毅
作者: 黄松 洪宇 郑长友 朱卫星 编著
作者: [美]Paul C.Jorgensen
作者: 聂长海 陆超逸 高维忠 郑志强 编著
参考读物推荐
作者: (美)Grady Booch, James Rumbaugh, Ivar Jacobson
作者: [美] 克里斯蒂娜·维代拉·洛佩斯(Cristina Videira Lopes)著