




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程原理
第三章软件设计3.1软件设计的概念3.2功能独立性3.3结构化设计方法3.4过程设计10/13/20221软件工程3.1软件设计计的概念念软件设计计的基本本目标是是用比较抽抽象概括括的方式式确定目目标系统统如何完完成预定定的任务务,即软件件设计是是确定系系统的物物理模型型。从技术观观点来看看,软件件设计包包括数据设计计、体系结构构设计、接口设计计、过程设计计。数据设计计将实体关关系图中中描述的的对象和和关系,,以及数数据字典典中描述述的详细细数据内内容转化化为数据据结构的的定义。。2/9//20202软件工程程体系结构构设计定义软件件系统各各主要成成份之间间的关系系。接口设计计根据数据据流图定定义软件件内部各各成份之之间、软软件与其其它协同同系统之之间及软软件与用用户之间间的交互互机制。。过程设计计则是把结结构成份份转换成成软件的的过程性性描述。。2/9//20203软件工程程将分析模型转换为设计数据字典数据流图实体关系图状态转换图加工规格说明控制规格说明数据对象描述过程设计接口设计体系结构设计数据设计2/9//20204软件工程程从工程管管理角度度来看,,软件设设计分两两步完成成:概要要设计和和详细设设计。概要设计计将软件需需求转化为软软件体系系结构确定系统统级接口口全局数据据结构或或数据库库模式。。详细设计计确立每个个模块的的实现算算法和局局部数据据结构用适当方方法表示示算法和和数据结结构的细细节2/9//20205软件工程程软件设计计是后续续开发步步骤及软软件维护护工作的的基础。。如果没没有设计计,只能能建立一一个不稳稳定的系系统结构构。设计编码测试维护测试编码维护有软件设计没有软件设计2/9//20206软件工程程软件设计计既是过过程又是是模型。。设计过程程是一系列列的迭代代步骤,,使设计计人员能能够描述述目标系系统的各各个侧面面。设计模型型首先描述述目标系系统的整整体架构构,然后后逐步细细化架构构得到构构造每个个细节的的指导原原则,从从而得到到系统的的一系列列不同的的视图。。良好的设设计原则则可为设设计过程程导航。。衡量设计过程程的技术原原则:设计必须须实现分分析模型型中描述述的所有有显式需需求,必必须满足足用户希希望的所所有隐式式需求。。衡量软件件设计的的原则2/9//20207软件工程程对于开发发者和未未来的维维护者而而言,设计必须须是可读读的、可可理解的的,使得得将来易易于编程程、易于于测试、、易于维维护。设计应该该给出软软件的全全貌,包包括从实实现角度度可看到到的数据据、功能能、行为为。衡量设计模型型的技术原原则设计模型型应该是是一个分分层结构构。该结结构:使用可识识别的设计模式式搭建系统统结构。。用显示良良好设计计特征的的构件构成。可以用演化的方方式实现。设计应当当模块化化。2/9//20208软件工程程设计应当当包含数数据、体体系结构构、接口口和构件件(模块块)的清清晰的视视图。设计应当当根据将将要实现现的对象象和数据据模式导导出合适适的数据据结构。。设计应当当建立具具有独立立功能特特征的构构件。设计应当当建立能能够降低低模块与与外部环环境之间间复杂连连接的接接口。设计模型型应当通通过使用用软件需需求信息息所驱动动的可重重复的方方法导出出。Davis的软软件设计计原则设计应具具有可跟踪性性,能回溯溯到软件件需求;2/9//20209软件工程程设计不必必每次都都从头做做起,可可以复用用已有的的设计模模式和数数据模式式。设计应当当缩小软软件与现现实世界界中问题题的“智智力距离离”,尽尽量逼近近问题领领域的结结构;设计应具具有一致致性和集集成性。。整个系系统应具具有统一一的风格格和格式式,具有有良好的的接口。。设计结果果应能适适应未来来可能的的变更;设计不是是编码,,编码也也不是设设计。设设计模型型的抽象象级别比比源代码码高。在在编码级级别上唯唯一的设设计决策策是补充充一些实实现细节节。2/9//202010软件工程程设计应具具有容错错性和异异常处理理能力。。对于异异常数据据、事件件、操作作条件等等能够平平滑处理理。在建立设设计方案案时就应应能评估估设计质质量,而而不是在在系统编编码之后后。应坚持设设计评审审,减少少概念性性(语义义性)的的错误。。1)设计应遵遵循抽象化的原则,,包含数据抽象象和过程抽象象。软件设计计的主要要手段2/9//202011软件工程程过程抽象象是指在软软件设计计中将处处理过程程的实现现细节隐隐藏在数数据抽象象中,可可以直接接通过模模块接口口使用这这些处理理操作。数据抽象象是指采用用抽象数数据类型型表示数数据,实实现数据据封装,,使得使使用者可可通过接接口使用用数据而而不必关关心数据据结构的的实现。。设计应遵遵循自顶向下下、逐步细化化的原则,,建立一一个层次次的结构构。将软件体体系结构构自顶向向下,对对过程细细节和数数据细节节从抽象象到具体体,逐层层细化,,直到用用编程语语言的语语句能够够实现为为止。2/9//202012软件工程程设计应当当遵循模块化的原则。每个模块块可独立立地开发发、测试试,最后后组装成成完整的的程序。。其出发点点是本着着将一种种复杂问问题“分分而治之之”的原原则。其其目的是是使程序序的结构构清晰,,容易阅阅读、理理解、测测试、修修改。Meyer的良好模块块设计方方法的标标准模块可分分解性可将系统统按问题题/子问问题分解解的原则则分解成成系统的的模块层层次结构构;模块可组组装性可利用已已有的设设计构件件组装成成新系统统,不必必一切从从头开始始。2/9//202013软件工程程模块可理理解性一个模块块可不参参考其他他模块而而被理解解;模块连续续性对软件需需求的一一些微小小变更只只导致对对某个模模块的修修改而整整个系统统不用大大动;模块保护护将模块内内出现异异常情况况的影响响范围限限制在模模块内部部;设计应遵遵循信息隐蔽蔽的原则。Patnas主张在开开发时,,将每个个程序的的成分隐隐藏在模模块内,,定义每每一个模模块时尽尽可能少少地显露露其内部部的处理理。2/9//202014软件工程程每个模块块的实现现细节对对于其它它模块是是隐蔽的的,将来来修改软软件时偶偶然引入入错误所所造成的的影响就就可以局局限在一一个或几几个模块块内部,,不致波波及到软软件的其其它部分分。在可预见见将来可可能修改改的场合合,信息息隐蔽可可以提高高软件的的可修改改性、可可测试性性和可移移植性。。2/9//202015软件工程程3.2功能独立立性功能独立立性是抽抽象、模模块化和和信息隐隐蔽的直直接产物物。如果果一个模模块能够够独立于于其他模模块被编编程、测测试和修修改,则则该模块块具有功功能独立立性。1978年Myers提出用用两个准准则来度度量功能能独立性性,即模模块间的的耦合和和模块的的内聚。。内聚性:内聚是是一个模模块内部部各个元元素彼此此结合的的紧密程程度的度度量。耦合性:耦耦合是是模块间间互相连连接的紧紧密程度度的度量量,它取取决于各各个模块块之间接接口的复复杂度、、调用方方式以及及哪些信信息通过过接口。。2/9//202016软件工程程非直接
数据标记控制外部公共内容耦合耦合耦合耦合耦合耦合耦合耦合性功能独立性模块间的的耦合模块之间间耦合性性越强,,功能独独立性越越差,这这样形成成的模块块结构界界面不好好。2/9//202017软件工程程非直接耦耦合(NondirectCoupling)两个模块块之间没没有直接接关系,,它们之之间的联联系完全全是通过过主模块块的控制制和调用用来实现现的。非直接耦耦合的模模块独立立性最强强。主模块ABCEFGXYZ2/9//202018软件工程程数据耦合合(DataCoupling)一个模块块访问另另一个模模块时,,彼此之之间是通通过简单单数据参参数((不是控控制参数数、公共共数据结结构或外外部变量量)来来交换换输入、、输出信信息的。。p0(x0,y0)p1(x1,y1)数据耦合LINE(x0,y0,x1,y1)2/9//202019软件工程程标记耦合合(StampCoupling))一组模块块通过参参数表传传递记录录信息,,就是标标记耦合合。这个个记录是是某一数数据结构构的子结结构,而而不是简简单变量量。p0(x0,y0)p1(x1,y1)标记耦合LINE(p0,p1)2/9//202020软件工程程控制耦合合(ControlCoupling)如果一个个模块通通过传送开关关、标志志、名字等控控制参数数,明显地控控制选择择另一模块的的功能,,就是控制耦耦合。FlagFlagf1f2fn2/9//202021软件工程程外部耦合合(ExternalCoupling)一组模块块都访问问同一全全局简单单变量而而不是同同一全局局数据结结构,而而且不是是通过参参数表传传递该全全局变量量的信息息,则称称之为外外部耦合合。公共耦合合(CommonCoupling)若一组模模块都访访问同一一个公共共数据环环境,则则它们之之间的耦耦合就称称为公共共耦合。。公共的的数据环环境可以以是全局局数据结结构、共共享的通通信区、、内存的的公共覆覆盖区等等。2/9//202022软件工程程公共耦合合的复杂杂程度随随耦合模模块的个个数增加加而显著著增加。。若只是是两模块块间有公公共数据据环境,,则公共共耦合有有两种情情况。松松散公共共耦合和和紧密公公共耦合合。common公共数据区ABcommon公共数据区AB松散的公公共耦合合紧密的公公共耦合合2/9//202023软件工程程如果发生生下列情情形,模模块之间间就是内内容耦合合:一个模块块直接访访问另一一个模块块的内部部数据;一个模块块不通过过正常入入口转到到另一模模块内部部;两个模块块有一部部分程序序代码重重迭(只可能出出现在汇汇编语言言中);一个模块块有多个个入口。。内容耦合合(ContentCoupling)2/9//202024软件工程程c
AB进入另一一模块内内部模块代码码重叠ABentry1……entry2……模块多个个入口2/9//202025软件工程程模块内聚聚巧合逻辑时间过程通信信息功能内聚内聚内聚内聚内聚内聚内聚内聚性功能独立性模块内聚聚性越强强,功能能独立性性越好,,对于形形成的模模块结构构有比较较好的作作用。要求模块块结构达达到高内内聚,低低耦合。。2/9//202026软件工程程一个模块块中各个个部分都都是完成成某一具具体功能能必不可可少的组组成部分分,或者者说该模模块中所所有部分分都是为为了完成成一项具具体功能能而协同同工作,,紧密联联系,不不可分割割的。则则称该模模块为功功能内聚聚模块。。功能内聚聚模块的的功能独独立性最最强。功能内聚聚(FunctionalCohesion)2/9//202027软件工程程这种模块块完成多多个功能能,各个个功能相相互独立立但都在在同一数数据结构构上操作作,每一一项功能能有一个个唯一的的入口点点。这个个模块将将根据不不同的要要求,确确定该执执行哪一一个功能能。由于这个个模块的的所有功功能都是是基于同同一个数数据结构构(符号号表),,因此,,它是一一个信息息内聚的的模块。。信息内聚聚模块可可以看成成是多个个功能内内聚模块块的组合合,并且且达到信信息的隐隐蔽。信息内聚聚(InformationalCohesion)2/9//202028软件工程程初始化插入删除查找修改符号号表表2/9//202029软件工程程如果一个个模块内内各功能能部分都都使用了了相同的的输入数数据,或或产生了了相同的的输出数数据,则则称之为为通信内内聚模块块。通常常,通信信内聚模模块是通通过数据据流图来来定义的的。模块内各各个功能能是紧密密相连的的。通信内聚聚(CommunicationCohesion)2/9//202030软件工程程打印检验结果读文件文件计算A计算B合并修改文件新文件A结果B结果加工记录2/9//202031软件工程程使用流程程图做为为工具设设计程序序时,如如果流程程图太大大,可以以把流程程图中的的某一部部分划出出组成模模块,就就得到过过程内聚聚模块。。例如,把把流程图图中的循循环部分分、判定定部分、、计算部部分分成成三个模模块,这这三个模模块都是是过程内内聚模块块。过程内聚聚(ProceduralCohesion)2/9//202032软件工程程时间内聚聚又称为为经典内内聚。这这种模块块大多为为多功能能模块,,但模块块的各个个功能的的执行与与时间有有关,通通常要求求所有功功能必须须在同一一时间段段内执行行。例如,初初始化模模块和终终止模块块就是时时间内聚聚模块。。时间内聚聚(ClassicalCohesion)2/9//202033软件工程程这种模块块把几种种相关的的功能组组合在一一起,每每次被调调用时,,由传送送给模块块的判定定参数来来确定该该模块应应执行哪哪一种功功能。写一个记录读一个记录判定调用模块被调用模块逻辑内聚聚(LogicalCohesion)2/9//202034软件工程程当几个模模块内正正好有一一段代码码是相同同的,将将它们抽抽取出来来形成单单独的模模块,即即巧合内内聚模块块。这种种模块没没有独立立功能,,各部分分之间没没有联系系,或联联系很松松散。巧合内聚聚(CoincidentalCohesion)ABCMSTOREREC()TONREADMASTERFILEADD1TOx……2/9//202035软件工程程结构化设设计(structureddesign,SD)是是一种面面向数据据流的设设计方法法,它可可以与SA方法法衔接。。结构化设设计是基基于模块块化、自自顶向下下细化、、结构化化程序设设计等程程序设计计技术基基础上发发展起来来的。基基本思想想是将系系统设计计成由相相对独立立、功能能单一的的模块组组成的结结构。该方法实实施的要要点是::首先研究、分析和审审查数据据流图。从软软件3.3结构化设设计方法法2/9//202036软件工程程的需求规规格说明明中弄清清数据流流加工的的过程,,对于发发现的问问题及时时解决。。然后根据数据据流图确确定数据据处理的的类型。典型的的类型有有两种::变换型型和事务务型。针针对两种种不同类型型分别进进行分析析处理。。由数据流流图推导导出系统的的初始结结构图。利用一些些启发式式原则改进系统统初始结结构图,直到得得到符合合要求的的结构图图为止。。修改和补补充数据据字典。。制定测试计划划。2/9//202037软件工程程在系统结结构图中中的模块块传入模块块─从下下属模块块取得数数据,经经过某些些处理,,再将将其传送送给上级级模块。。它传送送的数据据流叫做做逻辑输输入数据据流。传出模块块─从上上级模块块获得数数据,进进行某些些处理,,再将其其传送给给下属模模块。它它传送的的数据流流叫做逻逻辑输出出数据流流。变换模块块─它从从上级模模块取得得数据,,进行特特定的处处理,转转换成其其它形式式,再再传送回回上级模模块。2/9//202038软件工程程协调模块块─对所所有下属属模块进进行协调调和管理理的模块块。传入模块AA传出模块DD变换模块AB协调模块AABB2/9//202039软件工程程系统结构构图的基基本符号号模块调用数据控制信息转接符号系统结构图的基本符号选择(判断)重复2/9//202040软件工程程模块调用示例(a)调用(b)判断调用(c)循环调用2/9//202041软件工程程数据:模块之之间传送送的数据据用带空心圆圆的箭头头表示,并并在旁边边标上数数据名。。控制信息息:控制信信息与数数据的主主要区别别是前者者只反映映数据的的某种状状态。模块间的数据传递AB(a)xyz查职工简历读人事文件(b)职工号简历数据无此职工2/9//202042软件工程程数据处理理的类型型在需求分分析阶段段,面向向数据流流的SA方法产产生数据据流图DFD。。在软件设设计阶段段,面向向数据流流的SD方法将将DFD转换成成程序结结构图。。数据处理理即为在在DFD中从系系统的输输入数据据流到系系统的输输出数据据流所经经历的一一连串连连续变换换。数据处理理的类型型分为变变换流型型与事务务流型。。2/9//202043软件工程程变换流数据沿着着输入通路路进入系统统,经过过一系列列数据变变换,将将数据的的外部形形式转换换成对应应的内部部表示,,然后通通过变换中心心(也称主主加工))处理,,再沿着着输出通路路转换成外外部形式式离开系系统。具具有这种种特性的的数据流流称为变变换流。。变换流型型DFD可以分分成:输入+变变换中心心(主加加工)++输出输入数据C变换数据CD输出数据D2/9//202044软件工程程相应于取取得数据据、变换换数据、、给出数数据,变变换流型型系统结结构图由由输入、、变换中中心和输输出等三三部分组组成。主模块B变换成C输入B输出CA变换成B输入AC变换成D输出DAABBBCCCDD2/9//202045软件工程程事务流数据沿着着输入通路路到达一个个事务中心心,事务中中心根据据输入数数据(即即事务))的类型型在若干干个动作作(称为为活动流流)中选选择一个个来执行行,这种种数据流流也称为为事务流流。事务流有有明显的的事务中中心,各各活动流流以事务务中心为为起点呈呈辐射状状流出。。在事务流流型系统统结构图图中,事事务中心心模块按按所接受受的事务务的类型型,选择择某一事事务(活活动流))处理模模块执行行。各事事务处理理模块并并列。2/9//202046软件工程程事务中心分派模块输出结果事务1输入作业信息事务2事务3事务4作业信息作业信息结果结果操作1操作2操作3操作4操作5操作6细节1细节2细节3细节4细节5细节62/9//202047软件工程程变换分析析变换分析析从变换换流型的的数据流流图导出出系统结结构图..步骤重画数据据流图;;区分有效效(逻辑辑)输入入、有效效(逻辑辑)输出出和变换换中心部部分;进行一级级分解,,设计模模块结构构的顶层层和第一一层模块块;进行二级级分解,,设计输输入、输输出和中中心变换换部分的中中、下层层模块。。2/9//202048软件工程程1.重画数据据流图((平铺))为了建立立系统结结构,将将数据流流图平铺铺开来,,物理输输入画在在左侧,,物理输输出画在在右侧。。如果一个个外部实实体既是是物理输输入又是是物理输输出,则则两侧都都要画出出它。ABBCEGGHDFCDEABCDEFGH物理输入物理输出2/9//202049软件工程程2.确定逻辑辑输入、、逻辑输输出和变换中中心部分分变换中心心是程序序的核心心功能,,它的输输入是逻逻辑输入入,它的的输出为为逻辑输输出。变换中心ABBCEGGHDFCDEABCDEFGH物理输入物理输出逻辑输入逻辑输出2/9//202050软件工程程3.第一级分分解:设计模块块结构的的顶层和和第一层层顶层模块块:其功功能就是是整个系系统的功功能;输入控制制模块::接收所所有的输输入数据据;变换控制制模块::实现输输入到输输出的变变换;输出控制制模块::产生所所有的输输出数据据。顶层模块变换控制输出控制输入控制2/9//202051软件工程程变换中心ABBCEGGHDFCDEABCDEFGH物理输入物理输出逻辑输入逻辑输出主模块CD,E输入C输出D输出ECCD,EDE逻辑输入入变换中心心逻辑输出出2/9//202052软件工程程4.第二级分分解:设设计中、、下层模模块输入控制制模块的的分解::从变换换中心的的边界开开始,沿沿着各输输入通路路,把输输入通路路上的每每个加工工映射成成输入控控制模块块的一个个低层模模块。输出控制制模块的的分解::从变换换中心的的边界开开始,沿沿着各输输出通路路,把输输出通路路上的每每个加工工映射成成输出控控制模块块的一个个低层模模块。变换控制制模块的的分解::变换控控制模块块通常没没有通用用的分解解方法,,应根据据数据流流图中变变换部分分的实际际情况进进行设计计。2/9//202053软件工程程输出HGHABBCEGGHDFCD,EABCDEFGH物理输入入物理输出出主模块CD,E输入C输出D输出ECCD,EDE输入BBBCBC输入AABABA输出GEG输出FDFDFFEGGGHH2/9//202054软件工程程输出HGHABBCEGGHDFCD,EABCDEFGH物理输入入物理输出出主模块CD,E输入C输出D输出ECCD,EDE输入BBBCBC输入AABABA输出GEG输出FDFDFFEGGGHH2/9//202055软件工程程事务分析析事务分析析是从事事务流型型数据流流图导出出系统结结构图。。步骤:确定事务务中心和和每条活活动流的的流特性性将事务流流型数据据流图映映射成高高层的系系统结构构进一步分分解2/9//202056软件工程程1.确定事务务中心和和各活动动流的流流特性右图为事事务流型型DFD的一般般形式。。事务中心心(图中的的T)::位于活动动流的起起点,活动流从从该点成成辐射状状流出。。活动流::可为变换换流可为事务务流事务流型型的DFD的组组成:输入流++事务中中心+若若干条活活动流T输入流事务流活动流2/9//202057软件工程程右图为事事务流型型DFD的高层层结构形形式。顶层模块块:其功功能就是是整个系系统的功功能。接收模块块:接收收输入数数据。分派模块块:调度度模块,,控制下层层的所有有活动模模块。事务模块块:对应应活动流流,是该活动动流映射射成的。。2.将事务流流型DFD映射成高层系统统结构…顶层模块分派接收事务1事务2事务n2/9//202058软件工程程3.进一步分分解接收模块块:类同同于变换换分析中中输入控控制模块块的分解解。活动流模模块:根根据其流流特性((变换流流或事务务流)进进一步采采用变换换分析或或事务分分析进行行分解。。2/9//202059软件工程程模块设计计的原则则在选择模模块设计计的次序序时,必必须对一一个模块块的全部部直接下下属模块块都设计计完成之之后,才才能转向向另一个个模块的的下层模模块的设设计。使用“黑黑盒”技技术:在在设计计当前模模块时,,先把该模模块的所所有下层层模块定定义成“黑盒””,在设计计中利用用它们时时暂不考考虑其内内部结构构和实现现。在这这一步定定义好的的“黑盒盒”,在在下一步步就可以以对它们们进行设设计和加加工。最最后,全全部“黑黑盒”的的内容和和结构应应完全被被确定。。2/9//202060软件工程程在设计下下层模块块时,应应考虑模模块的耦合和内聚问题,以以提高初初始结构构图质量量。模块划分分时,一一个模块块的直接接下属模模块一般般在5个左左右。如如果直接接下属模模块超过过10个,,可设立立中间层层次。如果出现现以下情情况,就就停止模模块分解解:模块不能能再细分分为明显显的子任任务;分解成用用户提供供的模块块或库函函数;模块接口口是输入入输出设设备传送送的信息息;模块不宜宜再分解解得过小小。2/9//202061软件工程程变换分析析是软件件系统结结构设计计的主要要方法。。一般,一一个大型型的软件件系统是是变换型型结构和和事务型型结构的的混合结结构。所所以,我我们通常常利用以以变换分分析为主主,事务务分析为为辅的方方式进行行软件结结构设计计。2/9//202062软件工程程abdpqrsbac1d分派模块事务控制qrs接受通路p2/9//202063软件工程程模块功能能完善化化一个完整整的模块块应当有有以下几几部分::执行规定定的功能能的部分分;出错处理理的部分分。当模模块不能能完成规规定的功功能时,,必须回回送出错错标志,,出现例例外情况况的原因因。如果需要要返回数数据给它它的调用用者,在在完成数数据加工工或结束束时,应应当给给它的调调用者返返回一个个状态码码。改进系统统结构的的启发式式原则2/9//202064软件工程程消除重复复功能,,改善软软件结构构完全相似似:在结构构上完全全相似,,可能只只是在数数据类型型上不一一致。此此时可以以采取完完全合并并的方法法。局部相似似:找出其其相同部部分,分分离出去去,重新新定义成成一个独独立的下下一层模模块。还还可以与与它的上上级模块块合并。。2/9//202065软件工程程R1R2XY相似部分R1R2XYR1+R2XYX+R1Y+R2R1Y+R2X不可取开关太多2/9//202066软件工程程模块的作作用范围围应在控控制范围围之内模块的控制范围围包括它本本身及其其所有的的从属模模块。模块的作用范围围是指模块块内一个个判定的的作用范范围,凡凡是受这这个判定定影响的的所有模模块都属属于这个个判定的的作用范范围。如果一个个判定的的作用范范围包含含在这个个判定所所在模块块的控制制范围之之内,则则这种结结构是简简单的,,否则,,它的结结构是不不简单的的。2/9//202067软件工程程尽可能减减少高扇扇出结构构如果一个个模块的的扇出数数过大,,就意味味着该模模块过分分复杂,,需要协协调和控控制过多多的下属属模块。。应当适适当增加加中间层层次的控控制模块块。PPP1P22/9//202068软件工程程避免或减减少使用用病态联联接直接病态态联接公共数据据域病态态联接通信模块病态态联接ABcommonABTABLEITABABxxxx(a)直接病态态联接(b)公共数据据域病态联接接(c)通信模块块病态联接接2/9//202069软件工程程模块的大大小要适适中。设计功能能可预测测的模块块一个功能能可预测测的模块块,不不论内内部处理理细节如如何,但但对相同同的输入入数据,,总能产产生同样样的结果果。但是是,如果果模块内内部蕴藏藏有一些些特殊的的鲜为人人知的功功能时,,这个模模块就可可能是不不可预测测的。对对于这种种模块,,如果调调用者不不小心使使用,其其结果将将不可预预测。2/9//202070软件工程程保存当前标记恢复“以前”标记标记?标记?功能不可可预测的的模块2/9//202071软件工程程在过程设设计阶段段,要决决定各个个模块的的实现算算法,并并精确地地表达这这些算法法。对每个模模块规定定的功能能以及算算法的设设计,给给出适当当的算法法描述::图形工具具:程序序流程图图,N-S,PAD,HIPO表格工具具:判定定表语言工具具:PDL,HIPO3.5过程设计计(详细细设计))2/9//202072软件工程程程序流程程图ABABPA1P=1A2=2An=nTSPFFSPT顺序型选择型先判断重复型后判断重复型多分支选择型2/9//202073软件工程程gabfx1x4x5x6x2x3入口hijcde出口流程图示例FFFFFTTTTTswitchdo-whiledo-whilewhile-do=1=2=32/9//202074软件工程程N-S图图ABPFTABPFTAwhile-doPAdo-whilePAP=1=2…=nA1A2…An顺序型选择型(1)选择型(2)先判断重复型后判断重复型多分支选择型2/9//202075软件工程程N-S图(盒图图)示例例do-while
x6abx1TTFFx2x4f=1=2=3gido-while
x5hdecwhile-do
x6j2/9//202076软件工程程问题分析析图(PAD)S1SA1A2AnPPP=1=2=nwhile
PSSS1S2S2untilP选择型顺序型多分支选选择型先判断重重复型后判断重重复型2/9//202077软件工程程PAD示例while-dox3bfgx1ado-whilex6jx4do-whilex5hicdex2=1=2=32/9//202078软件工程程PDL((ProgramDesignLanguage)PDL是是一种用用于描述述功能模模块的算算法设计计和加工工细节的的语言。。称为设设计程序序用语言言。它是是一种伪伪码。伪码的语语法规则则分为““外语法法”和““内语法法”。PDL具具有严格格的关键键字外语语法,用用于定义义控制结结构和数数据结构构,同时时它的表表示实际际操作和和条件的的内语法法可使用用自然语语言的词词汇。2/9//202079软件工程程示例:拼词检查查程序PROCEDUREspellcheckBEGIN--*splitdocumentintosinglewordsLOOPgetnextwordaddwordtowordlistinsortorderEXITWHENallwordsprocessedENDLOOP--*lookupwordsindictionaryLOOPgetwordfromwordlist2/9//202080软件工程程IFwordnotindictionaryTHEN--*displaywordsnotindictionarydisplaywordpromptonuserterminalIFuserresponsesayswordOKTHENaddwordtogoodwordlistELSEaddwordtobadwordlistENDIFENDIFEXITWHENallwordsprocessedENDLOOP2/9//202081软件工程程--*createanewwordsdictionarydictionary:=mergedictionaryandgoodwordlistENDspellcheck为了区别别关键字字,规定定关键字字一律大大写,其其它单词词一律小小写。内语法使使用自然然语言来来描述处处理特性性。内语语法比较较灵活,,只要写写清楚就就可以,,不必考考虑语法法错,以以利于人人们可把把主要精精力放在在描述算算法的逻逻辑上。。2/9//202082软件工程程判定表决策表用用于表示示程序的的静态逻逻辑在决策表表中的条条件部分分给出所所有的两两分支判判断的列列表,动动作部分分给出相相应的处处理要求将程程序流程程图中的的多分支支判断都都改成两两分支判判断2/9//202083软件工程程gabfx1x6x7x8x2x5入口hijcde出口FFFFFTTTTTswitchdo-whiledo-whilewhile-dox3x4FFFTTT无多分支支判断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年轨道工程橡胶制品项目立项申请报告
- 2025年气体检测设备项目申请报告模稿
- 第三单元第14课二、《动作的应用》教学设计 2023-2024学年人教版初中信息技术七年级下册
- 2025年生活用橡胶制品:塑胶盒项目规划申请报告模稿
- 混凝土浇灌报告范文
- 2025年羧酸衍生物项目申请报告模范
- 2025年氰化物中毒解毒药项目立项申请报告
- 2024浙江金华市武义供销农贸城招聘6人笔试参考题库附带答案详解
- 第18课《我的白鸽》教学设计 2024-2025学年统编版语文七年级上册
- 第二单元图像处理的基本方法第8课二、《应用通道合成图像》教学设计 2023-2024学年人教版初中信息技术七年级下册
- 更年期综合症研究白皮书
- 《学习共同体-走向深度学习》读书分享
- 互联网视域下微纪录片情感化叙事研究-以《早餐中国》为例
- 芋头种植技术要点
- 【基于近五年数据的鸿星尔克财务报表分析15000字】
- 公司员工奖惩制度流程
- 星巴克案例分析-星巴克成功之道
- 静脉炎预防和处理课件
- 船舶种类与特点
- 2023年中国兵器人才学院校园招聘笔试参考题库附带答案详解
- 曲轴加工工艺卡片
评论
0/150
提交评论