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

下载本文档

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

文档简介

第5章详细设计详细设计的任务和原则详细设计的描述工具详细设计说明书详细设计的任务:1、为每个模块选择适当的算法并选取描述工具详细描述这些算法。2、确定每个模块所使用的数据结构。3、确定各个模块及模块间接口的细节,包括用户界面和外部软硬件接口、模块间的接口、模块局部数据和输入输出数据。4、为每个模块设计测试用例,使得编码阶段对具体模块的调试测试更加方便。5、编写详细设计说明书。详细设计的任务为了是详细设计更加地科学严谨,应遵守以下原则:对于模块的逻辑描述,要在确保正确可靠的基础上尽量地使得其更加清晰易读。选择适当的描述工具来对各模块的算法进行描述。采用结构化的设计方法,改善程序的结构,使其结构更加科学标准,同时也降低了程序的复杂度,从而提高了程序的可读性、可测试性和可维护性。详细设计的原则详细设计的描述方式详细设计的描述方式分类:1)图形描述:流程图、盒图、PAD图等2)语言描述:PDL语言等3)表格描述:判定表等详细设计的描述工具:下面介绍一些有代表性的详细设计工具:

(1)程序流程图

程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。主要优点:独立于任何一种程序设计语言,能够比较直观和清晰地描述过程的控制流程,易于学习掌握。

为使流程图支持结构化程序设计,限制在流程图中只能使用下述的五种基本控制结构。详细设计的描述工具程序流程图:是使用最广泛、历史最悠久的描述程序逻辑结构的工具。AB顺序选择多分支选择“当型”循环A条件“直到型”循环A条件FTTF注:其中A或B为:①非转移语句(可以为空)。②三种基本结构之一。AB条件AB条件C详细设计的描述工具程序流程图的主要缺点如下:①程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构;②程序流程图使用箭头代表控制流,程序员不受任何约束,可以完全不顾结构程序设计的原则,随意转移控制;③程序流程图不易表示数据结构和描述有关的数据,只能描述执行过程;④对于大型软件而言,流程图过于琐碎,不容易阅读和修改。详细设计的描述工具举例:请使用流程图描述下列程序的算法:在数据A(0)~A(10)中求最大数。详细设计的描述工具(2)N-S图(盒图):是一种符合结构化程序设计原则的图形描述工具。在N-S图中,为了表示五种基本控制结构,规定了五种图形构件。AB顺序多分支选择“当型”循环注:其中P为循环条件,S为循环体。PFTBAPFTA选择=1P=2=nABNDO-WHILEPDO-UNTILPSS“直到型”循环详细设计的描述工具N-S图有下述特点:①功能域(一个特定控制结构的作用域)明确,图中每个矩形框(除CASE构造中表示条件取值的矩形框外),就是功能域。②不可能任意转移控制,约束设计人员必须遵守结构化程序设计的要求。③在盒图上很容易确定局部和全程数据的作用域。④很容易表现嵌套关系,也可以表示模块的层次结构。详细设计的描述工具举例:请使用N-S描述下列程序的算法:在数据A(0)~A(10)中求最大数。详细设计的描述工具(3)PAD图:问题分析图。是日本日立公司1979年提出的一种算法描述工具,它的结构是由左向右展开的树型结构。选择顺序ABFT条件AB多分支选择ACBCASE值1值2值nPAD基本控制结构详细设计的描述工具(3)PAD图:

WHILE条件A

UNTIL条件AAS1S3S2def“当型”循环“直到型”循环定义A(对A细化)PAD基本控制结构详细设计的描述工具PAD图举例:将数组A(1)到A(10)进行选择法排序(升序)的算法描述。PAD图的控制流程为自上而下、从左到右。输入A(1)到A(10)的值开始置初值:n=10sort输出A(1)到A(10)的值结束详细设计的描述工具PAD图举例:将数组A(1)到A(10)进行选择法排序的算法描述。PAD图的控制流程为自上而下、从左到右。

WHILEi≤n-1sorti=1defm=ij=i+1

