软件工程复习笔记——第二章 需求分析基础

第二章 需求分析基础

2.1 软件需求工程的基本概念

  • 对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程——需求工程

  • 没有需求就没有软件。

  • 软件需求的困难:

    • 应用领域的广泛性
    • 非功能需求建模技术的缺乏
    • 沟通上的困难
  • 软件需求的内容:

  • 在这里插入图片描述

    • 功能需求: 是对系统应该提供的服务、功能以及系统特定条件下的行为的描述。

    • 领域需求: 是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。

    • 非功能需求:在这里插入图片描述

  • 传统需求分析的作用:

    • 定义软件的范围及必须满足的约束;

    • 确定软件的功能和性能及与其他系统成分的接口。

    • 建立数据模型、功能模型和行为模型;

    • 最终提供需求规格说明,并用于作为评估软件质量的依据。

  • 需求工程的活动

    • 需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。
  • 需求工程的基本活动

    • 获取需求:需求工程的主体。
      • 非常困难,主要是因为:
        • 缺乏领域知识
        • 存在默认的知识
        • 存在多个知识源
        • 客户可能的偏见
      • 需求抽取的方法
        • 面谈法:主要面谈对象为用户和领域专家
        • 问卷调查法:从多个用户中手机需求信息(对面谈的补充)
        • 需求专题讨论会:由开发方和用户共同召开
        • 观察用户的工作流程
        • 原型化方法
        • 基于用例的方法
        • 知识工程方法:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取。
    • 需求分析与建模
      • 主要对收集到的需求进行提炼、分析和认真审查,确保所有参加人员取得一致共识。找出错误、遗漏和不足,建立完整的分析模型。
      • 需求分析和建模的三个层次的工作:
        • 需求分析
        • 需求建模(分为企业建模、功能需求建模和非功能需求建模等)
        • 需求规格说明—不同的描述方式
      • 需求分析常用技术
        • 分解:大问题分解为小问题,通常自顶向下
        • 抽象:抓住问题的本质特性
        • 多视点:注意从各类开发人员和不同用户的角度考虑问题
    • 确认需求
    • 进化需求
  • 需求的有效性验证:

    • 重要性
      • 由于需求是第一步,直接影响后续开发。
      • 需求的可变性必须进行验证
    • 需求验证的内容
      • 有效性验证
      • 一致性验证
      • 完备性验证
      • 可检验性验证
  • 需求管理

    • 在这里插入图片描述

    • 需求管理的所有活动中,最重要的是“需求变更管理”:

    • 在这里插入图片描述

      需求管理过程需要CASE (Computer Aided Software Engineering) 工具支持。

    • 需求变更管理方法

      • 传统的变化管理:基本内容包括软件配置、软件基线和变化审查。
      • 新的管理方法
        • 软件家族法
          • 即软件产品线方法,该方法是源于工业界产品线的概念,关注于一个软件企业如何组织一组具有共性特征的,相似产品的生产,并应用软件复用的相关原理与技术。
        • 多视点方法
          • 它可以用于管理不一致性并进行关于变化的推理。是从多个视点出发在软件工具的协助下对需求描述,进行自动需求建模,从而提高需求模型的完整性。

2.2 需求分析方法

  • 功能分解方法

    • 将系统看作若干功能模块的集合,每个功能又可以分解为子功能,子功能还可继续分解,分解的结果即是系统的雏形。
    • 存在的问题
      • 需要人工完成
      • 无法对描述的准确度进行验证
      • 难以适应需求的变化
  • 结构化分析方法

    • 是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由**数据流图(DFD图)**表示
  • 信息建模法

    • 是从数据的角度对现实世界建立系统的信息模型,基本工具是ER图。是由实体、属性和关系组成的网络图。

      • E-实体,是一个或一组对象;
      • R-关系,实体之间联系或交互作用。
  • 面向对象的分析方法

    • 面向对象分析方法(OOA)的关键是 识别问题域内的对象, 分析它们之间的关系,并建立起三类模型。
2.2.1 结构化分析方法
  • 1.SA法的基本思想——”分解“和”抽象“

    • 分解:大问题化小问题
    • 抽象:用最本质的属性表示一个系统
  • 2.SA法的步骤

  • 在这里插入图片描述

  • 3.SA法的描述方法

    • 分层的数据流图(DFD图):描述系统中数据流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出所需的加工处理过程

      • 画图步骤

        • 1、确定外部实体及输入、输出数据流。
        • 2、确定分解顶层的加工。
        • 3、确定使用的文件。
        • 4、用数据流将各部分连接起来,形成数据封闭。
      • 在这里插入图片描述

      • 先全局后局部,先整体后细节,先抽象后具体。

      • 画图的基本原则

        • 数据守恒与数据封闭原则:每一个加工既有输入数据流又有输出数据流
        • 加工分解的原则
          • 自然性
          • 均匀性
          • 分解度:一般最多不超过7个子加工
        • 子图与父图的”平衡“
        • 合理使用文件
      • 分层DFD图的改进

        • 1.检查数据流的正确性
        • 2.改进DFD图的易理解性
    • 数据词典:四种类型的条目

      • 数据流:给出某个数据流的定义,通常是列出该数据流的各组成数据项
      • 文件:给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流
      • 数据项:数据项条目给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围。
      • 加工:加工类条目就是 “加工小说明” 。一般应该单独列出。

      在这里插入图片描述

    • 加工说明:精确地描述加工的激发条件加工逻辑优先级执行频率出错处理等。加工逻辑是其中最基本的部分,指用户对这个加工的逻辑要求。
      对基本加工说明有三种描述方式

      • 结构化语言:结构化语言是介于自然语言和形式语言之间的一种半形式语言,是自然语言的一个受限制的子集。(外层语法:控制结构(顺序结构、选择结构、循环结构),内层语法:表达“做什么”)

      • 判定表: 判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。

        特点:可处理较复杂的组合条件,但不易理解,不易输入计算机。
        四部分组成

        • 条件框:条件定义
        • 操作框:操作的定义
        • 条件条目:各条件的取值及组合
        • 操作条目:在各条件取值组合下所执行的操作
      • 判定树
        特点:描述一般组合条件较清晰,易理解。不易输入计算机。

  • 需求分析小结:最终任务是要完成目标系统的需求规格说明,确定系统的功能、非功能需求和性能,为后阶段的开发打下基础。
    常用方法:SA法,原型法,OOA法等

第二章完

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值