软件工程导论-结构化分析

结构化分析概述

核心思想

分解化简问题
物理与逻辑表示分开
进行数据与逻辑抽象

具体步骤

  1. 发现需求
    在这里插入图片描述

  2. 求精

对初步需求反复求精多次细化。

  1. 建模

建立模型,用图形符号和组织规则书面描述事物。
在这里插入图片描述具体步骤
在这里插入图片描述

  1. 规格说明

书写软件需求规格说明,作为分析阶段最终成果。

  1. 复审

数据模型(E-R图)

数据模型组成

  • 数据对象

软件必须理解的复合信息表示,复合信息是具有一系列
不同性质或属性的事物。
事务(报表)、地点(仓库)、角色(教师、学生)单
位(会计科)、行为(打电话)等

  • 数据对象间关系

对象彼此间相互连接方式,也称联系。
教师和学生间存在“教”的联系。
分三类,1:1 、 1:N 、 M:N。

  • 属性

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

实体-关系图

在这里插入图片描述
某校教学管理系统E-R图
在这里插入图片描述

具体实例

请为某仓库的管理设计一个ER模型,该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。
“零件”的主要属性是:零件编号,零件名称,颜色,重量。 “工程项目”的属性主要是:项目编号,项目名称,开工日期。“供应商”的属性主要有:供应商编号,供应商名称,地址。
在这里插入图片描述

数 据 流 图

数据流图(DFD)描绘系统逻辑模型,图中没有具体的物理元素,只描绘信息在系统中流动处理情况。
是非常好通信工具和软件设计出发点。

数据流图符号

  1. 正方形(或立方体):表示数据的源点或终点
    在这里插入图片描述人员、部门、计算机外部设备或传感器装置

  2. 圆角矩形(圆形):代表变换数据的处理;
    在这里插入图片描述一系列程序、单个程序或程序一个模块;人工处理过程。

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

在这里插入图片描述
文件、文件一部分、数据库元素或记录一部分,可存在磁盘、磁带、磁鼓、主存、微缩胶片任何介质上。

  1. 箭头:表示数据流,即特定数据的流动方向。
    在这里插入图片描述在处理之间有向流动的数据项或数据集合。

在这里插入图片描述
在这里插入图片描述

数据流图范例

工厂采购部采购员每天需一张定货报表,按零件编
号排序列出所需定货零件。
对定货零件列下述数据:零件编号、名称、定货数
量、目前价格,主次要供应者等。
零件入库或出库称事务,通过仓库终端把事务报告
定货系统。零件库存量少于库存临界值需订货。

解法:

  1. 从问题描述提取数据流图四种成分
    先考虑源点和终点
    再考虑处理
    最后考虑数据流和数据存储

源点:仓库管理员
终点:采购员
处理:处理事务、产生报表等
数据流:事务、订货信息、订货报表等
数据存储:订货信息、库存信息

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

在这里插入图片描述

  1. 把基本系统模型细化,描绘系统主要功能。
    在这里插入图片描述
  2. 主要功能进一步细化。
    在这里插入图片描述
  3. 结束、进一步分解涉及如何具体实现功能时,不应再分解。

分层数据流图

为表达数据加工情况,需采用层次结构数据流图。
顶层数据流图包含一个加工项;
底层流图指加工项不再分解的数据流图;
中间层流图只在顶层和底层之间,对其上层父图的
细化。

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

  1. 编号的设置
    子图的编号是父图相应的处理逻辑的编号。
    子图中处理逻辑编号由子图号、小数点与局部号组成。
    在这里插入图片描述
  2. 父图与子图的平衡
    子图详细地描述父图中处理逻辑
    子图的输入、输出数据流应同父图处理逻辑的输入、输出数据流相一致。
    在这里插入图片描述
  3. 局部数据存贮
    在子图中出现的数据存贮,可以不出现在父图
    中,画父图时只需画出处理逻辑之间的联系,不必画出各个处理逻辑内部的细节。

命名规则

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

  2. 处理命名
    (1)用动宾词组,避免使用“加工”、“处理”等笼统动词。
    (2)应反映整个处理的功能,不是一部分功能。
    (3)通常仅包括一个动词,否则分解。

  3. 数据源点/终点
    不属于数据流图的核心内容,可能是人员、计算机外部设备或传感器装置。采用它们在问题域中习惯使用的名字(如“采购员”、“仓库管理员’等)。

用途

  1. 作为交流信息的工具
  2. 作为分析和设计的工具
    用数据流图辅助物理系统设计时,可在数据流图
    上画出许多组自动化边界,每组自动化边界可能意
    味着不同的物理系统。

习题(画数据流图)

工资计算系统包含如下功能:
计算工资
根据人事部门给出的出勤表和业绩表计算奖金和缺勤扣款,通过生成的奖金发放表及工资基本信息库的信息计算应发工资,根据应发工资表计算所得税,根据后勤部门给出的水电扣款及缺勤扣款表和所得税款计算出实发资,生成实发工资表和工资清单。
打印工资清单
根据工资清单完成工资条的打印,给职工
工资转存
根据实发工资表生成职工工资存款清单并将其发送到银行

请用数据流图描绘该系统。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

状态转换图

软件的行为模型:状态、事件,行为。
状态:被观察到的系统行为模式。
在这里插入图片描述

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

箭头表示,箭头上标事件名。后跟〔条件〕,表状态转换条件。

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

状态框内do:行为名。
在这里插入图片描述

电话系统状态转换图

在这里插入图片描述

数据字典

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

数据字典定义方法

数据字典对四类元素定义:数据流,数据元素,数据存储,处理

  1. 数据流的描述
    在这里插入图片描述

  2. 数据元素的描述
    在这里插入图片描述

  3. 数据存储的描述
    在这里插入图片描述

  4. 处理
    在这里插入图片描述

数据字典定义符号

定义数据方法:对数据自顶向下分解。
由数据元素组成数据的方式:

  1. 顺序: 以确定次序连接两个或多个分量(数据元素);
  2. 选择: 从两个或多个可能元素中选一个;
  3. 重复: 把指定的分量(数据元素)重复零次或多次;
  4. 可选: 一个数据元素可有可无的。
    在这里插入图片描述
    航班信息文件={航空公司名称+航班号+起点+终点+日期+起飞时间+降落时间}
    航空公司名称=2{字母}8
    航班号=3{十进制数字}3
    字母="a"…“z”
    十进制数字="0"…“9”
    起点=终点=1{汉字}5
    起飞时间=降落时间=时+分
    时="00"…“23”
    分="00"…“59”
    日期=年+月+日
    年=[2010|2011|2012|2013]
    月="01"…“12“
    日="01”…“31”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sparky*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值