软件工程导论(4)软件设计_第1页
软件工程导论(4)软件设计_第2页
软件工程导论(4)软件设计_第3页
软件工程导论(4)软件设计_第4页
软件工程导论(4)软件设计_第5页
已阅读5页,还剩162页未读 继续免费阅读

下载本文档

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

文档简介

软件工程导论(4)

——软件设计南京理工大学汪惠芬2004年9月19日第四章软件设计4.1软件设计概述4.2软件设计的图形化工具4.3软件设计模块化4.4结构化设计方法4.5结构化数据系统开发方法4.6Jackson系统开发方法4.7本章小结概述图形工具SD方法JSD本章小结模块化DSSD4/20/20232.4.1软件设计概述对于任何工程项目来说,在它施工之前,总要完成设计。因此,设计往往是开发活动的第一步。通常人们把设计定义为:“应用各种技术和原理,对设备、过程或系统作出足够详细的定义,使之能够在物理上得以实现”。概述图形工具SD方法JSD本章小结模块化DSSD4/20/20233.4.1软件设计概述软件的设计与其它领域的工程设计一样,也需要有好的方法、好的分析策略等等。把软件设计看作仅仅是程序设计或者编制程序,这是很片面的。实际上,程序设计只是软件设计的实现,不能把它们混同起来。概述图形工具SD方法JSD本章小结模块化DSSD4/20/20234.4.1软件设计概述4.1.1软件设计的目标4.1.2开发阶段的信息流4.1.3软件设计的任务概述图形工具SD方法JSD本章小结模块化DSSD4/20/20235.4.1.1软件设计的目标软件设计的总体目标是根据需求分析而得到的SRS,确定恰当实现软件功能、性能要求集合的软件系统结构,实现算法和数据结构。简单地说,就是根据需求分析的“要做什么(Whattodo?)”确定系统应该“怎么做(Howtodo)”。概述图形工具SD方法JSD本章小结模块化DSSD4/20/20236.4.1.1软件设计的目标软件设计的过程,就是从抽象的需求规格项具体的程序与数据集合进行变换的过程。软件设计的结果是软件设计说明书。软件设计可以采用多种方法,如结构化设计(SD)方法,面向数据结构的方法和面向对象的方法等。概述图形工具SD方法JSD本章小结模块化DSSD4/20/20237.4.1.2开发阶段的信息流一旦软件需求确定之后,就进入开发阶段。开发阶段由三个互相关联的步骤组成:设计、编码和测试。每个步骤都按某种方式进行信息交换,最后得到有效的计算机软件。概述图形工具SD方法JSD本章小结模块化DSSD4/20/20238.4.1.2开发阶段的信息流概述图形工具SD方法JSD本章小结模块化DSSD设计编码测试信息域需求功能与性能需求数据设计系统结构设计过程设计程序模块组装好的有效的软件数据结构的定义定义软件系统各主要成分之间的关系把结构成分转换成软件的过程性描述4/20/20239.4.1.3软件设计的任务软件设计是一个把软件需求变换成软件表示的过程。最初这种表示只是描绘出系统的总的框架,然后进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于源程序的软件表示。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202310.4.1.3软件设计的任务从工程管理的角度来看,软件设计分两步完成:概要设计,将软件需求转化为数据结构和软件的系统结构;详细设计,即过程设计,通过对结构表示进行细化,得到软件的详细的数据结构和算法。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202311.4.1.3软件设计的任务概要设计需要完成的工作:(1)制定规范阅读和理解软件需求说明书根据目标确定最合适的设计方法规定设计文档的编制标准以及它们的优先顺序概述图形工具SD方法JSD本章小结模块化DSSD4/20/202312.4.1.3软件设计的任务概要设计需要完成的工作:(2)软件系统结构的总体设计采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构确定每个模块的功能,建立与已确定的软件需求的对应关系确定模块间的调用关系确定模块间的接口,即模块间传递的信息,设计接口的信息结构评估模块划分的质量及导出模块结构的规则概述图形工具SD方法JSD本章小结模块化DSSD4/20/202313.4.1.3软件设计的任务概要设计需要完成的工作:(3)处理方式设计确定为实现软件系统的功能需求所必需的算法,评估算法的性能确定为满足软件系统的性能需求所需的算法和模块间的控制方式(性能设计)确定外部信号的接收发送形式概述图形工具SD方法JSD本章小结模块化DSSD4/20/202314.4.1.3软件设计的任务概要设计需要完成的工作:(4)数据结构设计确定输入、输出文件的详细的数据结构解和算法设计,确定算法所必需的逻辑数据结构及其操作确定对逻辑数据结构所必需的那些操作的程序模块(软件包)若需要与操作系统或调度程序接口所必需的控制表等数据时,确定其详细的数据结构和使用规则数据的保护性设计概述图形工具SD方法JSD本章小结模块化DSSD4/20/202315.4.1.3软件设计的任务概要设计需要完成的工作:(5)可靠性设计可靠性设计也叫质量设计。在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和维护。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202316.4.1.3软件设计的任务概要设计需要完成的工作:(6)编写概要设计阶段的文档概要设计说明书数据库设计说明书用户手册制定初步的测试计划概述图形工具SD方法JSD本章小结模块化DSSD4/20/202317.4.1.3软件设计的任务概要设计需要完成的工作:(7)概要设计评审概述图形工具SD方法JSD本章小结模块化DSSD可追溯性接口风险实用性技术清晰度可维护性质量各种选择方案限制其他具体问题4/20/202318.4.1.3软件设计的任务详细设计需要完成的工作:(1)确定软件各个组成部分内的算法以及各部分的内部数据组织(2)选定某种过程的表达形式来描述各种算法(3)进行详细设计的评审概述图形工具SD方法JSD本章小结模块化DSSD4/20/202319.4.1.3软件设计的任务软件设计的最终目的是要取得最佳方案,所谓“最佳”,是指:在所有候选方案中,以节省开发费用、降低资源消耗、缩短开发时间为条件,选择能够赢得较高的生产效率、较高的可靠性和可维护性的方案。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202320.4.1.3软件设计的任务在整个设计过程中,各个时期的设计结果需要经过一系列的设计质量的评审,以便及时发现和及时解决在软件设计中出现的问题,防止把问题遗留到开发的后期阶段,造成后患。在评审以后,必须针对评审中发现的问题,对设计的结果进行必要的修改。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202321.4.1.3软件设计的任务软件设计流程概述图形工具SD方法JSD本章小结模块化DSSD检查需求说明书和数据要求设计数据库评审评审使设计与DBMS相匹配选择数据库管理系统DBMS估计设计规模,安排进度设计接口修订数据词典编写概要设计文档鉴定已有软件检查数据流建立模块—功能矩阵设计总体结构分配需求改编已有软件进行分析确定改变软件的需求修订概要设计文档进行详细设计4/20/202322.4.2.1程序结构

