需求之一 何谓软件需求


最近带领团队高了一段时间需求,顺便翻了一下卡尔威格的经典之作《软件需求》,有些心得体会,顺便记下来,与各位交流交流。
说到软件需求,其重要性恐怕不用我多强调了吧,那么到底何谓软件需求?翻开IEEE软件工程属于表,则将需求定义为:
用户为解决某个问题或达到某个目标而须具备的条件或能力;系统或系统组件作为符合合同、标准、规范或其他正式文档而必须满足的条件或必须具备的能力;上述第一项获第二项中定义的条件和能力的文档表达。
怎么样,晕了吧。而有些人认为需求是“任何促成设计决策的因素”,这一点我就比较认可,需求可以是一段录音、一个用户化的草图、一张图片、一段文字,当然最后形成规格说明书的时候,最好能整理成文字便与交流。说了这么多,我还是讲一个小故事说明什么是软件需求。

经济危机来了,为了节约纸张资源,公司领导决定以后不发纸质工资条了,由软件研发部加班开发一个系统,能够将电子工资条发给大家。
 所有员工开始提出需要,工资条能够导出来脱机查看,必要时能够打印,可以查询历史工资;财务人员提出:工资条格式必须能够定义,一旦生成不可修改……;
 最后由软件研发部需求分析人员整理大家的意见后,形成软件功能:系统能够支持普通用户和财务人员两种角色;系统提供数据导出功能,可以将报表导出为PDF文件;提供打印机打印预览;提供按照月份查询功能;工资条报表模板自定义……;

Ok,从上面一个故事中可以看到三个层次的需求:
第一层:业务需求,即:节约资源,用电子工资条取代传统纸质工资条;
第二层:用户需求,第二段都是;
第三层:功能需求,第三段都是;

业务需求,一般情况下都是由软件的采购者、合同制定者等人员提出来,往往是为了解决某个业务领域的问题;
用户需求,往往是软件的最终用户,就是直接使用者提出来的具体要求;需要注意不同的用户需求往往是有差别的;
功能需求,往往是由系统分析人员通过对以上需求分析,整理出来的软件功能,或者说软件为了满足用户需要应该具备的功能。需要注意对涉众信息的分析,如:财务人员和普通员工;业务规则及功能约束,比如公司采用保密工资制,所以员工只能查询自己工资条;然后抽取所有功能点……(算了,搞需求的方法,后面再说吧。)

最后,获回到开始的题目,何谓软件需求,即:业务需求+用户需求+功能需求。如果将这三个层次的需求写到一个文档中,就是所谓的需求分析规格说明书了。

posted @ 2008-12-11 09:22  杨卫国  阅读(320)  评论(0编辑  收藏  举报