书签 分享 收藏 举报 版权申诉 / 41
上传文档赚钱

类型软件工程学详细设计课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4907408
  • 上传时间:2023-01-24
  • 格式:PPT
  • 页数:41
  • 大小:2.04MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《软件工程学详细设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件 工程学 详细 设计 课件
    资源描述:

    1、软件工程学详细设计软件工程学详细设计第一页,编辑于星期三:十七点 三十八分。1.构造程序设计 构造程序设计的特点:程序中使用三种根本控制构造 程序应当单入口、单出口 GOTO语句的限制使用 详细设计的结果根本上决定了最终的程序代码的质量,因此其目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂,为使过程描述清晰易读、正确、可靠,须采用构造程序设计技术。第二页,编辑于星期三:十七点 三十八分。2.人机界面设计 人机界面设计是接口设计的一个重要组成局部。对人机界面的评价在很大程度上是由人的主观因素决定,所以,使用基于原型的系统化的设计策略是成功地设计人机界面的

    2、关键。1、应该考虑的设计问题1系统响应时间 系统响应时间指从用户完成某个控制动作到软件给出预期响应之间的这段时间。长度 易变性第三页,编辑于星期三:十七点 三十八分。2用户帮助实施2.人机界面设计 集成的帮助实施 附加的帮助实施3出错信息处理 信息应该用用户可以理解的术语描述问题 信息应该提供有助于从错误中恢复的建立性意见 信息应该指出错误可能导致的负面后果 信息应该伴随着听觉或视觉上的提示 信息不能带有职责色彩4命令交互 窗口菜单交互方式 命令行交互方式第四页,编辑于星期三:十七点 三十八分。2、人机界面设计过程2.人机界面设计 保持一致性 提供有意义的反响 在执行有较大破坏性的动作之前要求

    3、确认 允许取消绝大多数操作 减少在两次操作之间必须记忆的信息量 提高对话、鼠标移动和思考的效率 允许用户犯错误 按功能对动作分类设计屏幕布局 提供对工作内容敏感的帮助实施 用简单动词或动词短语作命令名 人机界面设计是一个迭代的过程,即通常先创立设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户的意见进展修改,直至满意为止。3、人机界面设计指南1一般交互指南第五页,编辑于星期三:十七点 三十八分。2.人机界面设计 只显示与当前工作有关的信息 用便于用户迅速吸取信息的方式来显示 使用一致的标记、标准的缩写和可预知的颜色 允许用户保持可视化的语境 产生有意义的出错信息 使用大小写、

    4、缩进和文本分组来帮助理解 使用窗口分隔不同类型的信息 使用模拟方式显示信息 高效率地使用显示屏2信息显示指南3数据输入指南 尽量减少用户的输入动作 保持信息显示和数据输入之间的一致性 允许用户自定义输入 交互应该是灵活的 使在当前动作语境中不使用的命令不起作用 让用户控制交互 对所有输入动作提供帮助 消除冗余的输入第六页,编辑于星期三:十七点 三十八分。3.过程设计的工具 1、程序流程图(Program Flow Chart)5种根本控制构造:描述模块程序处理过程的工具就是过程设计的工具,利用这些工具指明控制流程、处理功能、数据组织及其实现细节,从而在编码阶段可以直接地将其描述翻译成程序代码。

    5、(1)顺序构造(sequential structure)(2)选择构造(selective structure)ABPBAFT(3)先判定型循环构造(while-loop structure)TPSF第七页,编辑于星期三:十七点 三十八分。(4)后判定型循环构造(until-loop structure)FSTP(5)多情况选择(case structure)TA1FP=1TA2FP=2TAnFP=n3.过程设计的工具 任何复杂的程序流程图都应由以上5种根本构造组合而成。ISO 认可的规定符号:P.125 图 优点:对控制流程的描述直观清晰,易于使用,能随意表达任何程序的逻辑构造。缺点:不易

    6、反映逐步求精的过程,往往反映的是最后结果;不受约束地画控制流线,导致在编码阶段造成非构造 化的程序构造;不易表示数据构造。第八页,编辑于星期三:十七点 三十八分。SequentialABPFTABSelectivePFTBDo-While PSWhileDo-Until PSUntilCaseP12nA1A2AnCall subroutineA3.过程设计的工具 Nassi&Shneiderman 1973年提出,又称为N-S Charts;Chapin 1974年作扩大,故也称为Chapin charts.2、盒图(Box Diagram)第九页,编辑于星期三:十七点 三十八分。x4TFDo

    7、-Until x5ighfkx1TFbDo-Until x6ajx21cDo-While x323dek:3.过程设计的工具例1:盒图的特点:没有箭头,不允许随意转移控制;每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定构造的作用域),构造表示明确;局部及全程数据的作用域易见;易表现嵌套关系(embedded structure)以及模块的层次构造。第十页,编辑于星期三:十七点 三十八分。3.过程设计的工具盒图的优点:程序构造清晰易懂 易养成良好的设计风格盒图的缺点:当嵌套层数增加时,会增加作图的困难且降低清晰性。例2:求一组数的最大值T盒图表示MAX=A(I)MAX A(I)F

    8、FOR I=2 TO NMAX=A(1)NMAX=A(1)I=2I=I+1MAX=A(I)I NMAXA(I)程序流程图表示YYN第十一页,编辑于星期三:十七点 三十八分。ABSequential While PS Until PSLoopsPABTHENELSESelectiveP=A1A2CaseAn12nStatement IndexdefDefinition3.过程设计的工具PAD(Problem Analysis Diagram):日立公司,19733、PAD图第十二页,编辑于星期三:十七点 三十八分。x4TFDo-Until x5ighfkx1TFbDo-Until x6ajx21

    9、cDo-While x323dek:3.过程设计的工具例1:N-S图与PAD的转换开始 结束ajUntil x5Until x6x1x4ghbfkidefx2de123While x3ck第十三页,编辑于星期三:十七点 三十八分。3.过程设计的工具例2:求一组数的最大值或:MAX A(I)FOR I=1,N MAX=A(1)MAX=A(I)MAX A(N)WHILE N 30行李重量W 30免费国内乘客外国乘客头等舱其他舱残疾乘客正常乘客(W-30)2(W-30)4残疾乘客正常乘客(W-30)3(W-30)6头等舱其他舱残疾乘客正常乘客(W-30)4(W-30)8残疾乘客正常乘客(W-30)6

    10、(W-30)12用判定树表示计算行李费的算法3.过程设计的工具第十八页,编辑于星期三:十七点 三十八分。3.过程设计的工具判定表与判定树的优点:判定表简洁无二义地表示处理规那么 判定树是判定表的变种,简单、明了,易于掌握判定表与判定树的缺乏:不能反映重复和顺序的处理特性 中选择条件较多时,其简洁性下降 作判定树时,对分支次序的不同将形成不同的判定树 判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试第十九页,编辑于星期三:十七点 三十八分。PROCEDURE spell_check IS BEGIN Split document into single words Look

    11、up words in dictionary Display words which are not in dictionary Create a new dictionary END spell_checkExternal statementsInternalstatements3.过程设计的工具 PDL又称 Pseudocode,是一种用于描述模块算法设计和处理的语言。例1:5、PDL(Program Design Language)PDL的外(部)语法:符合一般程序设计语言常用的语法规那么,具有严格的关键字。PDL的内(部)语法:用一些简单句子、短语符号等自然语言描述程序执行的功能。第二

    12、十页,编辑于星期三:十七点 三十八分。3.过程设计的工具PDL应具备以下特点:有数据说明,例如:TYPE number IS STRING LENGTH (12)TYPE table IS INSTANCE OF symbol_table 有模块定义与调用机制,例如:PROCEDURE INTERFACE pseudocode lines END 调用时可用:PERFORM USING Sequential:自然语言的顺序描述抽象类型 有固定的外语法(keyword);内语法用自然语言描述。Selective:IF CASE of WHEN SELECT ELSE WHEN SELECT EN

    13、DIF ENDCASE Loops:WHILE FOR TO REPEAT UNTIL ENDWHILE ENDFOR ENDREP第二十一页,编辑于星期三:十七点 三十八分。PDL的的缺点缺点:不够直观、清晰。:不够直观、清晰。3.过程设计的工具PDL的优点:可以作为注释插入到源程序中 书写方便 易于实现由PDL到源程序代码的自动转换例2:Input array AMAX=A(1)FOR I=2 TO N IF MAX A(I)THEN set MAX=A(I)ENDIFENDFORPRINT MAX第二十二页,编辑于星期三:十七点 三十八分。4.面向数据构造的设计方法 与SD的由DFD导出

    14、构造设计不同,面向数据构造的设计方法是以数据构造(data structure)为根底设计每个模块的处理过程。两种设计方法的异同:出发点不同 目标不同 面向数据流设计适合总体设计,面向数据构造设计适合详细设计 都遵循构造程序设计,采用自顶向下、逐步求精的策略第二十三页,编辑于星期三:十七点 三十八分。1、Jackson DiagramJD的优点:便于表示层次构造,是自顶向下分解的有力工具 形象直观可读性好 既能表示数据构造也能表示程序构造4.面向数据构造的设计方法ABCD顺序结构ABoCo选择结构AB*重复结构第二十四页,编辑于星期三:十七点 三十八分。4.面向数据构造的设计方法ABCBCA=

    15、ABoCoSA=SCBA=BAB*I注意JD与H图的区别:H图中的方框表示模块,而JD中的方框表示程序构造时代表几个语句构成的简单操作 H图表现调用关系,而JD表现组成关系 顺序构造中的元素不能有重复或选择的元素2、改进的Jackson Diagram改进的Jackson图是在JD中增加选择和循环的条件表示。第二十五页,编辑于星期三:十七点 三十八分。4.面向数据构造的面向数据构造的设计方法设计方法 例例(P.133):一个正文文件由假设干个记录组成,每个记录是一个字符串。:一个正文文件由假设干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要要

    16、求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是:每复制一行输入字符串之后,另起一行印出这个字求的输出数据格式是:每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。符串中的空格数,最后印出文件中空格的总个数。3、Jackson方法 Jackson构造程序设计方法是典型的面向数据构造的设计方法,它由5个步骤组成。见P.132第二十六页,编辑于星期三:十七点 三十八分。第1步:用Jackson图描述 I/O 的数据构造正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格数I输出空格总数4.面向数据构造的

    17、设计方法第二十七页,编辑于星期三:十七点 三十八分。正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格数I输出空格总数?经过程序处理由正文文件得到输出表格。每处理输入中一个字符串后就得到输出中一个串信息,二者重复次序和次数均一样。字符不与多字符组成的字符串对应。单个空格不能决定空格数。4.面向数据构造的设计方法第2步:在两个图中指出有直接因果关系(causality)、可以同时处理的单元重复的次序,次数均一样第二十八页,编辑于星期三:十七点 三十八分。正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格数I输出空格总数统计空格处理字符串*I

    18、程序体印总数印字符串印空格数分析字符*分析字符*I分析字符串处理空格o处理非空格oS注:顺序执行的处理中不允许混有重复执行或选择执行的处理。第3步:Data structure Program structure 规那么:把有对应关系的单元合为一个处理框,画在程序构造图相应的层次中不同层以低层为准;输入和输出数据构造中剩余的单元对应程序构造图相应层次的处理框。4.面向数据构造的设计方法第二十九页,编辑于星期三:十七点 三十八分。第4步:列出所有操作和条件,并分配到程序构造图中统计空格处理字符串*I(1)程序体印总数印字符串印空格数分析字符*I分析字符串处理空格o处理非空格oS23145 例如:

    19、(局部列举,详见P.135翻开文件读入字符串空格总数totalsum=0关闭文件停顿I 文件完毕4.面向数据构造的设计方法第三十页,编辑于星期三:十七点 三十八分。第5步:用Pseudocode 表示程序详见P.135-1364.面向数据构造的设计方法A seq B CA end顺序结构A select cond1 B A or cond2 CA end选择结构A iter until(or while)cond BA end重复结构注意:用Pseudocode书写可以方便地转换成源代码 用Pseudocode书写可以排错 导出Jackson图(程序构造)考虑I/O数据数据构造时应视具体情况有

    20、所侧重 对输入数据出错或构造冲突应使用其他技术解决第三十一页,编辑于星期三:十七点 三十八分。5.程序复杂程度的定量度量程序复杂程度的定量度量(Measuring Program Complexity)程序复杂度度量研究对象主要是程序的清晰程度和非构造化程度,而算程序复杂度度量研究对象主要是程序的清晰程度和非构造化程度,而算法复杂度是研究算法的时间和空间效率。法复杂度是研究算法的时间和空间效率。程序复杂度的定量度量又称构造复杂性度量,是采用定量的方法来衡量软件质量的方法之一。对程序复杂度进展定量度量的意义:P.137 可估算软件中的错误数及开发所需工作量 可以对不同的设计或算法进展比较 可作为

    21、模块规模的准确限度第三十二页,编辑于星期三:十七点 三十八分。第1步:将过程设计结果转化为流图(程序图Control Flow Graph)TOTAL=TOTAL+AK+输入A输出K,L,TOTAL停止T开始K=0L=0TOTAL=0输入ADo While TOTAL0TL+Fa(开始)b(入口)cdefghij(出口)k(停止)abcdefghijk1、McCabes Theory(Thomas McCabe,1976)5.程序复杂程度的定量度量 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,用环形域复杂度来表示。注意:流图中结点圆圈代表一条或多条语句;箭头称为边,代表控制

    22、流 任何方法表示的过程设计结果都可转化为流图 当过程设计中包含复合条件时,生成流图的方法要复杂一些第三十三页,编辑于星期三:十七点 三十八分。5.程序复杂程度的定量度量程序复杂程度的定量度量第第2步:计算步:计算CFG的环形复杂度的环形复杂度(Cyclomatic Complexity)其中:ne 是边数(number of edges);nv 是结点数(number of nodes)。对CFG G,其环形复杂度V(G)的计算公式:V(G)=环形线性无关区域个数 =判定结点数+1 =ne nv+2 关于环形计算公式,事实上在图论中,有向平面图中环的数目:V(G)=ne nv+2p 1 对流图

    23、而言,一定是连通的,由于计算环形个数时要包括不封闭的那个环形。因而 p=1,ne 1 才是流图的实际边数。第三十四页,编辑于星期三:十七点 三十八分。a(开始)b(入口)cdefghij(出口)k(停止)通过CFG的边数结点数计算,ne=12 nv=115.程序复杂程度的定量度量 通过CFG环形个数计算,须从开场到停顿画一条虚弧。例如:通过CFG判定结点计算。V(G)=环形个数=3V(G)=判定结点数+1=3 V(G)=ne nv+2 =12 11+2=3再如:P.138第三十五页,编辑于星期三:十七点 三十八分。环形复杂度的缺点:环形复杂度的缺点:没有区分不同种类控制构造的复杂性,例如没有区

    24、分不同种类控制构造的复杂性,例如 IF 与与 LOOP,嵌套,嵌套 IF 与与 CASE 等;等;顺序构造中程序大小与复杂性无关。顺序构造中程序大小与复杂性无关。5.程序复杂程度的定量度量McCabe 环形复杂度的特点:环形复杂度取决于程序控制构造的复杂度,即选择或循环分支增多时,环形复杂度也随之增大。环形复杂度可以度量软件测试的难易度。环形复杂度是可加的。实践经历说明,对于环形复杂度10的模块,应考虑重新划分模块。第三十六页,编辑于星期三:十七点 三十八分。Halstead方法根据程序中运算符和操作数的总数来度量程序的复杂程度。The primitive measures are n1 th

    25、e number of distinct operators that appear in a program n2 the number of distinct operands that appear in a program N1 the total number of operator occurrences N2 the total number of operand occurrences注:成对出现的运算符,如 BEGINEND,IFTHENELSE 等都算1个运算符。5.程序复杂程度的定量度量2.Halsteads Theory(M.Halstead,1977)第三十七页,编辑

    26、于星期三:十七点 三十八分。Halsteads laws:(1)实际程序长度(program length):N=N1+N2(2)程序词汇表(program vocabulary):n=n1+n2(3)预测程序长度(estimated length):H=n1log2n1+n2log2n2 注意:H可由词汇表算出,即程序长度可通过词汇表预估。(4)程序量(program volume):V=N log2n minimum#of bits required to specify a program.#of bits required to represent n different identi

    27、fiers.5.程序复杂程度的定量度量第三十八页,编辑于星期三:十七点 三十八分。(5)程序级别(program level):L=V*/V 其中 potential volume V*=(2+n2*)log2(2+n2*),n2*为I/O 变量的个数。这里V*是V 的最小值,2表示程序中至少有2个运算符 赋值符和调用符。L 表达了抽象程度,编码语言越高级,L 越接近1。5.程序复杂程度的定量度量(6)工作量(effort):E=V/L。(7)潜在错误(potential error):B=N log2 n/3000。注:It should be noted that Halsteads la

    28、ws have generated substantial controversy and that not everyone agrees that the underlying theory is correct.However,experimental verification of Halsteads findings have been made for a number of programming languages.第三十九页,编辑于星期三:十七点 三十八分。5.程序复杂程度的定量度量3.交点复杂度(M.R.Woodward,1979)交点复杂度根据程序图中各控制线相交的交点数目来度量程序的复杂程度。注意:程序图中所有结点画在一直线上,所有有向边画在直线的同一侧。从程序图计算出的交点复杂度不唯一。交点复杂度对非构造化的反映比环形复杂度灵敏,当k越小时构造化程度越高。a(开始)b(入口)cdefghij(出口)k(停止)a(开始)b(入口)cdefghij(出口)k(停止)交点复杂度k=1第四十页,编辑于星期三:十七点 三十八分。结结 语语第四十一页,编辑于星期三:十七点 三十八分。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:软件工程学详细设计课件.ppt
    链接地址:https://www.163wenku.com/p-4907408.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库