需求分析是系统设计的基础。没有需求分析,就谈不上系统设计,好的设计必然是建立在全面、透彻的需求分析之上的。脱离了需求分析的设计必将是无源之水无根之木。不同的需求要用不同的设计方案来满足,不存在放之四海皆准的设计方案。在我初次设计矢量编辑软件时,从自己的经验和习惯出发,认为越傻瓜的越好,用户能用鼠标和快捷菜单轻松完成一切操作就是最好的。但是领导告诉我,我们这款软件所面向的是专门从事绘图、描图的工作人员,他们的工作有一个重要特点就是按件计酬。所以如何能让用户以最快的速度完成绘制工作才是设计重点。因此,用户需要的不是最简单,而是最快。于是,快捷键的设计就成为了重点中的重点。因为这样可以让用户双手并举,成倍地提高工作效率。瞧,连用户的工资如何计算都得关心,否则设计就会偏离方向,成为糟糕的设计。由此可见,全面、充分的需求分析是系统设计成败的关键。
需求分析是设计方案优劣的重要评判标准。我们知道,用户的满意程度是评价软件好坏的重要标准,而用户满意与否,的关键就在于用户的需求是否能得到满足。只有充分满足了用户需求的软件,才能称得上是好的软件。因此用户需求的满足程度就成为评价设计方案优略与否的重要标准。一般说来,用户的需求总是要分级对待,优先满足重点需求,在工期和人力、物力允许的情况下逐级满足更多的需求。但在大多数情况下,给定的工期和人力、物力总是欠缺的,不是工期太紧,就是人手不足(国内现状)。这就给系统的设计工作提出了更高的要求。设计人员必须认真考虑如何在给定的工期和现有的人力、物力基础之上,满足用户尽可能多的需求,而且,还要在后续的版本中以最小的代价满足用户其余的需求。当然,评判设计优劣的标准并非仅此一条,还有可扩展性,易维护性等,但需求的满足程度无疑是重要的一条。
需求分析和系统设计是一个互动的过程。需求分析很难做到一步到位,也无法做到真正的充分和全面。所以,需求分析和系统设计之间不是瀑布模型中的上一步和下一步的关系,而是双向互动,互相反馈的关系。首先是需求分析人员提交简略的需求分析文档,然后系统设计人员据此做出大致的系统设计方案,并在方案的进一步细化过程中对需求中的细节和疑问提出进一步细化的要求。需求分析人员则针对设计人员提出的要求和疑问做进一步的深入调查,提交更加详细的需求分析报告。如此反复,直到系统设计得到完善。有些情况下,需求分析和系统设计任务是由同一个人或同一个小组来担任的,则以上的反馈过程就在小组内部的交流中完成了。
综上所述,需求分析和系统设计是一个密不可分的整体。需求分析既是系统设计的基础,又是系统设计优劣的评价标准,二者是双向互动,互相反馈的关系。
八风不动涂鸦于2003-11-24