第8章-软件过程设计_第1页
第8章-软件过程设计_第2页
第8章-软件过程设计_第3页
第8章-软件过程设计_第4页
第8章-软件过程设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

过程设计主要内容软件设计基本原理软件设计工具软件结构设计软件详细设计主要内容软件过程设计主要内容软件总体设计(概要设计)将系统划分成功能模块明确软件结构(模块组成的层次系统)采用适当的工具描述软件结构软件详细设计确定怎样具体实现软件结构图中每个模块的具体内容细化程序的基本逻辑软件设计的基本原理模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程模块化的优点:降低问题复杂性减少开发工作量降低开发成本提供软件生产率软件设计的基本原理模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程模块化的优点:降低问题复杂性减少开发工作量降低开发成本提供软件生产率在软件的体系结构中,模块是可组合、分解和更换的单元,具有以下几种基本属性:接口:指模块的输入输出。功能:模块实现的功能。逻辑:内部如何实现及所需数据。状态:模块的运行环境,调用与被调用关系。逻辑属性反映内部特性,其它属性反映模块的外部特性。软件成本M模块数成本(工作量)接口成本成本/模块最小区域软件设计的基本原理抽象:是认识复杂现象过程中使用的思维工具。抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。软件结构顶层模块控制系统主要功能并影响全局,底层模块完成具体的处理。在进行软件设计时,抽象与逐步求精、模块化密切相关,可提高软件的可理解性信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程和数据),对于不需要这些信息的其他模块来说,是不可访问的。它为软件系统的修改、测试及以后的维护都带来好处。软件设计的基本原理模块的独立性:指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系量最少且接口简单。包括两个度量准则耦合性:指软件系统结构中各模块间相互联系紧密程度的一种度量。模块间耦合高低取决于接口的复杂性、调用的方式及传递的信息。内聚性:指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。软件设计的基本原理☻无直接耦合:两个模块间没有直接的关系,不传递任何信息。☻内容耦合:一个模块直接使用另一模块的内部数据,或通过非正常入口而转入另一个模块内部。☻公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。☻控制耦合:两个模块间传递控制信息。被调用函数通过控制信息有选择地执行块内某一功能。☻标记耦合:两个模块间传递的是数据结构。☻数据耦合:两个模块间有调用关系,传递简单的数据值。AB耦合性耦合性举例2数据耦合3标记耦合住户详情中包含了“本月用电量”和“本月用水量”模块ATRC:......模块BGOTOTRC6内容耦合5公共耦合4控制耦合软件设计的基本原理应采用的总体原则:

尽量使用数据耦合少用控制耦合限制公共耦合的范围完全不用内容耦合软件设计的基本原理☻偶然内聚:指一个模块内的各处理元素之间没有任何联系。☻逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。例如把编辑各种输入数据的功能放在一个模块中。☻时间内聚:把需要同时执行的动作组合在一起形成的模块。例如程序设计中的初始化模块。☻通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或指各处理使用相同的输入数据或者产生相同的输出数据。☻顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是后一功能元素的输入。☻功能内聚:指模块内所有元素共同完成一个功能,缺一不可。内聚性软件设计的基本原理顺序内聚通信内聚内聚性举例软件结构图形工具软件结构图软件结构设计优化准则表示软件结构的HIPO图(HierarchyPlusInput/Processing/Output)软件结构图(StructureChart)模块:用方框表示,名字体现该模块的功能。模块间的控制关系:统率、从属;模块间的信息传递:两个附加符号:模块选择调用或循环调用。注意事项:模块唯一、从上到下调用、调用次序不严格。ABCMABCA查询成绩B学生记录学号查询标志B1A入出X,YZ编号1结构图的形态特征深度、宽度、扇入、扇出。TDMABC扇入扇出深度宽度软件结构图举例产生最佳解原始输入得到好输入计算最佳解输出结果读输入编辑输入结果格式化显示输出原始输入好输入好输入解解编辑结果格式化解解格式化解产生最佳解软件结构图注意事项(1)同一名字的模块在结构图中仅能出现一次。(2)调用关系只能从上到下。(3)不严格表示模块的调用次序,习惯上从左到右,有时为了减少连线的交叉,适当地调整同一层模块的左右位置,以保证结构图的清晰。(4)结构图并不指明什么时候调用下层模块,只表明一个模块调用哪些模块,至于模块内还有没有其他成分则完全没有表示。表示软件结构的HIPO图订货处理1.0销售管理系统进货处理2.0销售统计3.0读库存记录1.2输入并检验订单1.1缺货处理4.0确定能否供货1.3可供货处理1.3.1缺货货单留底1.3.2H图:每个矩形框代表一个模块,连线表示“调用”而非“组成”。所谓HIPO,即对每个模块附一张IPO图。每个IPO图中应明确标出对应模块的编号。表示软件结构的HIPO图

