由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。有时客户还会把软件系统分析人员的建议或答复给想歪了。 有一个软件人员滔滔不绝地向客户讲解在“信息高速公路上做广告”的种种好处,客户听得津津有味。最后,心动的客户对软件人员说:“好得很,就让我们马上行动起来吧。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。” 为什么软件系统分析员的工资要比普通程序员高?就是因为需求分析困难嘛。 (四)如何进行需求分析 上一节诉说了需求分析的困难,本节要知难而进。 进行需求分析不象情人之间的浪漫做法——“让我摸摸你的头发,感觉它是什么颜色。”我们要围绕两个核心问题开展需求分析:(1)应该了解什么?(2)通过什么方式去了解? 应该了解什么 那怕是天下最无能的市长或书记,都知道在作报告时要先从宏观上讲一、二、三、四、五,再从细节上讲A、B、C、D、E。需求分析不象侦探推理那样从蛛丝马迹着手。应该先了解宏观的问题,再了解细节的问题,如图4.1所示。 问题域 对应于软件子系统 问题 对应于子系统的软构件 行为(功能) 对应于软构件的接口 一个软件系统(记为 S)的涉及面可能很广,可以按不同的问题域(记为D)分类,每个问题域对应于一个软件子系统。 S = { D1,D2,D3,… Dn } 问题域Di 由若干个问题(记为P)组成,每个问题对应于子系统中的一个软构件。 Di = { P1,P2,P3,… Pm } 问题Pj有若干个行为(或功能,记为F),每个行为对应于软构件中的接口。 Pj = { F1,F2,F3,… Fk }
此文章共有17页 上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 下一页
|