需求文档怎么写-需求文档怎么写模板( 三 )


需求准备的过程:了解用户特征和使用水平、评估、比较不同方式实现需求对于用户行为的可控性和“非常规”操作的危害程度;
需求分析的过程:选择和确定需求实现方案, 评估行为管理方式和管理机制;
需求编写的过程:详细描述需求的业务流程和交互过程中可能出现的用户异常操作, 相应异常操作中系统反应, 系统对应的控制和引导;
需求检查的过程:需求“异常”流程和相应引导、控制地完整性检查;
在需求管理的过程中, 就可以按照这个 描述——解释——预测——监控流程来进行 。 这四个既是步骤, 是需求文档内容的组成部分, 也是需求编写完成之后的检查 。
四个模块构成了需求文档的完整性, 且同时有各自独立, 有对应的说明, 引导、要求和标准 。 所谓标准文档, 就可以按照这四个模块作为框架、内容和格式 。
写在最后
产品需求文档作为产品经理同视觉设计、交互设计以及技术开发人员进行需求沟通的一个载体, 我平时用的比较多的是摹客的服务进行创作 。 一个完整的、充分沟通确认, 并最终达成多方理解和共识的产品需求文档, 能够最大限度的还原产品、功能的设计, 保证产品、功能的实现, 最大限度的减少因为各方理解的偏差而造成的时间、人力和经济资源的浪费及复工 。
需求文档怎么写最有效能将功能需求写清楚的就是好的需求文档, 因为现在的需求文档一般都是给开发看, 一般来说创业公司追求小步快跑快速迭代的开发模式的话, 需求文档不是一个很有必要的东西, 直接在原型上表述效率会更好 。 如果公司追求规范管理的话, 建议还是需求文档, 写清楚项目名称, 迭代版本, 及相关的日期规划 。

需求文档怎么写-需求文档怎么写模板

