第7章 面向数据流的设计方法

合集下载

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

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

单项选择题(每小题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)的回答。

面向数据流的设计方法

面向数据流的设计方法
SD措施旳缺陷:对数据构造、文件构造,数据库 构造没有考虑充分;块间联络、块内联络这两个 概念无严格定义。
14
②输出模块旳下属模块旳设计 输出模块旳功能是将调用模块提供旳数据输出。 为每一种输出模块设计两个下层模块:一种是
变换模块,另一种是输出模块。 ③变换模块旳下属模块旳设计
为变换模块设计下属模块没有一定旳规则可循, 此时需研究数据流图中相应加工旳构成情况。
15
§7.3 事务分析 1.事务型程序构造 ⑴构造:
21
⑴找出事务中心和各活动途径 ⑵设计模块构造旳顶层和第一层模块: 首先为事务中心设计一种主模块; 然后为每一条活动途径设计一种事务处理模 块; 最终为输入部分设计一种输入模块,假如各 活动途径是发散旳,则不需设计输出模块, 假如象图中各活动途径又集中到一种加工, 则需设计输出模块。
22
⑶设计中、下层模块 输入模块和输出模块旳下属模块
26
④充分利用多种技巧:扇入和扇出。即扇入越多 越好,而它调用其他旳模块一般不超出7个;模 块旳大小。即相对独立,功能单一,语句不超出 100行;作用范围和控制范围。即要求控制模块 在上层,作用模块在下层且两者不离太远。 ⑤程序构造图:直观清楚,易了解,为后来旳编 程、测试、维护提供了良好旳条件。
3
变换型 ⑴构造:
I
P
O
输入模块I从输入设备或存储器取得数据, 利用处理模块P(加工模块或变换模块)对这些 数据作处理后,最终将成果经过输出模块O 送出到输出设备或存储器。
4
主模块
输入成绩 (五分制)
成绩转换(五分 制→百分制)
输出成绩 (百分制)
5
⑵变种 有多种“主变换”,多种输入数
据,多种输出数据,无“主变换”等。

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

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

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。

应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。

应当开发和使用更好旳软件工具。

总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。

1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。

