软件工程第6章详细设计.ppt

上传人:牧羊曲112 文档编号:6610900 上传时间:2023-11-17 格式:PPT 页数:35 大小:265KB
返回 下载 相关 举报
软件工程第6章详细设计.ppt_第1页
第1页 / 共35页
软件工程第6章详细设计.ppt_第2页
第2页 / 共35页
软件工程第6章详细设计.ppt_第3页
第3页 / 共35页
软件工程第6章详细设计.ppt_第4页
第4页 / 共35页
软件工程第6章详细设计.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《软件工程第6章详细设计.ppt》由会员分享,可在线阅读,更多相关《软件工程第6章详细设计.ppt(35页珍藏版)》请在三一办公上搜索。

1、第六章,6,软件设计,6.3 详细设计,6.3.1 详细设计概述,详细设计也叫“过程设计”详细设计的目标:确定应该怎样具体地实现所需要的系统,确定概要设计阶段划分的每个模块的具体执行过程,从而在编码阶段可以直接把这个描述翻译成某种程序语言书写的程序。,6.3.1 详细设计概述,详细/过程设计的基本任务:算法设计。用某种图形、表格、语言等工具将每个模块的处理过程的详细算法描述出来数据结构设计。对需求分析、概要设计确定的概念性的数据类型进行确切的定义。数据库物理设计。确定数据库的存储记录格式、存储记录安排和存储方法等物理结构。其他设计。输入输出格式设计,数据库中数据项的值的代码设计。编写详细设计说

2、明书评审,6.3.1 详细设计概述,详细设计的原则(1)由于详细设计的蓝图是给人看的,所以模块的逻辑描述要清晰易读、正确可靠。这样别人才能读懂。这也是常说的清晰第一的设计风格。(2)采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性,6.3.1 详细设计概述,结构化过程设计主要思想自顶向下、逐步求精的设计方法和单入口单出口的控制结构结构化设计的基本控制结构:顺序,选择,循环用三种基本结构可构造任何单入口单出口程序优点确保软件具有良好的结构,能构造高质量的程序,6.3.2 详细设计的表示工具,图形工具:程序流程图,N-S,PAD,HIPO表格工具:判定

3、表、判定树语言工具:PDL、HIPO,1.程序流程图(PFC),程序流程图也称为程序框图,是描述程序逻辑结构的工具。程序流程图使用五种基本控制结构是:,顺序型,选择型,先判断重复型,后判断重复型,多分支选择型,6.3.2 详细设计的表示工具,程序流程图的优点:直观清晰、易于使用缺点:(1)易造成非结构化的程序结构,程序流程图使用箭头代表控制流,程序员不受任何约束,可以完全不顾结构程序设计的原则,随意转移控制(2)程序流程图本质上不是逐步求精的好工具,过早考虑程序的控制流程而忽略程序的全局结构(3)程序流程图不易表示数据结构和描述有关的数据,只能描述执行过程;(4)对于大型软件而言,流程图过于琐

4、碎,不容易阅读和修改。,1.程序流程图,6.3.2 详细设计的表示工具,克服缺点:应由顺序、选择和循环3种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉。,1.程序流程图,流程图示例,6.3.2 详细设计的表示工具,PAD是一种有左往右展开的二维树型结构 日本鲤鱼旗PAD图的控制流程为自上而下、从左到右地执行,2.问题分析图(PAD),2.问题分析图(Problem Analysis Diagram),PAD也设置了五种基本控制结构的图式,并允许递归使用。,PAD图举例:将数组A(1)到A(10)进行选择法排序(升序)的算法描述。,PAD图的控制流程为自上而下、从左到右。,2.问题分析图(

5、PAD),PAD图举例:将数组A(1)到A(10)进行选择法排序的算法描述。,PAD图的控制流程为自上而下、从左到右。,2.问题分析图(PAD),PAD图的优点:1、清晰地反映了程序的层次结构。图中的竖线为程序的层次线,最左边的竖线是程序的主线,其后一层一层展开,层次关系一目了然。2、支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。3、易读易写,使用方便。4、支持结构化的程序设计原理。5、可以自动生成程序。PAD图有对照FORTRAN、Pascal、C等高级语言的标准图式,因此,在有PAD系统的计算机上(如日立公司的系列机),可以直接输入PAD图,由计算机自动通过走树的

