第四章_结构化的需求分析与建模(2)
软件工程第四章 结构化分析

软件需求分析阶段的工作,可以分成以下四个方面 :对问题的识别、分析与综合、制定规格说明以及 ( )。 A.总结 B.实践性报告 C.需求分析评审 D.以上答案都不正确
答案:C
需求验证应该从下述几个方面进行验证:(C ) A 可靠性、可用性、易用性、重用性 B可维护性、可移植性、可重用性、可测试性 C一致性、现实性、完整性、有效性 D 功能性、非功能性
3、需求分析步骤
1、需求获取
3、亲身实践:观察用户工作流程
优点: 1. 通过直接观察提取用户或系统的特性; 2. 有助于理解难以用语言描述清楚的复杂业务。 3. 更加准确和真实 缺点:
1. 观察可能使用户紧张,从而表现与往常不同。 2. 比较费时间
3、需求分析步骤
1、需求获取
3、需求分析步骤
3、需求分析步骤
3 需求描述
1. 又叫:需求规约
2. 是分析任务的最终产物,给出对目标软件的 各种需求。
3. 需求规约作为用户和开发者之间的一个协议 (需求规格说明书),在之后的软件工程各 个阶段发挥重要作用
软件需求分析阶段的目的是澄清用户的要求 ,并把双方共同的理解明确地表达成一份书 面文档——(软件需求规格说明书)。
经调查,系统分析员给出有问题的初略陈述, 其中部分描述如下:某商场的采购部门要求每 天开出定购清单,交采购员输入系统;仓库管 理员还要将库存信息此输入系统,经库存业务 (进贷或出贷)处理后输出。从这段描述可知 该部分数据流图中的外部项为:
A.采购员、仓库管理员 B.定购清单、库存业务 C.库存业务 D.定购清单、采购员 答案A
3、需求分析步骤
4、需求验证
1. 进行需求评审
2. 验证需求的一致性
3. 验证需求的现实性
结构化需求分析方法

结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”。
分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
2013《805软件基础与技术综合(数据结构、软件工程、数据库)》考试大纲

《软件基础与技术综合》考试大纲一、考试内容数据结构70分 + 数据库40分 + 软件工程40分(一)数据结构部分1. 数据结构基本概念(1) 数据结构的基本概念:数据、数据元素、数据结构、数据的逻辑结构、物理结构、算法等。
(2) 算法时间复杂度和空间复杂度的分析方法。
2. 线性表(1) 线性表的定义。
(2) 线性表的顺序存储结构和主要算法实现,如查找、插入和删除算法。
(3) 线性表的链式存储结构和主要算法实现,如查找、插入和删除算法。
(4) 循环链表、双向链表的特点。
(5) 从时间和空间复杂度的角度比较两种存储结构的不同特点及其适用场合。
(6) 线性表的应用,如线性表的合并算法。
3. 栈和队列(1) 栈的定义及特点,栈的顺序存储和链接存储结构,进栈出栈算法,顺序栈栈满和栈空的条件。
(2) 栈的应用,如表达式求值算法,借助栈深入理解递归算法。
(3) 队列的定义及特点,队列的顺序存储(循环队)和链接存储结构,进队出队算法,循环队列中队满及队空的条件。
4. 串和数组(1) 串的定义。
(2) 串的古典模式匹配算法。
(3) 数组地址的计算方法。
(4) 特殊矩阵的压缩存储方法。
5. 树和二叉树(1) 二叉树的定义和性质。
(2) 二叉树的两种存储结构:顺序存储和链式存储。
(3) 二叉树的创建和三种不同遍历算法,利用遍历算法实现二叉树的其他操作,如计算二叉树结点个数、叶子结点个数、二叉树的高度等算法。
(4) 线索二叉树的特性及构造方法。
(5) 树和森林的定义、存储结构与二叉树的转换方法。
(6) 树的应用,哈夫曼树及哈夫曼编码的构造算法、带权路径长度的计算。
6. 图(1) 图的定义和性质。
(2) 图的两种存储结构:邻接矩阵和邻接表。
(3) 图的两种遍历策略:深度优先搜索算法和广度优先搜索算法。
(4) 图的基本应用,包括拓扑排序算法、求解最短路径的迪杰斯特拉算法、构造最小生成树的两种算法(普里姆算法和克鲁斯卡尔算法)。
结构化需求分析