(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。

面向数据流的设计方法把

面向数据流的设计方法把

面向数据流的设计方法把在面向数据流的设计方法中,数据是系统的核心。

它们在不同的组件之间流动,通过组件之间的连接和交互来实现系统的功能。

这种设计方法将系统的输入、输出和中间过程都看作是数据流,并通过对这些数据流的定义和分析来进行系统设计。

其主要特征包括以下几个方面:首先,面向数据流的设计方法注重数据的流动和传递。

它将系统看作是一个数据处理的流程,通过对数据的处理和转换来实现系统的功能。

在系统设计过程中,需要明确数据的输入和输出,并定义数据流的传递路径和方式。

其次,面向数据流的设计方法注重数据的分析和处理。

在系统设计的过程中,需要对数据进行分析,划分数据流,确定数据的属性和规则,并通过对数据流的处理和转换来实现对数据的加工和分析。

此外,面向数据流的设计方法强调系统的组件和交互。

系统由一系列组件构成,每个组件负责一部分功能。

这些组件之间通过数据流进行连接和交互,通过输入数据流和输出数据流的交互来实现系统的功能。

最后,面向数据流的设计方法注重系统的可扩展性和灵活性。

通过将系统设计为数据流的方式,可以方便地扩展系统功能和调整系统结构。

新增功能可以通过新增组件和修改数据流来实现,而不需要对系统的整体结构进行大规模的改动。

面向数据流的设计方法在实际系统设计和开发中有着广泛的应用。

它可以用于各种类型的系统,包括数据仓库、大数据分析、物联网等。

面向数据流的设计方法能够提高系统的可维护性和可扩展性,降低系统的复杂性,提高开发效率。

总之,面向数据流的设计方法是一种基于数据流动的系统设计思想,通过对数据流的分析和处理来实现系统的功能。

它注重数据流的传递和处理,强调系统的组件和交互,提供了一种可扩展和灵活的系统设计方法。

在实际系统设计和开发中,面向数据流的设计方法具有重要的价值和应用前景。

软件工程复习资料参考

软件工程复习资料参考

第一章软件危机概念:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。

软件危机表现:1.对软件开发成本和进度的估计常常很不正确2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的5.软件通常没有适当的文档资料6.软件成本在计算机系统总成本中所占的比例逐年上升7.软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势软件危机原因:1.与软件本身的特点有关2.与软件开发与维护的方法不正确有关①软件开发尚未完全摆脱手工开发方式。

②软件成本相当昂贵,主要依靠大量复杂的、高强度的脑力劳动。

③软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

怎样消除软件危机:1 、彻底消除“软件就是程序”的错误观念。

2 、充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,不是个人独立的劳动。

3 、推广和使用在实践中总结出来的软件开发的成功技术和方法。

4 、开发和使用更好的软件工具软件工程概念:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。

...p5软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学也称为范型。

结构化范型和面向对象范型的要点:1采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务;2把软件生命周期划分为若干个阶段,按顺序完成每个阶段的任务;3每个阶段开始和结束都有严格的标准,对任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准;4每一个阶段结束之前都必须进行正式严格的技术审查和管理复审传统方法学的优点:分解任务,分工合作,降低整个软件开发工程的困难;采用科学的管理技术和良好的技术方法对每个阶段成果都进行严格的审查。

保证了软件的质量。

传统方法学的缺点:把数据和操作人为地分离成两个独立的部分,增加了软件开发与维护的难度。

软件工程考试试题含答案

软件工程考试试题含答案

一、填空题每空1分,共25分1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________;2.基于软件的功能划分,软件可以划分成__________、__________、__________三种;3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究;4.系统流程图是描绘的传统工具;它的基本思想是用图形符号以描绘系统里面的每个部件;5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和;6.结构化分析方法是面向________________进行需求分析的方法;结构化分析方法使用________________与________________来描述;7.是自动地共享类、子类和对象中的方法和数据的机制;8.软件详细设计工具可分为3类,即________________、________________和________________;9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________;10.大型软件测试包括、、确认测试和四个步骤;1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试二、单项选择题每小题2分,共20分1.软件设计中划分模块的一个准则是;A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的提出的,它是一种面向的软件设计方法;A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个些是正确的4.;a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c5.是用户和设计交换最频繁的方法;A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型6.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是;A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质7.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言;A、PASCALB、VISUALBASICC、C++D、汇编语言8.软件测试的目的是A、证明软件的正确性B、找出软件系统中存在的所有错误C、证明软件系统中存在错误D、尽可能多的发现软件系统中的错误9.使用白盒测试方法时,确定测试数据应根据和指定的覆盖标准;A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能10.软件维护工作的最主要部分是;A、校正性维护B、适应性维护C、完善性维护D、预防性维护11.PDL是语言;A、高级程序设计语言B、伪码式B、C、C、中级程序设计语言D、低级程序设计语言三、判断题正确的在括号内打上“√”,错误的打上“×”;每题2分,共20分1.用黑盒法测试时,测试用例是根据程序内部逻辑设计的;X2.发现错误多的程序模块,残留在模块中的错误也多;V3.为了加快软件维护作业的进度,应尽可能增加维护人员的数目;X4.软件维护就是改正软件中的错误;X5.质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;V6.软件开发的主要任务是写程序;X7.测试只能证明程序有错误,不能证明程序没有错误;V8.模块化程序设计中,模块越小,模块化的优点越明显;一般来说,模块的大小都在10行以下;X9.在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等;X10.程序设计风格指导原则提出,尽量多使用临时变量;X四、简答题每题5分,共20分1.什么是软件工程软件工程是指导计算机软件开发和维护的工程学科;采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来;2.耦合性和内聚性有几种类型其耦合度、内聚强度的顺序如何低:非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合:高强:功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚:弱3.简述需求分析工作可以分成哪四个方面软件需求分析的有哪三个基本原则4.:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审;三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图;5.什么是黑盒测试法黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息;五、程序设计与算法描述题共15分1.根据下面的伪代码程序,完成相应要求;8分STARTIFC1THENWHILEC2DOfENDDOELSEBLOCKgpENDBLOCKENDIFREPEATUNTILC3qrENDREPSTOP1)画出程序流程图4分2)用N—S图描述4分2.有下列伪码程序:STARTINPUTM,NIFM>=10THENX=10ELSEX=lENDIFIFN>=20THENY=20ELSEY=2ENDIFPRINTX,YSTOP设计该程序的语句覆盖和路径覆盖测试用例;7分M=9或<l0,N=l9或<20;M=l0或>=10,N=20或>=20路径覆盖的测试用例为M=9,N=19;M=9、N=20;M=l0,N=l9;M=10,N=20要目标是提高软件质量,减少软件维护代价;软件过程五个模型对比瀑布模型、快速原型、增量、螺旋、喷泉模型可行性研究:1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决;2、四个方面:技术、经济、操作可行性3、数据流图四种成分:1、源点/终点2、处理3、数据存储4、数据流需求分析:1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求;2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法;3、实体联系图:1、数据对象2、属性3、联系1:1、1:N、M:N总体设计:任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构;系统设计阶段确定系统具体实施方案、结构设计阶段确定软件结构模块独立:内聚和耦合耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统内聚Cohesion:一个模块内各元素结合的紧密程度面向数据流的设计方法:变换流和事务流详细设计:任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序;过程设计的工具程序流程图、盒图、PAD图、判定表、判定树面向数据结构的设计方法jackson方法:程序复杂程度的定量McCabe方法:1、VG=E-N+2E是流图中边的条数,N是结点数2、VG=P+1P是流图中判定结点的个数3、流图中的区域数等于环形复杂度;编码单元测试:又称模块测试;每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试;由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性;集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试;这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等;白盒测试技术逻辑覆盖、基本路经测试白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程;所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作;白盒测试又称为结构测试;语句覆盖就是设计足够的调试用例,使得程序中的每个语句至少执行一次;判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果;判定/条件覆盖就是设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果;条件组合覆盖就是设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次;基本路经测试:黑盒测试技术等价划分黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求;黑盒测试是在程序接口进行的测试,又称为功能测试;1、黑盒测试检查的主要方面有:程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息如数据文件的完整性等;用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出2、等价类划分等价类的划分在很大程度上依靠的是测试人员的经验,下面给出几条基本原则:1如果输入条件规定了取值范围,则可划分出一个有效的等价类输入值在此范围内和两个无效的等价类输入值小于最小值、输入值大于最大值;2如果输入条件规定了输入数据的个数,则可相应地划分出一个有效的等价类输入数据的个数等于给定的个数要求和两个无效的等价类输入数据的个数少于给定的个数要求、输入数据的个数多于给定的个数要求;3如果输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理,则可将这组可能的值划分为一个有效的等价类,而这些值以外的值划分成无效的等价类;4如果输入条件规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每个输入值是一个有效的等价类,此外还有一个无效的等价类所有不允许值的集合;5如果输入条件规定了输入数据必须遵循的规则,则可以划分一个有效的等价类符合规则和若干个无效的等价类从各种角度违反规则;维护改正性维护、适应性维护、完善性维护、预防性维护决定软件可维护性因素可理解性、可测试性、可修改性、可移植性、可重用性面向对象方法学优点:1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好对象模型1、关联2、聚集3、泛化4、依赖和细化贰软件工程软件危机1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题;熟记2、了解软件危机主要的一些典型表现;P23、出现软件危机的原因:4、消除软件危机的途径:首先,我们要对计算机软件有一个正确的认识;更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严格、各类人员协同配合、共同完成的工程项目;最后,应该开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施方法和工具,又要有必要的组织管理措施;软件工程1、软件工程:采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它;熟记2、了解软件工程的本质特征:1、软件工程关注于大型程序的构造2、软件工程的中心课题是控制复杂性3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程的领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品3、缺乏应用领域地相关知识,是软件开发项目出现问题的常见原因;4、软件工程的基本原理:1、用分阶段的生命周期计划严格管理2、坚持进行阶段审评3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组的人员应该少而精7、承认不断改进软件工程实践的必要性5、方法学范型:在软件生命周期全过程中使用的一整套技术方法的集合;6、软件工程方法学3要素:方法、工具和过程;7、目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学8、传统方法学也成为生命周期方法学或结构化范型;9、面向对象方法学具有的4个要点;P10软件生命周期1、概括地说,软件生命周期由软件定义、软件开发和运行维护也称为软件维护3个时期组成,每个时期又进一步划分成若干个阶段;2、软件定义时期的任务3、软件定义时期通常进一步划分成3个阶段:问题定义、可行性研究、需求分析4、维护时期的主要任务是使软件持久地满足用户的需要;5、软件开发时期通常分成4个阶段:总体设计、详细设计、编码和单元测试、综合测试;前两个阶段又称为系统设计,后两个阶段又称为系统实现;6、软件生命周期每个阶段的基本任务:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试;软件工程生命周期模型过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型;对各种模型要了解小结熟读,对本章系统地了解可行性分析可行性分析的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决;可行性研究的任务研究解法的可行性的三个方面:技术可行性、经济可行性、操作可行性;可行性研究最根本的任务:对以后的行动方针提出建议;可行性研究需要的时间长短取决于工程的规模;可行性研究过程复查系统规模和目标研究目前正在试用的系统导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查系统流程图1、系统流程图:概括地描绘物理系统的工具;2、系统流程图的基本思想:用图形符号以黑盒子形式描绘组系统的每个部件程序、文档、数据库、人工过程等;3、P39符号4、系统流程图的习惯画法:使信息在图中从顶向下或从左向右流动;5、面对复杂的系统时,一个比较好的方法时分层次地描绘这个系统;数据流图数据流图DFD:一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换;数据流图的四种基本符号P41数据存储静止状态和数据流运动都是数据;数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”;星号是数据流之间的“与”关系;加号+表示“或”关系;⊕号表示只能从中选一个互斥关系;画数据流图的基本目的是利用它作为交流信息的工具;数据字典数据字典应由对下列4类元素的定义组成:数据流、数据流分量即数据元素、数据存储、处理;由数据元素组成数据的方式的三种基本类型:顺序、选择、重复;+可选用以下符号描述由数据元素组成数据的关系:=意思是等价于或定义为、+意思是和即连接两个分量、}意思是或通常用“|”号隔开供选择的分量、{}意思是重复、意思是可选;数据字典最重要的用途是作为分析阶段的工具;成本/效益分析成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定;软件开发成本:主要表现为人力消耗;成本估算技术:代码行技术、任务分解技术、自动估计成本技术;货币的时间价值:用利率的形式;假设年利率为i,如果现在存入P元,则n年后的价值:F=P1+i^n衡量一项开发工程的价值:投资回收期;纯收入投资回收率小结三需求分析需求分析是软件定义时期的最后一个阶段;基本任务:准确地回答“系统必须做什么”这个问题;用于需求分析的结构化分析方法必须遵守下述准则:1、必须理解并描述问题的信息域,根据这条准则应该应该建立数据模型;E-R图2、必须定义软件应完成的功能,这条准则要求建立功能模型;数据流图3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型;状态图4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展开细节;需求分析的任务对软件系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求;需求分析的任务:确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划与用户沟通获取需求的方法访谈、面向数据流自顶向下求精、简易地应用规格说明技术,快速建立软件原型;结构化分析方法就是面向数据流自顶向下求精进行需求分析的方法;快速建立软件原型是最准确、最有效、最强大的需求分析技术;分析建模与规格说明需求分析过程应建立3种模型:数据模型、功能模型、行为模型;数据流图是建立功能模型的基础;状态转换图是行为建模的基础;实体-联系图E-RE-R图中包含着实体即数据对象、关系和属性3种基本成分;数据规范化第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构;第二范式:满足第一范式的条件,而且每个非关键字都由整个关键字决定而不是由关键字的一部分来决定;第三范式:符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述即一个非关键字属性值不依赖于另一个非关键字属性值;状态转换图状态转换图简称状态图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为;在状态图中定义的状态主要有:初态即初始状态、终态即最终状态和中间状态;在状态图中只能有一个初态,而终态则可以有0至多个;事件就是引起系统做动作或和转换状态的控制信息;在状态图中,初态用一对同心圆内圆为实心圆表示;中间状态用圆角矩形表示;如图:/动作表达式3种标准事件:EntryExitDo;/动作表达式事件说明与守卫条件同时使用时,则当且仅当事件发生且布尔表达式为真时,状态转换才发生;如果只有守卫条件没有事件说明则只要守卫条件为真,状态转换就发生;守卫条件是一个布尔表达式;动作表达式是一个过程表达式,当状态表达式开始时执行该表达式;其他图形层次方框图、warnier图、IPO图输入、处理、输出图的简称验证软件需求从四个方面进行验证:一致性、完整新、现实性、有效性小结五总体设计设计过程总体设计过程通常有两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件的结构;典型的总体设计过程包括下述9个步骤:1、设想宫选择的方案需求分析阶段得出的数据流程图是总体设计的极好的出发点;2、选择合理的方案对每个合理的方案,分析员都应准备下列四份材料:A.系统流程图B.组成系统的物理元素清单C.成本/效益分析D.实现各个系统的进度计划3、推荐最佳方案4、功能分解5、设计软件结构软件结构可以用层次图或结构图来描绘;6、设计数据库7、制定测试计划8、书写文档这个阶段完成的文档有:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果;9、审查和复查设计原理模块化、抽象、逐步求精、信息隐藏和局部化、模块独立模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它;模块是构成程序的基本构件;模块化就是把程序分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求;抽象:把相似的方面集中和概括起来,暂时忽略它们之间的差异,或者说,抽出事物的本质特性而暂时不考虑它们之间的细节;逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础;定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑;信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息过程和数据对于不需要这些信息的模块来说,是不能访问的;局部化:把一些关系密切的软件元素物理地放得彼此靠近;模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果;模块独立化重要性的原因:第一,有效地模块化的软件比较容易开发出来;第二,独立的模块化比较容易测试和维护;模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合;耦合是对一个软件结构内不同模块之间互连程度的度量;耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据;如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合;如果传递的信息中有控制信息尽管有时这种控制信息以数据的形式出现,则这种耦合称为控制耦合;数据耦合是低耦合;公共环境耦合、最高程度的耦合式内容耦合;内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展;偶然内聚、逻辑内聚、时间内聚低内聚、中内聚、高内聚的分类;启发规则/软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当模块的应用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该可以预测。