WHILEj≤nA(m)﹤-﹥A(i)i=i+1FTA(m)>A(j)m=jj=j+1详细设计的描述工具举例:请使用PAD图描述下列程序的算法:在数据A(0)~A(10)中求最大数。详细设计的描述工具PAD图的优点:1、清晰地反映了程序的层次结构。图中的竖线为程序的层次线,最左边的竖线是程序的主线,其后一层一层展开,层次关系一目了然。2、支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。3、易读易写,使用方便。4、支持结构化的程序设计原理。5、可以自动生成程序。PAD图有对照FORTRAN、Pascal、C等高级语言的标准图式,因此,在有PAD系统的计算机上(如日立公司的系列机),可以直接输入PAD图,由计算机自动通过走树的方法生成源程序代码,为软件的自动生成提供了有力的工具。〕详细设计的描述工具(4)PDL(ProgramDesignLanguage

PDL与需求分析中采用的结构化语言统属于伪码。伪码的结构分为内外两层,外语法应符合一般程序设计语言常用的语法规则,而内层语法则用一些简单的句子、短语(自然语言)。详细设计的描述工具PDL作为一种用于描述程序逻辑的语言,具有以下特点:①有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征②内语法使用自然语言来描述处理特性,为开发者提供方便,提高可读性。③具有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。④具有子程序定义与调用机制,用以表达各种方式的接口说明。⑤由于与程序是同构的,可利用自动生成程序自动生成代码,提高软件生产率。详细设计的描述工具PDL中相关的关键词介绍:

1、数据说明TYPE<变量名>IS<限定词1><限定词2>2、程序块BEGIN<块名><一组PDL语句>END详细设计的描述工具3、控制结构1)顺序结构在这个结构中,程序按语句的先后顺序执行。2)选择结构IF<条件>THEN<语句或程序块>ELSE<语句或程序块>ENDIF详细设计的描述工具3)多路选择结构CASEOF<变量名>:WHEN<条件1>SELECT<语句或程序块>WHEN<条件2>SELECT<语句或程序块>……WHEN<条件n>SELECT<语句或程序块>DEFAULT:<语句或程序块>ENDCASE详细设计的描述工具4)循环结构WHILE循环的形式如下:DOWHILE<条件><语句或程序块>ENDDOUNTIL循环的形式如下:REPEATUNTIL<条件><语句或程序块>ENDREPFOR循环的形式如下:DOFOR<循环变量>∈<循环变量的取值范围><语句或程序块>ENDFOR详细设计的描述工具4、子程序子程序的形式如下:PROCEDURE<子程序名><属性表>INTERFACE<参数表><语句或程序块>END对子程序的调用可采用PERFORM。其形式如下:PERFORM<子程序名>如果调用该子程序需要参数时,则其形式如下:PERFORM<子程序名>USING<参数名>详细设计的描述工具5、输入输出用PDL描述输入输出一般有两种形式:READ/WRITETO<设备><I/O表>或ASK<询问>ANSWER<响应选项>其中,第一种形式的<设备>是指I/O设备,<I/O表>则是其要传送的变量名。而第二种形式则多用于人机交互的设计详细设计的描述工具PDL应用示例以××系统主控模块详细设计为例:

PROCEDERE模块名()清屏;

显示××系统用户界面;WRITE(“请输入用户口令:”);

READ(password);IFpassword<>系统口令THEN

提示警告信息;

退出运行;ENDIF

显示本系统主菜单;

…END

详细设计说明书参考标准文档

其他设计方法

面向数据结构的设计方法是根据数据结构设计程序处理过程的方法。

目前比较成熟的有

M.A.Jackson提出的Jackson系统开发方法(JSD,JacksonSystemDevelopment)和J.D.warnier提出的程序逻辑构造方法LCP(LogicalConstructionofPrograms)。

Jackson方法Jackson方法思想

面向数据结构的设计是根据某些过程,从一些数据结构中导出程序结构,着重于问题域数据结构到问题解的程序结构之间的转换,而不强调模块定义。①首先要充分了解所涉及的数据结构,而且用工具清晰地描述数据结构;②然后按一定的步骤根据数据结构,导出解决问题的程序结构,完成设计。其他设计方法(2)Jackson图

Jackson图表示的三种基本结构,由方框、连线和一些附加标记组成。标记“o”代表选择,标记“*”代表重复。连线可以理解为“包含”或“由……组成”。ABCAB0C0AB*顺序选择重复其他设计方法Jackson方法的步骤一般可以归纳为五个步骤:1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。2)找出输入数据结构和输出数据结构中有对应关系的数据单元

。其他设计方法

3)按照一定的映射规则由输入、

温馨提示

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

评论

0/150

提交评论