——树状结构和网状结构4.2.2程序结构图4.2.3层次图4.2.4IPO图4.2软件设计的图形化工具概述图形工具SD方法JSD本章小结模块化DSSD4/20/202323.4.2.1程序结构

——树状结构和网状结构程序结构表明了程序各个部分(模块)的组织情况,它通常是树状结构或网状结构,并蕴含了在程序控制上的层次关系。但程序结构是软件的过程表示,并未表明软件的某些过程性特征,如软件的动态特性。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202324.4.2.1程序结构

——树状结构和网状结构树状结构概述图形工具SD方法JSD本章小结模块化DSSDABCEFDHIG0层主模块1层2层3层4/20/202325.4.2.1程序结构

——树状结构和网状结构树状结构特点整个结构只有一个顶层模块,而对于任何一个下属模块来说,它只有一个上级模块,而且同一层模块之间不发生联系。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202326.4.2.1程序结构

——树状结构和网状结构网状结构概述图形工具SD方法JSD本章小结模块化DSSDABCDABCDE4/20/202327.4.2.1程序结构

——树状结构和网状结构网状结构特点任意两个模块之间都可以有双向的关系。由于不存在上级模块和下属模块的关系,也就分不出层次来。任何两个模块都是平等的,没有从属关系。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202328.4.2.2程序结构图结构图(SC,StructureChart)是精确表达程序结构的图形表示方法。它作为软件文档的一部分,清楚地反映出程序中模块之间的层次调用关系和联系。它不仅严格地定义了各个模块的名字、功能和接口,而且还集中地反映了设计思想。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202329.4.2.2程序结构图结构图的主要内容:(1)模块:用矩形表示,用模块名字标记。不同类型的模块分别用以下方式表示:概述图形工具SD方法JSD本章小结模块化DSSD计算每月利息计算利息打印出错信息计算月销售额以功能作模块名以功能缩写作模块名已定义模块子程序(或过程)4/20/202330.4.2.2程序结构图结构图的主要内容:(2)模块的调用关系和接口:用单向箭头联结,箭头从调用模块指向被调用模块。概述图形工具SD方法JSD本章小结模块化DSSDAB调用模块被调用模块模块A调用了模块B,B执行完成后,控制又返回A4/20/202331.4.2.2程序结构图结构图的主要内容:(3)模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行,而被调用模块在执行过程中又把它产生的数据或控制信息回送给调用模块。为了表达模块之间的数据或控制信息,在连接模块的箭头旁边给出注有信息名字的短箭头,并用尾端带空心圆的短箭头表示数据信息,尾端带实心圆的短箭头表示控制信息。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202332.4.2.2程序结构图结构图的主要内容:(3)模块间的信息传递:示例概述图形工具SD方法JSD本章小结模块化DSSDA查询学生成绩B查找学生记录学号查找成功信号记录地址数据信息控制信息4/20/202333.4.2.2程序结构图结构图的主要内容:(4)两个辅助符号:菱形符号:表示一个模块有条件地调用另一个模块,无需注明条件调用所依赖的条件弧形符号:表示一个模块反复地调用另一个或多个模块,无需注明循环调用所依赖的控制条件概述图形工具SD方法JSD本章小结模块化DSSD4/20/202334.4.2.2程序结构图结构图的主要内容:(4)两个辅助符号:示例模块A有条件地调用模块B,模块A多次调用模块C,…,D。概述图形工具SD方法JSD本章小结模块化DSSDABCD…4/20/202335.4.2.2程序结构图结构图的主要内容:(5)结构图的形态特征:上级模块调用下级模块。一个模块能够直接或间接调用的所有模块称为该模块的从属模块;能够直接或间接调用制定模块的所有模块称为该模块的上级模块。上级模块与从属模块之间存在主从关系,即自上而下“主宰”,自下而上“从属”,而同一层的模块之间并没有这种主从关系。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202336.4.2.2程序结构图结构图示例:概述图形工具SD方法JSD本章小结模块化DSSDMABCDEKFGHIJTLNPQRS主宰从属4/20/202337.4.2.2程序结构图结构图的主要内容:(5)结构图的形态特征:一个模块如果调用了多个下属模块,这些下属模块在结构图中所处的左右位置是无关紧要的,但如果对下属模块的调用次序不是任意的,一般采用从左向右的顺序排列。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202338.4.2.2程序结构图结构图的主要内容:(5)结构图的形态特征:示例概述图形工具SD方法JSD本章小结模块化DSSDMABCMCABMBCA同一结构图的几种画法4/20/202339.4.2.2程序结构图结构图的主要内容:(5)结构图的形态特征:结构图的深度:在多层次的结构图中,其模块结构的层次树称为结构图的深度。它反映了程序结构的规模和复杂程度。对于中等规模的程序,其结构图的深度约为10左右,对于大型程序,其深度可达几十层。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202340.4.2.2程序结构图结构图示例:概述图形工具SD方法JSD本章小结模块化DSSDMABCDEKFGHIJTLNPQRS深度=54/20/202341.4.2.2程序结构图结构图的主要内容:(5)结构图的形态特征:结构图的宽度:结构图中同一层模块的最大模块数称为结构图的宽度。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202342.4.2.2程序结构图结构图示例:概述图形工具SD方法JSD本章小结模块化DSSDMABCDEKFGHIJTLNPQRS宽度=74/20/202343.4.2.2程序结构图结构图的主要内容:(5)结构图的形态特征:模块的扇入和扇出:扇出表示一个模块直接调用(或控制)的其它模块数。扇入则定义为调用(或控制)一个给定模块的模块数。而多扇入的模块通常是公共模块。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202344.4.2.2程序结构图结构图示例:概述图形工具SD方法JSD本章小结模块化DSSDMABCDEKFGHIJTLNPQRS扇出=3扇出=2扇入=1扇入=44/20/202345.4.2.3层次图概述在软件总体设计中,常常使用层次图描述系统的模块功能分解。层次图中每个矩形框可以看作一个功能模块,矩形框之间的连线可以看作调用关系。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202346.4.2.3层次图概述层次图和结构图中处于同一层次的各模块框并不严格表示模块的调用顺序。但是习惯上可以按照调用次序从左画倒右。通常上层模块除调用下层模块语句以外还有其他语句。因此层次图和结构图只表示了模块之间的调用关系。利用层次图作为描述软件结构的文档比较通俗易懂。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202347.4.2.3层次图图例(正文加工系统的层次图)概述图形工具SD方法JSD本章小结模块化DSSD正文加工系统输入1.0编辑2.0加标题3.0存储4.0检索5.0编目录6.0格式化7.0输出8.0添加2.1删除2.2插入2.3修改2.4合并2.5列表2.64/20/202348.4.2.4IPO图概述IPO(Input-Press-Output)图是由IBM发展的一种描述输入/输出数据对应关系的图形工具。它由输入框(列出输入数据)、处理框(列出主要处理)和输出框(列出输出数据)组成。处理框中的序号表示各处理执行的顺序。各框之间的数据通信关系由箭头表示。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202349.4.2.4IPO图IPO图示例输入框

