什么是软件需求?以及需求的最佳实践?

什么是软件需求
业务需求是反应企业组织对软件系统的高层次目标要求,换句话说就是软件系统的建设目标,常常体现在这两个方面:问题和机会。

要记住:出发点不同,精神面貌就完全不一样,当然如果目标过于夸大也是不行的。可能会导致不必要的资源浪费。

用户需求
用户需求是指描述的是用户使用软件需要完成什么样的任务,怎样完成的需求。通常是在业务需求定义的基础上进行用户访谈、调查、,对用户的使用场景进行整理,从而建立用户角度的需求。换句话说就是用户需求是需求捕捉的产物,所具有的特点如下:

软件需求
正如前面所说到的,用户需求具有零散、存在矛盾的特点。以需求分析人员还需要对其进行分析、整理和提炼,从而生成知道代发的、更精确的软件需求。换句话说就是软件需求是需求分析与建模的产物。

问题:解决企业运作的过程中遇到的问题。
机会:抓住外部环境变化所带来的机会,以便为企业带来新的发展。
零散:用户会提出不同角度和不同层面不同粒度的需求,而且通常是以一句话的实行表示出来。
存在矛盾:由于用户处于企业的不同层面,因此难免出现盲人摸象的现象。
需求的三种类型
功能需求
对于软件需求而言最为关键的就是如何进行组织否则一句话、一句话地描述就会显得十分零散。而且很难保证开发人员注意满足这些需求。

非功能需求
其中典型的问题有两个:

信息传递的无效性:很多需求规格说明书里面会通过一个名为设计原则的小节来说明非功能需求。
忽略了非功能需求的局部性:更为科学的做法是抓住具体的场景来描述
设计约束
非技术因素决定的技术类型:对于软件开发而言,有些技术选型并不是由技术团队决定,而会受到企业实际情况的影响。

预期的软硬件环境:技术开发团队在决定架构、选择实现技术时会受到企业实际的软硬件环境的影响。

优秀需求的标准
完整性:就是使需求没有遗漏,也就是在需求变更中,新需求所占的比例的量不大。而且这些新需求都是因为外部环境的变化而产生的。

不失真:需求的正确性和无歧义性是一组相关的要求,指的是确保需求在信息传递的过程中不失真。

有优先级:想要更好地对项目进行管理就需要有效的区分优先级。

需求工程解析
需求工程的范畴
需求工程包括需求开发和需求管理两大范畴,需求开发是收集、分析、整理、编写、验证需求的全过程。重点在于开发出高质量的需求规格说明。需求管理则是对需求的实现、变化进行追踪的全过程,重点在于确保开发的软件满足这些需求。

需求工程工作要点
需求获取:需求获取也是需求捕获,但是其中出现的问题主要体现在捕获范围不足、缺乏计划性、捕获对象不明确、捕获手段不明确。

需求分析:需求分析是需求开发过程中的核心任务。

编写规范:编写规范就是将需求分析结果文档化的过程,对于比较规范化的开发组织而言,都会重视这个活动。

需求验证:对于需求验证工作,大多数组织都不够重视,有时只是找一个客户代表签字确认,有时甚至直到交付系统通过测试系统来验证。

需求管理工作要点
具体来说,需求管理工作包括基线管理、变更管理和需求跟踪。

统一、明确的需求项划分标准:要对需求进行有效的管理、就必须有清晰、统一、明确的标准将需求划分为具体的需求项。

引入基线管理:就会把需求分为两大类,一类是已经开始的基线内的需求、另一类就是还没有安排开发的待处理项目。

引入变更管理:引入变更管理是十分重要的,就需求管理的范畴而言,重点在于完成业务影响分析、技术影响分析、项目影响分析三方面。

引入需求跟踪:在对变更的影响进行分析时,就会发现很难精确的评价变更将影响那些需求项、那些设计元素、只能凭借印象和经验。而要想真正的做到精确的量化评估,就需要通过跟踪活动来积累信息。

需求分析人员的技能组成
需求分析人员的来源
他的三大技能是横跨文、理两大学科的,因此想要找集三方面特长于一身的人 很难,因此通常需求通过团队协作来解决这一矛盾。

各种能力培养的要点
沟通能力是最重要的,通过改变思维模式不断训练是可以提高的。

SERU模型概述
需求定义阶段
需求定义阶段就是项目的立项阶段,也与RUP的初始化阶段相对应。

理清脉络阶段
相当于需求捕获、分析和建模的阶段一,对应RUP中细化阶段的第一次迭代。