外部实体
外部实体指系统以外又与系统有联系的人或事物。 它表达了该系统数据的外部来源和去处。例如:人、组 织、外部系统等等。 • 外部实体是数据的来源(谁提供了最初始的数据?) • 外部实体是数据的去处(数据对谁有价值?)
读者
图书 管理员
馆长
读者
图书 管理员
加工(数据处理)
处理指对数据的逻辑处理功能,也就是对数据的变 换功能。 别名:功能、处理过程,数据加工
数据流图的图形符号
或 或
加工。对输入数据进行变换以产生输出数据,其中要注明加工的名字。 外部实体,即数据输入源(Source)或数据输出汇点(Sink)。其中要注明数 据源或数据汇点的名字。
或
数据存储。要用名词或名词性短语为数据存储命名。 数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名 词或名词性短语命名。
环境图(顶层数据流图)
环境图(context diagram)也称为顶层数据流图 (或0层数据流图),它仅包括一个数据处理过程, 也就是要开发的目标系统。 环境图的作用是确定系统在其环境中的位置,通过确 定系统的输入和输出与外部实体的关系确定其边界。
招生系统需求描述
学校首先公布招生条件,考生根据自己的条件报名,之后 系统进行资格审查,并给出资格审查信息; 对于资格审查合格的考生可以参加答卷,系统根据学校提 供的试题及答案进行自动判卷,并给出分数及答题信息, 供考生查询; 最后系统根据学校的录取分数线进行录取,并将录取信息 发送给考生。
储 户
密码
实例研究——第一层数据流图
+
实例研究——第二层“存款”数据流图
对一层图中的“处理存款”及“处理取款”进行进一步分 解,得到二层数据流图,即处理存款的数据流图和处理取 款的数据流图。
需求分析与功能建模方法(二)

需求分析与功能建模方法(二)(总分:100.00,做题时间:90分钟)一、选择题(总题数:35,分数:70.00)1.关于数据库应用系统的需求分析工作,下列说法正确的是______。
A.通过需求分析过程,需要确定出整个应用系统的目标、任务和系统的范围说明B.在需求分析阶段,系统需求分析员要与用户充分沟通,并做出各类用户视图C.数据需求分析的主要工作是要辨识出数据处理中的数据处理流程D.数据操作响应时间、系统吞吐量、最大并发用户数都是性能需求分析的重要指标(分数:2.00)A.B.C.D. √解析:[解析] 本题考查的是需求分析的基本概念和分类。
确定出整个应用系统的目标、任务和系统的范围说明是项目规划阶段的任务,不属于需求分析的任务,所以A选项是错误的。
在B选项中,需求分析阶段的成果主要是文字说明,而不是用户视图。
“辨识出数据处理中的数据处理流程”是数据处理需求分析的工作,数据需求分析的主要工作是辨识出数据处理中需要处理的数据,包括数据项和数据结构,因此C选项也是错误的。
性能需求分析的重要指标包括数据操作响应时间、系统吞吐量、最大并发用户数等。
2.需求分析阶段的任务是确定______。
A.软件开发方法 B.软件开发工具C.软件开发费用 D.软件系统功能(分数:2.00)A.B.C.D. √解析:[解析] 本题考查需求分析阶段的任务。
需求分析阶段的任务是通过详细调查,获取原有手工系统的工作过程和业务处理,明确用户的各种需求,确定新系统的功能。
因此,确定软件系统功能是需求分析阶段的任务。
3.对于大规模的数据收集,可以采用以下哪种需求获取方式______。
A.面谈调查 B.实地观察 C.文档采样 D.文件查阅(分数:2.00)A.B.C. √D.解析:[解析] 文档采样是指收集客户单位保存的各类文档。
对于大规模的数据文档,需求分析员可以采用文档采样的办法来解决。
4.关于需求获取的方法,以下说法错误的是______。
软件工程实用案例 第4章 结构化需求分析