处理框

输出框概述图形工具SD方法JSD本章小结模块化DSSD旧的主文件事务文件1.校验主记录2.校验事务记录3.更新主记录有效的主记录有效的事务记录更新后的文件4/20/202350.4.2.4IPO图概述图形工具SD方法JSD本章小结模块化DSSDIPO表工程实践中将层次图与IPO图的思想相结合,对层次图中的每个方框采用IPO表进行说明。这种文档格式既可以用于软件总体设计,也可以用于系统局部的详细设计。4/20/202351.4.2.4IPO图IPO表示例概述图形工具SD方法JSD本章小结模块化DSSDIPO表系统:作者:模块:日期:编号:被调用:调用:输入:输出:处理:局部数据单元:4/20/202352.目前,模块化方法已为所有工程领域所接受。模块化设计带来了许多好处。一方面,模块化设计降低了系统的复杂性,使得系统容易修改;另一方面,推动了系统各个部分的并行开发,从而提高了软件的生产效率。4.3软件设计模块化概述图形工具SD方法JSD本章小结模块化DSSD4/20/202353.4.3.1模块(Module)4.3.2模块独立性(Independence)4.3.3模块间的耦合性(Coupling)4.3.4模块的内聚性(Cohesion)4.3.5信息隐蔽4.3软件设计模块化概述图形工具SD方法JSD本章小结模块化DSSD4/20/202354.4.3.1模块(Module)概述图形工具SD方法JSD本章小结模块化DSSD概述模块,又称构件,一般只用一个名字可调用的一段程序。类似于高级语言中的procedure(过程)、function(函数)、subroutine(子程序)、section(节)、block(块)等。4/20/202355.4.3.1模块(Module)概述图形工具SD方法JSD本章小结模块化DSSD模块的基本属性:功能:该模块实现什么功能,做什么事情。包括其本身的功能和它所调用的所有子模块的功能。逻辑:描述模块内部怎么做。状态:该模块使用时的环境和条件。4/20/202356.4.3.1模块(Module)概述图形工具SD方法JSD本章小结模块化DSSD模块的特征:外部特征:模块的模块名、参数表、其中的输入和输出参数以及给程序以至整个系统造成的影响。内部特征:完成模块功能的程序代码和仅供该模块内部使用的数据。4/20/202357.4.3.2模块独立性概述图形工具SD方法JSD本章小结模块化DSSD概述模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。4/20/202358.4.3.2模块独立性概述图形工具SD方法JSD本章小结模块化DSSD模块独立性度量准则:模块间的耦合性:模块之间互相连接的紧密程度的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而其模块独立性就越弱。模块的内聚性:一个模块内部各个元素之间的紧密程度的度量。一个模块内部各个元素之间的联系越紧密,内聚性就越高,它与其它模块的耦合性就会减低,而模块独立性越强。因此,模块独立性比较强的模块应是高内聚低耦合的模块。4/20/202359.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD概述耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间接口的负责程度、调用模块的方式以及哪些信息通过接口。4/20/202360.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD概述一般模块之间可能的连接方式有七种,构成耦合性的七种类型。它们之间的关系为:低耦合性高非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合强模块独立性弱4/20/202361.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(1)非直接耦合(nondirectcoupling):两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用实现的。这种耦合的模块独立性最强。4/20/202362.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(2)数据耦合(datacoupling):一个模块访问另一个模块时,彼此之间通过数据参数(不是控制参数、公共数据结构或外部变量)交换输入、输出信息。它是一种松散的耦合,模块独立性较强。按数据耦合开发的程序界面简单、安全可靠。在软件程序结构中至少必须有这类耦合。4/20/202363.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(3)标记耦合(stampcoupling):一组模块通过参数表传递记录信息。这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。这要求这些模块都必须清楚该记录的结构,并按结构要求对此记录进行操作。在设计中应尽量避免这种耦合。4/20/202364.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(4)控制耦合(controlcoupling):一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一个模块的功能。它是只是在单一接口上选择多功能模块中的某项功能。对被控制模块的任何修改,都会影响控制模块。同时,控制模块必须知道被控制模块内部的一些逻辑关系,这些都会降低模块的独立性。4/20/202365.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(4)控制耦合:示例。Af1f2f1…FlagFlagB4/20/202366.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(5)外部耦合(externalcoupling):一组模块都访问同一全局变量而不是统一全局数据结构,而且不是通过参数表传递该全局变量的信息。4/20/202367.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(6)公共耦合(commoncoupling):一组模块都访问同一个公共数据环境。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。4/20/202368.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(6)公共耦合:将引起的问题所有公共耦合模块都与某一个公共数据环境内部各项的物理安排有关,若某个数据的大小被改变,将会影响所有的模块无法控制各个模块对公共数据的存取,严重影响软件模块的可靠性和适应性公共数据的使用,明显降低了程序的可读性4/20/202369.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(7)内容耦合(contentcoupling):如果发生下列情形,两个模块之间就发生了内容耦合:一个模块直接访问另一个模块的内部数据一个模块不通过正常入口转入另一个模块内部两个模块有一部分程序代码重迭(只可能出现在汇编语言中)一个模块有多个入口4/20/202370.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD耦合性的类型:(7)内容耦合:示例ABABentry1……entry2……进入另一模块内部模块代码重迭多入口模块4/20/202371.4.3.3模块耦合性概述图形工具SD方法JSD本章小结模块化DSSD目标模块化设计的最终目标,是希望建立模块间耦合尽可能松散的系统。4/20/202372.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD概述一个内聚程度高的模块应当只完成软件过程中的一个单一的任务,而不与程序的其它部分的过程发生联系。也就是说,一个内聚性高的模块(在理想情况下)应当只做一件事。4/20/202373.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD概述一般模块的内聚性分为七种类型。它们之间的关系为:高内聚性低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚强功能单一模块独立性弱功能分散4/20/202374.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(1)功能内聚(functionalcohesion):一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作、紧密联系、不可分割的。其模块间的耦合简单。4/20/202375.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(2)信息内聚(informationalcohesion):一个模块完成多个功能,各个功能都在同一个数据结构上操作,每一项功能有一个唯一的入口点。可看成是多个功能内聚模块的组合,并且达到信息的隐蔽。其优点是:当把程序某些方面细节隐藏在一个模块时,各个模块的独立性就增强了。4/20/202376.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(2)信息内聚:示例符号表查找登录删除修改4/20/202377.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(3)通信内聚(communicationalcohesion):一个模块内功能各部分都是用了相同的输入数据,或产生了相同的输出数据。这种模块通常是通过数据流图来定义的。其内聚程度比过程内聚模块高,但由于模块中各功能使用了相同的输入/输出缓冲区,因而降低了整个系统的效率。4/20/202378.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(3)通信内聚:示例打印检验结果读卡片文件计算A计算B读文件合并修改文件新文件文件A结果B结果A/B数据A/B卡片加工记录获得A/B数据4/20/202379.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(4)过程内聚(proceduralcohesion):一个模块内的处理是相关的,而且必须以特定次序执行。使用流程图作为工具设计程序时,常常通过流程图确定模块划分。把流程图中的某一部分划出组成模块,得到过程内聚模块。4/20/202380.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(5)时间内聚(classicalcohesion):又称经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。4/20/202381.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(6)逻辑内聚(logicalcohesion):这种模块把几种相关的功能组合在一起,每次被调用时,由传递给模块的判定参数确定该模块应执行哪一种功能。逻辑内聚模块表明了各部分之间在功能上的相关关系。但它所执行的不是一种功能,而是若干功能中的一种,因此它不易修改。同时,当调用时需要进行控制参数的传递,这就增加了模块间的耦合性。4/20/202382.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(6)逻辑内聚:示例调用模块f1f2f1…判定被调用模块4/20/202383.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(7)巧合内聚(coincidentalcohesion):又称偶然内聚。当模块各部分之间没有联系,或者即使有联系,这种联系关系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。4/20/202384.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD内聚性的类型:(7)巧合内聚:示例MSTOREREC()TONREADMASTERFILEADD1TOX……ABC4/20/202385.4.3.4模块内聚性概述图形工具SD方法JSD本章小结模块化DSSD模块的内聚性在系统的模块化设计中是一个关键的因素,软件概要设计的目标是力求增加模块的内聚性,尽量减少模块间的耦合性。但增加内聚性比减少耦合性更重要,应把更多的注意力集中到提高模块的内聚性上。4/20/202386.4.3.5信息隐蔽概述图形工具SD方法JSD本章小结模块化DSSD如何分解一个软件才能得到最佳的模块组合呢?为了明确怎样去做,需要了解什么是“信息隐蔽”。信息隐蔽是指每个模块的实现细节对于其它模块来说是隐蔽的,也就是说,模块中所包含的信息(包括数据和过程)不允许其他不需要这些信息的模块使用。4/20/202387.4.3.5信息隐蔽概述图形工具SD方法JSD本章小结模块化DSSD通常有效的模块化可以通过定义一组相互独立的模块来实现,这些模块相互间的通信仅仅使用对于实现软件功能来说是必要的信息。通过抽象,帮助我们确定组成软件的过程(或信息)实体,而通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制。4/20/202388.4.3.5信息隐蔽概述图形工具SD方法JSD本章小结模块化DSSD由于一个软件系统在整个软件生存期内要经过多次修改,所以在划分模块时要采取措施,使得大多数过程和数据对软件的其它部分是隐蔽的。这样,在将来修改软件时,偶然引入错误所造成的影响就可以局限在一个或几个模块内部,不致波及到软件的其它部分。4/20/202389.4.4结构化设计方法