填充细节阶段
相当于需求捕获、分析与建模的阶段二、在RUP中将从细化阶段的第二次迭代开始直到构建阶段完成。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

  • 31
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书讲述了软件开发中一个至关重要的问题—软件需求问题。软件开发人员及用户往往容易忽略信息沟通,导致软件开发出来后,不能很好地满足用户的需要。而返工则不仅在技术上给开发人员带来巨大的麻烦,而且软件性能深受影响且造成人力、物力的浪费。所以在开发周期早期提高项目需求分析的质量,减少重复劳动,通过控制项目范围的扩展及需求变更来达到按计划完成预定目标是当前我国软件业急需解决的问题—这也是本书讨论的主要内容。 目 录 译者序 前言 第一部分 软件需求:是什么和为什么 第1章 基本的软件需求 1 1.1 软件需求的定义 2 1.1.1 一些关于“需求”的解释 2 1.1.2 需求的层次 3 1.2 每个项目都有需求 4 1.3 什么情况将会导致好的群体发生不合格 的需求说明 5 1.4 高质量的需求过程带来的好处 7 1.5 优秀需求具有的特性 7 1.5.1 需求说明的特征 7 1.5.2 需求规格说明的特点 8 1.6 需求的开发和管理 9 第2章 客户的需求观 11 2.1 谁是客户 12 2.2 客户与开发人员之间的合作关系 12 2.2.1 软件客户需求权利书 13 2.2.2 软件客户需求义务书 15 2..3 “签约”意味着什么 17 第3章 需求工程的推荐方法 18 3.1 知识技能 19 3.2 需求获取 20 3.3 需求分析 21 3.4 需求规格说明 22 3.5 需求验证 23 3.6 需求管理 23 3.7 项目管理 24 第4章 改进需求过程 26 4.1 需求与其他项目过程的联系 26 4.2 软件需求对其他项目风险承担者的影响 27 4.3 软件过程改进的基础 28 4.4 过程改进周期 29 4.4.1 评估当前采用的方法 29 4.4.2 制定改进活动计划 30 4.4.3 建立、实验和实施新的过程 31 4.4.4 评估结果 32 4.5 需求过程的积累材料 33 4.5.1 需求开发过程的积累材料 34 4.5.2 需求管理过程的积累材料 34 4.6 需求过程改进路标 35 第5章 软件需求与风险管理 37 5.1 软件风险管理基础 38 5.1.1 风险管理的要素 38 5.1.2 编写项目风险文档 39 5.1.3 制定风险管理计划 40 5.2 与需求有关的风险 41 5.2.1 需求获取 41 5.2.2 需求分析 42 5.2.3 需求规格说明 42 5.2.4 需求验证 43 5.2.5 需求管理 43 5.3 风险管理是你的好助手 43 第二部分 软件需求工程 第6章 建立项目视图与范围 45 6.1 通过业务需求确定项目视图 45 6.2 项目视图和范围的文档 46 6.3 关联图 50 6.4 把注意力始终集中在项目的范围上 51 第7章 寻找客户的需求 52 7.1 需求的来源 52 7.2 用户类 53 7.3 寻找用户代表 54 7.4 产品的代表者 55 7.4.1 寻求产品代表者 56 7.4.2 产品代表者的期望 56 7.4.3 多个产品代表者 57 7.5 谁作出决策 58 第8章 聆听客户的需求 60 8.1 需求获取的指导方针 60 8.2 基于使用实例的方法 62 8.2.1 使用实例和用法说明 62 8.2.2 确定使用实例并编写使用实例文档 64 8.2.3 使用实例和功能需求 67 8.2.4 使用实例的益处 67 8.2.5 避免使用实例陷阱 68 8.3 对客户输入进行分类 69 8.4 需求获取中的注意事项 70 8.5 如何知道你何时完成需求的获取 71 第9章 编写需求文档 72 9.1 软件需求规格说明 72 9.1.1 标识需求 73 9.1.2 处理不完整性 74 9.1.3 用户界面和软件需求规格说明 74 9.2 软件需求规格说明模板 75 9.3 编写需求文档的原则 79 9.4 需求示例的改进前后 81 9.5 数据字典 83 第10章 需求的图形化分析 85 10.1 需求建模 85 10.2 从客户需求到分析模型 86 10.3 数据流图 87 10.4 实体联系图 88 10.5 状态转换图 90 10.6 对话图 92 10.7 类图 94 10.8 最后的提醒 96 第11章 软件的质量属性 97 11.1 非功能需求 97 11.2 质量属性 97 11.3 定义质量属性 98 11.3.1 对用户重要的属性 99 11.3.2 对开发者重要的属性 100 11.4 属性的取舍 101 第12章 通过原型法减少项目风险 103 12.1 原型是“什么”和“为什么”要原型 103 12.2 水平和垂直的原型 103 12.3 抛弃型原型或进化型原型 104 12.4 书面原型和电子原型 106 12.5 原型评价 107 12.6 原型法的最大风险 108 12.7 原型法成功的因素 108 第13章 设定需求优先级 110 13.1 为什么要设定需求的优先级 110 13.2 不同角色的人处理优先级 111 13.3 设定优先级的规模 111 13.4 基于价值、费用和风险的优先级设定 112 第14章 需求质量验证 116 14.1 需求评审 117 14.1.1 审查过程 118 14.1.2 需求评审的困难 122 14.2 测试需求 124 第15章 需求开发向设计规划的转化 128 15.1 从需求到项目规划 128 15.1.1 需求和进度安排 128 15.1.2 需求和预估 129 15.2 从需求到设计和编码 130 15.3 从需求到测试 131 15.4 从需求到成功 131 第三部分 软件需求管理 第16章 需求管理的原则与实现 133 16.1 需求管理和过程能力成熟度模型 133 16.2 需求管理步骤 135 16.3 需求规格说明的版本控制 135 16.4 需求属性 136 16.5 度量需求管理的效果 138 第17章 管理变更请求 139 17.1 控制项目范围的扩展 139 17.2 变更控制过程 140 17.2.1 变更控制策略 140 17.2.2 变更控制步骤 141 17.2.3 变更控制工具 144 17.3 变更控制委员会 145 17.3.1 变更控制委员会的组成 145 17.3.2 变更控制委员会总则 145 17.4 测量变更活动 146 第18章 需求链中的联系链 149 18.1 需求跟踪 149 18.1.1 需求跟踪动机 151 18.1.2 需求跟踪能力矩阵 151 18.1.3 需求跟踪能力工具 153 18.1.4 需求跟踪能力过程 153 18.1.5 需求跟踪能力可行吗,必要吗? 154 18.2 变更需求代价:影响分析 154 18.2.1 影响分析过程 155 18.2.2 影响分析报告模板 157 第19章 需求管理工具 158 19.1 使用需求管理工具的益处 159 19.2 商业需求管理工具 160 19.3 实现需求管理自动化 161 附录 当前需求实践的自我评估 163 参考文献 167 后记 171
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值