软件工程-数据流图(DFD)大题解析
软件工程DFD图示例

个系统,而框图则是从对数据进行加工的 工作人员的角度来描述系统。
数据流图中的箭头是数据流,而框 图中的箭头则是控制流,控制流表达的是 程序执行的次序。
4
例2下图是培训中心管理系统的数据流图:
由于只有一层,因此分解的加工较 多不易理解,而且如果其中某个加工较复 杂,例如编号为3 的加工“付款”和编号 为7 的加工“复审”仍很复杂,一时难以 理解,如果不继续分解下去,直到每个加 工都足够简单易于理解为止,则会影响需 求分析结果的可读性。
5
6
如图所示,如果系统规模较 大,仅用一个DFD 图难以描述, 会使得系统变得复杂,且难以理 解。
为了降低系统的复杂性,采 取“逐层分解”的技术,画分层 的DFD 图。
7
画分层DFD 图的一般原则是: “先全局后局部,先整体后细节,先抽 象后具体”。通常将这种分层的DFD 图,分 为顶层、中间层、底层。顶层图说明了系 统的边界,即系统的输入和输出数据流,顶 层图只有一张。底层图由一些不能再分解 的加工组成,这些加工都已足够简单,称 为基本加工。在顶层和底层之间的是中间 层。中间层的数据流图描述了某个加工的
11
一个加工每次分解成多少个子加工才合适呢? 根据经验“最多不要超过7 个”。统计结果证 明,人们能有效地同时处理7 个或7 个以下的问题, 但当问题多于7 个时,处理效果就会下降。当然也 不能机械地应用,关键是要使数据流图易于理解。 同时还有几条原则可供参考: 分解应自然,概念上要合理、清晰。 只要不影响数据流图的“易理解性”,可以适 当地多分解成几部分,这样分层图的层数就可少些。 一般来说,在上层可以分解得快些,而在中、 下层则应分解得慢些,因为上层是一些综合性的描 述,“易理解性”相对地说不太重要。
软件工程DFD习题

由捐助者向基金会提出捐助请求,经身份确认后被接受,对捐助人进行登记(捐赠人姓名,捐赠款额,捐赠日期,捐赠人联系方式),捐款存入银行;由教育单位提出用款申请,在进行相应的合法性校验和核对相应的捐款储备后做出支出,并且将支出情况(教育单位名称,用款金额,用款日期,用款说明)入库保存;每月统计本月的收入与支出状况及资金余额,生成财政状况报表给基金会的理事会。
要求:(a)画出顶级、1级和2级数据流图(可以画到3级数据流图,但不允许只画到1级数据流图);(b)给出至少3项数据字典和1项加工说明。
顶级DFD1级DFD2级DFDDD<捐助人信息> ::= 捐赠人姓名+捐赠款额+捐赠日期+捐赠人联系方式<支出情况> ::= 教育单位名称+用款金额+用款日期+用款说明<财政报表信息> ::=月收入+支出+资金余额加工说明对教育单位的合法性校验……1.某培训中心要研制一个课程培训管理系统。
它的业务是:将学员发来的表单收集分类后,按几种不同的情况处理。
(1)如果是选课申请单,首先查阅课程文件,检查该课程是否额满,然后在学员文件、课程文件上登记,最后给学员返回选课确认单。
其中选课申请单包含学员学号、姓名、一门或多名选择的课程号,选课确认单记录了该学员选课成功与否信息。
(2)如果是销课申请单,则先在课程文件、学员文件和帐目文件上做相应的修改,并给学员销课确认单。
其中销课申请单包含学员学号、姓名、一门或多名注销的课程号,每门课注销的理由。
(3)如果是付款单,则在帐目文件上登记,并给学员一张收费收据。
其中付款单记录学员学号、姓名、一门或多名选择的课程号和对应的选修费用。
要求:(a)画出顶级、1级和2级数据流图(可以画到3级数据流图,但不允许只画到1级数据流图);(b)给出至少3项数据字典和1项加工说明。
1顶级DFD1级DFD2级DFDDD<表单> ::= [选课申请表|销课申请表|付款单]<选课申请表> ::= 姓名+学号+{课程号}<销课申请表> ::= 姓名+学号+{课程号+注销理由} <付款单> ::= 姓名+学号+{课程号+金额}加工说明选课检查:指定课程是否额满;学员是否已经选择了该课程。
软件工程DFD图示例PPT课件