面向数据流设计方法

面向数据流设计方法

面向数据流设计方法面向数据流设计方法是一种软件设计方法,它将系统的功能和数据处理看作是一连串的数据流,通过对数据流的定义、分析和优化,来设计和构建高效可靠的软件系统。

这种设计方法的核心是关注数据流和数据处理的过程,强调对数据流的管理和控制。

在面向数据流设计方法中,系统功能被分解为多个数据流,每个数据流都有一个明确的输入和输出。

设计人员需要通过对数据流的分析,确定数据流之间的依赖关系和处理逻辑,以便实现系统的功能。

在设计过程中,可以利用一些工具和技术,如数据流图、流程图、数据字典等,来帮助描述和分析数据流的流转和处理过程。

面向数据流设计方法的优点之一是能够清晰地描述和分析数据流的过程,使设计人员更容易理解系统的功能和数据处理流程。

通过对数据流的定义和分析,可以发现系统中的潜在问题和瓶颈,并进行针对性的优化和改进。

此外,面向数据流设计方法还可以提高系统的可靠性和可维护性,因为它将数据流和数据处理的过程进行了明确的划分和组织,使得系统的不同部分相互独立,易于维护和扩展。

在实际应用中,面向数据流设计方法可以广泛应用于各种软件系统的设计和开发。

