首页 > 其他分享 >结构化分析方法

结构化分析方法

时间:2024-05-23 23:28:12浏览次数:16  
标签:需求 存储 加工 方法 数据流 结构化分析 数据

目录

1.结构化分析方法的概念

2.结构化分析模型

3.结构化分析过程

4.需求规格说明书


1.结构化分析方法的概念

就软件需求分析而言,即:系统化地使用问题域术语,给出该问题的模型(即“系统必须做什么”的一个估算)

1)需求分析的目标
对需求陈述进行分析,解决其中的歧义、不一致等问题以系统化的形式表达用户的需求,即给出问题的形式化或半形式化的描述(称为系统的概念模型,或系统的需求规约或需求规格说明)。作为开发人员和客户间技术契约的基础,并作为而后开发活动的一个基本输入。

2)实现软件需求分析的目标对方法学的需求
(1)提供一组术语(符号),指导需求抽象中需要关注的主要方面,并用于表达分析中所使用的信息。
这些术语形成一个特定的抽象层,即需求层。
(2)依据这些术语所形成的“空间”,给出表达模型的工具,支持表达系统功能形态。
(3)给出过程指导,以支持系统化地使用相关信息建造系统模型。

2.结构化分析模型

一个抽象层是由一组确定的术语定义的,为支持需求分析中有关要使用的那些信息的表达,结构化分析方法给出了以下四个术语:数据流,加工,数据存储,实体

数据流,数据存储是数据抽象,加工是过程、功能的抽象,实体是系统边界的抽象

模型表达工具
(a)数据流图(DFD图)--表达系统功能模型的工具。是一种描述数据变换的图形工具,它包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。

(b)数据字典--定义数据流和数据存储
用于定义数据流和数据存储的结构,并给出构成所给出的数据流和数据存储的各数据项的基本数据类型。
(c)判定表或判定树等--定义加工小说明(结构化自然语言,判定表,判定树)
描述加工“做什么”,即加工逻辑,也包括其它一些与加工有关的信息,如执行条件、优先级、执行频率、出错处理等。

3.结构化分析过程

(1)建立系统的功能模型        ---使用的工具为数据流图DFD

首先:建立系统环境图(顶层数据流图),确定系统边界

(2)继之:自顶向下,逐层分解,建立系统的层次数据流图

建立数据字典                   ---使用的工具为结构符:+、|、{}等

定义数据流    定义数据存储    定义数据项
(3)给出加工小说明:集中描述一个加工“做什么”,即加工逻辑,也包括其它一些与加工有关的信息,如执行条件、优先级、执行频率、出错处理等,

①模型平衡问题
**父图和子图的边界一致问题,即它们应有相同的边界:

**数据流图中的数据流与数据字典的一致问题,即每个数据流和数据存储必须在数据字典中予以定义

**数据流图中的“叶”加工(最低层)与小说明的一致问题,即必须给出“叶”加工的说明

**小说明和数据流图的图形表示一致问题,即在小说明中必须说明“输入数据流”如何使用,必须说明如何产生“输出数据流”;必须说明如何选取、使用、修改“数据存储“

②信息组织复杂性控制问题
·上层数据可以“打包
**上、下层的数据流对应关系在数据字典中给出,但包内数据流的性质(输入、输出)必须一致。
**一幅图中的图元个数应控制在7+/-2以内·

**与每一加工相关的数据流的数目应适中(与层次有关)
·**分析数据内容,确定是否所有的输入信息都用于产生输出信息;
**分析加工,确定一个加工所产生的输出,是否都能由该加工的输入信息导出

4.需求规格说明书

**数据流图,数据字典,加工说明

**接口

**性能需求

**属性

**其他需求

标签:需求,存储,加工,方法,数据流,结构化分析,数据
From: https://blog.csdn.net/m0_74658094/article/details/139118993

相关文章

  • 白盒测试(测试方法)
        白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。    白盒测试常用的技术是逻辑覆盖、循环覆盖和基本路径测试。(1)逻辑覆盖。逻辑覆盖考察用测试数据运行被测程序时对程序逻辑的覆盖程......
  • Qt线程使用方法三:QtConcurrent::run
    在Qt中,QFuture和QtConcurrent模块提供了一种简便的方式来执行并行任务。QFuture用于接收异步操作的结果,而QtConcurrent提供了一些函数来启动异步操作。这种方法不需要直接使用QThread,而是通过高级API来管理线程池和任务。 步骤 1: 包含必要的头文件 首先,确保你的项目文件(如......
  • Qt线程使用方法二:派生QThread
    在Qt中,从QThread派生一个子类并在构造函数中传入需要执行的方法,然后在线程中运行该方法并通知执行结果,是一种常见的多线程处理模式。以下是如何实现这一功能的步骤和示例代码: 步骤 1: 定义线程类 首先,定义一个从QThread派生的线程类。在这个类中,你可以定义一个函数指针或者......
  • Qt线程使用方法一:moveToThread
    在Qt中创建线程去执行耗时任务,并在任务完成后通知调用方(无论成功还是失败),可以通过使用QThread和信号槽机制来实现。以下是一个简单的示例,展示如何创建一个线程来执行任务,并在任务完成后发送信号。步骤 1: 定义工作类首先,定义一个工作类,该类将在单独的线程中执行任务。这个类......
  • 国内投资者如何开通美股账户:三种方法供您选择
    国内投资者该如何开通美股账户呢? 目前,主要有以下三种方法:互联网美股券商优势: 开户流程简单,类似A股账户,可直接线上开户;劣势: 佣金费率较高,每月还有账户管理费;目前仅开放给存量用户,即此前持有境外美股账户的用户才可以开立新账户。综合类金融服务平台优势: 开户流程简单,只......
  • 在C++中,将类的成员函数(也称为方法)作为参数传递
    在C++中,你可以将类的成员函数(也称为方法)作为参数传递,但这通常涉及到使用函数指针或者更现代的C++11及以后版本的std::function和lambda表达式。不过,更常见的是传递成员函数指针,但请注意,成员函数指针与常规函数指针在语法和使用上有所不同,因为成员函数需要访问类的特定实例(即对象)。......
  • 类转词典 转json 序列化 魔术方法
      classTest:def__init__(self,totals,uniques,pre):self.totals=totalsself.uniques=uniquesself.cumulative_sum=totalsifpre:self.cumulative_sum+=pre.cumulative_sumpre=Test(......
  • JavaScript中reduce()详解及使用方法。
    一、定义和用法reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce()可以作为一个高阶函数,用于函数的compose。reduce()方法为归并类方法,最常用的场景就是,计算数组中的每一项的总和。注意:reduce()对于空数组是不会执行回调函数的......
  • Win11 Linux子系统安装失败错误代码0x800701bc解决方法
    Win11Linux子系统安装失败错误代码0x800701bc解决方法 报错提示:Installing,thismaytakeafewminutes…WslRegisterDistributionfailedwitherror:0x800701bcError:0x800701bcWSL2???https://aka.ms/wsl2kernelPressanykeytocontinue… 处理方法......
  • 京准电子、NTP网络校时服务器(GPS北斗授时设备)设置方法
    京准电子、NTP网络校时服务器(GPS北斗授时设备)设置方法京准电子、NTP网络校时服务器(GPS北斗授时设备)设置方法京准电子科技官微——ahjzsz1、连接天线天线连接到“ANT”口。2、连接电源将220V电源线连到AC220V座上或将电源适配器(7.5V~12V)接到DC口上。也可以同时接上,提高供电可......