——面向数据流的设计方法设计是一个将信息需求转换成数据结构、程序结构和过程性表示的多步骤过程。从系统设计的角度出发,软件设计方法可以分为三大类:面向数据流的设计方法或者过程驱动的设计方法面向数据结构的设计方法或者数据驱动的设计方法面向对象的设计方法概述图形工具SD方法JSD本章小结模块化DSSD4/20/202390.4.4结构化设计方法

——面向数据流的设计方法结构化设计(SD)方法是一种典型的面向数据流的软件总体设计方法。它是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。系统设计的基本目标是构造结构良好的程序系统。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202391.4.4结构化设计方法

——面向数据流的设计方法SD方法的实施要点:首先研究、分析数据流图然后根据数据流图决定问题的类型由数据流图推导出系统的初始结构图利用启发性原则改进系统的初始结构图,直到得到符合要求的结构图为止修改和补充数据词典制定测试计划概述图形工具SD方法JSD本章小结模块化DSSD4/20/202392.4.4结构化设计方法

——面向数据流的设计方法4.4.1典型的系统结构形式4.4.2变换分析4.4.3事务分析4.4.4SD方法的实施步骤4.4.5软件模块结构的改进概述图形工具SD方法JSD本章小结模块化DSSD4/20/202393.4.4.1典型的系统结构形式系统结构图中的模块在系统结构图中,称不能再分解的底层模块为原子模块。如果一个软件系统,它的全部实际加工(及数据计算或处理)都有底层的原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是完全因子分解的系统。这是最好的系统,实际上很难做到。概述图形工具SD方法JSD本章小结模块化DSSD4/20/202394.4.4.1典型的系统结构形式模块的类型传入模块:从下属模块取得数据,经过某些处理,再将其结果传送给上级模块。它传送的数据流叫逻辑输入数据流。概述图形工具SD方法JSD本章小结模块化DSSD传入模块AA4/20/202395.4.4.1典型的系统结构形式模块的类型传出模块:从上级模块取得数据,经过某些处理,再将其结果传送给下属模块。它传送的数据流叫逻辑输出数据流。概述图形工具SD方法JSD本章小结模块化DSSD传出模块DD4/20/202396.4.4.1典型的系统结构形式模块的类型变换模块:也叫加工模块。它从上级模块取得数据,进行特定的处理,转换成其他形式,再传送回上级模块。它传送的数据流叫变换数据流。大多数计算模块(原子模块)属于这一类。概述图形工具SD方法JSD本章小结模块化DSSD变换模块BC4/20/202397.4.4.1典型的系统结构形式模块的类型协调模块:对所有下属模块进行协调和管理的模块。在系统的输入/输出部分或数据加工部分可以找到这样的模块。在一个好的系统结构图中,协调模块应在较高层出现。概述图形工具SD方法JSD本章小结模块化DSSD协调模块XYYX4/20/202398.4.4.1典型的系统结构形式变换型数据处理问题的工作过程取得数据变换数据给出数据概述图形工具SD方法JSD本章小结模块化DSSD变换数据