例如,在信息系统中,可以使用面向数据流的方法,对数据的流转和处理进行建模和优化,以提高系统的效率和可靠性。

在嵌入式系统中,面向数据流的设计方法可以帮助设计人员对数据流进行分析和建模,以满足系统对数据处理速度和实时性的要求。

在大数据处理系统中,面向数据流的设计方法可以帮助设计人员优化数据的流转和处理,以提高系统的性能和扩展性。

然而,面向数据流设计方法也存在一些挑战和限制。

首先,面向数据流的设计方法需要对系统的功能和数据流进行详细的分析和定义,这需要投入大量的人力和时间。

其次,面向数据流设计方法在处理复杂的系统和大规模数据时,可能会导致数据流的混乱和复杂,难以理解和管理。

此外,面向数据流的设计方法在应对动态和实时数据流时,可能会面临数据处理速度和实时性的挑战,需要采取适当的优化和改进措施。

1软件设计一般分为总体设计和详细设计

1软件设计一般分为总体设计和详细设计

选择题1.软件设计一般分为总体设计和详细设计,它们之间的关系是( )。

A.全局和局部 B.抽象和具体c.总体和层次 D.功能和结构2.软件结构使用的图形工具,一般采用( )图。

A.DFD B.PADC SC D.ER3.属于软件设计的基本原理是( )。

