软件工程之数据流图专题

软件工程之数据流图专题
软件工程之数据流图专题

一.数据流图的基本成分

数据流图主要由4种成分(加工、数据流,数据存储文件、数据源点或汇点)组成,如下表所示:

二.数据流图的基本原则

●在单张DFD中,必须满足以下原则:

1)一个加工的输出数据流不应该与输入数据流同名,即使它们的组成成分相同(流进和流出存储文件的数据流除外),数据流不能存在于外部实体与外部实体之间,也不能存在于外部实体和数据存储文件之间;

2)保持数据守恒。一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据;

3)每个加工必须既有输入数据流,又有输出数据流;

4)所有的数据流都必须以一个加工开始,或以一个加工结束(数据流存在于加工与加工之间,加工与数据存储文件之间,加工与外部实体之间)。

5)流向/流出数据存储文件的数据流名可以省略不写。

●在父图与子图之间,必须满足以下原则:

1)保持父图与子图的平衡。也就是说,父图中某加工的输入(输出)数据流中的数据必须与它的子图的输入(输出)数据流中的数据在数

量和名字上相同;

2)加工细节隐藏。根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节;

3)均匀分解。应该使一个数据流图中的各个加工分解层次大致相同;

其它应该注意的原则:

1)简化加工间关系。在数据流图中,加工间的数据流越少,各加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目;

2)适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字;

3)忽略枝节。应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性问题;

4)表现的是数据流而不是控制流;

5) 在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读没有写或者只有写没有读。例:根据数据流图的设计原则(子图),阅读下图所示的数据流图,找出其中的错误之处。

答案:外部实体A和B之间不能存在数据流;外部实体A和数据存储H之间不能存在数据流;加工2的输入/输出数据流名字相同;加工4只有输入,没有输出;加工5只有输出,没有输入

三.DD(Data Dictionary)数据字典

数据字典(Data Dictionary,简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。

3.1 数据字典的内容以及格式

数据字典的任务是对于数据流图中出现的所有被命名的图形元素在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。

数据词典中所有的定义应是严密的、精确的,不可有半点含混,不可有二义性。

在定义数据流或数据存储组成时,使用的符号如3-1表:

举例:定义数据流组成和数据项。

机票=姓名+日期+航班号+起点+终点+费用

姓名={字母}

航班号=“Y7100”..“Y8100”

终点=[上海|北京|西安]

3.2 数据字典条目

数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。

软件工程导论(整理版)

SA——结构化分析方法 可行性研究:可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程; 技术可行性:对待开发的系统进行功能、性能和限制条件的分析,确定在现有的资源条件下,技术风险有多大,系统能否实现; 经济可行性:这个系统的经济效益能超过它的开发成本吗? 社会可行性:实用性怎样 5. 耦合性:耦合是指一个模块与其它模块之间的联系,又称为块间联系,是模块之间相对独立性的度量; 6. 内聚性:内聚是指模块内部各个成分之间的关系,又称为块内联系,是模块功能相对强度的度量; 7. 模块的控制范围:一个模块的控制范围是指该模块本身及其所属的(直接或间接调用的)所有模块的集合; 8. 模块的作用范围:受该模块内一个判定影响的所有模块的集合;9. 软件结构:软件结构图; 10.模块:在软件中,通常把用一个名字就可以调用的一段程序称为模块; 1. 编码:所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序; 2. 程序设计风格:所谓程序设计风格是指书写源程序的习惯、程序代码的逻辑结构与习惯的编程技术。从软件工程要求出发,程序设计风格应包括以下要素:①源程序文档化②数据说明③语句构造④输入输出 ●白盒测试技术:逻辑覆盖和基本路径覆盖 ●黑盒测试技术:等价类划分、边界测试、错误推测、因果图 ●软件测试步骤:单元测试、集成测试和确认测试 1. 校正性维护:满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的; 2.适应性维护:对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件的活动; 3. 完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作; 4. 预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。

软件工程银行管理系统数据流图盒图AD图流图层次图流程图

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:结构化设计实验 班级: *********** 学号: ************* 姓名: *************

结构化设计验报告要求 1目的与要求: 1)系统学习和理解结构化软件工程设计阶段的基本任务、概念、原理、技术和方法; 2)掌握设计阶段各种设计工具,如、层次图、程序流程图、N-S图、PAD图、判定表(树)、伪代码语言等工具的使用方法; 3)通过理论学习和试验要逐步提高运用结构化软件工程的设计理论、技术和方法解决实际问题的综合应用和实践创新能力; 4)请借阅有关Microsoft Office Visio 系统,预习系统有关的结构化设计工具和使用方法; 5)按照实验题目要求独立完成结构化设计实验内容,严禁拷贝、抄袭他人设计成果; 6)认真书写实验报告,并于下周5以前提交。 2 实验内容或题目 1.针对自己第一次实验所完成的结构化分析项目(或题目),选择所绘制 的数据流图,E-R图、状态图,完成下面2、3、4、5、6要求的结构化 设计内容; 2.按照面向数据流图的结构化设计方法,并在优化所选择数据流图的基础 上,导出项目的总体设计层次图(H图); 3.按照详细设计阶段所学的过程设计工具,分别选择程序流程图、盒图和 PAD图等设计工具,在第2所得层次图中选择几个主要模块进行详细设 计,画出相应设详细计结果图形; 4.根据选择的E-R图进行数据库(以关系数据库模型为基准,进行数据库 表及其关系设计); 5.根据H图进行界面菜单设计(模拟菜单显示样式绘制菜单设计图),选 择一个数据库表(实体)进行界面表单(数据编辑界面)设计; 6.选择第3步中某一模块的详细设计结果,画出对应得流图,并计算其圈 复杂度。 3 实验步骤与源程序 1.优化所选择数据流图