文章插图
如何编写优质的需求文档需求文档被用来定义开发任务, 协调大规模的研发计划 。 对于最终的产品, 需求文档扮演着开发者行为和消费者行为之间沟通纽带的角色 。 当需求文档书写正确的时候, 便可以发挥巨大的作用 。 然而, 如果你在嵌入式开发领域工作的时间足够长, 你就会很快发现, 这个领域里不合格的需求文档实在是太多了 。 当你尝试对这些不合格的文档进行修复时, 你又会很快发现, 书写正确的需求文档绝非易事 。 在这里, 我们提出一些建议, 希望能将书写正确需求文档这件事情变得清晰一些 。 从较高的层次来看, 书写需求文档的目的就是要提供对所需行为的有效描述 。 该所需行为可用一个黑盒系统描述, 并需要注意以下细节:工程师可以根据系统所说进行实现测试人员, 在不与开发人员沟通的前提下, 可以利用满足硬件要求的设备验证需求 。 最终产生的成果满足终端用户的要求 。 黑盒测试 书写优质的需求文档: 最基本的原则是:需求文档应当尽量简洁, 用最易懂的描述来约束系统的预期行为 。 如果你遵循这个原则, 剩下的那些重要因素(可测试性、避免过度设计等等)都将变得顺理成章 。 列举一下更详细的规则, 通常会更有帮助 。 下面是书写优质需求文档需要遵循的步骤: 1. 定义系统的边界 。 这也是黑盒系统所必要的 。 2. 定义输入和输出 。 这也应当是你看待内部系统的唯一方式 。 3. 用最易懂的方式描述系统的预期行为 4. 除了输入和输出之外, 你的需求是不是还涉及了系统的其他部分?如果是, 那么你的需求就设计过度了 。 重构需求, 让它变得精简 。 5. 你的需求是不是过于模棱两可?加入更多的限定规范 。 注意:有些模棱两可的描述并不是坏事, 假设描述所包含的所有情况均可被接受, 且测试的时候不需要附加的信息加以说明, 那么就没关系 。 你不需要(也不应该)把系统的行为限制得过头 。 6. 你的需求是否可测试?(这里指的是黑盒测试)如果不是, 你最好返回到第 4 步 。 如果这种返工发生很多次, 那就说明你的黑盒无法正确描述系统, 或者你的测试工具不够优秀 。 无论是哪种情况, 不可测试的需求文档几乎就是一文不值的 。 7. 你的需求文档通俗易懂么?如果你的需求文档非常难以读懂, 那就说明你写得不好, 只能给那些照着你的需求负责实施的人带来无尽的痛苦 。 如果是这样, 回到第 3 步 。 8. 你是不是真的做到了第 4 步?你确认么?再检查一下 。 例子:下面的例子, 让我们描述一个自制的嵌入式设备的需求, 这个设备能从弯曲传感器上读取弯曲的频率, 并根据不同的频率值让一个 LED 闪烁 。 显然, 我们已经完成了步骤 2 和步骤 3 了! · 输入:从弯曲传感器读取数据 。 · 输出:LED 。 但是我们跳过了步骤1: · 在这个例子里, 我们将把黑盒画到设备的微处理器上 。 让我们继续往下进行, 第四步:除了输入和输出以外, 我们是否还涉及了其他的系统边界? · 微处理器并不关心从弯曲传感器读取什么样的数据, 从处理器的角度来看, 仅需要做的是测量 ADC 脚的电压而已 。 · LED 仅由数字输出脚控制 。 下面, 让我们来修正这个问题: 第0 版本的需求: 1. 该设备应当根据 ADC 脚的不同频率的电压, 来切换数字输出端的状态 。 第五步: 需求写模棱两可么? 恩, 我们的描述太模棱两可了.输出端切换的速度要多快? 跟电压的关系如何? 输入电压的范围是多少? 让我们加一些更细节的描述吧: 版本0.1 1. 输出端应当由一个自由活动的定时器进行控制 2. 自由运行定时器的频率最高不得高于每秒 10 次, 不得低于每秒 1 次. 3. 自由运行定时器的触发频率应当在最高和最低值之间呈线性变化, 并与 ADC 端的输入电压成正比. 4. ADC 端的输入电压应当每 100 毫秒读取一次 5. 当 ADC 端的输入电压端被读入时, 控制自由运行定时器周期时间的注册值也应当被更新. 6. ADC 输入端的电压有效范围应当被控制在 0 到 1 伏之间. 第六步: 你的需求是可测试的么? · 首先, 自由运行的定时器在这里不需要提及. 因为对它基本上无法进行黑盒测试, 它既不是输入也不是输出, 而且跟这两者也没有什么联系 。 让我们用“数字输出端变化的频率应控制在每秒 10 次和每秒 1 次之间”来代替自由运行定时器的测试标准 。 · 对于上述的第四条需求, 可能需要一些小修改才能作为测试标准 。 让我们用“ADC 端的输入电压应当保证在每 100 毫秒内至少被读取一次”来加以描述, 这样的描述能让我们预期的测试行为显得更加通俗易懂 。 · 需求的第五条也需要一些小修改 。 我们如何才能检测电压的输出范围是在 0 到 1 伏之间呢? 总不能给个 2 伏的电压, 然后看看元器件有没有被烧毁吧? 那么, 说“检验系统在 ADC 端输入电压为 1 到 2 伏之间的时候, 工作是否正常”, 这样就检验就容易多了 。 需求描述应当是“正面”的, 应当描述设备“应该”的行为, 而不是设备“不应该”的行为 。 否则的话, 测试将会无法进行 。 版本0.2 1. 数字输出端的切换频率应当控制在每秒 10 次到每秒 1 次之间 2. 数字输出端的切换频率应当在最大值和最小值之间呈线性变化, 并与 ADC 端的输入电压成正比 3. ADC 端的输入电压应当保证在每 100 毫秒内至少被读取一次 4. 检验当 ADC 端的输入电压范围在 0 到 1 伏之间的时候, 系统工作是否正常 第七步:你的需求是否通俗易懂? 相比于我们原来的描述:“根据弯曲传感器的输出不同频率来控制 LED 闪烁”, 我们上面的那些需求描述显得难以阅读和理解 。 我发现, 让需求文档变得通俗易懂, 最简单办法莫过于, 把过于细节的东西抽取出来, 然后以条目的形式单独定义 。 版本1 1. 弯曲传感器应当保证至少在 100 毫秒内读取一次数据(放到注释单独列出) 2. 切换 LED 的状态, 使其与弯曲传感器的读数保持一致 3. 当弯曲传感器的读数为 1 伏特时, LED 状态切换的次数应当保持在平均一秒十次;当传感器的读数为 0 伏特时, LED 的切换次数应保持在一秒 1 次 。 定义: · 弯曲传感器:输入电压位于 ADC 的X端 。 安全电压范围为 0 到 1 伏特(放到注释单独列出) · LED 状态:数字状态由Y端输出 这样就好多了(尽管还不完美) 。 这些需求通俗易懂, 不涉及到系统内部实现, 且易于测试 。 对于系统行为的限定也仅仅限于需要做什么, 点到为止 。 (例如, 对弯曲传感器的采样频率, 在实现上也可以更高, 只要不产生非预期行为, 一切都可以) 。 编写需求就仿佛是在大脑中构建软件的过程 。 因此要重于实作 。 编译:伯乐在线 – 黄小非


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。