CD取得数据

C给出数据

D4/20/202399.4.4.1典型的系统结构形式变换型系统结构图输入中心变换输出概述图形工具SD方法JSD本章小结模块化DSSDC变换成DCDDCB变换成CA变换成BD变换成E取得A取得B取得C给出D给出E主模块BABCABDEE12345输入输出中心变换4/20/2023100.4.4.1典型的系统结构形式事务型数据处理问题的工作过程接受输入数据(事务处理申请)分析事务类型根据事务类型选择活动通路概述图形工具SD方法JSD本章小结模块化DSSD事务中心

T事务…活动通路4/20/2023101.4.4.1典型的系统结构形式事务型系统结构图概述图形工具SD方法JSD本章小结模块化DSSD调度结果内部表示的作业分析作业读入作业输入已分析作业给出结果事务1事务中心作业作业已分析

的作业作业信息结果事务2事务3事务4操作1操作2操作3操作4操作5操作6细节2细节3细节4细节5细节6细节7细节1接受事务输出选择执行事务4/20/2023102.4.4.1典型的系统结构形式简化的事务型系统结构图概述图形工具SD方法JSD本章小结模块化DSSD结果得到作业给出结果事务1作业事务2事务3事务中心分析调度4/20/2023103.4.4.2变换分析概念变换分析是系统结构设计的一种策略。运用变换分析方法建立初始的变换型系统结构图,然后对它作进一步的改进,最后得到系统的最终结构图。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023104.4.4.2变换分析步骤1:重画数据流图注意点:重画时可以从物理输入到物理输出,或者相反。也可以自顶向下。图上不能出现控制逻辑。不要去管系统的开始和终止。省略每一个加工框的简单例外处理。当数据流进入和离开一个加工框时,要仔细地标记它们,不要重名。必要时也已使用逻辑运算符*和+。仔细检查每层数据流的正确性。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023105.4.4.2变换分析步骤2:在数据流图上区分系统的逻辑输入、逻辑输出和中心变换部分概述图形工具SD方法JSD本章小结模块化DSSD编辑格式化1检验计算ABC格式化2格式化3F1F2ED1D2输入流中心变换输出流物理输入物理输出逻辑输入逻辑输出4/20/2023106.4.4.2变换分析步骤3:进行一级分解,设计系统模块结构的顶层和第一层概述图形工具SD方法JSD本章小结模块化DSSD计算D2C取得C给出D2主模块给出D1D1AD1