A.数据流分析设计 B.变换流分析设计C.事务流分析设计 D.模块化4.在软件结构的后处理中,下列说法错误的是( )。

A.为模块写的处理说明及接口说明可采用IPO图B.数据结构的描述可用Warnier图或Jackson图c. 给出设计约束或限制。

如数据的边界值、数据类型、格式、内存容量及时间的限制 D. 在概要设计评审中,应着重评审软件需求是否得到满足及软件结构的质量等E.设计的优化工作主要放在软件结构设计的后处理阶段5.在基于IDEF0图的设计方法中,下列说明错误的是( )。

A.IDEF0图以系统的功能模型和信息结构为基础设计系统的软件结构B.IDEF0图按照自顶向下逐层对系统进行分解c. IDEF0图对系统每一功能的输入、输出、约束、机制都进行了全面的描述D. 在系统概要设计时,一般按照DFD图的分解层次,逐层将其转换成软件结构图6.将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是( )的。

A.逻辑性 B.瞬时性c.功能性 D.通信性7.模块内的某成分的输出是另一成分的输入,该模块的内聚度是( )的。

A.功能性 B.顺序性C.逻辑性 D.瞬时性8.在分层数据流图映射成软件结构的设计中,下列说法错误的是( )。

A.分层的数据流图映射成软件结构图也应该是分层的B.软件结构图的物理收入与输出部分放在主图中较为合适C.分层DFD图的映射方法:主图是变换型,子图是事务型;或主图是事务型,子图是变换型D. 变换型通常用于高层数据流图的转换,而事务型通常用于较低层数据流图的转9.软件设计阶段一般又可分为( )。

