软件工程第07章_第1页
软件工程第07章_第2页
软件工程第07章_第3页
软件工程第07章_第4页
软件工程第07章_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章 软件设计基础软件设计阶段的工作是以需求分析阶段的成果为前提和基础的,即经过系统分析小组签字认可的需求规格说明书及有关技术文档。经过软件工程师们多年的努力,一些软件设计技术、质量评估标准和设计表示法逐步形成并用于软件工程实践。软件设计是软件工程的重要阶段。软件设计过程是对程序结构、数据结构和过程细节逐步求精、复审并编制文档的过程,本章讨论与软件设计有关的主要概念。7.1软软件件设计基基本概念念7.1..1软件设计计过程一般认为为,软件件开发阶阶段由设设计、编编码和测测试三个个基本活活动组成成,其中中“设计计”活动动是获取取高质量量、低耗耗费、易易维护软软件的一一个最重重要环节节。需求分析析阶段获获得的需需求规格格说明书书包括对对将要实实现的系系统在信信息、功功能和行行为等各各个方面面的描述述,这是是软件设设计的基基础。对对此不论论采用何何种软件件设计方方法都将将产生:系统的总总体结构构设计((architecturaldesign);系统的数数据设计计(datadesign);系统的过过程设计计(proceduraldesign)。7.1..1软件设计计过程图8-1--1开发阶段段的信息息流程序模块总体结构构设计设计编码信息描述述功能描述述行为描述述其他需求求过程设计计数据设计计集成并确确认的软软件测试7.1..1软件设计计过程软件设计计也可看看作将需需求规格格说明逐逐步转换换为软件件源代码码的过程程。从工程管管理的角角度软件件设计可可分为概概要(preliminary)设计和详详细(detail)设计两大大步骤。。概要设计计是根据据需求确确定软件件和数据据的总体体框架,,详细设设计是将将其进一一步精化化成软件件的算法法表示和和数据结结构。而在技术术上,概概要设计计和详细细设计又又由若干干活动组组成,除除总体结结构设计计、数据据结构设设计和过过程设计计外,许许多现代代应用软软件,还还包括一一个独立立的界面面设计活活动。7.1..2抽象与逐逐步求精精抽象是控控制复杂杂性的基基本策略略。“抽抽象”要要求人人们将注注意力集集中在某某一层次次上考虑虑问题,,而忽略略那些低低层次的的细节。。软件设计计过程应应当是在在不同抽抽象级别别上考虑虑和处理理问题的的过程。。最初,,应在最最高抽象象级别上上,用面面向问题题域的语语言叙述述“问题题”,概概括“问问题解””的形式式,而后后不断地地具体化化,不断断地用面面向过程程的语言言描述问问题,最最后,在在最低的的抽象级级别上给给出可直直接实现现的“问问题解””,即程程序。7.1..2抽象与逐逐步求精精软件工程程过程的的每一步步都是对对较高一一级抽象象的解作作一次进进一步具具体化的的描述。。在系统定定义阶段段,软件件系统被被描述为为基于计计算机的的大系统统的一个个组成部部分;在软件规规划和需需求分析析阶段,,软件用用问题域域约定的的习惯用用语表达达;从概要设设计过渡渡到详细细设计时时,抽象象级再一一次降低低;编码完成成后达到到了抽象象的最低低级。在上述由由高级抽抽象到低低级抽象象的转换换过程中中,伴随随着一连连串的过过程抽象象和数据据抽象。。过程抽象象把完成成一个特特定功能能的动作作序列抽抽象为一一个过程程名和参参数表;;数据抽象象把一个个数据对对象的定定义(或或描述))抽象为为一个数数据类型型名。【例7.1】】考虑适用用于低级级CAD的图形软软件包。。抽象Ⅰ该CAD软件系统统配有能能与绘图图员进行行可视化化通信的的图形界界面,能能用鼠标标代替绘绘图工具具,画各各种直线线和曲线线;能完完成所有有几何计计算以及及所有截截面视图图和辅助助视图的的设计。。图形设设计的结结果存在在图形文文件中,,图形文文件可包包含几何何的、正正文的和和其他各各种补充充设计信信息。显而易见见,在这这一抽象象级别上上,用问问题域本本身的术术语来描描述问题题的解。。【例7.1】】考虑适用用于低级级CAD的图形软软件包。。抽象ⅡCAD软件任务务;用户界面面子任务务;创建二维维图形子子任务;;显示图形形子任务务;管理图形形文件子子任务;;endCAD.在这一抽抽象级别别上,给给出了组组成CAD软件任务务的所有有主要子子任务,,尽管术术语已与与问题域域有所不不同,但但仍然不不是实现现所用的的语言。。【例7.1】】考虑适用用于低级级CAD的图形软软件包。。抽象Ⅲ(仅以““创建二二维图形形子任务务”为例例)PROCEDURE创建二维维图形REPEATUNTIL<<创建图形形任务终终止>DOWHILE<<出现与数数字仪的的交互时时>数字仪接接口任务务;判断作图图请求::线:画线线任务;;圆:画圆圆任务;;┇END;【例7.1】】考虑适用用于低级级CAD的图形软软件包。。DOWHILE<<出现与键键盘的交交互时>键盘接口口任务;;选择分析析或计算算:辅助视图图:辅助助视图任任务;截面视图图:截面面视图任任务;┇END;┇ENDREPEAT;ENDPROCEDURE.【例7.1】】考虑适用用于低级级CAD的图形软软件包。。在这一抽抽象级别别上,给给出了初初步的过过程性表表示,此此时所有有术语都都是面向向软件((比如采采用do‑while结构)并并且模块块结构也也开始明明朗。求求精过程程还可继继续下去去,直至至产生源源代码。。数据抽象象数据抽象象与过程程抽象一一样,能能使设计计者按不不同的详详细程度度表示数数据对象象。仍以CAD软件为例例,我们们可定义义一个称称为drawing(图)的数数据对象象:TYPEdrawingISSTRUCTUREDEFINEDnumberISSTRINGLENTH(12);geometryDEFINED…notesISSTRINGLENTH((256);bomDEFINED…ENDdrawingTYPE;数据抽象象在此,drawing被表示为为一种结结构,其其各个组组成部件件本身又又可为某某种数据据抽象,,比如geometry(几何图形形)和bom。一旦抽象象数据类类型drawing定义完毕毕,即可可用类型型名直接接说明数数据对象象,而不不必涉及及其内部部构造的的细节,,例如,,可用语语句:blueprintISINSTANCEOFdrawing;或schematicISINSTANCEOFdrawing;说明blueprint和schematic具有drawing的一切特特性。blueprint———蓝图,schematic———简(略))图。数据抽象象在抽象数数据类型型的定义义中可以以附加一一组操作作的定义义,用以以确定在在此类数数据对象象上可进进行的操操作。以以抽象数数据类型型drawing为例,可可以定义义擦除((erase)、存储(save)、分类(catalog)和拷贝((copy)等操作。。许多程序序设计语语言都提提供了对对抽象数数据类型型的支持持,Ada的程序包包机制是是对数据据抽象和和过程抽抽象的双双重支持持逐步求精精关于“逐逐步求精精”,N.Wirth曾经做过过如下说说明:“我们对对付复杂杂问题的的重要办办法是抽抽象,因因此,对对一个复复杂的问问题不应应该立即即用计算算机指令令、数字字和逻辑辑符号来来表示,,而应该该用较自自然的抽抽象语言言来表示示,从而而得出抽抽象程序序。抽象象程序对对抽象的的数据进进行某些些特定的的运算并并用某些些合适的的记号((可能是是自然语语言)来来表示。。对抽象象程序做做进一步步分解,,进入下下一个抽抽象层次次,重复复这一精精化过程程直到程程序能被被计算机机接受为为止。这这时的程程序可能能是用某某种高级级语言或或机器指指令书写写的。””过程求精精与数据据求精因为求精精的每一一步都是是用更为为详细的的描述替替代上一一层次的的抽象描描述,所所以在整整个设计计过程中中产生的的,具有有不同详详细程度度的各种种描述,,组成了了系统的的层次结结构。层层次结构构的上一一层是下下一层的的抽象,,下一层层是上一一层的求求精。在过程求求精的同同时自然然伴随着着数据的的求精,,无论是是过程还还是数据据,每一一步细化化都蕴涵涵着某些些设计决决策,因因此设计计人员必必须掌握握一些基基本的准准则,比比较各种种可能的的候选方方案。7.1..3模块化与与信息隐隐藏软件总体体结构((下一节节讨论))体现了了模块化化思想,,即把软软件划分分为可独独立命名名和编制制的部件件,每个个部件称称为一个个模块,,当把所所有模块块组装到到一起时时,便可可获得满满足问题题需要的的一个解解。“模块化化是唯一一对软件件中的程程序进行行智能化化管理的的一个属属性”。。7.1..3模块化与与信息隐隐藏假设:函数C(X)——问题X的复杂性性;函数E(X)——求解问题题X需要花费费的工作作量(时时间);;对于问题题P1和P2,如果::C(P1)>C(P2)则有:E(P1)>E(P2)结论:解解决一个个复杂问问题总比比解决一一个简单单问题耗耗费更多的工工作量。。同时有有:C(P1+P2)>C(P1)+C(P2)结论:由由P1、P2组合而成成的问题题的复杂杂性往往往比考虑虑单个问题题复杂性性的和更更大。于是有::E(P1+P2)>E(P1)+E(P2)7.1..3模块化与与信息隐隐藏图8-1--2模块与软软件耗费费最小成本本区域MO软件总成成本用于接口口的成本本每个模块块成本之之和模块总数数成本或工作量1.信息息隐蔽信息隐蔽蔽原理告告诉我们们,模块块应该设设计得使使其所含含信息((过程和和数据))对于那那些不需需要这些些信息的的模块不不可访问问;每个个模块只只完成一一个相对对独立的的特定功功能;模模块之间间仅仅交交换那些些为完成成系统功功能必须须交换的的信息,,即模块块应该独独立。显显然,模模块独立立的概念念是模块块化、抽抽象、信信息隐蔽蔽和局部部化等诸诸多概念念的直接接结果。。信息隐蔽蔽原理的的好处它不仅支支持模块块的并行行开发,,而且还还可减少少测试和和后期维维护的工工作量。。因为测测试和维维护阶段段不可避避免地要要修改设设计和代代码,模模块对大大多数数数据和过过程处理理细节的的隐蔽可可以减少少错误向向外传播播。此外外,整个个系统欲欲扩充功功能亦只只需“插插入”新新模块,,原有的的多数模模块无须须改动。。2.内聚聚度(cohesion)内聚度是是前述信信息隐蔽蔽和局部部化概念念的自然然扩展,,它标志志一个模模块内部部各成分分彼此结结合的紧紧密程度度。内聚度按按其高低低程度可可分为七七级,内内聚度越越高越好好。1)偶然然性内聚聚——低低级内聚聚偶然性内内聚(coincidentalcohesion)。是指一个个模块内内各成分分为完成成一组功功能而组组合在一一起,它它们相互互之间即即使有关关系,也也很松散散。常见见的偶然然性内聚聚情形是是,当程程序员写写完一个个程序后后发现有有一组语语句多处处出现,,于是为为节省内内存便将将这组语语句单独独组成一一个模块块。XYZW2)逻辑辑性内聚聚——低低级内聚聚如果一个个模块完完成的诸诸任务逻逻辑上相相关,则则称之为为逻辑性性内聚((logicalcohesion)例如:一一个模块块产生所所有与类类型无关关的输出出,即为为逻辑性性内聚。。又如:模模块X、Y分别调用用A、B,A、B相似,将将其合并并为模块块AB,模块AB即为逻辑辑性内聚聚。XYSABXYSAB3)时间间性内聚聚——低低级内聚聚如果一个个模块包包含的诸诸任务必必须在同同一时间间段内执执行(例例如一个个初始化化模块)),则称称之为时时间性内内聚(temporalcohesion)。以上三种种内聚形形式通常常认为是是低级内内聚。4)过程程性内聚聚——中中级内聚聚过程性内内聚(proceduralcohesion)模块的过过程性内内聚度是是指,模模块内成成分彼此此相关,,并且必必须按特特定的次次序执行行;过程内聚聚模块的的各组成成功能由由控制流流联结在在一起。。5)通信信性内聚聚度———中级内内聚通信性内内聚(communicationalcohesion)。模块的通通信性内内聚度是是指,模模块中各各成分都都将对数数据结构构的同一一区域进进行操作作,以达达到通信信的目的的。例如,模模块A的处理单单元是由由同一数数据文件件的数据据产生不不同的表表格模块A从文件FILE读出数据1.由数据产生报表一2.由数据产生报表二6)顺序序性内聚聚———高级内内聚顺序性内内聚(sequentialcohesion)。如果一个个模块内内的各处处理成分分均与同同一功能能相关,,且这些些处理必必须顺序序执行,,则称顺顺序内聚聚;通通常,一一个处理理成分的的输出是是另一个个处理成成分的输输入。例例如:1.输输入系数数2.求方程的的根3.打打印方程程的根求一元二次次方程根的模块块7)功能能性内聚聚——高高级内聚聚功能性内内聚(functionalcohesion)。如果模块块内所有有成分形形成一个个整体,,完成单单个功能能,则称称功能内内聚,功功能内聚聚是最高高程度的的内聚形形式。例如,一一个模块块仅完成成一个矩矩阵的输输出,就就是一个个具有功功能性内内聚的模模块。设计软件件时,应应该能够够识别内内聚度的的高低,,并通过过修改设设计尽可可能提高高模块内内聚度,,从而获获得较高高的模块块独立性性。3.耦合合度耦合度是是对软件件结构中中模块间间关联程程度的一一种度量量。耦合的强强弱取决决于模块块间接口口的复杂杂性、进进入或调调用模块块的位置置以及通通过界面面传送数数据的多多少等。。与内聚度度正好相相反,在在设计软软件时应应追求尽尽可能松松散耦合合的系统统。因为为对这类类系统中中任一模模块的设设计、测测试和维维护相对对独立。。由于模模块间联联系较少少,错误误在模块块间传播播的可能能性也随随之变小小。模块间的的耦合程程度直接接影响系系统的可可理解性性、可测测试性、、可靠性性和可维维护性。。耦合度也也可以分分为七级级1)非直直接耦合合——最最松散的的耦合耦合度也也可以分分为七级级:如果两模模块中任任一个都都不依赖赖于对方方能独立立工作,,则称这这两模块块为(nodirectcoupling),这类耦合合度最低低。例如如:XYAB无关系2)数据据耦合数据耦合合(datacoupling)如果两模模块间通通过参数数交换信信息,而而信息仅仅限于数数据,则则称这两两模块为为数据耦耦合。一一般软件件系统中中都存在在数据耦耦合,它它是完成成大多数数功能所所必需的的。例如如:AB通过参数数传递数据据3)特征征耦合特征耦合合(stampcoupling)。介于数据据耦合和和控制耦耦合之间间的是特特征耦合合(stampcoupling)。例如,传传递了求求平均成成绩以外外的参数数:producereportcardscalculateaverageprintreportcardstudengtrecordaverragestudengtrecordaverrage4)控制制耦合控制耦合合(controlcoupling)。如果两模模块间通通过参数数交换信信息,此此时若传传递的信信息中含含有控制制信息,,则耦合合度上升升为控制制耦合。。控制耦耦合通常常会增加加系统的的复杂性性,有时时适当分分解模块块可消除除控制耦耦合。5)外部部耦合外部耦合合(externalcoupling)。当若干模模块均与与同一个个外部环环境关联联(例如如,I/O处理使所所有I/O模块与特特定的设设备、格格式和通通信协议议相关联联),它它们之间间便存在在外部耦耦合。外外部耦合合尽管需需要,但但应限制制在少数数几个模模块上。。6)公共共耦合公共耦合合(commoncoupling)当若干模模块通过过全局的的数据环环境相互互作用时时,它们们之间存存在公共共耦合。。全局数数据环境境中可能能含有全全局变量量、公用用区、内内存公共共覆盖区区、任何何存储介介质上的的文件、、物理设设备等。7)内容容耦合内容耦合合(contentcoupling)。最高耦合合度是内内容耦合合,出现现内容耦耦合的情情形包括括:当一一个模块块使用另另一个模模块内部部的数据据或控制制信息;;一个模模块直接接转移到到另一个个模块内内部,等等等。7.1..3模块化与与信息隐隐藏一般来说说,设计计软件时时应尽量量使用数数据耦合合,减少少控制耦耦合,限限制外部部环境耦耦合和公公共数据据耦合,,杜绝内内容耦合合。值得指出出,模块块化设计计的思想想适用于于任何软软件系统统的设计计。当某某些软件件系统((如实时时软件等等),因因不能容容忍子程程序调用用引起的的时间开开销而必必须以整整块软件件的形式式出现时时,软件件设计仍仍然应该该以模块块化设计计的思想想为指导导,直至至编码时时再改用用代入式式(in‑line)方法。这这样,源源程序中中虽不含含明显的的模块,,但模块块化设计计所带来来的大部部分益处处却已被被系统获获得。7.1..4软件总体体结构设设计软件总体体结构((softwarearchitecture)应该包括括两方面面内容::1)由系统中中所有过过程性部部件(即即模块))构成的层层次结构构,即程程序结构构;2)对应于程程序结构构的输入入输出数数据结构构。软件总体体结构设设计的目目标就是是产生一一个模块块化的程程序结构构并明确确各模块块之间的的控制关关系,此此外还要要通过定定义界面面,说明明程序的的输入输输出数据据流,进进一步协协调程序序结构和和数据结结构。7.1..4软件总体体结构设设计软件总体体结构((softwarearchitecture)应该包括括两方面面内容::1)由系统中中所有过过程性部部件(即即模块))构成的层层次结构构,即程程序结构构;2)对应于程程序结构构的输入入输出数数据结构构。软件总体体结构设设计的目目标就是是产生一一个模块块化的程程序结构构并明确确各模块块之间的的控制关关系,此此外还要要通过定定义界面面,说明明程序的的输入输输出数据据流,进进一步协协调程序序结构和和数据结结构。1.结构演变变图8-1--3结构演变变软件“解”S1S4S2待解问题S3P1P2P4P32.同一个““问题””的多种种软件解解图8-1--4对应于同同一问题题的各种种软件结结构问题P结构1结构2结构3M1M2M3M4M1M2M3M4M1M2M3M4MMM3.表示程序序结构的的工具类树图((tree‑likediagram)Warnier‑Orr图Jackson图最常见的的是如图图8-1--5所示的类类树图。。为便于于讨论,,下面定定义几个个有关的的术语和和度量。。4.有关程序序结构的的术语图8-1--5有关程序序结构的的术语Mabcdemfgihopqrntjks扇出扇入宽度深度4.有关程序序结构的的术语一个软件件的深度度(depth)—控制的层层数;一个软件件的宽度度(width)—其控制的的层数和和跨度;;一个模块块的“扇扇出数””(fan‑‑out)—该模块直直接控制制的其他他模块数数;一个模块块的“扇扇入数””(fan‑‑in)指能直接接控制该该模块的的模块数数。4.有关程序序结构的的术语如果一个个模块控控制另一一个模块块,称前前者为““主控””模块,,后者为为“从属属”模块块。在图图8-1--5中模块M主控模块块a、b、c,模块d从属模块块a,因此也从从属M。此外,软软件结构构中还有有两个重重要的特特性,即即可见域域和连通通域。模块的可可见域——该模块可可直接或或间接引引用的一组模模块;模块的连连通域——仅包括该该模块可可直接引引用的模块。。7.1..5数据结构构设计数据结构构描述各各数据分分量之间间的逻辑辑关系,,数据结结构一经经确定,,数据的的组织形形式、访访问方法法、组合合程度及及处理策策略等随随之而定定,所以以数据结结构是影影响软件件总体结结构的重重要因素素。数据结构构与程序序结构一一样,也也可以在在不同的的抽象级级别上表表示。以以栈为例例,作为为一个抽抽象数据据类型,,在概念念级上只只关心““先进后后出”特特性,而而在实现现级上则则要考虑虑物理表表示及内内部工作作的细节节,比如如,用向向量实现现,或用用链表实实现等。。7.1..5数据结构构设计数据结构构对程序序结构和和过程复复杂性有有直接的的影响,,从而在在很大程程度上决决定了软软件的质质量。数据设计计的目标标是为在在需求规规格说明明中定义义的那些些数据对对象选择择合适的的逻辑表表示,并并确定可可能作用用在这些些逻辑结结构上的的所有操操作(包包括选用用已存在在的程序序包)。。数据抽象象和信息息隐蔽两两个概念念是数据据设计的的基础。。通常,数数据设计计方案不不是唯一一的,有有时需进进行算法法复杂性性分析、、综合各各种因素素之后才才能从多多种候选选方案中中筛选出出最佳的的设计方方案。7.1..6软件过程程设计过程设计计紧跟在在数据结结构和程程序结构构设计之之后,其其基本任任务是描描述模块块内各处处理元素素和判断断元素的的顺序,,图8-1--6展示了模模块B的内部过过程。┇过程说明明图8-1--6模块B的内部结结构模块B┇┇模块B程序结构构7.1..6软件过程程设计所谓过程程,应包包括有关关处理的的精确说说明,诸诸如事件件的顺序序、判断断的位置置和条件件、循环环操作以以及数据据的组成成,内部部变量和和外部变变量的引引用问题题等等。。过程设计计也应遵遵循“自自上而下下,逐步步求精””的原则则和单入入口单出出口的结结构化设设计思想想。过程设计计的任务务是描述述算法的的细节。。结构化化程序流流程图、、盒图((N-S图)、判判定表和和判定树树,以及及过程设设计语言言(PDL)、PAD图等是人人们经常常使用的的工具。。7.2软件过程程设计技技术和工工具7.2..1结构化程程序设计计结构化程程序设计计定义::是程序序设计技技术,它它采用自自顶向下下逐步求求精的设设计方法法和单入入口单出出口的控控制构件件。结构化程程序设计计的思想想,应该该在软件件设计中中体现出出来,但但这并不不排除为为效率或或其他原原因对结结构化程程序设计计作一点点修正。。随着面面向对象象、软件件重用等等新的软软件开发发方法和和技术的的发展,,更现实实、更有有效的开开发途径径可能是是自顶向向下和自自底向上上两种方方法有机机地结合合。7.2..2图形表示示法1.流程图图(也称称为程序序框图))是最常常用的一一种表示示法,““顺序序”、““分支””和“循循环”三三个基本本控制构构件用流流程图表表达的形形式如图图8-2--1所示。F第二个任任务顺序结构构then部分else部分do‑while循环第一个任任务T分支条件件If‑then‑else结构循环条件件循环体TF图8-2--1流程图构构件7.2..2图形表示示法2.盒图也也称为N-S图或Chapin图。这种种表达方方式取消消了流程程线,它它强迫程程序员以以结构化化方式思思考和解解决问题题。第一个任任务第二个任任务第三个任任务顺序结构构else部分then部分条件FTif-then-else结构do-while部分循环条件件循环结构构图8-2--3盒图的构构件7.2..3判定表与与判定树树当模块中中包含复复杂的条条件组合合,并要要根据这这些条件件的组合合选择动动作时,,只有判判定表和和判定树树能够清清晰地表表达出复复杂的条条件组合合与各种种动作之之间的对对应关系系。判定表由由四部分分组成::左上部——列出所有有条件;;左下部——列出所有有可能的的动作;;右上部——所有可能能的条件件组合((矩阵));右下部——条件组合合与动作作之间的的对应关关系。判定表的的每一列列可解释释为一条条处理规规则。7.2..3判定表与与判定树树【例7.2】】问题处理理描述::耗电记记费系统统可以采采用固定定价格收收费、浮浮动价格格收费和和其他方方式收费费三种方方式。若若采用固固定价格格方式收收费,对对每月耗耗电100kW•h以下的用用户只征征收最低低标准费费,超过过100kW•h的用户按按价格表表A收费;若若采用浮浮动价格格方式收收费,则则每月耗耗电100kW•h以下的用用户按价价格A收费,超超过100kW•h的用户按按价格B收费。表8‑1判定表规则12345固定价格方式浮动价格方式耗电<100kW.h耗电≥100kW.hTFTFTFFTFTTFFTFTFF收取最低标准费按价格表A收费按价格表B收费其他处理√√√√√条件动作【例7.2】】判定树耗电<100kW·h—收取最低低标准费费固定方式式耗电≥100kW·h—按价格表表A收费耗电<100kW·h—按价格表表A收费耗电收费费浮浮动方式式耗电≥100kW·h—按价格表表B收费其他方式式—其他处理理图8-2--5用判定树树表示计计算耗电电收费的的算法7.2..3判定表与与判定树树判定树的的优点::形式简简单,直直观明了了,易于于掌握。。判定树的的缺点::①存在着着数据冗冗余的问问题,相相同的数数据元素素往往要要重复多多次,而而且越接接近树的的叶端重重复的次次数越多多。②判定树树要求对对条件进进行层次次划分,,若条件件所处层层次不对对,可能能会导致致增加判判定树的的复杂性性。7.2..4过程设计计语言((PDL)PDL(ProcedureDesignLanguage)也称为结结构英语语或伪码码,是所所有正文文形式的的过程设设计工具具的统称称。PDL经常表现现为一种种“混杂杂”的形形式,允允许自然然语言((如英语语)的词词汇与某某种结构构化程序序设计语语言(如如Pascal、C、Ada等)的语语法结构构交织在在一起7.2..4过程设计计语言((PDL)PDL应具有下下述特点点:1.关键字字采用固固定语法法并支持持结构化化构件、、数据说说明机制制和模块块化;2.处理部部分采用用自然语语言描述述;3.允许说说明简单单(标量量、数组组等)和和复杂((链表、、树等))的数据据结构;;4.子程序序的定义义与调用用规则不不受具体体接口方方式的影影响。7.2..4过程设计计语言((PDL)考察一个个PDL的原型,,它可以以建立在在任意一一个通用用的结构构化程序序设计语语言之上上。基本本成分包包括:子子程序定定义、界界面描述述、数据据说明、、块结构构、分支支结构、、循环结结构和I/O结构。数据说明明的形式式为:TYPE<变量名>IS<<限定词1><<限定词2>其中:<变量名>——局部变量量或全局局变量;;<限定词1>———某个特定定关键字字(例如如,SCALAR,ARRAY,LIST,STRING,STRUTURE等);<限定词2>———说明此处处定义的的变量在在该过程程或整个个程序中中应如何何使用。。7.2..4过程设计计语言((PDL)可进行抽抽象数据据类型的的定义,,例如:TYPEtable_1ISINSTACEOFsymbol__table而symbol__table在另一处处已定义义如下::TYPEsymbol__tableISSTRUCTUREDEFINED7.2..4过程设计计语言((PDL)该PDL的块结构构描述一一个过程程元素,,即一个个块内的的所有语语句将作作为一个个整体执执行,形形式为BEGIN[[<块名>]<语句序列列>END该PDL的分支结结构有if-then-else和case两种形式式,分别别为IF<<条件描述述>THEN<<块结构或或语句>ELSE<<块结构或或语句>ENDIF7.2..4过程设计计语言((PDL)CASEOF<<情况变量量名>WHEN<第1种情况>SELECT<<块结构或或语句>WHEN<第2种情况>SELECT<<块结构或或语句>…WHEN<最后一种种情况>SELECT<<块结构或或语句>DEFAULT:<块结构或或语句>ENDCASE7.2..4过程设计计语言((PDL)循环结构构包括三三类,表表达形式式分别为为:DOWHILE<<条件描述述><块结构或或语句>ENDWHILEREPEATUNTIL<<条件描述述><块结构或或语句>ENDREPEATDOFOR<<循变>=<<循变取值值范围,表达式或或序列><块结构或或语句>ENDFOR7.2..4过程设计计语言((PDL)此PDL还提供了了NEXT和EXIT两种语句句:EXIT语句,退退出本层层循环;;NEXT语句强迫迫本次循循环结束束,新一一轮循环环开始。。在该PDL中,子程程序说明明为:PROCEDURE<<子程序说说明><属性表>INTERFACE<<参数表><块结构或或语句序序列>END其中属性性表指明明该子程程序的引引用特性性(比如如,是INTERNAL还是EXTERNAL模式)和和其他依依赖于实实现(即即程序设设计语言言)的特特性。7.2..4过程设计计语言((PDL)输入/输出说明明部分常常用的形形式有READ/WRITETO<设备><I/O表>或ASK<<询问>ANSWER<<响应选择择项>后一种形形式多用用于人机机交互部部分的设设计。7.3设计规格格说明与与评审软件设计计阶段的的输出主主要是设设计规格格说明书书:第一节::描述与与设计活活动有关关的各个个方面,,该节中中许多信信息取自自系统规规格说明明书和系系统定义义阶段产产生的其其他文档档。第二节::具体指指明引用用信息的的出处。。第三节::设计描描述,是是概要设设计的产产物,此此时设计计由信息息驱动,,即软件件总体结结构主要要受数据据流程、、数据结结构的影影响,需需求分析析时产生生的DFD或其他某某种形式式的数据据表示将将在这一一节中进进一步精精化,用用于确定定软件结结构。当当信息流流程确定定后,界界面亦可可作为整整个软件件的一部部分进行行描述。。7.3设计规格格说明与与评审第四、五五两节是是概要设设计向详详细设计计过渡后后形成的的。第四节::模块指指软件中中可单独独编址的的部件,,如函数数和过程程,最初初用自然然语言描描述它们们的功能能,随后后采用某某种过程程设计工工具将这这些自然然语言描描述转换换为结构构化描述述。第五节::主要描描述数据据组织结结构,包包括辅存存的文件件结构、、全局数数据(例例如FORTRAN公共区))的赋值值以及这这些文件件与全局局数据的的交叉访访问关系系。7.3设计规格格说明与与评审第六节::是与需需求规格格说明书书的交叉叉访问表表,根据据交叉访访问表可可断定设设计是否否满足所所有需求求,这对对于完成成某个具具体需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论