软件工程学:详细设计_第1页
软件工程学:详细设计_第2页
软件工程学:详细设计_第3页
软件工程学:详细设计_第4页
软件工程学:详细设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第6章详细设计(ProgramDesignCoding),本章主要介绍在详细设计中采用的结构程序设计技术、图形工具、面向数据结构的设计方法以及程序复杂性的度量方法。,详细设计的目的:是为软件模块结构中的每一模块确定算法和数据结构,用某种表达工具给出清晰的描述。,详细设计的任务:过程设计,即设计软件体系结构中所包含的每个模块的实现算法。数据设计,即设计软件中所需要的数据结构。接口设计,即设计软件内部各模块之间、软件与协作系统之间以及软件与使用者之间的通信方式。,1.结构程序设计,结构程序设计的特点:程序中使用三种基本控制结构程序应当单入口、单出口GOTO语句的限制使用,详细设计的结果基本上决定了最终的程序代码的质量,因此其目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂,为使过程描述清晰易读、正确、可靠,须采用结构程序设计技术。,2.人机界面设计,人机界面设计是接口设计的一个重要组成部分。,对人机界面的评价在很大程度上是由人的主观因素决定,所以,使用基于原型的系统化的设计策略是成功地设计人机界面的关键。,1、应该考虑的设计问题,(1)系统响应时间,系统响应时间指从用户完成某个控制动作到软件给出预期响应之间的这段时间。,长度易变性,(2)用户帮助实施,2.人机界面设计,集成的帮助实施附加的帮助实施,(3)出错信息处理,信息应该用用户可以理解的术语描述问题信息应该提供有助于从错误中恢复的建设性意见信息应该指出错误可能导致的负面后果信息应该伴随着听觉或视觉上的提示信息不能带有职责色彩,(4)命令交互,窗口菜单交互方式命令行交互方式,2、人机界面设计过程,2.人机界面设计,保持一致性提供有意义的反馈在执行有较大破坏性的动作之前要求确认允许取消绝大多数操作减少在两次操作之间必须记忆的信息量提高对话、鼠标移动和思考的效率允许用户犯错误按功能对动作分类设计屏幕布局提供对工作内容敏感的帮助实施用简单动词或动词短语作命令名,人机界面设计是一个迭代的过程,即通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户的意见进行修改,直至满意为止。,3、人机界面设计指南,(1)一般交互指南,2.人机界面设计,只显示与当前工作有关的信息用便于用户迅速吸取信息的方式来显示使用一致的标记、标准的缩写和可预知的颜色允许用户保持可视化的语境产生有意义的出错信息使用大小写、缩进和文本分组来帮助理解使用窗口分隔不同类型的信息使用模拟方式显示信息高效率地使用显示屏,(2)信息显示指南,(3)数据输入指南,尽量减少用户的输入动作保持信息显示和数据输入之间的一致性允许用户自定义输入交互应该是灵活的,使在当前动作语境中不使用的命令不起作用让用户控制交互对所有输入动作提供帮助消除冗余的输入,3.过程设计的工具,1、程序流程图(ProgramFlowChart),5种基本控制结构:,描述模块程序处理过程的工具就是过程设计的工具,利用这些工具指明控制流程、处理功能、数据组织及其实现细节,从而在编码阶段可以直接地将其描述翻译成程序代码。,(1)顺序结构(sequentialstructure),(2)选择结构(selectivestructure),(3)先判定型循环结构(while-loopstructure),(4)后判定型循环结构(until-loopstructure),(5)多情况选择(casestructure),3.过程设计的工具,任何复杂的程序流程图都应由以上5种基本结构组合而成。,ISO认可的规定符号:P.125图6.3,优点:对控制流程的描述直观清晰,易于使用,能随意表达任何程序的逻辑结构。,缺点:不易反映逐步求精的过程,往往反映的是最后结果;不受约束地画控制流线,导致在编码阶段造成非结构化的程序结构;不易表示数据结构。,3.过程设计的工具,Nassi&Shneiderman1973年提出,又称为N-SCharts;Chapin1974年作扩充,故也称为Chapincharts.,2、盒图(BoxDiagram),3.过程设计的工具,例1:,盒图的特点:没有箭头,不允许随意转移控制;每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确;局部及全程数据的作用域易见;易表现嵌套关系(embeddedstructure)以及模块的层次结构。,3.过程设计的工具,盒图的优点:程序结构清晰易懂易养成良好的设计风格盒图的缺点:当嵌套层数增加时,会增加作图的困难且降低清晰性。,例2:求一组数的最大值,3.过程设计的工具,PAD(ProblemAnalysisDiagram):日立公司,1973,3、PAD图,3.过程设计的工具,例1:N-S图与PAD的转换,3.过程设计的工具,例2:求一组数的最大值,或:,PAD图的优点:PAD图设计的程序必定是结构化程序结构清晰,层次分明,易读、易懂容易将PAD自动转换为高级语言源程序即可用于表示程序逻辑,又可用于描述数据结构支持逐步求精的设计思想,3.过程设计的工具,3.过程设计的工具,表示复杂的条件(input)组合与应做动作(output)之间的对应关系。,4、判定表&判定树(DecisionTable&Tree),例:P.127航空行李托运费的算法按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。,3.过程设计的工具,用判定树表示计算行李费的算法,3.过程设计的工具,3.过程设计的工具,判定表与判定树的优点:判定表简洁无二义地表示处理规则判定树是判定表的变种,简单、明了,易于掌握,判定表与判定树的不足:不能反映重复和顺序的处理特性当选择条件较多时,其简洁性下降作判定树时,对分支次序的不同将形成不同的判定树判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试,3.过程设计的工具,PDL又称Pseudocode,是一种用于描述模块算法设计和处理的语言。,例1:,5、PDL(ProgramDesignLanguage),PDL的外(部)语法:符合一般程序设计语言常用的语法规则,具有严格的关键字。PDL的内(部)语法:用一些简单句子、短语符号等自然语言描述程序执行的功能。,3.过程设计的工具,PDL应具备以下特点:,有数据说明,例如:TYPEnumberISSTRINGLENGTH(12)TYPEtableISINSTANCEOFsymbol_table,有模块定义与调用机制,例如:PROCEDUREINTERFACEpseudocodelinesEND调用时可用:PERFORMUSING,Sequential:自然语言的顺序描述,抽象类型,有固定的外语法(keyword);内语法用自然语言描述。,Selective:IFCASEofWHENSELECTELSEWHENSELECTENDIFENDCASE,Loops:WHILEFORTOREPEATUNTILENDWHILEENDFORENDREP,PDL的缺点:不够直观、清晰。,3.过程设计的工具,PDL的优点:可以作为注释插入到源程序中书写方便易于实现由PDL到源程序代码的自动转换,例2:,InputarrayAMAX=A(1)FORI=2TONIFMAX10的模块,应考虑重新划分模块。,Halstead方法根据程序中运算符和操作数的总数来度量程序的复杂程度。,Theprimitivemeasuresaren1thenumberofdistinctoperatorsthatappearinaprogramn2thenumberofdistinctoperandsthatappearinaprogramN1thetotalnumberofoperatoroccurrencesN2thetotalnumberofoperandoccurrences,注:成对出现的运算符,如BEGINEND,IFTHENELSE等都算1个运算符。,5.程序复杂程度的定量度量,2.HalsteadsTheory(M.Halstead,1977),Halsteadslaws:(1)实际程序长度(programlength):N=N1+N2(2)程序词汇表(programvocabulary):n=n1+n2(3)预测程序长度(estimatedlength):H=n1log2n1+n2log2n2注意:H可由词汇表算出,即程序长度可通过词汇表预估。(4)程序量(programvolume):V=Nlog2nminimum#ofbitsrequiredtospecifyaprogram.,5.程序复杂程度的定量度量,(5)程序级别(programlevel):L=V*/V其中potentialvolumeV*=(2+n2*)log2(2+n2*),n2*为I/O变量的个数。这里V*是V的最小值,2表示程序中至少有2个运算符赋值符和调用符。L体现了抽象程度,编码语言越高级,L越接近1。,5.程序复杂程度的定量度量,(6)工作量(effort):E=V/L。(7)潜在错误(potentialerror):B=Nlog2n/3000。,注:ItshouldbenotedthatHalsteadslawshavegeneratedsubstantialcontroversyandthatnoteveryoneagreesthattheunderlyingtheoryiscorrect.However,experimentalverificationofHalsteadsfindingsha

温馨提示

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

评论

0/150

提交评论