软件工程导论简答题大全

1.软件工程的七条基本原理是什么? 答:软件工程的七条基本原理是: 用分阶段的是的生存周期计划严格管理; 坚持进行阶段评审; 严格实施的产品控制; 采用现代程序技术; 结果应能清楚地审查; 开发小组的成员应该少而精; 承认不断改进软件工程的必要性。 2.良好的编码风格应具备哪些条件? 答:应具备以下条件: (1)使用标准的控制结构; (2)有限制地使用GOTO语句; (3)源程序的文档化(应具备以下内容) ①有意义的变量名称——“匈牙利命名规则”。 ②适当的注释——“注释规范”。 ③标准的书写格式: ——用分层缩进的写法显示嵌套结构的层次(锯齿形风格); ——在注释段的周围加上边框; ——在注释段与程序段、以及不同程序段之间插入空行; ——每行只写一条语句; ——书写表达式时,适当使用空格或圆括号等作隔离符。 (4)满足运行工程学的输入输出风格。 3.简述文档在软件工程中的作用。 答: (1) 提高软件开发过程的能见度 (2) 提高开发效率 (3) 作为开发人员阶段工作成果和结束标志 (4) 记录开发过程的有关信息便于使用与维护; (5) 提供软件运行、维护和培训有关资料; (6) 便于用户了解软件功能、性能。 4.可行性研究包括哪几方面的内容? 答: (1)经济可行性:是否有经济效益,多长时间可以收回成本; (2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足; (3)运行可行性:系统操作在用户内部行得通吗? (4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。 5.结构化的需求分析描述工具有哪些? 答:有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。 6.一般面向对象分析建模的工具(图形)有哪些?

软件工程导论课后题

1-5、根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: (1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。

2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。 医院对患者8监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。 从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。 从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。 系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。 此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。 为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。

软件工程导论最全复习总结

1、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的 严重问题。 2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的 程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。 3、软件工程学包含3个要素:方法、工具、过程。 4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。 5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。 6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。 7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。 8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。 9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中 所经受的变化。 10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义 的集合。 11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格, 没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准 确的描述软件需求。 13、9、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩 形表示属性,用直线把实体和其属性连接。 15、验证软件需求的正确性:一致性、完整性、现实性、有效性。 总体设计又称 16、总体设计的基本目的是回答“概括地说,系统应该如何实现?”, 为 概要设或初步设计。 17、模块的独立程度可以有两个定性标量度量:内聚和耦合。 18、软件测试的目标:(1测试是为了发现程序中的错误而执行程序的过程;(2好的 测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3成功的测试是发现可至今为止尚未发现的错误的测试。 19、软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运 行。 20、软件可靠性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。

数据流图的构成与绘制步骤

第4章 1.简述需求分析中现行系统调查、新系统逻辑方案的提出等活动的详细内容、关键问题、主要成果及其描述方法。

系统调查 (1)组织机构的调查 了解组织的机构状况。即各部门的划分及其相互关系、人员配备、业务分工、信息流和物流的关系等等。组织机构状况可以通过组织结构图来反映。所谓组织机构图就是把组织分成若干部分,同时标明行政隶属关系,信息流动关系和其他关系。 (2)业务处理状况调查 为了弄清楚各部门的信息处理工作,哪些与系统建设有关,哪些无关,就必须了解组织的业务流程。系统分析人员应按照业务活动中信息流动过程,逐个调查所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清楚各个环节需要的信息内容、信息来源、去向、处理方法、提供信息的时间和信息形态等。 (3)现行系统的目标、主要功能和用户需求调查 只有充分了解现行系统的目标和功能以及用户需求,才能发现存在的问题,寻找解决问题的途径,也使新系统开发成为可能。 (4)信息流程调查 开发信息系统必须了解信息流程。业务流程虽然在一定程度上表达了信息的流动和存储情况,但仍含有物资、材料等内容。为了用计算机对组织的信息进行控制,必须舍去其他内容,把信息的流动、加工、存储等过程流抽象出来,得出组织中信息流的综合情况。描述这种情况的就是数据流图。 (5)数据及功能分析 有了数据流图后,要对图中所出现的数据和信息的属性进一步分析,包括编制数据词典、数据存储情况分析及使用情况分析。同时还要对数据流图中的各个加工逻辑进行描述。可用的工具有决策树、决策表、结构化语言等。 (6)系统运营环境分析 目前我国许多企业组织的信息系统处于停滞状态的主要原因是系统对环境环境的适 应性而非技术问题。因此,必须对系统的应用环境进行认真地调查分析,充分考虑各种可能发生的变化,以提高系统开发的质量。 新系统逻辑方案的提出 (1) 现行系统的薄弱环节 (2) 新系统的总体功能需求

软件工程导论试题(整理)

单项选择题(每小题1分,共10分) 1、在结构性的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A ) (A)需求分析阶段(B)详细设计阶段(C)概要设计阶段(D)可行性 2、研究阶段软件工程方法中普遍定义的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征( C ) A 严格定义需求 B 划分开发阶段 C 规范文档格式 D 分析控制流程 3、软件结构中两个模块之间有调用关系,传递简单数据值,相当于高级语言中的值传递,这两个模块之间的耦合是( D ) (A)公共耦合(B)控制耦合(C)标记耦合(D)数据耦合 4、软件维护的四类维护活动是( A ) (A)改正性维护,适应性维护,完善性维护和预防性维护。 (B)适应性维护,完善性维护,抢救性维护和辅助性维护。 (C)改正性维护,适应性维护,完善性维护和辅助性维护。 (D)适应性维护,完善性维护,抢救性维护和预防性维护。 5、主要从( A )几个方面进行系统可行性研究。 (A)技术可行性,经济可行性,操作可行性。(B)技术可行性,经济可行性,系统可行性。(C)经济可行性,系统可行性,操作可行性。(D)经济可行性,系统可行性,时间可行性。 6、进行需求分析可使用多种工具,但( C )是不适用的。 (A)数据流图(B)判定表(C)PAD图(D)数据字典 7、软件需求分析阶段的工作,可以分为四个方面:对问题的识别、分析与综合、编写需求分析文档以及( B ) (A)软件的总结(B)需求分析评审(C)阶段性报告(D)以上答案都不对8、OMT(Object Modelling Technique)方法的第一步是从问题的陈述入手,构造系统模型。系统模型由对象模型、( C )组成。 A静态模型和功能模型 B动态模型和过程模型 C动态模型和功能模型 D静态模型和操作模型 9、为了表示项目管理功能工作中各项任务之间的进度衔接关系,常用的计划管理工具是( D ) (A)程序结构图(B)数据流图(C) E-R图(D)甘特(Gantt)图 ①软件生命周期中所花费用最多的阶段是(D) A.详细设计B.软件编码C.软件测试D.软件维护 ②可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。 A.确定B.行或不行C.正确D.无二义 ③下列关于瀑布模型的描述正确的是(C)。 A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。 B. 瀑布模型具由于良好的灵活性。 C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 D. 利用瀑布模型,如果发现问题则修改的代价很低。 ④详细设计的结果基本决定了最终程序的(C) A.代码的规模B.运行速度C.质量D.可维护性

软件工程 数据流图画法实践

数据流图(DFD)画法要求 一、数据流图(DFD) 1.数据流图的基本符号 数据流图由四种基本符号组成,见图5-4-1所示。 图5-4-1数据流图的基本符号 例:图5-4-2是一个简单的数据流图,它表示数据X从源S流出,经P加工转换成Y,接着经P加工转换为Z,在加工过程中从F中读取数据。 图5-4-2数据流图举例 下面来详细讨论各基本符号的使用方法。

数据流由一组确定的数据组成。例如“发票”为一个数据流,它由品名、规格、单位、单价、数量等数据组成。数据流用带有名字的具有箭头的线段表示,名字称为数据流名,表示流经的数据,箭头表示流向。数据流可以从加工流向加工,也可以从加工流进、流出文件,还可以从源点流向加工或从加工流向终点。 对数据流的表示有以下约定: 对流进或流出文件的数据流不需标注名字,因为文件本身就足以说明数据流。而别的数据流则必须标出名字,名字应能反映数据流的含义。 数据流不允许同名。 两个数据流在结构上相同是允许的,但必须体现人们对数据流的不同理解。例如图5-4-3(a)中的合理领料单与领料单两个数据流,它们的结构相同,但前者增加了合理性这一信息。 两个加工之间可以有几股不同的数据流,这是由于它们的用途不同,或它们之间没有联系,或它们的流动时间不同,如图5-4-3(b)所示。 (a)(b)(c) 图5-4-3简单数据流图举例 数据流图描述的是数据流而不是控制流。如图5-4-3(c)中,“月末”只是为了激发加工“计算工资”,是一个控制流而不是数据流,所以应从图中删去。

加工处理是对数据进行的操作,它把流入的数据流转换为流出的数据流。每个加工处理都应取一个名字表示它的含义,并规定一个编号用来标识该加工在层次分解中的位置。名字中必须包含一个动词,例如“计算”、“打印”等。 对数据加工转换的方式有两种: 改变数据的结构,例如将数组中各数据重新排序; 产生新的数据,例如对原来的数据总计、求平均等值。 4.文件 文件是存贮数据的工具。文件名应与它的内容一致,写在开口长条内。从文件流入或流出数据流时,数据流方向是很重要的。如果是读文件,则数据流的方向应从文件流出,写文件时则相反;如果是又读又写,则数据流是双向的。在修改文件时,虽然必须首先读文件,但其本质是写文件,因此数据流应流向文件,而不是双向。 例如,在图5-4-3(a)中,检查合理性加工时,只从库存帐目文件中读出库存信息与领料单核对,所以数据流从文件流出,箭头指向加工。 5.数据源或终点 数据源和终点表示数据的外部来源和去处。它通常是系统之外的人员或组织,不受系统控制。 为了避免在数据流图上出现线条交叉,同一个源点、终点或文件均可在不同位置多次出现,这时要在源(终)点符号的右下方画小斜线,或在文件符号左边画竖线,以示重复,如图5-4-4所示。

软件工程导论复习重点总结很全(第六版)(精)

第1章软件工程学概述 1.1 软件危机 1.1.1 软件危机的介绍 软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: (1对软件开发成本和进度的估计常常很不准确; (2用户对“已完成的”软件系统不满意的现象经常发生; (3软件产品的质量往往靠不住; (4软件常常是不可维护的; (5软件通常没有适当的文档资料; (6软件成本在计算机系统总成本中所占的比例逐年上升; (7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2 产生软件危机的原因 (1与软件本身的特点有关 (2与软件开发与维护的方法不正确有关

1.1.3 消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。 1.2 1.2.1 软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户

从数据流程图导出初始结构图方法模板

从数据流程图导出初始结构图方法 下面分别讨论经过”变换分析”和”事务分析”技术, 导出”变换型”和”事务型”初始结构图的技术。 1.变换分析 根据系统说明书, 能够决定数据流程图中, 哪些是系统的主处理。主处理一般是几股数据流汇合处的处理, 也就是系统的变换中心, 即逻辑输入和逻辑输出之间的处理。 确定逻辑输入——离物理输入端最远的, 但仍可被看作系统输入的那个数据流即为逻辑输入。确定方法是从物理输入端开始, 一步步向系统的中间移动, 直至达到这样一个数据流: 它已不能再被看作为系统的输入, 则其前一个数据流就是系统的逻辑输入。确定逻辑输出——离物理输出端最远的, 但仍可被看作系统输出的那个数据流即为逻辑输出。方法是从物理输出端开始, 一步步向系统的中间反方向移动, 直至达到这样一个数据流: 它已不能再被看作为系统的输出, 则其后一个数据流就是系统的逻辑输出。对系统的每一股输入和输出, 都用上面的方法找出相应的逻辑输入、输出。逻辑输入和逻辑输出之间的加工, 就是系统的主加工。如图4-24所示。

图4-24(a)初始DFD图 图4-24(b)找系统的主加工 2) 设计模块的顶层和第一层 ”顶层模块”也叫主控模块, 其功能是完成整个程序要做的工作。在与主加工对应的位置上画出主模块。系统结构的”顶层”设计后, 下层的结构就按输入、变换、输出等分支来分解。 设计模块结构的第一层: 为逻辑输入设计一个输入模块, 它的功能是向主模块提供数据; 为逻辑输出设计一个输出模块, 它的功能是输出主模块提供的数据; 为主加工设计一个变换模块, 它的功能是将逻辑输入变换成逻辑输出。 第一层模块同顶层主模块之间传送的数据应与数据流程图相对应。这里主模块控制并协调第一层的输入、变换、输出模块的工作。( 3) 设计中、下层模块 由自顶向下、逐步细化的过程, 为每一个上层模块设计下属模块。输入模块的功能是向它的调用模块提供数据, 由两部分组成: 一部分是接受输入数据; 另一部分是将这些数据变换成其调用模块所

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

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提供的信息,分别指出这三条数据流的起点和终点。

软件工程导论名词解释

名词解释 1.数据词典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详 细的描述和确切的解释,是数据流图的补充工具。 2.数据流图——他以图形的方式反映系统的数据流程 3.白盒测试——按照程序内部的结构测试程序,检验程序中的每条路径是否都能按预定 要求正确工作。有两种测试法既逻辑覆盖测试法和路径测试法 4.黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执 行是否正确。有四种方法既等价分类法、边界值分析法、错误猜测法和因果图法 5.完善性维护——为了适应用户业务和机构的发展变化而对软件的功能、性能进行修改、 扩充的过程称为完善性维护。因为各种用户的业务和机构在相当长的时期内不可能是一成不变的,所以功能、性能的增加是不可避免的,而且这种维护活动在整个维护工作中所占的比重很大 6.软件可靠性——指在给定的时间内,程序按照规定的条件成功地运行的概率 7.软件配置——是一个软件在生存周期内,他的各种形式、各种版本的文档与程序的总称 8.软件再工程——运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分 解、综合、并重新构建软件,用于提高软件的可理解性、可维护性可复用性或演化性。9.α测试——是在一个受控的环境下,由用户在开发者的“指导”下进行的的测试,由开 发者负责记录错误和使用中出现的问题。 10.β测试——是由软件的最终用户(多个)在一个或多个用户场所来进行。由用户负责记 下遇到的所有问题,包括主观认定的和真实的问题,定期向开发者报告,开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。 11.聚集关系——表示类或对象之间的整体与部分的关系 12.泛化关系——表示类或对象之间的一般与特殊的关系 13.内聚——一个模块内部各个元素彼此结合的紧密程度的度量。 14.耦合——一一个软件结构内不同模块之间互连程度的度量。 名词解释: 一章: 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护方法不正确有关。 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理;(2) 坚持进行阶段评审;(3) 实行严格的产品控制;(4) 采用现代程序设计技术;(5) 结果可以清楚地审查;(6) 开发小组的人员应该少而精;(7) 承认不断改进软件工程实践的必要性. 软件工程方法学3要素:方法、工具、过程 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 软件生命周期的概念:有软件定义、软件开发和软件维护3个小时期组成 软件生命周期8个阶段的主要任务:(1)问题定义: “需要解决的问题是什么?”(2) 可行性研究: “寻求可行的解决方案?” (3) 需求分析: “解决这些问题需要系统做什么?” (4) 总体设计(概要设计): “应该怎样实现目标系统?”(5) 详细设计(模块设计): “如何具体地实现这个系统?” (6) 编码和单元测试:“写代码,测试每个模块!” (7) 综合测试: “通过各类测试和调试来完善软件” (8) 软件维护:“通过各种必须的维护活动使系统持久满足用户的需要!” 二章: 可行性研究的五个方案:技术可行性,经济可行性,操作可行性,法律可行性,社会效益 可行性研究过程:1.复查系统规模与目标、2.研究目前的系统、3. 导出新系统的高层逻辑模型、4. 进一步定义问题、5. 导出和评价供选择的解法、6. 推荐行动方针、7. 草拟开发计划、8.书写文档提交审查 系统流程图:用来描述物理系统的工具。系统流程图表达的是数据在系统各部件之间流动的

模块图和结构图

结构化设计方法使用的描述方式是系统结构图,也称结构图或控制结构图。它表示了一个系统(或功能模块) 的层次分解关系,模块之间的调用关系,以及模块之间数据流和控制流信息的传递关系,它是描述系统物理结构的主要图表工具。 系统结构图反映的是系统中模块的调用关系和层次关系,谁调用谁,有一个先后次序(时序)关系.所以系统结构图既不同于数据流图,也不同于程序流程图.在系统结构图中的有向线段表示调用时程序的控制从调用模块移到被调用模块,并隐含了当调用结束时控制将交回给调用模块。 如果一个模块有多个下属模块,这些下属模块的左右位置可能与它们的调用次序有关.例如,在用结构化设计方法依据数据流图建立起来的变换型系统结构图中,主模块的所有下属模块按逻辑输入,中心变换,逻辑输出的次序自左向右一字排开,左右位置不是无关紧要的. 系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计.在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统.处理方式设计:确定为实现软件系统的功能需求所必需的算法,评估算法的性能.确定为满足软件系统的性能需求所必需的算法和模块间的控制方式(性能设计).确定外部信号的接收发送形式. 系统功能模块结构图,是什么 1.功能结构图就是按照功能的从属关系画成的图表,图中的每一个框都称为 一个功能模块。功能模块可以根据具体情况分的大一点或小一点,分解得最小功能模块可以是一个程序中的每个处理过程,而较大的功能模块则可能是完成某一个任务的一组程序。 2.功能结构图是对硬件、软件、解决方案等进行解剖,详细描述功能列表的 结构,构成,剖面的从大到小,从粗到细,从上到下等而描绘或画出来的结构图。从概念上讲,上层功能包括(或控制)下层功能,愈上层功能愈笼统,愈下层功能愈具体。功能分解的过程就是一个由抽象到具体、由复杂到简单的过程。图中每一个方框称为一个功能模块。功能模块可以根据

软件工程之数据流图专题

一.数据流图的基本成分 数据流图主要由4种成分(加工、数据流,数据存储文件、数据源点或汇点)组成,如下表所示: 二.数据流图的基本原则 ●在单张DFD中,必须满足以下原则: 1)一个加工的输出数据流不应该与输入数据流同名,即使它们的组成成分相同(流进和流出存储文件的数据流除外),数据流不能存在于外部实体与外部实体之间,也不能存在于外部实体和数据存储文件之间; 2)保持数据守恒。一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据; 3)每个加工必须既有输入数据流,又有输出数据流; 4)所有的数据流都必须以一个加工开始,或以一个加工结束(数据流存在于加工与加工之间,加工与数据存储文件之间,加工与外部实体之间)。 5)流向/流出数据存储文件的数据流名可以省略不写。 ●在父图与子图之间,必须满足以下原则: 1)保持父图与子图的平衡。也就是说,父图中某加工的输入(输出)数据流中的数据必须与它的子图的输入(输出)数据流中的数据在数 量和名字上相同; 2)加工细节隐藏。根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节; 3)均匀分解。应该使一个数据流图中的各个加工分解层次大致相同; 其它应该注意的原则: 1)简化加工间关系。在数据流图中,加工间的数据流越少,各加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目; 2)适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字; 3)忽略枝节。应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性问题; 4)表现的是数据流而不是控制流; 5) 在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读没有写或者只有写没有读。例:根据数据流图的设计原则(子图),阅读下图所示的数据流图,找出其中的错误之处。