例2下图是培训中心管理系统的数据流图:
由于只有一层,因此分解的加工较多 不易理解,而且如果其中某个加工较复杂, 例如编号为3 的加工“付款”和编号为7 的加工“复审”仍很复杂,一时难以理解, 如果不继续分解下去,直到每个加工都足 够简单易于理解为止,则会影响需求分析 结果的可读性。
第15页/共18页
⑷合理使用文件 当文件作为某些加工之间的交界面时,文件 必须画出来,一旦文件作为数据流图中的一个独 立成份画出来了,那么它同其它成份之间的联系 也应同时表达出来。 理解一个问题总要经过从不正确到正确,从 不确切到确切的过程,需求分析的过程总是要不 断反复的,一次就成功的可能性是很小的,对复 杂的系统尤其如此,因此,系统分析员应随时准 备对数据流图进行修改和完善,与用户取得共识, 获得无二义性的需求,才能获得更正确清晰的需 求说明,使得设计、编程等阶段能够顺利进行, 这样做是必须和值得的。
第11页/共18页
画分层DFD 图的基本原则 ⑴数据守恒与数据封闭原则 所谓数据守恒是指加工的输入输出数据流是否匹配,
即每一个加工既有输入数据流又有输出数据流。或者说 一个加工至少有一个输入数据流,一个输出数据流。
⑵加工分解的原则 自然性:概念上合理、清晰; 均匀性:理想的分解是将一个问题分解成大小均匀 的几个部分; 分解度:一般每一个加工每次分解最多不要超过7 个子加工,应分解到基本加工为止。 ⑶子图与父图的“平衡”:父图中某个加工的输入 输出数据流应该同相应的子图的输入输出相同(相对应), 分层数据流图的这种特点称为子图与父图“平衡”。
第4页/共18页
第5页/共18页
如图所示,如果系统规模较 大,仅用一个DFD 图难以描述, 会使得系统变得复杂,且难以理 解。
软件工程与实践4-2数据流图

课堂作业2
车间填写领料单给仓库要求领料,库长根据用料计划审批
领料单,未批准的退回车间,已批准的领料单送到仓库保 管员处,由他查阅库存帐。若帐上有货则通知车间前来领 料,否则将缺货通知采购人员。
课下作业
请给出录取业务的最高层数据流图
4.4
数据字典
4.4.1 数据字典的用途
数据字典是分析阶段的工具,最重要的用途用户通过它可以 清楚地了解分析员对系统数据和处理的详细说明,不同的开 发人员或不同的开发小组之间可以通过数据字典对数据做出 严密一致的定义,从而避免定义得混乱。
(4)可选:即一个分量是可有可无的(重复零次或一次)
符号 = + [] {} ()
含义及解释 等价于(或被定义为) 和(即,连接两个分量);X=a + b 表示X由a 和 b 组成 选择符号,表示对[ ]中列举的值可以任选其一;X=[a|b] 表示X由 a或 b组成 重复符号,表示对{ }中的内容可视需要重复使用 ;X={a} 表示X由 0个或多个 a 组成 可选符号,表示对( )中的内容可由设计者决定取舍;X=(a) 表示 a 可在X中出现, 也可不出现 • •为连接符号,表示取值范围在M到N之间;X=1 • • 9 表示X可取1到9中的任意 一个值 基本数据元素;X=“a” 表示X是取值为字符a 的数据元素 注释符号,表示两个*之间的内容是对条目的注释
数据元素 编号: 数据元素名称: 类型:数字(连续值、离散值),字符(编码 类型) 长度: 取值范围: 相关的数据元素即数据结构:
数据存储
编号: 数据存储名称: 简述:存放的是什么数据 输入数据: 输出数据: 数据存储组成:数据结构 存储方式:顺序、直接、关键码
软件工程考试试题(含答案)

一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________.2.基于软件的功能划分,软件可以划分成__________、__________、__________三种.3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究。
4.系统流程图是描绘的传统工具。
它的基本思想是用图形符号以描绘系统里面的每个部件。
5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和。
6.结构化分析方法是面向________________进行需求分析的方法。
结构化分析方法使用________________与________________来描述。
7.是自动地共享类、子类和对象中的方法和数据的机制.8.软件详细设计工具可分为3类,即________________、________________和________________。
9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________。
10.大型软件测试包括、、确认测试和四个步骤.1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD 数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试1.软件设计中划分模块的一个准则是()。
A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的M。
Jackson提出的,它是一种面向()的软件设计方法.A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个(些)是正确的( ).a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.()是用户和设计交换最频繁的方法.A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。
dfd转化sc软考考试真题

