软件需求分析三个层次
业务级需求:包含客户或出资者要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件。
用户级需求:用户使用系统来辅助完成哪些工作?对质量有何要求?用户群及所处的使用环境方面有何特殊要求?
开发级需求:开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队的哪些情况会反过来影响架构?
从"需求定义了直接目标还是间接限制"的角度,把需求划分为3种类型,这就是需求的3个方面:
功能需求:更多体现各级直接目标要求。
质量属性:运行期质量 + 开发期质量。
约束需求:业务环境因素 + 使用环境因素 + 构建环境因素 + 技术环境因素。
软件需求的三个层次——业务需求、用户需求和功能需求
业务需求(Business requirement)标志组织或客户高层次的额目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。
业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market requirement)文档。
用户需求(user requirement)描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。
功能(开发,行为)需求(functional requirement)规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求(behavīoral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什么。
什么是用户需求?什么是功能需求?
用户需求是针对的是人,描述的是用户想做某件事情所遇到的问题,或想满足的欲望;而功能需求针对的是产品,描述是产品如何解决用户所遇到的问题,或如何满足用户的欲望,是方式、方法;
举个例子:
用户需求:在决定购买之前,用户想方便的比较一下几个同系列产品,以此在选择的时候做出更明智的决定。
功能需求:我们可以让用户把购买的商品,都放入“比较栏”,然后用户再点击“去对比”,就会在一个界面同时对比几个产品。
用户需求是前提条件,功能需求是落下来的产品部分,它是可以交付的。
值得注意的一点是业务需求,有时候用户需求与业务需求是有矛盾 ,那么个功能需求怎么决定呢?
举个例子:
某个商品界面,我发现我的用户不是为了买最便宜的货,我决定产品不把最便宜的商品都展示出来,因为
1、不希望让用户买最便宜货 2、一旦有太便宜的商品,用户就会形成心理落差,觉得贵的商品不值钱(其实贵的商品的性价比比便宜的商品更高)3、我想提高单笔成交订单额度。
所以我就会只展示相对贵一点的商品。让用户减少选择,就有可能购买价值更贵的商品(业务需求)
如果把最便宜的商品也展示出来,这对于用户需求来说是有价值的;(用户需求)
但是还是坚持了“贵一点”的策略,这就是业务需求主导了功能需求;
业务需求是什么?
业务需求针对是公司,描述是公司想如何解决用户的问题,如何满足用户的欲望,并将利益最大化。重点是在后面,追求商业可行性与利益最大化。
不过放心,大部分互联网公司,他的业务需求很简单:让功能需求最大化满足用户需求,不断追求用户体验,黏住用户后,再谋求规模化利润(比如:广告)。
在软件开发过程中,最为重要的“用户需求”往往和数量巨大的”功能需求“混淆在一起,这会让太多没有直接提供业务价值的需求充斥在需求阶段,这会导致没有突出重点而忽视重要的业务特性,这对业务分析来说是非常有害的。 所以在开发过程中,很有必要加强认识并区分开来。
系统需求
系统需求是比用户需求更具有技术特性的需求陈述,是提供给开发者或用户方技术人员阅 读的,并将作为软件开发人员设计系统的起点与基本依据。
系统需求需要对系统在功能、性能、数据等方面进行规格定义,由于自然语言随意性较大, 在描述问题时容易发生歧义,因此系统需求往往要求用更加严格的形式化语言进行表述,例如 PDL 伪码,以保证系统需求表述具有一致性。
系统需求涉及有关软件的一系列技术规格,包括:功能、数据、性能、安全等诸多方面的 问题。
好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/15268386.html
欢迎来我的51CTO博客主页踩一踩 我的51CTO博客
文章中的公众号名称可能有误,请统一搜索:靠谱杨的秘密基地