软件工程导论实验报告

软件工程导论实验报告

日期2013 年9 月26 日地点实验中心404 【实验目的】 【实验重点】 【实验难点】1)熟悉Visio 的工作环境及组成; 2)掌握用Visio 软件绘制图表的基本操作; 3)能熟练全用Visio软件绘制各种较复杂的专业图表; 4)掌握各种图表文档创建方法. 要求能够熟练运用Visio软件所提供的菜单工具、模型等制作图形或图表。能用Visio软件所提供专业图形模板,来自行绘制出专业化、高质量的图形或图表 使用Microsoft Visio 来设计一个基本流程图 1、打开模板并向图表添加形状来开始创建图表 2、在图表中移动形状并调整形状的大小 3、向图表添加文本 4、连接图表中的形状 5、设置图标格式并保存(数据流图) 【实验步骤】 【实验小结】 熟悉了Microsoft Visio 的的工作环境及组成,会基础地创建图标文档。 【实验评 语】指导教师签名:

实验项目名称: 软件概要设计 EJ 期 ________________ 11 月 2 日 地点 实验中心404 1、 建立初始软件结构图; 2、 对初始软件结构构图进行改进、优化; 用面向数据流的软件设计技术,对上一实验的数据流图和数据 字典,进行总体设计。 主要解决实现该系统需求的模块的设 计 问题。 (包括如何把该系统划分成若干个模块、决定各 个模块 之间的接口、模块之间传递的信息,以及数据结构、模 块结构的设计等。) 1、 首先确定系统总体设计方案 2、 完成系统的模块结构图及模块的功能说明 3、 完成系统的接口设计 4、 完成系统的数据结构设计,数据结构图如下: 【实验步骤】 【实验目的】: 【实验难点】

