软件工程之数据流程图

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

一、什么是数据流图

数据流图是一种图形化的系统模型,它在一张图中展示信息系统的数据流向——即系统的输入与输出数据分别是什么,数据从哪里来并最终流向何处,以及数据存储在什么地方。

数据流图的基本图形元素有:

?数据流:是由一组固定成分的数据组成,表示数据的流向。值得注意的是,数据流图中描述的是数据流,而不是控制流。除了流向数据存储或从数据存储流出的数据不必

命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。

?加工:加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的

数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。

?数据存储:数据存储表示暂时存储的数据。每个数据存储都有一个名字。

?外部实体:外部实体是存在于软件系统之外的人员或组织,他指出数据所需要的发源地或系统所产生的数据的归属地。

二、为什么画数据流图

通过数据流图,软件设计师可以自顶而下的分析系统的信息流程、在图上确定需要计算机处理的部分、向数据库设计过渡、根据数据流向确定存取方式、能够确定一个处理过程。而在测试过程中,数据流图可以方便、直接的帮助程序员查找到错误的发生位置。

三、什么时候画数据流图

需求分析阶段,为了获得一个对新系统的框架认识、概念性认识,需要对新系统建模。而用图形表示需求,就是需求建模,获得分析模型。需求分析方法中的结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析。

四、怎么画数据流图

(一)确定系统的输入输出

由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流图的外围。

(二)由外向里画系统的顶层数据流图

首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。

(三)自顶向下逐层分解,绘出分层数据流图

对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。

五、数据流图实例

机房收费系统数据流图

软件工程流程图程序演示

public class TestSoftwareEngineeringWork { public static void main(String[] args) { a; do { b; if (X1){ f; if(X4){ do { i ; } while (X5); }else{ g; h; } }else{ switch(X2){ case 1: do { c; } while (X3); break; case 2: d; break; case 3: e; break; default: } } } while (X6); j; } }

