首页 > 技术文章 > 2016年秋季-《UML大战需求分析》-阅读笔记2

hanzhu 2016-10-15 10:52 原文

需求与分析工作的困难

      《火球——UML大战需求分析》的第二章的语言很有趣,而且在开始介绍的地方有一个我们非常熟悉的一个关于“软件需求与分析”的案例,在从上大学的第一门课“信息科学技术导论”上,王老师给我们看过一张非常有趣的组图,讲的就是:客户需要的是一把梯子,系统分析员了解到的是一张凳子,开发人员做出来的是一张桌子,测试人员以为是一张椅子!需求分析是高难度和折腾人的工作,以一个示例全过程的了解需要的挑战。在通过这几天的阅读后我认为:软件需求分析存在的主要困难是由于角色的不同引起的冲突。这种冲突在本书的介绍中我们可以归咎于以下三个原因:(1)客户说不清楚需求,(2)分析人员或客户理解有误,(3)需求自身经常变动。

     客户说不清楚需求:如果客户本身就懂软件开发,能把需求说得清清楚楚,这样的需求分析将会非常轻松。但是在实际开发的过程中有些客户对需求只有朦胧的感觉,而且无法了解到我们软件分析人员中所想要的的信息,当然说不清楚具体的需求。而且丛书中的“表2.1 各种角色的特点”中我们很直观的看得出,每一个人心中所人为地和嘴巴上所说的需求总是有差异的,而且职位的不同,所谓的“词不达意”,也并非每个人都能确的表达出自己的想法,客户甚至觉得自己是上帝,总以为自己花了钱就是让你软件公司完全听从他的想法,这才导致沟通和协商都会很困难。

    分析人员或客户理解有误:在语言交流中,总会出现信息的丢失。更别说隔着行业的的交流,“隔行如隔山”。软件系统分析人员不可能都是全才,客户也不可能对需求知识完全了解,所以在理解对方的需求或者需求确认中难免会存在理解错误的这种情况。在书中的“手机软件订餐系统”中可以知道有时候我们项目组人员总是根据客户所描述的需求来实现自己的软件,我认为这是不妥的。我们要真正了解到客户的真正“需求”,我们不能只完全照搬客户所描述的需求,我们更应该的主动出击,帮助客户找到真正的“需求”整理出符合客户的需求规格,要把自己定位为软件的”创造者“。

    需求自身经常变:在书上的“持续进化的客户需求”模块中我们所看到的事情在现实生活中我们一会经常意见到。我们在请一些喝酒吃饭时他什么都点头,吃完了他就宣布刚才答应的事都不算数,还需要其他的才能答应帮助我们。正如书上所说的一样“客户今天想要的是一个苹果,面过天又要改变主意要一个香蕉,但是后天又说苹果好,到最后他就是想要一个西瓜!”客户的想法总是在变化的,但是总的来说是螺旋前进的,但是我们不能让客户无限的扩大需求也不能着一个“刻舟求剑”之人!所以我们在软件需求中要明确说清楚“做什么”和“不做什么”。

所以在实际项目中,项目组要具备超强学习能力,切实理解客户的真正需要才能为客户做出真正符合其要求的软件。

 

推荐阅读