dfd转化sc软考考试真题
1. 在数据流图(DFD)转化为软件结构图(SC)的过程中,首先需要做的是?
A. 鉴别DFD图所表示的软件系统的结构特征
B. 复审DFD图并进行必要的修改和细化
C. 按照优化设计的原则改进初始的SC图
D. 按照SD方法的规则将DFD图转换为初始的SC图
2. 在DFD图中,用于表示数据流向的符号是?
A. 箭头
B. 圆圈
C. 矩形
D. 椭圆
3. 在将DFD图转换为SC图的过程中,处理过程通常对应SC图中的?
A. 数据流
B. 模块
C. 数据存储
D. 控制流
4. 在软件结构图中,模块之间的实线表示?
A. 数据流
B. 控制流
C. 调用关系
D. 继承关系
5. DFD图主要用于描述?
A. 数据的逻辑结构
B. 系统的物理结构
C. 系统的功能及数据流动
D. 程序的执行流程
6. 在进行SC图优化设计时,通常需要考虑的因素不包括?
A. 模块之间的耦合度
B. 模块的内部复杂度
C. 模块的功能独立性
D. 模块的物理位置
7. 在软件设计中,高内聚低耦合是指?
A. 模块内部联系紧密,模块之间联系松散
B. 模块内部联系松散,模块之间联系紧密
C. 模块内部和模块之间联系都很紧密
D. 模块内部和模块之间联系都很松散
8. 以下哪个步骤不是DFD转化为SC的基本步骤?
A. 复审DFD图
B. 鉴别DFD图的结构特征
C. 编写详细设计文档
D. 按照优化设计的原则改进SC图。
【软件工程】习题解答二

