目录
2.1结构化分析概述
一、需求分析重要性
二、结构化分析 核心思想
核心思想:
分解化简问题(大问题化为小问题)
物理(怎么实现)与逻辑(是什么、做什么)表示分开 (先考虑逻辑)
进行数据与逻辑抽象
三、结构化分析概述-具体步骤
1.发现需求 2.求精 3.建模 4.规格说明 5.复审
发现需求方法:
与用户交谈,向用户提问题;
参观用户的工作流程,观察用户的操作;
向用户群体发调查问卷;
与同行、专家交谈,听取他们的意见;
分析已经存在的同类软件产品,提取需求;
从行业标准、规则中提取需求;
从Internet上搜查相关资料等。
求精:对初步需求反复求精多次细化。
建模:建立模型,用图形符号和组织规则书面描述事物。
模型核心:数据字典
描述软件使用和产生的所有数据对象。
数据模型:E-R图表达
描述数据对象间关系
图中数据对象属性用“数据对象描述”表达。
功能模型:DFD表达
描绘数据在软件中移动、变换及相应功能
图中功能用“处理规格说明”表达。
行为模型:状态转换图
描绘系统状态和在不同状态间转换方式。
图中软件控制附加信息用“控制规格说明”表达。
规格说明:书写软件需求规格说明,作为分析阶段最终成果。
复审
2.2数据模型
一、数据模型——组成
数据对象 数据对象间关系 属性
数据对象:
软件必须理解的复合信息表示,复合信息是具有一系列不同性质或属性的事物。
事务(报表)、地点(仓库)、角色(教师、学生)单 位(会计科)、行为(打电话)等
属性:
定义数据对象性质。
数据对象学生的属性可为学号、姓名、班级等
关系:对象彼此间相互连接方式,也称联系。
教师和学生间存在“教”的联系。
分三类,1:1 、 1:N 、 M:N。
实体-关系图
某校教学管理系统E-R图
成绩这个属性属于学这个联系 (学生只有学习了一门课程才有成绩)
需要五个数据表
实例:
请为某仓库的管理设计一个ER模型,该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。 “零件”的主要属性是:零件编号,零件名称,颜色,重量。 “工程项目”的属性主要是:项目编号,项目名称,开工日期。“供应商”的属性主要有:供应商编号,供应商名称,地址。
思考过程:
实体(数据对象):工程项目、供应商、零件
关联:
供应商 订购 零件 ;工程项目 供应 零件
供应量和订购量属性分别属于供应和订购的联系上
属性:
2.3功能模型
数据流图(DFD)描绘系统逻辑模型,图中没具体的物理元素,只描绘信息在系统中流动处理 情况。是非常好通信工具和软件设计出发点。
数据流图符号
四种基本符号:
正方形(或立方体):表示数据的源点或终点
人员、部门、计算机外部设备或传感器装置
圆角矩形(圆形):代表变换数据的处理;
一系列程序、单个程序或程序一个模块;人工处理过程。
开口矩形(两条平行横线):代表数据存储
文件、文件一部分、数据库元素或记录一部分,可存在磁盘、磁带、磁鼓、主存、微缩胶片任何介质上。
箭头:表示数据流,即特定数据的流动方向。
在处理之间有向流动的数据项或数据集合。
圆形表示 系统的处理 做什么可以把输入的数据流变成输出的数据流
数据流图附加符号:
*号表示与的关系
+号表示或的关系
加号外边套个圆圈 表示异或 表示A数据流异或B数据流
范例:
工厂采购部采购员每天需一张定货报表,按零件编号排序列出所需定货零件。
对定货零件列下述数据:零件编号、名称、定货数 量、目前价格,主次要供应者等。
零件入库或出库称事务,通过仓库终端把事务报告定货系统。
零件库存量少于库存临界值需订货。
解法:
一.从问题描述提取数据流图四种成分
先考虑源点和终点 再考虑处理 最后考虑数据流和数据存储
源点:仓库管理员
终点:采购员
处理:处理事务、产生报表等
数据流:事务、订货信息、订货报表等
数据存储:订货信息、库存信息
二.着手画数据流图的基本系统模型。
三.把基本系统模型细化,描绘系统主要功能。
四.主要功能进一步细化。
五.结束、进一步分解涉及如何具体实现功能时,不应再分解。
分层数据流图
为表达数据加工情况,需采用层次结构数据流图。
顶层数据流图包含一个加工项;
底层流图指加工项不再分解的数据流图;
中间层流图只在顶层和底层之间,对其上层父图的细化。
分层法绘制流程图的几个问题 A. 编号的设置
子图的编号是父图相应的处理逻辑的编号。
子图中处理逻辑编号由子图号、小数点与局部号组成。
B. 父图与子图的平衡 子图详细地描述父图中处理逻辑
子图的输入、输出数据流应同父图处理逻辑的输入、输出 数据流相一致。
C. 局部数据存贮 (可以随着数据流逐层的细化逐渐加进去)
在子图中出现的数据存贮,可以不出现在父图 中,画父图时只需画出处理逻辑之间的联系,不必 画出各个处理逻辑内部的细节。
命名规则:
1.数据流(数据存储)命名
(1)用名词,区别于控制流。
(2)代表整个数据流(数据存储)内容,不仅仅反映某些成分。
(3)不用缺乏具体含义名字,如“数据”、“信息”。
2.处理命名
(1)用动宾词组,避免使用“加工”、“处理”等 笼统动词。
(2)应反映整个处理的功能,不是一部分功能。
(3)通常仅包括一个动词,否则分解。
3.数据源点/终点
不属于数据流图的核心内容,可能是人员、计算机外部设备或传感器装置。
采用它们在问题域中习惯使用的名字(如“采购员”、“仓库管理员’等)。
用途:
一.作为交流信息的工具
二.作为分析和设计的工具
用数据流图辅助物理系统设计时,可在数据流图 上画出许多组自动化边界,每组自动化边界可能意味着不同的物理系统。
自动化边界划分方案:
第二个好点 第一个不具有及时性
例题:
工资计算系统包含如下功能:
计算工资
根据人事部门给出的出勤表和业绩表计算奖金和缺勤扣款,通过生成的奖金发放表及工资基本信息库的信息计算应发工资,根据应发工资表计算所得税,根据后勤部门给出的水电扣款及缺勤扣款表和所得税款计算出实发工资,生成实 发工资表和工资清单。
打印工资清单
根据工资清单完成工资条的打印,给职工
工资转存
根据实发工资表生成职工工资存款清单并将其发送到银行
请用数据流图描绘该系统。
顶层数据流图:
功能级数据流图:
细化功能级数据流图:
2.4行为模型
结构化分析模型
软件的行为模型:状态、事件,行为。
状态:被观察到的系统行为模式。
事件:引起状态转换的外界事件抽象。
行为:进入某状态所作动作。
状态转换图:
最终状态可能有多个
事件:箭头表示,箭头上标事件名。后跟〔条件〕,表状态转换条件。
行为: 状态框内do:行为名。
例子:
电话系统状态转换图
2.5数据字典
对系统使用的所有数据元素定义的集合,半形式化方法表达。
数据字典对四类元素定义: 数据流 数据元素 数据存储 处理
(1) 数据流的描述
数据流名:
说明:简要介绍作用即它产生的原因和结果。
数据流来源:即该数据流来自何方。
数据流去向:去向何处。
数据流组成:数据结构。
每个数据量流通量:数据量、流通量。
数据流名:发票
说明:用作学生已付书款的依据
数据流来源:来自处理“审查并开发票”
数据流去向:流向处理“开领书单”。
数据流组成:学号+姓名+书号+单价总价+书费合计
(2) 数据元素的描述
数据元素名:
类型:数字(离散值、连续值),文字(编码类型)
长度:
取值范围:
相关的数据元素及数据结构:
数据元素名:学号
类型:数字(离散), 12位表示分院、34位表示专业
56位表示年级、78位表示班级、910位表示序号
长度:10位
取值范围:0000000000~9999999999
相关的数据元素及数据结构:购书单、发票、领书单
(3) 数据存储的描述
数据存储名:
简述:存放的是什么数据。
输入数据:
输出数据:
数据文件组成:数据结构。
存储方式:顺序,直接,关键码。
存取频率:
数据存储名:各班学生用书表
简述:各班学生用书信息
输入(输出)数据:各班学生用书信息
数据文件组成:班级编号+书号+用量
存储方式:按班级编号从小到大排列
(4) 处理的描述
处理名: 审查并开发票
处理编号:反映该处理的层次 1.3
简要描述:加工逻辑及功能简述
根据各班学生用书表,教材存量表,依据学生的购书单看下是否在购书计划内,存量是否足够,审查通过则开发票
输入数据流: 购书单
输出数据流: 发票
加工逻辑: 简述加工程序、加工顺序 比简要描述要更详细点
… …
定义符号:
定义数据方法:对数据自顶向下分解。
由数据元素组成数据的方式:
顺序: 以确定次序连接两个或多个数据元素;
选择: 从两个或多个可能元素中选一个;
重复: 把指定数据元素重复零次或多次;
可选: 一个数据元素可有可无的。
数据x是由数据元素a组成的
一个数据由数据元素顺序组成用+
x数据由数据元素a或数据元素b组成的
数据x由a这个元素最少重复1次最多重复5次组成
()可选 x数据是由a和b顺序组成的 也可能由a自己组成
‘’‘’ 基本数据元素
.. x数据取值范围是1到9之间 0不可以 10也不可以
实例:
航班信息文件={航空公司名称+航班号+起点+终点+日期+起飞时间+降落时间}
航空公司名称=2{字母}8
航班号=3{十进制数字}3
字母="a".."z"
十进制数字="0".."9"
起点=终点=1{汉字}5
起飞时间=降落时间=时+分
规定:
时="00".."23"
分="00".."59"
日期=年+月+日 年=[2010|2011|2012|2013]
月="01".."12“
日="01".."31"