A.逻辑设计与功能设计 B.概要设计与详细设计C.概念设计与物理设计 D.模型设计与程序设计10.模块中所有成分引用共同的数据,该模块的内聚度是( )的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7 面向数据流的设计方法
1
§7.1 基本概念和设计步骤 利用SA方法获得了系统的需求 说明书,而本节将介绍由数据流图导 出程序结构图的方法。SD方法是与 SA方法相衔接的方法。
2
程序结构的标准形式 数据流图一般有两种典型结构: 变换型结构和事务型结构 数据处理系统中有两种典型的程 序结构:变换型和事物型
26
④充分利用各种技巧:扇入和扇出。即扇入越多 越好,而它调用其他的模块一般不超过7个;模 块的大小。即相对独立,功能单一,语句不超过 100行;作用范围和控制范围。即要求控制模块 在上层,作用模块在下层且二者不离太远。 ⑤程序结构图:直观清晰,易理解,为以后的编 程、测试、维护提供了良好的条件。 SD方法的缺陷:对数据结构、文件结构,数据库 结构没有考虑充分;块间联系、块内联系这两个 概念无严格定义。
25
§7.5 SD方法小结
SD方法的特点如下。 (1)从问题的结构推出解决问题的程序结构 (2)为了解决大型复杂的软件系统,采用“分解” 和“抽象”的方法 ①将一个大的系统分解成多个“黑盒”。 ②可将黑盒分解成层次结构的模块。 ③模块划分原则:块间联系少,块内联系多,即耦 合度小,聚合度大;块间尽量用数据型,块内尽量 用功能型。
3
变换型 ⑴结构:
I P O
输入模块I从输入设备或存储器获得数据, 利用处理模块P(加工模块或变换模块)对这些 数据作处理后,最后将结果通过输出模块O 送出到输出设备或存储器。
4
主模块
输入成绩 (五分制)
成绩转换(五分 制→百分制)
输出成绩 (百分制)
5
⑵变种 有多个“主变换”,多个输入数 据,多个输出数据,无“主变换”等。
6
事务型 若数据流具有如下图的结构,则称为“事 务型”。
主模块
事务层
操作层
细节层
由主模块接受一项事务,它根据事务的不同 类型,选择某一类事务层中某个事务处理模 块进行处理,这个事务处理模块又需调用操 作层中的若干个操作模块,每一操作模块也 下调细节层中若干个细节模块来完成操作, 这样通过层层调用来完成某一事务的处理。
23
§7.4 综合设计
在实际的软件系统中,数据流图往往是变换 型和事务型的混合体,这就要用综合设计的方法: 一般以“变换分析”为主、“事务分析”为辅进行设 计——先找出主加工,设计出结构图的上层,然后 根据数据流图各部分的结构特点适当地运用“变换 分析”或“事务分析”就可得出初始结构图。
24
不管是何种设计——变换设计、事务设计、 综合设计,设计人员都应掌握以下原则: (1)程序结构尽可能与问题结构相对应,程序结 构不是指编写程序的结构,而是指模块、框架总体 结构。 (2)块间联系尽可能低,块内联系尽可能高。
ቤተ መጻሕፍቲ ባይዱ14
②输出模块的下属模块的设计 输出模块的功能是将调用模块提供的数据输出。 为每一个输出模块设计两个下层模块:一个是 变换模块,另一个是输出模块。 ③变换模块的下属模块的设计 为变换模块设计下属模块没有一定的规则可循, 此时需研究数据流图中相应加工的组成情况。
15
§7.3 事务分析 1.事务型程序结构 ⑴结构:
12
⑵设计模块结构的顶层和第一层 数据流图映射到软件模块结构的第一步。 SD方法采用自顶向下设计的策略。那么作为 一个模块结构则首先要先决定顶层在哪里— —解决系统要做什么。
13
⑶设计中、下层模块 仍按“由顶向下逐步细化”的原则为每个模块设计它 的下属模块。 ①输入模块的下属模块的设计 输入模块的功能是向它的调用模块提供数据,所以它本身 要有数据来源。因此,输入模块可由两部分组成,一部分 是接收数据,另一部分将这些数据变换成其调用模块所需 要的数据。这样,就可以为每一个输入模块设计两个下层 模块:一个是输入模块,另一个是变换模块。
7
事务型结构具有如下特点: (1)不同的事务处理模块可能共用一些 操作模块; (2)不同的操作模块可能共用一些细节 模块。
事务型结构也有几个变种,如有几层细节 层或没有细节层。
在大系统的DFD中,变换型和事务型程 序结构有时可以混合使用。 面向数据流设计方法的设计步骤如下: (1)精化DFD。 (2)确定DFD类型。 (3)把DFD映射到系统模块结构,设计出模块 结构的上层。 (4)基于DFD逐步分解高层模块,设计出下层 模块。 (5)根据模块独立性原理,精化模块结构。 (6)模块接口描述。
21
⑴找出事务中心和各活动路径 ⑵设计模块结构的顶层和第一层模块: 首先为事务中心设计一个主模块; 然后为每一条活动路径设计一个事务处理模 块; 最后为输入部分设计一个输入模块,如果各 活动路径是发散的,则不需设计输出模块, 如果象图中各活动路径又集中到一个加工, 则需设计输出模块。
22
⑶设计中、下层模块 输入模块和输出模块的下属模块 的设计方法同变换分析。为每个事务 处理模块设计它的下层操作模块,再 为操作模块设计它的细节模块……, 直至设计完成。
§7.2 变换分析 1.变换型数据流图是具有较明确的输入、主加工、 输出界面的数据流图。是一种线性状的结构 I→P→O ⑴主加工 ⑵物理输入 ⑶逻辑输入 ⑷物理输出 ⑸逻辑输出
10
2.变换分析的步骤 共分三步: ⑴找出系统的主加工,确定逻辑输入和逻辑 输出
11
①确定逻辑输入 ②确定逻辑输出 ③确定主加工
主模块 事务层 操作层 细节层
16
由主模块接受一项事务,它根据 事务的不同类型,选择某一类事务层 中某个事务处理模块进行处理,这个 事务处理模块又需调用操作层中的若 干个操作模块,每一操作模块也下调 细节层中若干个细节模块来完成操作, 这样通过层层调用来完成某一事务的 处理。
17
⑵特点 ①不同的事务处理模块可能共用一些操 作模块 ②不同的操作模块可能共用一些细节模 块 ⑶变种:有几层细节层或没有细节层
18
2.事务型数据流图 某个加工将它的输入分离成一串 发散的数据流,形成许多通向后面加 工的活动路径,并根据输入的值选择 其中一条路径。
19
报名
付款 分类 注销 复审
查询
20
3.事务分析的步骤 通过事务分析,可以从事务型结 构的数据流图导出标准形式的程序结 构。同样采用“由顶向下逐步细化” 原则。
相关文档
最新文档