3项目范围 3.1 第一版范围 3.2 后续版本范围 3.3 限制与排除
4项目环境 4.1 操作环境 4.2 涉众 4.3 项目属性
词汇表 参考资料 附录
4.3 需求获取
4.3.3 选择信息的来源
• 1. 涉众
• 包括用户、客户、领域专家、用户替代源(市场人员、销售人员) 等。
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-12 功能分解示意图
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-13 食物订货系统的1层图
4.4 需求分析
4.4.1 过程建模
4.4.1.2 微规格说明
正式规定文档所需具有的条件或能力。
(3) 对(1)或(2)所描述的条件或能力的文档化表述。 其中,(1)是从用户角度定义的,(2)是从开发人员、
系统的角度定义的。
4.1 需 求
4.1.2 需求的层次
需求通常体现为三个层次:业务需求、用户需求和系 统需求。
4.1 需 求
4.1.2 需求的层次
4.3 需求获取
4.3.2 定义项目前景和范围
• 1.明确问题
P1 决策者:生产的废品过多。
• 2.发现业务需求
BR1:提供销售订单的准确性,减少因此而产生废品。
BR2:提供销售订单的准确性,在使用后3个月内,减少50%因此而产生 的废品。
4.3 需求获取
4.3.2 定义项目前景和范围
• 3.定义解决方案及系统特性
4.3 需求获取
4.3.4 需求获取的方法
软件工程第四章结构化需求分析

数据字典
定义
数据字典是一种用于描述数据元 素及其属性的工具,它提供了数 据的详细描述和定义。
பைடு நூலகம்
内容
包括数据元素的名称、别名、类 型、长度、取值范围、默认值等 属性信息。
作用
为开发人员提供了一个统一的数 据定义和描述标准,避免了数据 不一致和歧义的问题。
03 结构化需求分析过程
问题识别
01
确定软件系统的范 围和目标
用例表
列出系统的所有用例,包括用例名称、描述、前置条件和后置条件 等。
用户故事表
以用户为中心描述系统需求,包括用户角色、场景、任务和目标等。
原型工具
低保真原型
使用简单的工具和方法创建的原型,主要用于 概念验证和用户反馈收集。
高保真原型
使用高级工具和方法创建的原型,几乎与实际 产品一样,用于详细需求分析和用户测试。
04 结构化需求分析工具
图形工具
流程图
用于描述系统或程序的逻辑流程,包括开始、结束、决策点和活动 等元素。
数据流图
用于描述数据在系统中的流动和处理过程,包括数据源、数据存储、 数据处理和数据终点等元素。
实体关系图
用于描述系统中实体之间的关系,包括实体、关系和属性等元素。
表格工具
需求规格说明书
详细列出系统需求,包括功能需求、性能需求、安全需求和接口 需求等。
步骤
首先确定系统的主要功能,然后逐层向下分解,直 到每个功能都清晰、具体、可实现。
优点
能够全面地了解系统的功能需求,有助于保 证系统的完整性。
数据流图
定义
数据流图是一种图形化表示方法,用于描述系统中数 据的流动和处理过程。
组成
包括数据流、数据存储、数据处理和外部实体等基本 元素。
结构化需求分析方法