D24/20/2023107.4.4.2变换分析步骤4:进行二级分解,设计中、下层模块概述图形工具SD方法JSD本章小结模块化DSSD计算D2C编辑格式化2取得A取得B取得C给出D2给出E主模块BAABD1EE给出D1D1AD1

D2检验BC格式化1给出F1D1F1F1格式化3给出F2EF2F24/20/2023108.4.4.2变换分析注意点(1)在选择模块的设计次序时,不一定要沿一条分支路径向下,直到该分支的最底层模块设计完成后,才开始对另一条分支路径的下一层进行设计。但是,必须对一个模块的全部直接下属模块都设计完成之后,才能转向另一个模块的下层模块的设计。如由图所示系统的模块设计次序为:概述图形工具SD方法JSD本章小结模块化DSSDBA主模块CFEGVUWAB

C

EFG……UVW…4/20/2023109.4.4.2变换分析注意点(2)在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图的质量。(3)注意“黑盒”技术的使用。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023110.4.4.3事务分析概念在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能。这种数据流叫做事务。事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统的结构图。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023111.4.4.3事务分析步骤(1)识别事务源(2)规定适当的事务型结构(3)识别各种事务和它们定义的操作(4)注意利用公共模块概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023112.4.4.3事务分析步骤(5)对每一事务,或对联系密切的一组事务,建立一个事务处理模块(6)对事务处理模块规定它们全部的下层操作模块(7)对操作模块规定它们的全部细节模块概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023113.4.4.3事务分析事务型问题实例概述图形工具SD方法JSD本章小结模块化DSSDLHA取得A给出H主模块NGBEMCFDILMNOABCDEFGH4/20/2023114.4.4.3事务分析变换-事务混合型问题实例概述图形工具SD方法JSD本章小结模块化DSSDABBCT2T1T3CDEJEHDEHKLMKLABB1B2B3C1C2C3DEFGHJKLM4/20/2023115.4.4.3事务分析变换-事务混合型问题实例概述图形工具SD方法JSD本章小结模块化DSSD变换KD调度BCKL取得B取得C取得D给出K给出LXX系统CiBBCiKLLDKCDCiDDEEHDELM给出MLMMFJHKFGFJEHHK取得AAABABT3T1T2B1C1C2B3C3B2操作1细节1操作2细节2操作m细节3细节n……事务型4/20/2023116.对数据流图进行复审求精利用变换/事务分析方法导出初始结构图根据结构化设计的启发式规则对初步结构设计进行求精确定各模块的接口规范和软件系统的全局数据结构概述图形工具SD方法JSD本章小结模块化DSSD4.4.4SD方法的实施步骤4/20/2023117.4.4.4SD方法的实施步骤概述图形工具SD方法JSD本章小结模块化DSSD精化数据流图确定逻辑输入、逻辑输出、变换中心映射为变换结构XX系统流类型复查确定事务中心和数据接受发送路径映射为变换结构按照启发式规则精化软件结构导出接口描述和全局数据结构变换分析事务分析4/20/2023118.4.4.5软件模块结构的改进规则1:模块功能的完善化一个完整的模块应当有:执行规定的功能的部分出错处理部分概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023119.4.4.5软件模块结构的改进规则2:消除重复功能,改善软件结构完全相似:合并局部相似:部分合并概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023120.X+R14.4.5软件模块结构的改进规则2:示例(局部相似)概述图形工具SD方法JSD本章小结模块化DSSDXR1YR2相似部分XYR1R2CommonX+R1Y+R2CommonYR2Common4/20/2023121.4.4.5软件模块结构的改进规则3:模块的作用范围应在控制范围之内模块的控制范围:模块本身及其所有的从属模块模块的作用范围:模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023122.4.4.5软件模块结构的改进规则3:示例概述图形工具SD方法JSD本章小结模块化DSSDBATOPCDGEBATOPCDGE作用范围不在控制范围内作用范围在控制范围内,但判定所在层次太高,数据传送量大,结构不好4/20/2023123.4.4.5软件模块结构的改进规则3:示例概述图形工具SD方法JSD本章小结模块化DSSDBATOPCDGEBATOPCDGE作用范围在控制范围内,较好的结构作用范围在控制范围内,比较理想的结构4/20/2023124.4.4.5软件模块结构的改进规则4:尽可能减少高扇出结构,随着深度增大扇入比较适当的扇出数为2~5,最多不要超过9。高扇入一般出现在中下层公共模块。一个设计得很好的软件结构,通常上层扇出比较高,中层扇出较少,底层扇入到有高扇入的公共模块中。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023125.4.4.5软件模块结构的改进规则5:模块的大小要适中模块的大小,可以用模块中所含语句的数量的多少来衡量。通常规定其语句行数在50~100左右,保持在一页纸之内,最多不超过500行。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023126.4.4.5软件模块结构的改进规则6:设计功能可预测的模块,但要避免过分受限制的模块一个功能可预测的模块可以被看成是一个“黑盒”,不论内部处理细节如何,它对相同的输入数据,总能产生相同的结果。当模块内部存在一些鲜为人知的功能时,这个模块就可能是不可预测的。但是,如果一个模块的局部数据结构的大小、控制流的选择或与外界(人、硬软件)的接口模式被限制死了,则很难适应用户新的要求和环境的变更,不利于软件的维护。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023127.4.5结构化数据系统开发方法

