博主资料

留言 加为好友 收藏

用户名:  arronxiao
来自:  上海 黄浦

个人统计

用户名: arronxiao
等级: 初来乍到
威望: 90
积分: 226
在线时间: 12 小时
日志总数: 18
评论数量: 36
访问次数: 92444
建立时间: 2006-05-06
RSS订阅       手机访问

最新评论

文章搜索

文章列表

友情链接

最近访问的人:

您我携手共创未来
2008-06-24 09:27:30
快乐的生活,快乐..
2008-06-14 20:50:19
天空
2008-06-06 09:24:40
兵,器
2008-06-03 13:44:59
任甲林
2008-05-23 07:27:28
2008-04-28 23:29:28
2008-04-25 19:00:39
天地你我
2008-02-05 23:32:45
电子商务研究(B2C)
2008-02-02 09:07:53
逆风飞扬
2008-01-31 23:02:22

日志文章

2007年01月21日 12:21:37

浅说软件需求

公元1907年元旦,我是个裁缝。我有个朋友叫张三。刚过去的一年诞生了小皇帝溥仪,听我那不争气的小子说什么法兰西还死了个居里夫人。真是乱弹琴,他老子是死是活不来过问一下,什么法兰西死个婆子他瞎操心。
张三最近常感冒,甚是不快,跑来问我为什么。我也不知道,不过答应帮他想想。几天以后,我明白了。我问张三,你干活的时候为什么总是脱掉棉衣?张三说,棉衣太厚太重,干活非常不方便。我说,你需要一件轻的薄的又能保暖的便于干活的棉衣,这样就不会感冒。张三一听,高兴的说:是的。

[张三的问题是感冒,从感冒中我得找出他的“裁缝需求”。我找到了他的需求是一件轻的薄的又能保暖的便于干活的棉衣,只要满足这个需求,感冒这个问题就能解决。当然,这不是解决问题的唯一办法,譬如张三还可以换个室内工作,或者穿着厚重的棉衣干活……,不过那样的话,我就没生意了: ) ]
 
我找到了张三的“裁缝需求”:1) 一件棉袄,2) 轻的,3) 薄的,4) 保暖的,5) 便于干活。不过,仅有这些,我还不能给张三裁衣。我还要知道张三的肩宽,身高,这个很简单,尺子量量就知道了。此外还要知道他喜欢什么颜色和质地,这个有点困难,我问他,可是他也说不清。但是,我必须在动手裁衣前弄明白这个问题,否则,他要是因为不喜欢颜色而拒付工钱我就亏大了。
我拿了几种布料,披在张三身上,让他感觉一下颜色怎么样。几经试验,他选了黄灰色,因为他们老板的棉袄就是这个颜色,而且这个颜色耐脏。至于质地,他挑选了一种三类棉花。此外,我们在棉袄的重量和厚薄上也达成了一致意见。最后,我写了一份“棉袄规格说明书”,把大小颜色质地等罗列出来,让张三确认一下。基于这份“规格书”,我和张三敲定了价格。

[仅有需求还不够,我还要知道得更多更细一点,不然我会做出一件也许只能给他儿子或老妈穿的棉袄。那样的话,要么我说服他买下棉袄,要么我自认亏本,不管怎样,我和张三的朋友关系都要受损。因此,我还是多花点功夫做份“规格书”为好。不过,用户经常说不清想要的“规格”,因此,最好的办法是给他们一个原型试一试,同时给他们解说原型,引导出他们真正想要的东西。]
接下来,我要吩咐我的小工备料,裁剪,缝衣等等,不过,这些都是我自己的事,和张三基本没关系。

光阴如梭,民国年间,我的小裁缝店变成了小公司。后来,世事难料,合营了,再后来,没了。不过,我命大,活过来了。可惜我那儿子操心洋人东西过了头,57年进了牛棚,68年没了,说他里通外国。哎,又熬了30年,终于赶上了好时候,改行做了高科技——挨踢。
很高兴的发现,我的裁缝经历还能继续发挥作用。我们的客户碰到了问题,譬如有个搞宽带运营的客户,他说他们的客户投诉率比竞争对手高了一倍,怎么办?我们派人去帮他们分析,发现它们的网络设备分布图(MAP)都在纸上。当有设备发出预警时,他们要在大量的MAP中寻找设备在哪里。这很花时间,等他们找到了的时候,预警已经变成了故障,客户投诉也来了。这样,我们给客户开出药方:1) 电子化MAP, 2) 让设备预警自动关联到MAP上的设备。这样就能迅速定位设备,及时排解故障。
就是这样,我们帮客户分析业务,识别出软件需求,编写软件需求文档。我们把这个称作“软件需求分析”。不过,仅有需求文档还不够,我们的客户都很关心软件的外观和使用。这两个方面不事先得到客户确认的话,最后总是拒绝接受我们开发的软件。因此,接下来我们还得写一份详细的“软件规格说明书”,说明软件的外观以及怎么使用。这个工作比裁缝复杂一些,写出的规格书也比“棉袄规格说明书”复杂很多。我们通常做一个人机接口的UI原型来说明软件外观,再用一种叫“用例”的技术来说明软件的使用。用例和UI原型形成我们的“软件规格说明书”。
 
譬如Web软件,我们会用HTML做出页面原型,我们的小工做HTML页面很快。基于原型我们帮助客户想象软件做好以后的样子,而后,客户会提一些意见,我们再改,这要一个较长的过程,要反复多次,直到客户满意。不过,仅有页面原型还不够,它仅有静态的软件外观,用户应该输入什么,而后软件会输出什么,这种动态的关系没有表示出来。这就要做用例,用例描述用户和系统的交互,用户输入什么,系统输出什么。不过,我们的经验,用例中不要涉及UI,用例关注的是用户输入什么数据,系统输出什么数据。至于用户是在窗口上按下按钮来输入,还是命令行上打个命令来输入,抑或IE中点击提交,这个留给UI原型去说明,用例中不要关心。无需我说,一份完整的软件规格说明书,用例肯定很多。
形成“软件规格说明书”的过程我们叫“软件外部设计”,即从软件的外部描述软件是什么样子。这是一个较长的反复过程。我们总是写出一些东西,帮助客户想象一下软件做好以后是什么样子。而后客户总是会提出一些意见,我们再改。直到客户基本没意见了,我们就得到了比较完善的“软件规格说明书”。
得到了比较完善的“软件规格说明书”以后,我们的需求工作就结束了,接下来进入软件内部设计。这也是一个复杂的工作,有一些叫架构设计师、开发工程师、测试工程师的人会介入工作。这些人比我原来裁缝店的小工厉害一些。

Tags: 需求  

类别: 软件需求 |  评论(1) |  浏览(2500) |  收藏
1楼 [匿名]guest 2007年01月22日 10:43:58 Says:
先是需求分析,即从纷繁的现实问题中找到问题原因和相应的解决办法。而后是规格定义,即为了避免做错事,明确、详细定义解决办法的规格。
这是解决问题的一般步骤,在传统行业中也是这么做的,不过可能传统行业由于不是那么明显,我们没意识到这个步骤。
发表评论