软件工程导论第六版期末复习总结

软件工程 一、名词解释与问答 1、SA——结构化分析方法 2、画数据流图应注意什么事项? (1)数据流名称只能是名词或是名词短语; (2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来源与加工的结果; (3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类;父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致; (4)注意数据流图的易理解性; 3、什么是软件生存周期?它有那几个活动? 一个软件从提出开发要求开始直到该软件报废为止的整个时期。 包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。 4、什么是数据流图?作用是什么?其中的基本符号表示什么含义? 以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。 箭头,表示数据流数据流是数据在系统内传播的路径,由一组成分固定的数据项组成; 圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工; 双杆,表示数据存储指暂时保存的数据;方框,数据源点或终点软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中; 什么是数据字典简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流

图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分) 简述编码风格的重要性. 答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量. 简述软件测试的任务、目的与类型。 答:软件测试是一个为了寻找软件错误而运行程序的过程。 目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试主要分为白盒测试和黑盒测试两大类。 可行性分析的目的和主要任务是什么? 答:可行性分析的目的不是解决问题,而是确定问题是否值得去解决。 主要任务是从下面几方面研究每种解法的可行性:技术可行性,经济可行性,操作可行性,社会可行性,抉择可行性。 需求分析的目的和主要任务是什么? 答:进行需求分析是为了准确地回答“系统必须做什么”这个问题,决定可以做什么不做什么。需求分析的主要任务是描述系统的功能需求、性能需求、数据需求、可靠性/可用性需求、出错处理需求、接口需求、约束条件、其他需求。 软件维护的目的和主要任务是什么?维护的类型有哪些? 答:软件维护是软件生命周期中最后一个、持续时间最长的阶段。 主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件,目的是提高软件的可靠性、可用性,延长软件的寿命。维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品) 什么是耦合?模块的耦合包括哪些类型? 答:耦合是对一个软件结构内不同模块之间互连程度的度量。 模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合,标记耦合,无耦合/非直接耦合 什么是内聚?模块的内聚包括哪些类型? 答:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念