——面向数据结构的设计方法(一)4.5.1一种简化的设计方法4.5.2导出逻辑输出结构4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023128.4.5.1一种简化的设计方法概述图形工具SD方法JSD本章小结模块化DSSDDSSD设计过程输入需求定义应用环境功能描述问题结果+输出设计文档输出数据结构过程性细节设计限制4/20/2023129.4.5.1一种简化的设计方法概述图形工具SD方法JSD本章小结模块化DSSD逻辑设计处理活动导出逻辑输出结构(LOS,LogicalOutputStructure)定义逻辑处理结构(LPS,LogicalProcessStructure)4/20/2023130.4.5.1一种简化的设计方法概述图形工具SD方法JSD本章小结模块化DSSD简化的设计方法将数据项作为问题信息域的一部分,采用与Jackson方法和Warnier方法相同的方式,分层进行组织:针对问题的陈述或相关的需求信息进行分析,把所有不能作进一步划分的数据项(叫作原子项)列表确定每个原子项出现的频度对所有可以再分解的数据项进行分析开发LOS的图形表示4/20/2023131.4.5.1一种简化的设计方法概述图形工具SD方法JSD本章小结模块化DSSD实例:报告原型机器工具使用日报表日期:DATE工具类别TOOL-CAT工具标识TOOL-ID状态S生产零件数NO-PARTS该类零件生产总零件数:CAT-TOT-PARTS该类零件生产总零件数:CAT-TOT-PARTS该日生产总零件数:MANUF-TOTAL4/20/2023132.4.5.2导出逻辑输出结构概述图形工具SD方法JSD本章小结模块化DSSD概念逻辑输出结构(LOS)是构成基于计算机的系统输出的各数据项的一个层次表示。4/20/2023133.4.5.2导出逻辑输出结构概述图形工具SD方法JSD本章小结模块化DSSD步骤提取所有的原子项(不能再分割的数据项)。把每个原子项出现的频度记录下来,得到其频度统计表。检查组合项(由原子项与其它组合项复合而成的数据项或数据类)根据原子项频度信息,并收集对组合相分析得到的结果,导出Warnier-Orr图。4/20/2023134.4.5.2导出逻辑输出结构概述图形工具SD方法JSD本章小结模块化DSSD实例:原子项频度统计表数据元素(原子项)频度细节HEADING1/报表机器工具使用日报表DATE1/报表COLUMN-HEAD1/报表工具类别,工具标识,…TOOL-CAT1/工具类别TOOL-ID1/工具标识S1/工具标识NO-PARTS1/工具标识SUBTOTAL-HEAD1/工具类别该类生产总零件数CAT-TOT-PARTS1/工具类别TOTAL-HEAD1/报表该日生产总零件数MANUF-TOTAL1/报表4/20/2023135.4.5.2导出逻辑输出结构概述图形工具SD方法JSD本章小结模块化DSSD实例:Warnier-Orr图制造报表HEADING(报表标题)DATE(日期)COLUMN-HEAD(列标题)TOOL-CAT(工具种类)TOOL-ID(工具标识)TOOLCATEGORY(工具类)TOOLID(工具标识)S(状态)(1,t)(1,I)NO-PARTS(零件数)SUBTOTAL-HEAD(分项合计标题)TOTAL-HEAD(类总计标题)CAT-TOT-PARTS(类零件总计)MANUF-TOTAL(日总计)4/20/2023136.4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD概念逻辑处理结构(LPS)是为了对相应的LOS进行处理所需的软件过程性表示。4/20/2023137.4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD步骤(1)从LOP的Warnier-Orr图中消去所有的原子项(2)对所有的组合项(重复)加上一对BEGIN…END定界语句4/20/2023138.4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD实例制造报表BEGINBEGINBEGINTOOLCATEGORY(工具类)TOOLID(工具标识)(1,t)(1,I)ENDENDEND4/20/2023139.4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD步骤(3)定义所有的初始化指令、结束指令或处理(4)确定所有的计算或非数值处理4/20/2023140.4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD实例制造报表BEGIN置MANUF-TOTAL为0BEGIN置CAT-TOT-PARTS为0BEGINTOOLCATEGORY(工具类)(1,t)TOOLID(工具标识)(1,I)将NO-PARTS加到CAT-TOT-PARTS中ENDEND将CAT-TOT-PARTS加到

