第6篇结构化分析建模
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化需求分析
用户需求一般用自然语言描述 系统需求必须用较专业的方式来描述 模型是软件设计的基础,也是创建规约的基础 需求分析原则:
必须表示和理解问题的信息域; 必须定义软件将完成的功能; 必须表示软件的行为(作为外部事件的结果); 必须划分描述信息、功能和行为的模型,从而使得可以
能和行为域的说明 模型是对系统某个方面的抽象,抛弃了具体细节,对系统 中最突出的特征作简化 分析模型元素:
基于场景的元素 基于过程的活动序列的元素 基于类的元素 行为元素
面向信息流的元素
基于数据的元素
分析模式
分析模式:在软件开发领域,在特定的应用领域内某
些事物在所有的项目中重复发生。
Output)视图描述更方便
数据字典
应对组成的数据元素定义进行自顶向下的分解。 分解的原则是:当包含的元素不需要进一步定义,且每个和工程有关的人都清
楚时为止 数据字典中应该包括关于数据的信息:
一般信息(名字、别名、描述等) 定义(数据类型、长度、结构等) 使用特点(值的范围、使用频率、使用条件、使用方式、条件值等) 控制信息(用户、使用特点、改变数、使用权等) 分组信息(文档结构、从属结构、物理位置等)
第6章 结构化分析建模
分析模型元素 结构化需求分析 面向数据的建模方法 案例分析
结构化分析建模
需求分析的任务就是准确地指出“软件目标产品必须
做什么?” 需求分析的一个重要过程就是需求建模的过程 结构化分析方法是一种传统的系统建模技术
分析模型
分析模型的目的是为基于计算机系统提供必须的信息、功
以层次的方式揭示细节; 分析过程应该从要素信息移向细节实现。
结构化分析方法
结构化分析(SA,Structured Analysis)方法是20世纪70
年代,由E.Yourdon等人倡导的一种适用于大型数据处理 系统的、面向数据流的需求分析方法。 结构化需求分析方法指导性原则:
在开始建立分析模型之前先理解问题。 开发模型,使用户能够了解将如何进行人机交互(使用原型
实例分析:POS机系统
1 销售 1 付款 包含 M 商品 N 描述
1百度文库
1
支付
商品描述
实例分析:POS机系统
实体有销售、支付、商品、商品描述 关联: 销售包含一组商品; 每个商品都有相应的描述信息; 每个支付对应一个销售。 实体的属性: 销售:编号、总价、1{商品}*,日期 支付:编号、支付客户、找零、销售编号 商品:编号、数量 商品描述:名称、产地、厂家、单价
数据流模型,用来描述系统中的数据处理过程 状态转换模型,用来描述系统如何对事件做出响应
实体—关系模型:关心的是寻找系统中的数据及其之间
的关系,却不关心系统中包含的功能。
结构化分析模型结构
数据 对象 描述
实体关系 图
数据 字典
数据 流图
加工 规约
状态转换图
控制规约
结构化分析模型结构
分析模型结构的核心是数据字典(DD,Data Dictionary),包
状态图还可以用事件后的方括号表示先决条件,只有当这
个条件为真时,才会发生状态变化;用状态自身的弧线箭 头表示先决条件不为真时,状态不会改变。
复印机控制软件状态图
“满”和“开始” 与“复印”相关 读命令 复印 与“读命令”相关 满 与“读命令”相关 闲置 与“读命令”相关
复印
重加载纸
卡纸 与“完成问题”相关
三种类型的任意组合定义数据字典中的任何条目。
顺序:顺序连接两个或多个分量元素。一般用加号表示顺序连接关系。 选择:从两个或多个可选的分量元素中选取一个。选择运算符用方括号表示,
对于多个可供选择的元素,用“|”符号分隔。例如,[A-1 | A-2 | A-3 ] 表示三 个可选数据元素。 重复:描述的分量元素重复零次或多次。例如, 都表示数据元素A的下限为1, 上限为5。
在实体—关系图中每个数据对象的属性可以使用数据对象来描述。 在数据流图中出现的每个加工/处理的功能描述包含在加工规约中。 软件控制方面的附加信息包含在控制规约中
面向数据的建模方法
系统建模的一个重要方面就是要定义系统处理的逻辑
结构。 最广泛采用的数据建模技术是实体-关系模型,它描述 数据实体、关联及实体属性。 实体关系模型可用ERD(Entity-Relationships Diagram实体关系图)来表示:
技术)。 记录每个需求的起源和原因,保证需求的可追踪性和可回溯 性。 使用多个需求分析视图,建立数据、功能和行为模型。 给需求赋予优先级,优先开发重要的功能,提高开发生产效 率。 删除含糊性。
结构化分析模型
系统模型从以下不同的角度表述系统: 从外部来看,它是对系统分析上下文或系统环境建模; 从行为上看,它是对系统行为建模; 从结构上看,它是对系统的体系结构和系统处理的数据 结构建模。 结构化的需求分析模型有: 系统行为模型:
状态转换图
状态模型是一种描述系统对内部或者外部事件响应的行为
模型。 它描述系统状态和事件,以及事件引发系统在状态间的转 换。 这种模型适用于描述实时系统 状态模型一般采用状态转换图(简称状态图)的标记方法 状态图描述了系统中某些复杂对象的状态变化
状态是可观察的行为模式,用圆角矩形表示; 变迁表示状态的转换,用箭头表示; 事件是引发变迁的消息,用箭头上的标记表示。
书目 属性给出如下:
借书者:借书者编号、姓名、性别、借书数、最大借书
数、罚金金额、有限期 图书:图书号、书目号 书目:书目号、书名、作者、出版社、丛书名、收藏数、 在馆数、预约数 借书记录:图书号、借书者编号、借出日期、应还日期、 续借次数 预约记录:书目号、借书者编号、预约日期
含了软件使用或生产的所有数据对象描述的中心库。 分析模型结构的中间层有三种视图:
数据流图(DFD,Data Flow Diagram)服务于两个目的:一是指
明数据在系统中移动时如何被变换,二是描述对数据流进行变换的 功能和子功能。 实体—关系图(E-RD,Entity-Relationship Diagram)描述数据对 象间的关系,用来进行数据建模活动的记号。 状态转换图(STD,State Transition Diagram)指明作为外部事件 的结果,系统将如何动作。 分析模型结构的外层是规约描述:
面向数据流的建模
面向数据流的建模是结构化需求分析方法之一 采用自顶向下逐层分解,描绘满足用户要求的软件模
型 表示:
数据流图:描述系统处理过程 数据字典:模型中的数据信息集合 状态转换图:描述系统对内部或外部事件响应的行为模
型
数据流图符号
数据源点或终点 或 变换数据的处理 或
如果申请者是21岁以上并是26岁以上的女性,适用于A类保险;
如果申请者是26岁以下的已婚男性,或者26岁以上的男性,
适用于B类保险; 如果申请者是21岁以下的女性或26岁以下的单身男性适用于C 类保险; 除此之外的其他申请者都适用于A类保险。
数据存储 数据流
或
数据流图举例
设一个工厂采购部每天需要一张定货报表。定货的零
件数据有:零件编号、名称、数量、价格、供应者等。 零件的入库、出库事务通过计算机终端输入给定货系 统。当某零件的库存数少于给定的库存量临界值时, 就应该再次定货。 数据流分析:
数据源点:仓管员(负责入库或出库事务给定货系统); 数据终点:采购员(接收每天的定货报表); 数据流:事务,定货; 数据存储:定货信息,库存清单; 处理:处理事务,产生报表。
试卷:编号、科目、出卷人、年级、性质、总分、难度、
{题目}* 出卷要求、总分、总难度、总题型、总知识点
题目:编号、题干、题干图、答案、答案图、题型、知
识点、难度
实例分析:图书馆系统
借书者 1 借书记录 包含 1 M 书目
1
借/还/续借
M
图书 N
预约
预约记录
实例分析:图书馆系统
实体:图书、借书者、管理员、借书目录、预约记录、
用有限的词汇和有限的语句来描述加工逻辑。 它的结构可分成两层:
外层:用来描述控制结构,采用顺序、选择、重复三种
基本结构。
内层:一般采用祈使语句的自然语言短语,使用数据字
典中的名词和有限的自定义词
举例
统计空格 seq 打开文件 读入字符串 Totalsum = 0 程序体 iter until文件结束
数据字典卡片方式示例
名字:定货报表别名:定货信息 描述:每天一次需要定货的零件表 定义:定货报表=零件编号+零件名 称+定货 数量+价格+1{供应者}3 位置:输出到打印机
名字:定货数量 别名: 描述:某个零件一次定货的数目 定义:定货数量=[ 1 | 2 | 3 | 4 | 5 ] 位置:定货报表 定货信息 名字:零件编号 别名: 描述:惟一标识一个特定零件的关 键组成 定义:零件编号=8位字符 位置:定货报表、定货信息 库存清 单 名字:价格 别名:价格范围 描述:某个零件目前参考价格或者 上下限 定义:价格=1{零件单价}2 位置:定货报表 定货信息 库存清单
定货 信息
定货信息
数据字典
数据字典是分析模型中出现的所有名字的一个集合,并包
括有关命名实体的描述 数据字典有以下两个作用:
息存储
它是所有名字信息管理的有效机制 作为连接软件分析、设计、实现和进化阶段的开发机构的信
数据字典应该由四类元素的定义组成: 数据流 数据流分量 数据存储 处理 对于处理,可用输入—处理—输出(IPO,Input-Process-
诊断问题
非卡纸 与“读命令”相关
加工逻辑的描述
加工逻辑也称为过程说明,用于描述数据流图中加工
逻辑的处理算法或过程 用以下三种工具:
过程描述语言(PDL—Procedural Description
Language) 判定表 判定树
过程描述语言
介于自然语言和形式语言之间的一种半形式语言,使
……
程序体end 印总数seq 印出空格总数 印总数end 关闭文件 停止
统计空格end
判定表
例如:某数据流图中有一个“确定保险类别”的加工,指
的是申请汽车驾驶保险时,要根据申请者的情况确定不同 的保险类别。 加工逻辑为:
如果申请者的年龄在21岁以下,要额外收费;
分析模式可以使用标准的模板来表现,模板采用模式
名、目的、动机、外因和环境、解决方案、结论、设 计、已知应用和相关模式的格式描述分析模式信息。 例如,ERP(Enterprise Resource Plan)软件就是一 个高层分析模式,形成一套开发ERP软件的分析模式。
分析模型的目标与原则
分析模型必须实现三个主要目标: 描述客户需要什么; 为软件设计奠定基础; 定义在软件完成后可以被确认的一组需求。 分析模型的所有元素都可以直接映射到设计模型 创建分析模型时应遵循的原则: 模型应关注在问题或业务域内可见的需求,抽象的级别相对高; 分析模型的每个元素都应能增加对软件需求的整体理解,并提供对 信息域、功能和系统行为的深入理解; 基于基础机构和其他非功能的模型应推延到设计阶段再考虑; 最小化整个系统内的关联; 确认分析模型为所有共利益者都带来价值; 尽可能保持模型简洁
数据流图举例
画基本系统模型
事务 仓管员
定货报表
定货系统
采购员
数据流图举例
第一步求精
库存清单 库存信息 事务 仓管员 处理事务 定货信息 产生报表 定货报表 采购员 定货信息
数据流图举例
第二步求精
仓 管员
入库事务
处理入库事务
库存清单
库存信息
出库事务
处理出库事务
处理定货 采购员 定货报表 产生报表
实体 关联 实体属性 基数
实例分析:出卷系统
试卷 1 包含
1
N 1
题目
依据
1 出卷要求 1
抽取
试卷
实例分析:出卷系统
试卷由一组题目组成,而题目来自试卷库中被挑选的
题目。试卷根据出卷要求选择项目。这些实体的属性 给出如下:
试题:编号、科目、题干、题干图、答案、答案图、题
型、知识点、难度、抽取时间