| sidt 回复于:2004-07-17 17:14:15
|
好文阿,那么大家就来讨论一下吧。
我来抛砖先了 :P
文中提到:
软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也包括非功能需求。业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本(scenario)说明中予以说明。功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。软件需求各组成部分之间的关系如图所示。 (图丢了?? :shock: )
业务需求、用户需求、功能需求,这三者之间,并不是完全并列的关系,而是在逻辑上有着从外到内、从整体到细节的深入和细化的关系。
比如:要设计一个系统-电视机,(这玩意儿大家都清楚是干么的吧, 8) )
1。 业务需求: 为用户提供看电视的服务。请注意,是服务,是用从外部的眼光,全局的性看这一需要实现的东东。
2。 用户需求: 为了让用户能够看到电视节目,需要提供:接受电视信号、显示到屏幕、可以换台等。这些内容都是为业务需求服务的,也是为了能够看到电视节目所必不可少的。即,用户需求,是业务需求的深入和细化。
3。 功能需求: 对用户需求的内容进一步细化:如何才能提供接受电视信号的功能? 答:需要有信号接收器,并进行信号变化处理。如何才能 显示到屏幕 ?答需要有显像管...
说到这里,觉的这个例子有些不合适阿 :em23:
请看下贴了
|
| sidt 回复于:2004-07-17 17:22:21
|
上边举的例子,把有些内容没有讲清楚。 :oops:
因为没有把用户和使用者分开,在大系统中这都是分开的。
比如,给电信做的计费系统,用户是电信这家单位,作为用户(其代表人-单位领导)更关心业务需求,用户付钱,是因为你的产品能够提供需要的服务,而不是说为了其中某个具体的功能(在上边的例子中,就可以理解为,你购买电视机的决定性因素,是因为它能够让你看到电视节目,而不是因为它能接受电视信号,或 其他单个功能)。
而作为实际使用者的各个职能部门,它只会关心自己相关的业务流程如何处理,而不关心其他内容。
在到操作人员,关心的就是更加具体了 - 填写某表格该输入那些数据等之类。
|
| sidt 回复于:2004-07-17 22:20:08
|
拜托各位,吭个声阿。。。
如果同意,可以说说你的宝贵意见;如果不同意,拿砖块拍我也行啊。
虽说 沉默是金 ,可您千万别。。只看不回阿,:(
|
| carol1980 回复于:2004-07-19 10:00:57
|
哈哈~~~ sidt 不用急~
文章是要慢慢看的,讨论也是不用急于一时的~~
|
| yutian 回复于:2004-07-21 09:43:09
|
呵呵,做这一行的,
怕用户没有需求(我们吃什么呀)
怕用户需求变更(还要不要我们活呀)
需求分析是一个很高的能力要求
|
| sidt 回复于:2004-07-22 09:28:11
|
怕用户没有需求(我们吃什么呀)
怕用户需求变更(还要不要我们活呀)
--说得好啊。
没有需求,说明没有市场;
进入开发阶段了,而需求发生变更,那就要命了。
完全不变化,几乎是不可能的。所以我们就要在需求分析中发现潜在的变化点,在设计实现时充分考虑到这些可能变化的因素,达到设计支持变化的效果;同时,和用户作好沟通,在一定的时间段内稳固需求,使之成为当前设计和实现的基础。
|
| amiescort 回复于:2004-07-22 11:49:59
|
[quote:503e3ac6e7]最糟糕的莫过于用户觉得如果不再加点什么功能就对不起自己。我曾经看过一个数据仓库的一期工程,在设计阶段没有很好的定义范围,当我向项目管理者提出这个问题的时候,他认为都已经说好了,合同上也写清楚了,并没有加以重视。可是最后,用户提出的修改意见已经远远超出了范围,项目时间也延长了一倍。整个的项目组成员疲惫不堪,可是却不断的接到用户投诉说项目失败。 [/quote:503e3ac6e7]
概念上的东西大家都懂,偶想问些实际的:上述文字中描述的情况在偶从前的项目中一直存在,不知大家的情况如何?又是怎么去克服的呢?把心得拿出来分享一下吧。
|
| sidt 回复于:2004-07-22 14:03:06
|
楼上提到的情况,旁边并行的一个项目组就这样啊,搞的大家疲惫不堪,很是痛苦啊。
当时为了抢这个项目,打点了用户单位的相关人。同时也有别的竞争对手打点了其他人。最后是我们拿下了这个单子。
结果在开发实施开始后,项目组就陷入了泥潭:用户单位里面有些闹派系,被对手打点了的那些人对我们老是找麻烦,在这些“上帝”面前,你怎么做都是不对。只好再次打点他们,让他们闭嘴阿。
|
| amiescort 回复于:2004-07-22 14:28:18
|
[quote:39336f9b3d="sidt"]楼上提到的情况,旁边并行的一个项目组就这样啊,搞的大家疲惫不堪,很是痛苦啊。
当时为了抢这个项目,打点了用户单位的相关人。同时也有别的竞争对手打点了其他人。最后是我们拿下了这个单子。
结果在开发实施..........[/quote:39336f9b3d]
呵呵,你说的这个好像……已经超出了软件工程的范畴了吧,偶这经常遇到的情况是用户喜欢在一些细枝末节的功能点上和我们纠缠不清,这些东西实在太过细节,说是需求变更吧,又不太说得过去,但却实实在在的影响了项目的正常进度。这种情况又该怎么处理呢??
|
| sidt 回复于:2004-07-22 17:46:37
|
哈哈,楼上说的是,那完全是技术之外的事了。
有时候面向用户时,会遇到各种可笑事。对一些细节的功能问题,用户可能会提出一些古怪的想法,要求你实现一个根本毫无用处的东西。如果关系处理的好,你给他解释后,他可能最后说,不要也罢。如果关系不好,那可能就是证明你的产品不足的一个证据。他会理志气庄的说,这个功能在**中就有,而你的产品中没有。。。 而其实,他所说的**可能和你现在做的产品完全不是一类。
|
| sidt 回复于:2004-07-22 17:52:59
|
这类问题,就是项目的产品经理和用户沟通的内容了。那些要做,那些不做;那些先做,那些后;那些可以免费做,那些需要再加钱才能做...
|
| zyme 回复于:2004-08-10 10:17:10
|
很好
|
| funyoung 回复于:2004-08-12 13:55:48
|
用户的需求不变的话,就更没有饭吃啦。
变是绝对的,不变是相对的。
|
| ddddddddd 回复于:2004-08-17 11:15:18
|
它认为软件开发过程就是一个变化的过程,不能用严谨(另一个意思是死板)的语言来描述,它用用户故事这种含混自然的东西描述,同时要求用户有一个人要一直参与(这个体现了创始人的个性),用这个来保证需求的正确性。
在开发上它也有一套应付变化的东西,在4大原则上都有体现。
它始终没用需求设计编码测试维护这些典型生命期概念描述这种开发过程,也许它认为概念问题并不重要。
我觉得从这个角度讲,正常的需求变化并不可怕,可怕的是不知道如何应付需求变化,可能经验在这里就很厉害了。
我同时觉得想象客户有可能在哪些需求上有变化,在代码上留出弹性是不可取的。
当项目经理对项目涉及的问题域了然于胸的时候,在编码人员能够熟练驾驭开发工具的时候,正常的需求变化不应该是很大的障碍。
|
| utirei 回复于:2005-03-09 10:05:57
|
抱歉,我想问需求分析都包括什么?只是针对客户的吗?我看这还是很模糊。可能我读书的时候,软件工程这么课程没有学习好。还有是,工作几年也没有详细接触过需求分析。不过,我认为,需求分析,应该从客户与公司两方面考虑。第一部,是客户技术上的需求?(开发环境之类等等,如果客户提出一个你根本不能实现的技术,你接单子岂不是必砸)。第二,是客户业务上的需求,从各个方面调查客户在业务上的需要,以及分界点等等。第三,完成业务需求要实现的功能以及实现程度的需求。我觉得大致是这三点,如果不对,请大家指正,互相学习。
|
| 芹菜 回复于:2005-03-10 11:28:38
|
我看不错啊!
就是太长啦!!
|