6、方法生成源程序代码,为软件的自动生成提供了有力的工具。,2.问题分析图(PAD),N-S图(盒图):是一种符合结构化程序设计原则的图形描述工具。在N-S图中,为了表示五种基本控制结构,规定了五种图形构件。,顺序,多分支选择,“当型”循环,注:其中P为循环条件,S为循环体。,选择,DO-UNTIL P,S,S,“直到型”循环,6.3.2 详细设计的表示工具,3.盒图(N-S图),N-S图有下述特点:功能域(一个特定控制结构的作用域)明确,图中每个矩形框(除CASE构造中表示条件取值的矩形框外),就是功能域。不可能任意转移控制,约束设计人员必须遵守结构化程序设计的要求。在盒图上很容易确定局部和全程

7、数据的作用域。很容易表现嵌套关系,也可以表示模块的层次结构。,6.3.2 详细设计的表示工具,3.盒图(N-S图),4.判定表,判定表用于表示程序的静态逻辑在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理要求将程序流程图中的多分支判断都改成两分支判断,6.3.2 详细设计的表示工具,在伪代码的基础上,用于描述模块算法设计和处理细节的语言PDL与需求分析中采用的结构化语言统属于伪码。伪码的结构分为内外两层,外层语法应符合一般程序设计语言常用的语法规则,而内层语法则用表示实际操作和条件的自然语言,语法自由优点可作为注释插入到源程序中,简便,易于自动处理,6.3.2 详细设计的

8、表示工具,5.过程设计语言(Process Design Language),PDL作为一种用于描述程序逻辑的语言,具有以下特点:有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征内语法使用自然语言来描述处理特性,为开发者提供方便,提高可读性。具有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。具有子程序定义与调用机制,用以表达各种方式的接口说明。由于与程序是同构的,可利用自动生成程序自动生成代码,提高软件生产率。,5.过程设计语言(Process Design Language),PDL中相关的关键词介绍:1、数据说明 TYPE IS 2、程序块

9、 BEGIN END,5.过程设计语言(Process Design Language),3、控制结构1)顺序结构在这个结构中,程序按语句的先后顺序执行。2)选择结构IF THEN ELSE ENDIF,5.过程设计语言(Process Design Language),3)多路选择结构CASE OF:WHEN SELECT WHEN SELECT WHEN SELECT DEFAULT:ENDCASE,5.过程设计语言(Process Design Language),4)循环结构WHILE循环的形式如下:DO WHILE ENDDOUNTIL循环的形式如下:REPEAT UNTIL END

10、REPFOR循环的形式如下:DO FOR ENDFOR,5.过程设计语言(Process Design Language),4、子程序子程序的形式如下:PROCEDURE INTERFACE END对子程序的调用可采用PERFORM。其形式如下:PERFORM 如果调用该子程序需要参数时,则其形式如下:PERFORM USING,5.过程设计语言(Process Design Language),5、输入输出用PDL描述输入输出一般有两种形式:READ/WRITE TO 或ASK ANSWER 其中,第一种形式的是指I/O设备,则是其要传送的变量名。而第二种形式则多用于人机交互的设计,5.过程

11、设计语言(Process Design Language),PDL应用示例,以系统主控模块详细设计为例:PROCEDURE 模块名()清屏;显示系统用户界面;WRITE(“请输入用户口令:”);READ(password);IF password系统口令 THEN 提示警告信息;退出运行;ENDIF 显示本系统主菜单;END,定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出软件中故障的数量以及软件开发需要用的工作量定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度,6.3.3 程序复杂程度的定量度量,定量度量程

12、序复杂度的常用方法:MaCabe方法Halstead方法,6.3.3 程序复杂程度的定量度量,McCabe方法,使用McCabe方法首先需要画出程序图,所谓程序图可以看成是“退化了的”程序流程图,也就是把程序流程图中每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为程序图。,环形复杂度的计算方法,可以用下列任何一种方法计算环形复杂度1、流图中的区域数等于环形复杂度2、流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。3、流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。上图中的的环形复杂度为4,环形

13、复杂度的用途,程序的环形复杂度取决于程序控制流的复杂程度,也即是取决于程序结构的复杂程度。当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。实践表明,模块规模以V(G)10为宜,也就是说,V(G)10是模块规模的一个更科学更精确的上限。,Halstead方法,Halstead方法根据程序中运算符和操作数的总数来度量程序的复杂程度。令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N N1十N2详细设计完成之后,可以知道程序中使用的不同运算符(包括关键字)的个数n1,以及不同操作数(变量和常数)的个数n2。Halstead给出预测程序长度的公式如下:H n1log2n1十n2log2n2 多次验证都表明,预测的长度H与实际长度N非常接近。Halstead还给出了预测程序中包含错误的个数的公式如下:E N log2(n1+n2)3000,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号