结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”。
分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
行为建模给出需求分析方法的所有操作原 则。 状态—迁移图(STD)或状态—迁移表来描 述系统或对象的状态,以及导致系统或对 象的状态改变的事件,从而描述系统的行 为。
4.4
状态转换图
所有软件系统都包括功能行为、数据操作和状态
改变。实时系统和过程控制应用程序可以在任何
给定的时间内以有限状态中的某一种状态存在。
数据词典
符号 = + [...,...] 或 [...|...] 含义 被定义为 与 或 重复 x = a+b x = [a , b],x = [a | b] x = {a}, x = 3{a}8 x = (a) x = “a” x = 1..9 取值a 取任一值 举 例
(两或多个选一)
{ ... }或 m{...}n (...) “...” .. 可选或不选 基本数据元素 连结符
1.结构语言
判断语句:在处理功能中常常需要对根据某一条件的 不同结论执行不同的处理动作进行描述,为此,可以用 判断句来实现。
如果质量合格率大于99% 如果出勤好 则获得一等奖金 否则获得二等奖金 如果质量合格率小于99%且大于80% 如果出勤好 则获得二等奖金 否则获得三等奖金
4.6 数据处理的描述工具
1.结构语言
循环语句:循环语句是指在某种条件下,连续执行相 同的动作,直到这个条件不成立为止。它也可以用来明 确地指出对每一件相同的事务都执行同一个动作。 例如:对每一储户,循环计算 利息
4.6
判定表和判定树
当逻辑和判定过程很复杂时,我们可以选用判 定表和判定树这两种技术来表示系统应该做什 么。 判定表(decision table)可列出影响系统行为 的所有因素的各种取值,并表明对这些因素的 每一种组合所期望的系统响应动作。
状态迁移图
举例:电话状态(占线、闲置、接通中) 图书状态(新书、可被借阅、被删除、被 预定、被借出)
选课状态图
新创建的学生 账号
可选课
[选课超过6门] 不可选课
删除已选的课程
删除账号(学生毕业) 账号被删 除
图4-4-1 “化学制品跟踪系统”中化学制品请求的状态转换图
第四章 结构化分析与建模(二)
本章结构
4.1 需求建模概述与结构化建模 4.2 数据模型与ER图 4.3 功能模型-数据流图 4.4 行为模型-状态转换图 4.5 数据字典 4.6 判定表和判定树
4.6 处理功能的描述工具
DFD中一些逻辑上比较复杂的处理,有必要 运用一些描述处理逻辑的工具来加以说明,理想 的描述既容易被人们理解,又比较严格和精确。 目前常用结构化语言、判定表和判定树三种工具 来描述。
数据词典
词条描述 —— 对于在数据流图中每一个被命名 的图形元素,均加以定义,其内容有: 名字,别 名或编号,分类,描述,定义,位置,其它等 名字:定货报表 别名:定货信息 描述:每天一次送给采购员的需要定货的零件 表 定义:定货报表=零件编号+零件名称+定货数 量+目前价格+主要供应者+次要供应者 位置:输出到打印机
DFD与数据字典的配合
为方便储户,某银行拟开发计算机储蓄系统,储户填写的存 款单或取款单由业务员键入系统,如果是存款,系统记录存 款人姓名、住址、存款类型、存款日期、利率的信息,并打 印出存款单给用户;如果是取款,系统计算利息并打印出利 息清单给用户。给出相应的数据流图和数据字典。
帐卡 帐卡信息 检验出的 问题 取款单 储
户 检验
登录
存/取款信息
存款 处理
存款单
付款 月日时 信息
计时器
存折
存款凭证 结算单
储 户
付款 处理
数据元素-取款单
数据流名称:取款单 别名:无 简述:顾客取款时填写的单据 来源:顾客 去向:检验 数据流量:200份/天 组成:日期+取款金额+姓名+地址+取款类型+密码
4.6 处理功能的描述工具
1.结构化语言
简单的祈使语句 指明要做的事情(如DFD图和需求功能说明),它至 少要包括一个动词,明确地指出执行的功能,至少要 包括一个名词作为宾语,表示动作的对象。 例如,“检验取款单”、“登录存折”、“计算平均 成绩”、“获得职工姓名”等。
4.6 数据处理的描述工具
+账号
数据元素-核查
加工名:检验 编号:XXXX 激发条件:接受取款单 输入:取款单
输出:认定的合格的取款信息
加工逻辑:根据账卡及用户取款单据
if 单据=存款单 then 存款单据是否填写规范 else
审核是否为有效取款单,取款金额不得超出存款金额,密码是否 正确。
第四章 结构化分析与建模(二)
本章结构
4.1 需求建模概述与结构化建模 4.2 数据模型与ER图 4.3 功能模型-数据流图 4.4 行为模型-状态转换图 4.5 数据字典(词典) 4.6 判定表和判定树
数据词典
数据词典与数据流图配合,能清楚地表达
数据处理的要求。
数据词典精确地、严格地定义了每一个与
系统相关的数据元素,并以字典式顺序将 它们组织起来,使得用户和分析员对所有 的输入、输出、存储成分和中间计算有共 同的理解。
Байду номын сангаас
数 据 结 构 的 描 述
x取到1至9之中的任一值。
数据词典
例:存折格式的数据结构
数据词典
存折=户名+所号+帐号+开户日+性质+(印密)+1{存 取行}50 户名=2{字母}24 所号=“001”..“999” 帐号=“00000001”..“99999999” 开户日=年+月+日 性质=“1”..“6” 注:“1”表示普通户,“5”表示 工资户等 印密=“0” 注:印密在存折上不显示 存取行=日期+(摘要)+支出+存入+余额+操作+复 核#0421
用状态转换图(State Transition Diagram ,STD) 可以简洁、完整、无歧义地表示有限状态机。 一种相关的技术是统一建模语言(Unified Modeling Language,UML)中的状态流程图。
状态转换图包括如下3种元素: 可能的系统状态,用矩形框(圆形框)来 表示。 允许的状态改变或迁移,用箭头连接一对 矩形框表示。 引起每个状态转换的事件或条件,在每个 迁移箭头上用文本标签来表示。