1.什么是需求分析?需求分析阶段的基本任务是什么?需求分析是指:开发⼈员要准确理解⽤户的要求,进⾏细致的调查分析,将⽤户⾮形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
需求分析阶段的基本任务是:(1.问题识别:双⽅对问题的综合需求:a.功能需求b.性能需求c.环境需求d.⽤户界⾯需求.(2.分析与综合,导出软件的逻辑模型.(3.编写⽂档2.什么是结构化分析⽅法?该⽅法使⽤什么描述⼯具?结构化分析⽅法:是⾯向数据汉进⾏需求分析的⽅法。
描述⼯具:a.数据流图b.数据字典c.描述加⼯逻辑的结构化语⾔、判定表、判定树.3.结构化分析⽅法通过哪些步骤来实现?结构化分析⽅法步骤:a.了解当前系统的⼯作流程,获得当前系统的物理模型.b.抽象出当前系统的逻辑模型.c.建⽴上标系统的逻辑模型.d.作进⼀步补充和优化.4.什么是数据流图?其作⽤是什么?其中的基本符号各表⽰什么含义?数据流图:简称dfd,是sa(结构化分析)⽅法中⽤于表⽰系统逻辑模型的⼀种⼯具.是⼀种功能模型.作⽤:它以图形的⽅式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.基本符号有四种:->,箭头,表⽰数据流; (),圆或椭圆,表⽰加⼯; =,双杠,表⽰数据存储; ||,⽅框,表⽰数据的源点或终点. 5.画数据流图应该注意什么事项?画数据流图注意事项:a.命名.不论是数据流\数据存储还是加⼯,合适的命名使⼈们易于理解基含义.b.画数据流⽽不是控制流.c.⼀般不画物质流.d.每个加⼯到少有⼀个输⼊数据流和⼀个输出数据流,反映出此加⼯数据的来源与加⼯的结果.e.编号.f.⽗图与⼦图的平衡.g.局部数据存储.h.提⾼数据流图的易理解性。
软件工程习题解答解析

期考试题题型构成:选择题20道40分填空题10道20分应用题5道40分软件工程习题解答一、软件生存周期各阶段的基本任务?1. 问题定义:(1)回答要解决的问题是什么。
(2)系统分析员应该提出关于问题性质、工程目标和规模的书面报告。
(3)经过和用户讨论,澄清含糊不清的地方,改正理解不正确的地方,得出一份双方都满意的文档。
(4)问题定义是软件生命周期中最简短的阶段。
2.可行性研究:(1)前一阶段定义的问题有可行的解决办法吗?(2)系统分析员要进行一次大大压缩和简化了的系统分析和设计。
导出高层逻辑模型(用数据流图表示)。
确定工程规模和目标,准确估计系统的成本和效益。
(3)使用部门的负责人根据可行性研究的结果决定是否继续进行该工程的开发工作。
3.需求分析:(1)主要确定目标系统必须具备哪些功能。
(2)系统分析员和用户密切配合,充分交流,得出经用户确认的系统逻辑模型(数据流图、数据字典、算法描述)。
4.总体设计:(1)回答如何解决问题。
(2)系统分析员应使用系统流程图或其他工具描述每种可能系统;估计每种方案的成本和效益。
推荐一较好的系统──有其详细计划。
设计软件的结构(用层次图或结构图描述)。
5.详细设计:(1)回答应该怎样具体地实现这个系统。
(2)设计出程序的详细规格说明(用HIPO层次图加输入/处理/输出图)或PDL语言(过程设计语言)。
6.编码和单元测试:(1)写出正确的容易理解,容易维护的程序模块。
(2)程序员:选取一种适当的用高级语言书写程序(或汇编语言)。
仔细测试编写出的每一个模块。
7.综合测试:(1)通过各种类型的测试,使软件达到预定的要求。
(2)最基本的测试是集成测试和验收测试方法。
集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的过程中对程序进行必要的测试。
验收测试是按照需求规格说明书的规定,由用户对目标系统进行验收。
(3)用正式文档将测试计划、详细测试方案以及实际测试结果保存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1某公司为了给员工分配住房,开发了员工住房分配系统,功能如下:
➢计算原始分:根据员工信息(员工号、姓名、年龄、性别、学历、工龄、婚否、职务、职称、住房情况)计算原始分,并将员工信息存入员工信息文件中。
➢计算标准分:根据员工的原始分计算标准分,并将其存入员工分数文件(员工号、标准分)。
➢计算分房分:根据标准分、分房计划文件(员工号、住房请求)中的分房人数,计算分房分,并存入分房分数文件(员工号、分房分)中。
➢分房分查询:员工可以根据自己的员工号查询相应的分房分,若输入错误则返回出错信息。
试根据上面的系统功能描述:
(1)画出该系统的分层数据流图。
(8分)
(2)写出相应的数据字典(要求至少写出三项)。
(4分)
(3)将数据流图转换为软件的结构图。
(8分)
(1):
1)
2)第一层数据流图
员工信息文件员工分数文件夹分房分数文件
2.
名称:员工信息
别名:
描述:员工的各种信息
定义:员工号+姓名+年龄+性别+学历+工龄+婚否+职务+职称+住房情况
位置:员工信息文件
名称:分房计划文件
别名:
描述:准备分房的计划
定义:员工号+住房请求
位置:公司系统
名称:分房分数文件
别名:
描述:计算出的每个员工分房分数的文件
定义:员工号+分房分
位置:公司系统
2阅读以下说明和图,回答问题1至问题5,将解答填入答题纸的对应栏内。
(20分)
【说明】
某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:
1)每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。
课程结束后进行期末考试,其成绩作为这门课程的考试成绩。
2)学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。
3)在记录学生成绩之前,系统需要验证这些成绩是否有效。
首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。
4)对于有效成绩,系统将其保存在课程成绩文件中。
对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。
在教务处没有给出具体处理意见之前,系统不会处理这些成绩。
5)若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。
教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。
6)在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。
主讲教师须将核对之后的成绩报告返还系统。
7)根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。
考试委员会在审查之后,上交一份成绩审查结果给系统。
对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。
现采用结构化方法对这个系统进行分析与设计,得到如图2-1所示的顶层数据流图和图2-2所示的第1层数据流图。
【问题1】(4分)
使用说明中的词语,给出图1-1中的外部实体E1~E4的名称。
E1:考试委员会
E2:主讲教师
E3:每个选课学生
E4:教务处
【问题2】(3分)
使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。
D1:课程信息文件
D2:课程单元信息文件
D3:学生信息文件
D4:课程成绩文件
D5:无效成绩文件
【问题3】(6分)
数据流图1-2缺少了三条数据流,根据说明及数据流图1-1提供的信息,分别指出这三条数据流的起点和终点。
D2->4
D4->4
D1->5
【问题4】(3分)
简要叙述在本例中运用了哪几条画分层DFD图的指导原则。
答:数据守恒原则子父平衡原则
数据流封闭原则
【问题5】(4分)
数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图形化工具,程序流程图也是软件开发过程中比较常用的图形化工具。
简要说明数据流图和程序流程图在适用场合与作用上的区别。
答:数据流图:宏观地描述系统功能需求,是一种图形化技术,描绘信息流和数据从输入移动到输出的过程中所经历的变换,它只是描绘数据在软件中流动和被处理的逻辑过程。
因易理解,所以是分析员与用户之间极好的通信工具。
程序流程图:是流程程序分析过程最基本工具,它是人们对解决问题的方法,思路式算法的一种描述。
图2-1 顶层数据流图
图2-2 第1层数据流图-----精心整理,希望对您有所帮助!。