MANUF-TOTAL中END4/20/2023141.4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD步骤(5)定义所有的输出指令和处理(6)定义所有的输入指令和处理4/20/2023142.4.5.3定义逻辑处理结构概述图形工具SD方法JSD本章小结模块化DSSD实例制造报表BEGIN输出HEADING,DATE,COLUMN-HEAD置MANUF-TOTAL为0读取逻辑记录TOOLCATEGORY(工具类)(1,t)BEGIN输出TOOL-CAT置CAT-TOT-PARTS为0TOOLID(工具标识)(1,I)BEGIN输出TOOL-ID,S,NO-PARTS将NO-PARTS加到CAT-TOT-PARTS中读取逻辑记录ENDEND输出SUBTOTAL-HEAD加CAT-TOT-PARTS到MANUF-TOTAL中输出CAT-TOT-PARTSEND输出TOTAL-HEAD输出MANUF-TOTAL4/20/2023143.4.6Jackson系统开发方法

——面向数据结构的设计方法(二)4.6.1JSD功能描述4.6.2决定系统时间特性4.6.3系统实现概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023144.4.6.1JSD功能描述概念功能描述的目的是利用数据流连接及状态向量连接,把已定义的功能进程连接到系统模型进程,从而扩充系统规格说明图。功能进程的输出是系统的输出,可以是报告、对硬件设备的命令、或者任何其他的输出信息。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023145.4.6.1JSD功能描述功能分类嵌入功能:通过把操作分配(或写入)到模型进程的结构正文内而作成的功能,是嵌入功能。强制功能:此功能检查模型进程的状态向量,并给出输出结果。交互功能:此功能检查模型进程的状态向量,写入一个作用于模型进程活动的数据流,或引入一个写出结果的操作。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023146.4.6.1JSD功能描述实例分析:大学交通车服务系统列车实体指示灯控制:到站灯亮LON(i),离站灯灭LOFF(i)。动力控制:按钮按下,列车离站时启动(START);列车到站时制动(STOP)。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023147.实例分析:列车实体结构正文概述图形工具SD方法JSD本章小结模块化DSSDShuttle-1seqLon(1);getsvSV;Wait1-BDYiterwhileWait1getsvSV;Wait1-BDYendLoff(1);Leave(1);Transt-BDY1iterwhileTranst1getsvSV;Transt1-BDYend

Shuttle-BDY1iter

StationseqArrive(i);writearrivetoS1D;列车-1点亮指示灯1;获取状态向量(SV);只要仍是Wait1,则一直检测获取状态向量(SV);等待循环基体完熄灭指示灯1;列车驶离站1;只要仍是Transt1,则一直检测获取状态向量(SV);移动循环基体1完列车循环基体1车站列车到达站i;将列车到达信息写入S1D;4/20/2023148.实例分析:列车实体结构正文概述图形工具SD方法JSD本章小结模块化DSSDLon(i);Wait-BDYiterwhileWaitigetsvSV;Wait-BDYendLoff(i);Leave(i);Transt-BDYiterwhileTranstigetsvSV;Transt1-BDYend

Stationend

Shuttle-BDY1endArrive(i);writearrivetoS1D;Shuttle-1end点亮指示灯i;只要仍是Waiti,则一直检测获取状态向量(SV);等待循环基体完熄灭指示灯i;列车驶离站i;只要仍是Transti,则一直检测获取状态向量(SV);移动循环基体完车站循环体完列车循环基体1完列车到达站1;将列车到达信息写入S1D;列车-1完4/20/2023149.4.6.1JSD功能描述实例分析:按钮实体的二级进程Jackson结构图概述图形工具SD方法JSD本章小结模块化DSSD按钮-2请求按下到站附加到站*附加到站基体附加按下*附加按下基体按下组*4/20/2023150.4.6.1JSD功能描述实例分析:Button–2进程的结构正文概述图形工具SD方法JSD本章小结模块化DSSDButton-2seqrequest:=no;readMBDandB1D;

Button-BDYiter

Push-GroupseqExtra-AR-BDYiterwhile(Arrival)readMBDandB1D;Eatra-AR-BDYendRQ-Pushseqrequest:=yes;readMBDandB1D;RQ-PushendEatra-RQ-PushiterwhilereadMBDandB1D;Eatra-RQ-PushendArrivalseqrequest:=no;readMBDandB1D;Arrivalend

Push-Groupend

Button-BDYendButton-2end4/20/2023151.4.6.1JSD功能描述实例分析:完成功能描述后的系统规格说明图(双线表示“一对多”的连接)概述图形工具SD方法JSD本章小结模块化DSSD按钮-0BD按钮-1列车-0列车-1SVLAMPCMDSB1DMBDS1DMotorCMDS按钮-2MControlB2V4/20/2023152.4.6.2决定系统时间特性概念设计人员将在这一步中定义系统的时间限制。一种能够用于同步进程的机制叫做时间间隔标志(TGM,TimeGrainMarker)。它是一个数据记录表明一个特别时间间隔的存在,可用来使时间通道成为可能,以影响一个进程的各个活动。概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023153.4.6.2决定系统时间特性实例:大学交通车服务系统的时间限制在STOP命令内基于列车向前的速度和刹车的动力而必须留给它的时间接通/切断指示灯面板的响应时间概述图形工具SD方法JSD本章小结模块化DSSD4/20/2023154.4.6.3系统实现概念JSD方法的实现步基于早期的工作,而提出从问题的数据结构导出未完成的程序或进程的结构的方法——Jackson程序设计方法(

温馨提示

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

评论

0/150

提交评论