标题：实用软件需求
基本信息
原书名： Practical Software Requirements: A Manual of Content and Style
原出版社： Manning Publications Co.  作者： （美）Benjamin L.Kovitz   
译者： 胡辉良 张罡
丛书名： 软件工程技术丛书/分析系列
出版社：机械工业出版社
ISBN：7111131061
上架时间：2005-2-4
出版日期：2005 年1月
开本：16开
页码：289
版次：1-1
内容简介
本书特色：
●软件问题的元素
●用户接口或其他接口设计文档
●如何从已知的编程技巧中得到有用的需求
●描述问题域
●分解问题的非层次化方法
●应用MichaelJackson的“问题框架”
●常见错误及如何纠正它们
●来自真实项目的文档实例
本书从实用的角度出发，通过全新的视角介绍了书写良好需求的格式和指导原则，以及分析需求问题的框架模型。本书讲述了问题域概念，列举了需求文档和规格说明书所包含的具体内容，重点引入了Michael Jackson的问题框架概念，通过非层次化的方法，举例演示了如何使用问题框架把巨大、复杂的问题分解成简单的问题。
本书内容丰富、编排合理，为程序员、测试人员、用户接口设计人员以及技术写作人员等提供了所需的全部信息。
“在被僵化的方法论驱动的领域，我欣喜地发现，本书采用实用的、非教条的方法为枯燥
但必要的任务注入了新的激情……”
———P．Abrahams，ComputingReviews
“……包含完整并且吸引人的丰富实例。”
——AlanZeichick，SoftwareDevelopmentMagazine
“一本面向问题的书……含有优秀的素材，我从中学到了很多……”
——Gregory V．Wilson，Dr．Dobb's Journal
·我发现本书非常好……全新的视角……作者在线论坛是极好的资源……”
———Jason Bennett，Slashdot
目录
第一部分  基 本 原 理
第1章  问题解决    2
1.1  功能分解的神话    3
1.1.1  功能分解    4
1.1.2  测试一下    4
1.2  问题解决与设计模式    7
1.2.1  工程是如何真正起作用的    8
1.2.2  设计模式    9
1.3  软件为什么困难    9
1.4  模式合成与分解    12
第2章  问题定义    16
2.1  需求和设计模式    16
2.2  软件问题    17
2.3  需求工程    19
2.4  已学课程    21
第3章  两个世界和三种设计    23
3.1  问题域    23
3.2  需求    24
3.3  接口设计    25
3.4  验证接口和程序    27
.3.5  描述    28
3.6  创建和验证    30
3.7  软件需求不是什么    32
3.7.1  不是自顶向下    32
3.7.2  不是纲要    33
3.7.3  不是“什么”和“如何”    35
3.8  小结    35
第4章  问题框定    37
4.1  马的遍历    37
4.2  域    38
4.3  共享现象    40
4.4  连接域    42
4.5  实现域    43
4.6  框架图    44
4.7  从图到文档    47
4.8  符号小结    47
第5章  五个问题框架    49
5.1  概要    49
5.2  信息问题    51
5.2.1  连接域    52
5.2.2  静态和动态    52
5.2.3  被动与主动    53
5.2.4  解决信息问题    54
5.2.5  检查清单    55
5.3  控制问题    56
5.3.1  连接域    57
5.3.2  解决控制问题    58
5.3.3  检查清单    58
5.4  变换问题    59
5.4.1  解决变换问题    60
5.4.2  检查清单    60
5.5  工件问题    60
5.5.1  解决工件问题    61
5.5.2  检查清单    61
5.6  连接问题    62
5.6.1  解决连接问题    64
5.6.2  检查清单    66
第6章  多框架问题    67
6.1  组合问题框架    67
6.2  库存控制系统    68
6.3  统计包    70
6.4  数字应答机    71
6.5  编译器    72
6.6  电子邮件    73
6.7  卫星勘测    74
第二部分  内    容
第7章  软件开发    78
7.1  认知劳动的分工    78
7.2  分析    80
7.3  用户接口设计    81
7.4  编程    82
7.5  测试    83
7.6  用户文档    86
第8章  两种文档    89
8.1  需求文档的内容    90
8.2  规格说明书的内容    96
第9章  类和关系    98
9.1  两种集合    98
9.2  类    100
9.3  所有可能的值    104
9.4  不可能的取值    108
9.5  关系    109
9.6  基数    111
9.7  把关系作为属性    114
9.7.1  三元关系    116
9.7.2  参考属性    117
9.8  惟一性和功能性依赖    120
9.9  查询    122
9.10  命名类、属性和关系    124
第10章  序列和事件    126
10.1  结构    126
10.2  事件    130
10.3  事件响应    133
10.3.1  每个事件    134
10.3.2  响应硬件和软件事件    135
10.4  更多的序列符号    136
10.4.1  巴科斯范式    136
10.4.2  句法图    137
10.4.3  warnier-orr图    139
10.4.4  流程图    140
10.4.5  状态转换图    140
10.4.6  特殊注释    141
第11章  因果关系和控制    143
11.1  状态转换    143
11.1.1  命名状态和事件    148
11.1.2  四种解释    149
11.2  行为    151
11.3  依赖关系    153
11.4  流    160
11.5  规则    162
11.5.1  映射和完整性    163
11.5.2  不连续性    165
11.5.3  鸟瞰图视角    165
第12章  专题    167
12.1  抽取    167
12.2  面向对象    168
12.2.1  程序结构的两种类型    169
12.2.2  错误所在    170
12.2.3  设计模式的一个不同类型    172
12.3  用例与特征交互    173
12.4  评审    177
12.5  需求行话    178
12.6  捷径    180
12.7  一些好书    181
第三部分  风    格
第13章  文档记录    184
13.1  为什么书写文档    184
13.2  基本原则    186
13.3  扰乱视听的文本    191
13.3.1  元文本    191
13.3.2  通用性描述    192
13.3.3  画蛇添足    193
13.3.4  包含其他文档    193
13.4  更常见的错误    195
13.4.1  智力拼图    195
13.4.2  手段与目标混淆    196
13.4.3  吃力不讨好    196
13.4.4  鸭叫需求    198
13.4.5  创建不必要的术语    199
13.4.6  需求与设计混淆    199
13.4.7  预制的内容表    199
13.4.8  术语不一致    200
13.4.9  写给挑剔的读者    201
13.4.10  责任转嫁给开发人员    202
13.5  文档的低效使用    203
13.5.1  为了文档而文档    203
13.5.2  两手准备    203
13.5.3  cya文档    204
第14章  文档组织    206
14.1  内容第一    206
14.2  分组    207
14.2.1  一次说一件事    208
14.2.2  七加或减二    209
14.3  先后次序    211
14.4  重点强调    212
第15章  一些小细节    214
第四部分  实    例
第16章  bug log 需求    242
第17章  bug log 用户接口    266
术语表    281
参考文献    287