/*在用java中用简单代码模拟该嵌套构成的流程实例图*/ import java.util.Scanner; public class TestSoftwareEngineeringWork { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println ("请输入1到10其中一个数字"); int a = s.nextInt(); //替代语句a do { ++a; int b = a; //替代语句b if (a < 5){ //模拟X1的判断,ture的执行X1右边代码块 int f = 4;//代替语句f if(f < 5){//模拟X4的判断,ture执行X4右边代码块 boolean i = f >=20; do { ++f; i = f >=20;//代替语句i; } while (false == i);//模拟X5的判断,但是java中没有do—until语句 //所以用do—while来解决,其中ture就执行i语句 }else{//相反false执行X4左边代码块 int g = a;//替代语句g int h = a;//替代语句h } }else{ //相反false执行X1左边代码块 int X2 = a % 4; switch(X2){ case 1: do { ++X2;//代替语句c } while (X2 < 5);//模拟X3的判断,false执行c语句,否则执行X6 break; case 2: int d = X2;//代替语句d break;

软件工程银行管理系统数据流图盒图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、问题定义阶段(规划阶段): UC图:( Use Creat 图)它是 BSP( business system planning )法中常用的子系统划分工具。

2、可行性分析 2.1系统流程图:是描述系统物理模型的一种传统工具。它是表达数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,它是物理数据流图而不是程序流程图。系统流程图形象的呈现了软件的功能,即使不懂软件的人也可以轻松的看懂,可以说它是软件设计师与用户之间沟通、交流的有效工具。

3、需求分析: 3.1 DFD图(Data Flow Diagram):从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程.建立系统的功能模型。 3.2 ERD(Entity-Relationship Diagram)图:当数据量很大并且数据间关系复杂时对于数据的分析就得用到它来刻画系统数据模型

3.3 IPO(input process output)图描述了输入数据、处理数据、输出数据之间的关系。 3.4 STD(State Transition Diagram)图:刻画系统响应外部事件的过程。为系统的行为建模。

面向数据结构的几个图形工具: 3.5 层次方框图:用来展示数据的层次结构 3.6 warnier图:和层次方框图一个意思,不过她能描述的手段比层次图更加丰富。

软件工程.

Q1====P141-4.P125-126 一、下图给出的程序流程图代表一个非结构化的程序,请问: (1)为什么说它是非结构化的? (2)设计一个等价的结构化程序。 (3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。 答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。 (2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,以下给出了等价的结构化程序的盒图。 (3)不使用flag的等价结构化程序盒图: Q2=====P54-5P48 二、拨校外电话需要 先拨0 +意思是和, (a (b (c 答:(1)据估算平均无故障时间MTTF的公式有: 1/K(Et/100000-100/100000)=0.4 1/K(Et/100000-300/100000)=2 得:K=1000,Et=350即程序中的错误总数达350。 (2)当MTTF=10h时,有 1/K(350/100000-Ec/100000)=10 得:Ec=340.按七八月分测试改错进度估算,还需进行2个月的集成测试。 (3)MTTF和测试时间τ之间的函数关系曲线如下: Q5=====P142-8P137 四、画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?

CEXAMPLE LOOP:DOWHILEX>0 A=B+1 IFA>10 THENX=A ELSEY=Z ENDIF IFY<5 THENPRINTX,Y ELSEIFY=2 THENGOTOLOOP ELSEC=3 ENDIF ENDIF G=H+R ENDDO IFF>0 ENDIF STOP 答:(1 (2 { }//语句块1 if((x==4)||(y>5)) {j=x*y+10;}//语句块2 j=j%3;//语句块3 } (1)对于第一个判定((x>3)&&(z<10)): 条件x>3取真值记为T1,取假值记为-T1 条件z<10取真值记为T2,取假值记为-T2 对于第二个判定((x==4)||(y>5)): 条件x==4取真值记为T3,取假值记为-T3

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

数据流图(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所示。

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

软件工程答案

作业4参考答案 1.假设只有SEQUENCE和DO_WHILE两种控制结构,怎样利用它们完成IF_THEN_ELSE操作? 答:转化如下: K = 1 DO WHILE (条件.AND. 程序块1 K=K+1 END DO DO WHILE ((.NOT. 条件) .AND. 程序块2 K=K+1 END DO 2.假设允许使用SEQUENCE和IF_THEN_ELSE两种控制结构,怎样利用它们完成DO_WHILE操作? 答:转化如下; label: IF (条件) THEN 程序块 GOTO label ELSE 程序块 END IF 3.画出下列伪码程序的程序流程图和盒图: START IF p THEN WHILE q DO f END DO ELSE BLOCK g n END BLOCK END IF STOP 答:(1)流程图如图4-1所示: 图4-1 从伪码变成的程序流程图 (2)该程序的盒图如图4-2所示: 图4-2 从伪码变成的程序盒图 4.下图给出的程序流程图代表一个非结构化的程序,请问: (1)为什么说它是非结构化的? (2)设计一个等价的结构化程序。 (3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag 的程序;若用了,再设计一个不用flag的程序。

答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。 (2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图4-3描绘了等价的结构化程序的盒图。 (a)解法1 (b)解法2 图4-3 与该图等价的结构化程序(用flag) (3)不使用flag把该程序改造为等价的结构化程序的方法如图4-4所示。 图4-4 与该图等价的结构化程序(不用flag) 5.研究下面的伪代码程序: LOOP: Set I to (START+FINISH)/2 If TABLE(I)=ITEM goto FOUND If TABLE(I)ITEM Set FINISH to (I-1) If (FINISH-START )>1 goto LOOP If TABLE(START)=ITEM goto FOUND If TABLE(FINISH)=ITEM goto FOUND Set FLAG to 0 Goto DONE FOUND: Set FLAG to 1 DONE:Exit (1)画出程序流程图。 (2)程序是结构化吗?说明理由。 (3)若程序是非结构化的,设计一个等价的结构化程序并且画出流程图。 (4)此程序的功能是什么?它完成预定功能有什么隐含的前提条件。 答:(1)该程序流程图如下: (2)该程序不是结构化的,结构化的程序只有一个入口和一个出口,而该程序的流程途中有两个出口。 (3)等价的结构化程序的流程图如下: (4)此程序有二分查找的功能,它完成预定功能的隐含前提条件是现有序列为从小到大顺序排好的有序序列。 6.用Ashcroft_Manna技术可以将非结构化的程序转化为结构化程序,图6.19是一个转换的例子。

软件工程之数据流图专题

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

计算机网络软件工程业务流程图

业务流程图 业务”更白话一些来说,就是各行业中需要处理的事务。 英文:bus in ess 基本解释: [professi onal work;bus in ess] 个人或某个 机构的本行业本职工作 详细解释: 本行业、本职的事务;专业工作。 《法苑珠林》卷三一:“出家人所作业务者,一者坐禅,二者诵经法,三者劝化。”浩然《艳阳天〉〉第七三章:“马立本觉得自己这个老会计,不论是‘政治’上,还是业务上,都是当当响的高手。”如:发展业务;业务范围。 业务流程图(transaction flow diagram, 简称TFD),就是用一些规定的符号及连线来表示某个具 体业务处理过程。 业务流程图是一种用尽可能少、尽可能简单的方法来描述业务处理过程的方法。由于它的符号简单明了,所以非常易于阅读和理解业务流程。但它的不足是对于一些专业性较强的业务处理细节缺乏足够的表现手段,它比较适用于反映事务处理类型的业务过程。 如图: | 表示报表、单据等 表示单位或人员 | |表示处理业务、作业等 〔 ---- '一表示帐本、薄记等

业务流程描述: 在调查期间,通过跟班实习、请教材科的相关管理人讲解的形式了解到现在教材科的业务流程,具体描述如下: (1) 教材科根据从教务处教务科发来的教学计划报表和各院系的教材选定任务单,核实库存,粗略计算所要订购的教材数量( 此部分手工完成 ),如库存小于需求,则进行订书,打印出订书单,发给书店。书店根据订书单发书给教材科,并附带有发书清单。 (2) 教材科的教材管理员对教材进行本上手工的入库登记与验收。 (3) 在教材管理员对新进教材进行教材编码和批注架号后(架号描述的是教材在库房中具体的摆放位置),将这两个编号都批注在发书清单上,综合科交的课程清单上只批注编号。教材管理员根据批注后的发书清单对教材进行计算机上的入库,从而形成新的库存教材簿。 (4) 各班级购买教材时,把教材转帐凭证交给出库员,出库员按照课程清单,查询库中的教材数量,如库存量大于等于需求,则进行教材的出库,打印教材出库清单,并形成了新的教材库存簿。否则出库量视情况而定,即可先出库几本,等教材再入库后补差。 (5) 各班负责人在收款处交款后,取回教材转帐凭证,并将付款签名后的教材销售发票出示给取书员,取书员根据销售发票上的教材架号取书给各班级。

计算机网络软件工程业务流程图

业务流程图 “业务”更白话一些来说,就是各行业中需要处理的事务。 英文:business 基本解释: [professional work;business] 个人或某个机构的本行业本职工作 详细解释: 本行业、本职的事务;专业工作。 《法苑珠林》卷三一:“出家人所作业务者,一者坐禅,二者诵经法,三者劝化。”浩然《艳阳天》第七三章:“ 马立本觉得自己这个老会计,不论是‘政治’上,还是业务上,都是当当响的高手。”如:发展业务;业务范围。 业务流程图(transaction flow diagram,简称TFD),就是用一些规定的符号及连线来表示某个具 体业务处理过程。 业务流程图是一种用尽可能少、尽可能简单的方法来描述业务处理过程的方法。由于它的符号简单明了,所以非常易于阅读和理解业务流程。但它的不足是对于一些专业性较强的业务处理细节缺乏足够的表现手段,它比较适用于反映事务处理类型的业务过程。 如图: 表示单位或人员表示报表、单据等 表示帐本、薄记等表示处理业务、作业等

业务流程描述: 在调查期间,通过跟班实习、请教材科的相关管理人讲解的形式了解到现在教材科的业务流程,具体描述如下: (1)教材科根据从教务处教务科发来的教学计划报表和各院系的教材 选定任务单,核实库存,粗略计算所要订购的教材数量(此部分手工完成),如库存小于需求,则进行订书,打印出订书单,发给书店。书店根据订书单发书给教材科,并附带有发书清单。 (2)教材科的教材管理员对教材进行本上手工的入库登记与验收。 (3)在教材管理员对新进教材进行教材编码和批注架号后(架号描述的是教材在库房中具体的摆放位置),将这两个编号都批注在发书清单上,综合科交的课程清单上只批注编号。教材管理员根据批注后的发书清单对教材进行计算机上的入库,从而形成新的库存教材簿。 (4)各班级购买教材时,把教材转帐凭证交给出库员,出库员按照课程清单,查询库中的教材数量,如库存量大于等于需求,则进行教材的出库,打印教材出库清单,并形成了新的教材库存簿。否则出库量视情况而定,即可先出库几本,等教材再入库后补差。 (5)各班负责人在收款处交款后,取回教材转帐凭证,并将付款签名后的教材销售发票出示给取书员,取书员根据销售发票上的教材架号取书给各班级。

软件工程各阶段各图

我们通常都是对图形化的东西情有独钟,我们小时候的启蒙教育基本上也都是从图形化开始的,我们曾经看过的连环画、漫画、看图识字等等。因为图形能将一个抽象的东西具体化、形象化,图形化的表述能将一个用文字语言无法表达清楚或很难表达的观点、事物、科学概念等清晰的呈现出来。这就是为什么我们相比晦涩难懂文字更喜欢形象生动的图形的原因。 软件工程导论作为软件工程中非常重要的一门课程,通常因为其偏文科性、理论性、概念性而得不到人们的重视,但幸运的是在软件工程导论中有我们非常易于接受、理解的东西——图,否则我们自己会把自己害得很惨(软件工程导论真的很重要哦!)。 软件工程导论中一般把软件的开发分为八个阶段:1.问题定义2.可行性研究3.需求分析4.总体设计(概要设计)5.详细设计6.编码和单元测试7.综合测试8.软件维护。下面我们就说说各个阶段中与图的难解难分。 1. 问题定义 问题定义阶段主要是根据用户的需求来定义用户需要解决的问题,用户要实现哪些功能。

2. 可行性研究 可行性研究阶段就是看是否有一种使其在最小的代价,尽可能短的时间内,利益最大化的情况下解决问题的方案。这个阶段的分析主要涉及以下几个图形工具。 2.1 系统流程图 系统流程图是描述系统物理模型的一种传统工具。它是表达数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,它是物理数据流图而不是程序流程图。系统流程图形象的呈现了软件的功能,即使不懂软件的人也可以轻松的看懂,可以说它是软件设计师与用户之间沟通、交流的有效工具。 2.2 数据流图 数据流图是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。如果说系统流程图能让用户更好的明白系统的功能,那么数据流图则让用户更加明白系统的工作原理。

软件工程之图书馆管理系统需求分析和数据流图

题目:图书馆管理系统 一、系统功能: 为了方便图书馆管理人员对图书的借阅、归还等提供轻松快捷的管理方式,同时也方便广大的读者用户可以随时随地的对图书进行续借,查询。实现人力与设备费用的节省;处理速度的提高;管理信息服务的改进;人员工作效率的提高。现有的图书管理系统分为图书采购、图书编目、图书借阅、信息检索四部分,统各部分既相互独立,又能进行各部分之间的数据调用。 1)图书采购子系统的主要功能是采购新的图书。图书采购子系统主要由数据处理、采 购清单、图书信息录入组成。 2)图书编目时系统自动调用采访子系统数据及所购图书数据,图书编目完成后,可将数 据交送到编目主库及借阅子系统进行图书借阅。图书编目子系统大致有图书编目、统计打印、数据维护几部分组成。 3)图书借阅是用来记录图书借还信息的,必需有书有证才能进行图书借还,借阅子系 统中的图书数据来自编目子系统。 4)信息检索,用户可以利用该系统,检索到图书馆的馆藏书目、读者基本信息、读者借书、预约到书、超期读者、罚款记录、最新图书、借阅频率最高的图书信息。 二、数据图: 第一层数据流图 第二层数据流图

学生借阅图书的数据流图 学生还书过程数据流图 学生查询书籍信息数据流图

三、数据字典: 1)数据源点及汇点描述: 1.名称:学生 简要描述:借书、还书、查询及登记注册 有关数据流:借书证;所借书本 2.名称:当前日期 简要描述:当日日期 有关数据流:年月日加工 2)逻辑词条描述: 1.加工名:检验能否借书 加工编号:1 简要描述:检验学生身份、图书是否入库、读者还能借多少书以此判定读者是否能借书 输入数据流:借书证;所借书本,学生信息,图书信息,图书借阅量,日期 输出数据流:借书错误信息,借书信息 加工逻辑: IF 借书证未登记入库 THEN 发出“借书错误” ELSE IF 图书未登记入库 THEN 发出“借书错误” ELSE IF 读者已借图书和现借图书多于限制数N THEN 发出“借书错误” ELSE IF 读者已借图书中有超期 THEN 发出“借书错误” ELSE 发出“借书信息” ENDIF ENDIF ENDIF ENDIF 2.加工名:添加借阅记录 加工编号:2 简要描述:将“借书信息”登记到“借阅记录”中,完成后将书本递交读者 输入数据流:借书信息,日期 输出数据流:图书借阅记录,图书 加工逻辑:将借书信息及日期写入图书借阅记录; 将图书递交读者 3)数据流名词条描述: 1.数据流名:借书证 说明:用以携带学生的唯一识别标识 数据流来源:学生信息 数据流去向:检验能否借书 数据流组成:学生=借书证号+姓名+专业+性别+出生日期+照片+借书数量借书证号=“000000001”..“9” varchar 姓名=2—24 varchar

软件工程-2

程序编码 习题 【4-1】从下列关于模块化程序设计的叙述中选出5条正确的叙述。 ①程序设计比较方便,但比较难以维护。 ②便于由多个人分工编制大型程序。 ③软件的功能便于扩充。 ④程序易于理解,也便于排错。 ⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。 ⑥模块之间的接口叫做数据文件。 ⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。 ⑧模块间的单向调用关系叫做模块的层次结构。 ⑨模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 【4-2】结构化程序设计有时被错误地称为“无GOTO语句”的程序设计。请说明为什么会出现这样的说法,并讨论环绕着这个问题的一些争论。 【4-3】从下面关于程序编制的叙述中,选出三条正确的叙述。 ①在编制程序之前,首先必须仔细阅读给定的程序说明书。然后,必须如实地依照说明书编写程序。说明书中常会有含糊不清或难以理解的地方。程序员在作业时应该对这些地方作出适当的解释。 ②在着手编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。 ③在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要象写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排等等。 ④考虑到以后的程序变更,为程序编写完整的说明书是一项很重要的工作。只要有了完整的程序说明书,即使程序的编写形式难以让他人看懂也没有什么关系。 ⑤编制程序时不可缺少的条件是,程序的输入和输出数据的格式都应确定。其他各项规定都是附带的,无足轻重。 ⑥作为一个好的程序,不仅处理速度要快,而且易读易修改等等也都是重要的条件。为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规程和单纯的表现方法,注意使整个程序的结构简洁。 【4-7】下面给出一个求实函数方程F(x)在自变量区间[a, b] 中的全部实根的算法。首先阅读此程序,然后 画出消去全部goto语句的结构化程序流程图。 在算法中,a与b是区间[a, b]的两端点值;eps1与eps2是用户要求的求解精度。如果区间中点的函数值的绝对值小于eps1或新的小区间的长度小于eps2,就认为这个中点为根。 float BinRoot ( float a,float b, float eps1, float eps2 ) { float low= a, high = b,mid,fmid; float flow = Func(low), fhigh := Func(high); label L1, L2, L3;//标号说明,给定某些程序地址

软件工程之数据流程图

一、什么是数据流图 数据流图是一种图形化的系统模型,它在一张图中展示信息系统的数据流向——即系统的输入与输出数据分别是什么,数据从哪里来并最终流向何处,以及数据存储在什么地方。 数据流图的基本图形元素有: ?数据流:是由一组固定成分的数据组成,表示数据的流向。值得注意的是,数据流图中描述的是数据流,而不是控制流。除了流向数据存储或从数据存储流出的数据不必 命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。 ?加工:加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的 数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。 ?数据存储:数据存储表示暂时存储的数据。每个数据存储都有一个名字。 ?外部实体:外部实体是存在于软件系统之外的人员或组织,他指出数据所需要的发源地或系统所产生的数据的归属地。 二、为什么画数据流图 通过数据流图,软件设计师可以自顶而下的分析系统的信息流程、在图上确定需要计算机处理的部分、向数据库设计过渡、根据数据流向确定存取方式、能够确定一个处理过程。而在测试过程中,数据流图可以方便、直接的帮助程序员查找到错误的发生位置。 三、什么时候画数据流图 需求分析阶段,为了获得一个对新系统的框架认识、概念性认识,需要对新系统建模。而用图形表示需求,就是需求建模,获得分析模型。需求分析方法中的结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析。 四、怎么画数据流图 (一)确定系统的输入输出 由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流图的外围。 (二)由外向里画系统的顶层数据流图 首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。 (三)自顶向下逐层分解,绘出分层数据流图 对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。 五、数据流图实例 机房收费系统数据流图

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

1/4 杭州电子科技大学 计算机学院 软件与智能研究所 某公司为了给员工分配住房,开发了员工住房分配系统,功能如下: 计算原始分:根据员工信息(员工号、姓名、年龄、性别、学历、工龄、婚否、职务、职称、住房情况)计算原始分,并将员工信息存入员工信息文件中。 计算标准分:根据员工的原始分计算标准分,并将其存入员工分数文件(员工号、标准分)。 计算分房分:根据标准分、分房计划文件(员工号、住房请求)中的分房人数,计算分房分,并存入分房分数文件(员工号、分房分)中。 分房分查询:员工可以根据自己的员工号查询相应的分房分,若输入错误则返回出错信息。 试根据上面的系统功能描述: (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.下列所述不是软件特点的是(A) A.软件是有形的 B.软件不存在磨损和消耗问题 C.软件开发成本高 D.软件没有明显的制作过程 2.软件工程的出现主要是由于(C) A.程序设计方法学的影响 B.其他工程学科的影响 C.软件危机的出现 D.计算机的发展 3.以下(C)不是软件危机的表现形式 A.开发的软件不满足用户的需要 B.开发的软件可维护性差 C.开发的软件价格便宜 D.开发的软件可靠性差 4.软件工程的目的是(C) A.建造大型的软件系统 B.开发的软件可维护性差 C.软泥吉安质量的保证 D.研究软件开发的远离 5.下列所述不是软件组成的是(D) A.程序 B.数据 C.界面 D.文档 6.下列对“计算机软件”描述正确的是(A) A.是计算机系统的组成部分 B.不能作为商品参加交易 C.是在计算机硬件设备生产过程中生产出来的 D.之存在语计算机系统工作时 7.软件工程的方法的产生源于软件危机,下列(D)是产生软件危机的内在原因 A.软件的复杂性 B.软件维护困难C软件成本太高. D.软件质量难保证 8.软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题 A.软件危机 B.质量保证 C.开发效率 D.生产工程化 9.软件工程学中除重视软件开发的研究外,另以重要组成内容是软件的(A)和过程改进 A.项目管理 B.成本核算 C.人员培训 D.工具开发 10.软件工程设计软件开发技术和项目管理等方面内容,下述内容中(D)不属于开发技术的范畴 A.软件开发方法 B.软件开发工具 C.软件工程环境 D.软件工程经济

二、填空题 1.软件工程的目的是成功的建造大型的软件系统,主要内容是开打软件开发技术、软件项目管理和软件质量管理。 2.螺旋式开发模型主要是针对风险比较大的项目而设计的 3.由于软件产生的复杂性和高成本,使大型软件产生出了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。 4.增量模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。 5.喷泉模型比较适合用于面向对象的开发方法。 三、判断题 1.软件开发方法的主要目的是克服软件手工生产带来的问题,使软件开发能进入工程化和规范化的环境(Y) 2.软件工程的提出起源于软件危机,其目的书最终解决软件的生产工程化(Y) 3.软件工程改进也是软件工程的范畴(Y) 第二章 一、选择题 1.结构化分析方法是面向(B)的自顶向下逐步求精的分析方法。 A.目标 B.数据流C功能. D.对象 2.在进行软件设计时应该遵循的最主要的原理是(C) A.抽象B模块化. C.模块独立D信息屏蔽. 3.在结构化分析方法中,常用的描述软件功能需求的工具是(C) A.业务流程图、处理说明B软件流程图、模块说明. C.数据流程图、数据字典 D.系统流程图、程序编码

软件工程数据流图

软件工程数据流图 F2学生信息 F0学生信息及P 存储 S0 成绩录入文件存储 D0 学生单科 F1 学生单科成成绩管理教师 F3根据存储分绩输出及评估系统析输出图1 学生单科成绩管理顶层数据流图 F2.0导入 P1 F0.0学生信学生信息息及成绩输D1 学生基本信息存储学生信 息入 S0 F2.1输入及成绩输 学生信息存储入管理 F2.2学生 成绩存储教师 F1.0成绩信 息反馈 P2 F3.0成 绩数据 D2 成绩存储单科成绩 输出及分 析 图2 学生单科成绩管理第一层数据流图 development in order to protect a host of attractions and historical sites, as well as to maintain the economic vitality of the downtown area. Figure 5.1-5 figure 5.1.4 Washington mass transit network to support implementation of effective transport demand management policies to reduce urban traffic congestion and public transport priority was in the early 1960 of the 20th century by the planners first proposed in Paris, France, and in Europe and other major cities to operate has been the formation of the rich content system. Public transport priority consists of two aspects: one is on the bus to help. ... 5.1-7 Park and ride systems 5.1.5 typical case Hong Kong-Japan Sapporo, Sapporo is a Japan

相关文档
最新文档