(完整word版)软件工程导论(第6版)

第一章、软件工程学概述 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。 2.如何维护数量不断膨胀的已有软件。 具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。 2.用户对“已完成的”软件系统不满意的现象经常发生 3.软件产品的质量往往靠不住。 4.软件常常是不可维护的。 5.软件通常没有适当的文档材料。 6.软件成本在计算机系统总成本中所占的比例逐年上升。 7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。 软件配置:程序、文档和数据。 软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。 软件:是程序、数据及相关文档的集合。 程序:是能够完成预定功能和性能的可执行的指令序列。 数据:是使程序能够适当地处理信息的数据结构。 文档:是开发、使用和维护程序所需要的图文资料。 软件工程:指导计算机软件开发和维护的一门工程学科。 软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。2.软件工程的中心课题是控制复杂性。3.软件经常变化。4.开发软件的效率非常重要。5.和谐地合作是开发软件的关键。6.软件必须有效地支持它的用户。7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。 软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。2.坚持进行阶段评审。3.实行严格的产品控制4.采用现代程序设计技术。5.结构应能清楚的审查。6.开发小组的人员应该少而精。7.承认不断改进软件工程实践的必要性。软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。 软件工程方法学(包括传统方法学、面向对象方法学)包含三个要素:方法、工具和过程。 方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题。 工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。 工程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 面向对象方法学:把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。 面向对象方法学具有下述四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件。 2.把所有对象都划分成类。 3.按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。 4.对象彼此间仅能通过发送消息互相联系。 面向对象方法学的优点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。 软件生命周期:软件定义、软件开发和运行维护。软件定义:问题定义、可行性研究和需求分析。软件开发:总体设计,详细设计,编码和单元测试,综合测试。 1.问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”。 2.可行性研究:这个阶段回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?” 3.需求分析:确定目标系统必须具备哪些功能。 4.总体设计:这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。 5.详细设计:这个阶段应回答的关键问题是:“应该怎样具体地实现这个系统呢?” 6.编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。 7.综合测试:这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求。 8.软件维护:关键任务是通过各种必要的维护活动使系统持久地满足用户的需要。

软件工程导论答案 第2章 习题答案

答案 习题2 2-1在软件开发的早期阶段为什么要进行可行性分析研究?应该从哪些方面研究目标系统的可行性? 可行性分析是要进行一次大大压缩简化系统分析和设计过程,避免时间、资源、人力和金钱的浪费。 技术上的可行性——使用现有的技术能实现这个系统吗? 经济上的可行性——这个系统的经济效益能超过它的开发成本吗?(投资与效益)操作可行性——系统的操作方式在这个用户组织内行得通吗? 社会、政策允许的可行性 2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。请画出此系统的数据流图。

2-3为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。请画出系统的数据流图。 2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危险病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。 医院对患者监护系统的基本要求是随时接受每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以及形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。请画出系统的数据流图。

相关文档
最新文档