软件工程之需求工程

文章链接:https://codemouse.online/archives/2020-03-13-111624

需求工程概述

  • 需求获取:系统分析员与用户交流

    1. 观察分析:现有系统,任务
    2. 系统描述:限制范围,技术环境
    3. 导出列表:与系统有关的人员及特征,系统功能
    4. 应用场景:不同条件下,系统使用状况
    5. 任意原型:为定义需求开发
  • 需求分析与协商

    • 需求获取结束后,分析活动对需求进行分类组织,分析每个需求和其它需求的关系,检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。

    • 在需求获取阶段,经常出现以下问题:

      1. 用户提出的要求超出软件系统可以实现的范围或实现能力;
      2. 不同的用户提出了相互冲突的需求
  • 系统建模

    • 建模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图。
    • 常用的分析和建模方法有面向数据流方法、面向数据结构方法和面向对象的方法。
  • 需求规约

    • 软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。
    • 需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。
  • 需求验证

    • 作为需求开发阶段工作的复查手段,需求验证对功能的正确性、完整性和清晰性,以及其它需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。
    • 在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。

  • 访谈调查

    • 通常采用折衷的方法,即适当地计划好面谈,不要过于详细,允许有一定的灵活性。

    • 一般按照如下原则进行准备:

      1. 所提问的问题应该循序渐进,从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化;

      2. 不要限制用户对问题的回答,这有可能会引出原先没有注意的问题;

      3. 提问和回答在汇总后应能够反映用户需求的全貌。

    • 举例

  • 协商

    • 协商的过程是讨论需求冲突,找出每个人都满意的折衷方案 ,不是简单的逻辑或技术上的争论,要注意组织和行政方面的因素。

      1. 不一致的目标
      2. 责任丧失或转移
      3. 组织文化
      4. 组织管理态度和士气
      5. 部门差异
    • 通常会议是解决冲突最快的方式:开会

      参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的项目相关人员

    • 通常会议分三个阶段:叙述阶段,讨论阶段,决策阶段

    建模

    • 在软件需求分析阶段,所创建的模型,要着重于描述系统要做什么,而不是如何去做,目标软件的模型不应涉及软件实现细节
    • 三种分析方法:
      1. 面向数据流的结构化分析方法(重点)
      2. 面向数据结构的分析方法
      3. 面向对象的分析方法

    需求规约与验证

    规约原则

    1.从现实中分离功能,即描述要“做什么”而不是“怎样实现”。
    2.要求使用面向处理的规约语言,来定义一个行为模型,从而得到“做什么”的规约。
    3.如果被开发软件只是一个基于计算机的系统中的一个元素,那么整个大系统也包括在规格说明的描述之中。
    4.规约必须包括系统运行环境。
    5.规约必须是一个认识模型,而不是设计或实现的模型。
    6.规约必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的解决方案是否都能满足规约。
    7.规约必须允许不完备性并允许扩充。
    8.规约必须局部化和松散耦合。

    规约书写概述:

    规约书概述

    需求验证

    • 目的是要检验需求是否能够反映用户的意愿
    • 评审人员评审时往往需要检查以下内容:
      1. 系统定义的目标是否与用户的要求一致;
      2. 系统需求分析阶段提供的文档资料是否齐全;
      3. 被开发项目的数据流与数据结构是否确定且充足;
      4. 主要功能是否已包括在规定的软件范围之内,是否都已充分说明;
      5. 设计的约束条件或限制条件是否符合实际;
      6. 开发的技术风险是什么;
      7. 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。

    需求管理

    • 正向跟踪:以用户需求为切入点,检查《需求规约》中的每个需求是否都在后继工作产品中找到对应点

    • 逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在《需求规约》中找到出处

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2020年5月15日
    下一篇 2020年5月15日

    相关推荐