IPO表系统:______作者:______模块:______日期:______编号:1.3

被调用:调用:输入输出:处理:局部数据元素文件名:全局变量:注释:销售管理系统确定能否订货订货处理可供货模块缺货订单留底订单订货量X货物库存量Y供货标志库存文件IFY>XTHEN可供货处理

ELSE缺货订单留底ENDIFIPO图:结构化设计方法结构化设计是以结构化分析产生的数据流图为基础,按一定的步骤映射成软件结构。结构化设计变换分析设计事务分析设计变换型数据流图由输入、变换和输出三部分组成。变换中心逻辑输入逻辑输出物理输出物理输入时间内部表示信息输入流变换流信息流外部表示输出流事务型数据流图

数据沿着输入通路到达一个加工T。T将输入数据分解成一串发散的数据流,形成许多的活动路径,并根据输入数据的类型在若干动作序列中选出一个来执行。T事务处理中心接收输入数据。分析输入数据,确定类型。根据事务类型选取一活动通路。变换分析设计确定输入流和输出流的边界,从而孤立出变换中心(1)检查“输入流”的边界从输入的数据源开始,沿着每一个由数据源传入的数据流的移动方向进行跟踪分析,逐个分析它所经过的处理逻辑功能。如果仅是传入的数据流作形式上的转换,逻辑上没有进行实际的数据处理功能,则这些处理逻辑属于系统的“输入处理部分”。顺着传入的数据流的移动方向,一直跟踪到它被真正地处理为止。变换分析设计(2)检查“输出流”的边界从输出结果的地方开始,逆着每一个传递出去的数据流,由外向里反方向跟踪,逐个分析它的处理逻辑功能,一直反方向跟踪到它被真正地产生出来为止。(3)得到变换中心根据前两步的分析结果,画出一个闭环界线,在界线以内的就是变换中心。变换分析设计2.设计软件结构的顶层和第一层——变换结构CmCICTCO第一级分解变换分析设计(1)顶层主模块Cm是抽象出来的,以系统的名字命名,协调控制下属模块,完成系统各项功能。(2)第一层:为每一个逻辑输入设计一个输入模块功能:为主模块提供数据输入为每一个逻辑输出设计一个输出模块功能:为主模块提供数据输出为中心变换设计一个变换模块功能:将逻辑输入转换成逻辑输出变换分析设计(1)输入模块的下属模块设计为每个输入模块设计两个下层模块①一个用于接收数据②另一个用于将这些数据转换为所要求的数据①②重复直到物理输入为止设计中、下层模块——自顶向下,逐层分解AtoBGetBGetAaab变换分析设计(2)输出模块的下属模块设计为每个输出模块设计两个下层模块①一个将调用模块提供的数据转换为所需的数据形式。②另一个用于发送数据①②重复直到物理输出为止PutBPutAbaaBtoA(3)变换模块的下属模块设计按照模块独立性的原则来组织其结构,一般每个基本加工设计一个功能模块。变换分析设计ABCDEFGHf1f2f3f4f5f6f7f8f9f10f11变换中心输入输出主模块f2Getf3将f3变换成f7和f8Putf7Getf2BFPutf9f3f7f9f7f9f3f7f8Putf8EDCf8GAHPutf10Putf11Gutf1f1f1f2f8f10f10f11f10f11f3f2初始结构图变换分析设计4.设计的优化——根据设计准则(1)输入部分的求精对每个物理输入设置专门模块,以体现系统的外部接口;其他输入模块并非真正输入,当它与转换数据的模块都很简单时,可将它们合并成一个模块。GetCGetBGetAabAtoBGetBGetAaabBtoCGetCbbc(2)输出部分的求精为每个物理输出设置专门模块,同时注意把相同或类似的物理输出模块合并在一起,以减低耦合度。PutBPutAbaaBtoAPutBPutAa变换分析设计(3)变换部分的求精:根据设计准则,对模块进行合并和调整。软件结构的求精,具有很大的经验性。追求“高内聚,低耦合”方法:设计有独立功能的模块模块间传递数据型的参数模块间共享信息尽量少变换分析设计变换分析设计例:变换分析设计分房处理分房活动输出分房结果获得分房资源获得空房信息获得分房队列输出住房结果获得分房申请计算分数事务分析设计事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在由数据流程图到软件结构的映射方法不同。由事务流映射成的软件结构包括一个接收分支和一个发送分支。映射出接收分支结构的方法和变换分析映射出输入结构的方法相似,即从事务中心的边界开始,把沿着接收流通路的处理逻辑映射成模块。发送分支的结构包含一个调度模块,它控制下层的所有活动模块;然后把数据流程图中的每一个活动流通路映射成与它的特征相对应的结构。总控调度A_CTLB_CTLC_CTL接收通路C通路B通路A通路事务分析的映射方法分房系统合法性检查更改信息分房处理调房处理退房处理查询处理综合数据流图的映射确定DFD整体上的类型:除明显有事务类型的,都可认为是变换型。事务型用于高层DFD变换有平行处理的优点。把与全局特性不同的局部区域孤立出来,确定类型。按整体与局部的DFD特性,设计软件结构。混合型的结构设计ab1b2c1db3c3c2bAC1DBC3C2lmkgjfheLKEFGJ主模块GetddtokPutkGetbAGetaC1C3C2事务中心EJGFPutlKPutmL分层DFD映射:销售管理系统销售管理系统读键盘类别1订货处理2进货处理3缺货处理4销售统计输出备货单输入订单输出统计表输出缺货通知单输入进货通知单主图:1订货处理子图1:根据订单及库存确定能否供货读库存记录缺货订单留底可供货处理订单留底根据可供货订单修改库存分层DFD映射g4g3g2g1f2f1A1A2A3A4主图:子图:ABCf1f2f3f4主模块Putf3Getf2BAGetf1putf4CAA1A4A2A3f2g3,g4子图:B1B2B3f2g1g2f4f5f4主图:f3f2f1ABA3思考题:f1f2f1g1g2精化数据流图DFD类型区分事务中心和数据接收通路区分输入和输出分支映射成事务结构映射成变换结构运用模块设计规则,精化软件结构描述模块功能、接口和全局数据结构复查详细设计映射顶层和第一层事务变换设计中下层模块结构结构化设计过程软件详细设计详细设计结果基本上决定了最终程序代码的质量。不仅要逻辑正确,性能满足,还要简明易懂。采用自顶向下,逐步求精的程序设计方法。使用三种基本控制结构构造程序:顺序、选择、循环。单入口,单出口的共同特点。主程序员的组织形式:一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加上一些专家、其他技术人员组成小组。软件详细设计表示法常用三种工具:图形、表格和语言。程序流程图(PFC)PAD图盒图(N-S图)过程设计语言PFC:三种基本控制结构ABexpABFTFexpATAexpFTDO-UNTILDO-WHILEDOCASEICASE1CASEnFTDO-CASE程序流程图程序流程图,又称程序框图,是描述程序逻辑结构的工具。它使用的符号与系统流程图的符号很多相同,但是,箭头符号代表控制流而不是数据流。优点是直观清晰、易于使用。缺点是:☻易造成非结构化的程序结构,编码时不加限制的使用GOTO语句,导致基本控制块多入多出口,与软件设计的原则相违背。☻程序流程图本质上不是逐步求精的好工具,诱使过早考虑程序的控制流程,而不去考虑程序的全局结构。☻程序流程图不易表示数据结构。详细设计案例分析程序流程图(visio工具)策略:自顶向下,逐步求精的分解

PAD图问题分析图(ProblemAnalysisDiagram)开始结束输入A(1)到A(10)的值输出A(1)到A(10)的值置初值:n=10sortsorti=1WHILEi≤n-1WHILEj≤nj=i+1,max=A(i)A(i)=max,i=i+1j=j+1B=maxmax=A(j)A(j)=BMax<A(j)☻清晰地反映了程序的层次结构。☻支持逐步求精的设计方法。☻易读易写,使用方便。☻支持结构化的程序设计原理。☻可自动生成程序。盒图(N-S图)WHILE循环条件“当型”循环UNTIL循环条件“直到

温馨提示

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

评论

0/150

提交评论