相关动态
【软件工程系列】结构化需求分析
2024-11-10 23:05

​ 对软件需求深入理解是开发成功的前提和关键。

【软件工程系列】结构化需求分析

​ 开发软件系统最困难的部分就是准确说明开发什么,最困难的概念性工作是编写出详细需求,包括所有面向用户、面向机器和其他软件系统的接口

​ 此工作一旦做错,将会给系统带来极大损害,并且以后对它修改也极为困难。

  • 分解化简问题
  • 物理与逻辑表示分开
  • 进行数据与逻辑抽象
  1. 发现需求

    • 与用户交谈,向用户提问题
    • 参观用户的工作流程,观察用户的操作
    • 向用户群体发调查问卷
    • 与同行、专家交谈,听取他们的意见
    • 分析已经存在的同类软件产品,提取需求
    • 从行业标准、规则中提取需求
    • 从Internet上搜查相关资料等。
  2. 求精

    • 对初步需求反复求精多次细化。
  3. 建模

    • 建立模型,用图形符号和组织规则书面描述事物。

    模型核心:数据字典

    ​ 描述软件使用和产生的所有数据对象

    数据模型:实体关系图(E-R图)表达

    ​ 描述数据对象间关系

    ​ 图中数据对象属性用“数据对象描述”表达

    功能模型:DFD表达

    ​ 描绘数据在软件中移动,变换及相应功能

    ​ 图中功能用“处理规格说明”表达

    行为模型:状态转换图

    ​ 描绘系统状态和在不同状态间转换方式

    ​ 图中软件控制附加信息用“控制规格说明”表达

  4. 规格说明

    • 书写软件需求规格说明,作为分析阶段最终成果
  5. 复审


3.1 数据模型

  • 数据模型组成

    • 数据对象

      软件必须理解的复合信息表示,复合信息是具有一系列不同性质或属性的事物。

      事务(报表)、地点(仓库)、角色(教师、学生)、单位(会计科)、行为(打电话)等

    • 数据对象间关系

      对象彼此间相互连接方式,也称联系。

      分三类: 1:1 1:N M:N

    • 属性

      定义数据对象性质。

      数据对象学生的属性可为学号、姓名、班级等。

  • 实体关系图

    在这里插入图片描述

  • 实例

    请为某仓库的管理设计一个ER模型,该仓库主要管理零件的订购供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。 “零件”的主要属性是:零件编号,零件名称,颜色,重量。

    “工程项目”的属性主要是:项目编号,项目名称,开工日期。

    “供应商”的属性主要有:供应商编号,供应商名称,地址。

    在这里插入图片描述


3.2 数据流图

​ 数据流图(DFD)描绘系统逻辑模型,图中没具体的物理元素,只描绘信息在系统中流动处理情况。

​ 是非常好通信工具和软件设计出发点。

3.2.1 数据流图符号
  • 四种基本符号

    • 正方形(或立方体:表示数据的源点或终点

      在这里插入图片描述

    • 圆角矩形(或圆形:代表变换数据的处理

      在这里插入图片描述

    • 开口矩形(两条平行横线:代表数据存储

      在这里插入图片描述

    • 箭头:表示数据流、即特定数据的流动方向

    在这里插入图片描述

  • 数据流图附加符号

    在这里插入图片描述

3.2.2 数据流图范例
  • 范例

    工厂采购部采购员每天需一张定货报表,按零件编号排序列出所需定货零件。

    ​ 对定货零件列下述数据:零件编号、名称、定货数量、目前价格,主次要供应者等。

    ​ 零件入库或出库称事务,通过仓库终端把事务报告定货系统。零件库存量少于库存临界 值需订货。

  • 解法

    1. 从问题描述提取数据流图四种成分

      • 先考虑源点和终点

        源点:仓库管理员

        终点:采购员

      • 再考虑处理

        处理:处理事务、产生报表等

      • 最后考虑数据流和数据存存储

        数据流:事务、订货信息、订货报表

        数据存储:订货信息、库存信息

    2. 着手画数据流图的基本系统模型

      在这里插入图片描述

    3. 把基本系统模型细化,描绘系统主要功能

      在这里插入图片描述

    4. 主要功能进一步细化

      在这里插入图片描述

    5. 结束、进一步分解涉及如何具体实现功能时,不应再分解

3.2.3 分层数据流图

​ 为表达数据加工情况,需采用层次结构数据流图。

​ 顶层数据流图包含一个加工项

​ 底层数据流图指加工项不再分解的数据流图

​ 中间层流图只在顶层和底层之间,对其上层父图的细化。

在这里插入图片描述

  • 分层法绘制流程图的几个问题

    1. 编号的设置

      子图的编号是父图相应的处理逻辑的编号。

      子图中处理逻辑编号由子图号、小数点与局部号组成。

    2. 父图与子图的平衡

      子图详细地描述父图中处理逻辑

      子图的输入、输出数据流应同父图处理逻辑的输入、输出数据流相一致。

    3. 局部数据存储

      在子图中出现的数据存储,可以不出现在父图中,画父图时只需画出处理逻辑之间的联系,不必画出各个处理逻辑内部的细节。

3.2.4 数据流图命名规则
  1. 数据流(数据存储)命名

    1. 用名词,区别于控制流
    2. 代表整个数据流(数据存储)内容,不仅仅反映某些成分
    3. 不要用缺乏具体含义名字,如“数据”、“信息”
  2. 处理命名

    1. 用动宾词组,避免使用“加工”,“处理”等
    2. 应反映整个处理的功能,不是一部分功能
    3. 通常仅包括一个动词,否则分解
  3. 数据源点/终点

    不属于数据流图的核心内容

3.2.5 数据流图用途
  1. 作为交流信息的工具

  2. 作为分析和设计的工具

    用数据流图辅助物理系统设计时,可在数据流图上画出许多组自动化边界,每组自动化边界可能意味着不同的物理系统。

    在这里插入图片描述

    在这里插入图片描述

3.2.6 数据流图习题

工资计算系统包含如下功能计算工资 根据人事部门给出的出勤表业绩表计算奖金和缺勤扣款,通过生成的奖金发放表工资基本信息库的信息计算应发工资,根据应发工资表计算所得税,根据后勤部门给出的水电扣款缺勤扣款表所得税款计算出实发工资,生成实发工资表工资清单

打印工资清单

根据工资清单完成工资条打印,给职工

工资转存

根据实发工资表生成职工工资存款清单并将其发送到银行

请用数据流图描绘该系统。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3 状态转换图

软件的行为模型:状态、事件、行为。

状态:被观察到的系统行为模式。

事件:引起状态转换的外界事件抽象。

  • 箭头表示,箭头上标事件名。后跟[条件] 、表状态转换条件。

行为:进入某状态所作动作。

  • 状态框内do:行为名

在这里插入图片描述

3.4 数据字典

对系统使用的所有数据元素定义的集合,半形式化方法表达。

  • 数据字典定义方法

    1. 数据流

    2. 数据元素

    3. 数据存储

    4. 处理

  • 数据字典定义符号

    定义数据的方法:对数据自顶向下分解。

    由数据元素组成数据的方式

    1. 顺序:以确定次序连接两个或多个数据元素
    2. 选择:从两个或多个可能元素中选一个
    3. 重复:把指定数据元素重复零次或多次
    4. 可选:一个数据元素可有可无。

    在这里插入图片描述

    以上就是本篇文章【【软件工程系列】结构化需求分析】的全部内容了,欢迎阅览 ! 文章地址:http://fhzcwj.xhstdz.com/quote/70992.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://fhzcwj.xhstdz.com/mobile/ , 查看更多   
发表评论
0评