软件工程软件设计详细设计.ppt

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

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

1、软件设计,3.1 软件概要设计概述 3.2 软件设计的基本原理3.3 软件结构准则3.5 软件详细设计3.6 软件详细设计表示法3.7 小结习题,3.5 软件详细设计,3.5.1 详细设计的基本任务1算法设计用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。2数据结构设计对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。,3物理设计对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。4其他设计根据软件系统的类型,还可能要进行以下设计:(1)代码设计:为了提高数据的输入、分类、存储

2、及检索等操作的效率,以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。,(2)输入/输出格式设计。(3)人机对话设计:对于一个实时系统,用户与计算机需频繁对话,因此要进行对话方式、内容及格式的具体设计。5编写详细设计说明书详细设计说明书有下列的主要内容:(1)引言:包括编写目的、背景、定义、参考资料。(2)程序系统的组织结构。,(3)程序1(标识符)设计说明:包括功能、性能、输入、输出、算法、流程逻辑、接口。(4)程序2(标识符)设计说明。(5)程序N(标识符)设计说明。6评审 对处理过程的算法和数据库的物理结构都要评审。,3.5.2 详细设计方法 处理过程设计中采用的典型方法是结构

3、化程序设计(SP)方法,最早是由在20世纪60年代中期提出的。详细设计并不是具体地编程序,而是已经细化成很容易从中产生程序的图纸。因此详细设计的结果基本决定了最终程序的质量。为了提高软件的质量,延长软件的生存期,软件的可测试性、可维护性是重要保障。软件的可测试性、可维护性与程序的易读性有很大关系。详细设计的目标不仅是逻辑上能正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。结构化程序设计方法有以下几个基本要点。,1采用自顶向下、逐步求精的程序设计方法在需求分析、概要设计中,都采用了自顶向下

4、、逐层细化的方法。使用“抽象”这个手段,上层对问题抽象、对模块抽象和对数据抽象,下层则进一步分解,进入另一个抽象层次。在详细设计中,虽然处于“具体”设计阶段,但在设计某个模块内部处理过程中,仍可以逐步求精,降低处理细节的复杂度。,2使用三种基本控制结构构造程序任何程序都可由顺序、选择及重复三种基本控制结构构造。这三种基本结构的共同点是单入口、单出口。,三种方式对模糊过程进行分解:,(1)用顺序方式对过程分解,确定各部分的执行顺序。(2)用选择方式对过程分解,确定某个部分的执行条件。3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。对处理过程仍然模糊的部分反复使用以上分解方法,最

5、终可将所有细节确定下来。,例:在一组数中找出其中最大的数,1 输入一组数;,1 输入一个数组;,1 输入一个数组;,2 找出其中的最 大数;,3 输出最大数。,3 输出最大数。,2.1 任取一数,假定它就是最大 数;2.2 将该数与其余各数逐一比 较;2.3 若发现任何数大于假设的 最大数,即取而代之;,2.1 令”最大数”=数组的第 一个元素;2.2 从第二个元素至最后 一个元素做循环;2.3 如果 新元素“最大数”则“最大数”=新元素;,3 输出“最大数”。,求解步骤,细化第二步,结构化语言描述,问题求解逐步细化的过程,3主程序员的组织形式主程序员的组织形式指开发程序的人员应采用以一个主程

6、序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三人为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。这种组织形式突出了主程序员的领导,设计责任集中在少数人身上,有利于提高软件质量,并且能有效地提高软件生产率。这种组织形式最先由IBM公司实施,随后其他软件公司也纷纷采用主程序员制的工作方式。因此,结构化程序设计方法是综合应用这些手段来构造高质量程序的思想方法。,3.6 软件详细设计表示法,关于描述工具的有关说明:1.为了给出软件结构图中每一个模块的算法和块内数据结构 的清晰描述,需要采用适当

7、的表达工具。2.详细设计的表达工具有三类:图形、表格和语言。3.无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它方面的细节的能力,而且在编码 阶段能够直接将它翻译为用程序设计语言书写的源程序。4.详细设计的描述工具除了以前介绍过判定树和判定表外,还有程序流程图、N-S图、PAD图及PDL等几种常用的工具.,图3.8 三种基本控制结构的流程图,3.6.1 程序流程图程序流程图又称为程序框图,它是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具,图3.8为流程图的三种基本控制结构。,流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具,但是它有如下严重缺点:(1)

8、可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构,编码时势必不加限制地使用GOTO语句,导致基本控制块多入口多出口,这样会使软件质量受到影响,与软件设计的原则相违背。(2)流程图不能反映逐步求精的过程,往往反映的是最后的结果。(3)不易表示数据结构。为了克服流程图的缺陷,要求流程图都应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。,示例,例1.“在一组数中找出其中最大的数”的程序流程图,MAX=A(1),i=2,i=i+1,MAX=A(i),in?,MAXA(ii),对应程序段:max:=A1 i:=2 WHILE in DO IF

9、Aimax THEN max:=Ai i:=i+1,注.1.A是一个n元数组;2.省略变量说明;3.省略输入、输出语句。,3.6.2 PAD图 PAD图指问题分析图(Problem Analysis Diagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。PAD图的基本控制结构如图3.9所示。,图3.9 PAD图的基本控制结构,PAD图的控制流程为自上而下、从左到右地执行。图3.10给出了将数组A(1)到A(10)进行选择法排序的算法描述的PAD图。,图3.10 PAD图的示例,从图3.10给出的例子可以看出PAD图的优点如下:(1)清晰地反映了

10、程序的层次结构。图中的竖线为程序的层次线,最左边竖线是程序的主线,其后一层一层展开,层次关系一目了然。(2)支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。(3)易读易写,使用方便。,(4)支持结构化的程序设计原理。(5)可自动生成程序。PAD图有对照FORTRAN,Pascal,C等高级语言的标准图式。因此在有PAD系统的计算机上(如日立公司的M系列机),可以直接输入PAD图,由机器自动通过遍历树的办法生成相应的源代码,大大提高了软件的生产率。PAD图为软件的自动化生成提供了有力的工具。,例.“在一组数中找出其中最大的数”的PAD图,MAX=A(1),MAX=A(i)

11、,对应程序段:max:=a1 i=2 WHILE in DO IF aimax THEN max:=ai;i=i+1,注.1.A是一个n元数组;2.省略变量说明;3.省略输入、输出语句。,PAD描述的示例,练习:计算n!(要求掌握流程图、PAD图),开始,结束,输入n,S=1T=1,S=STT=T+1,输出S,T n,1.程序流程图,输入n,T=1,S=1,T=T+1,S=ST,输出S,2.PAD图,Get n;T=1;S=1;Repeat S=ST;T=T+1Until Tn Print S;,3.PDL语言,3.6.3 过程设计语言过程设计语言(Process Design Languag

12、e,简称PDL)是在伪码的基础上,扩充了模块的定义与调用、数据定义和输入/输出而形成的。它的控制结构与伪码相同。PDL是一种用于描述模块算法设计和处理细节的语言。PDL与在8.5节中介绍的结构化语言的结构相似,一般分为内外两层语法,外层语法应符合一般程序设计语言常用的语法规则,而内层语法则用一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口,而它表示实际操作和条件的内层语法又是灵活自由的,使用自然语言的词汇。,PDL与结构化分析中描述加工逻辑的“结构化语言”所不同的仅是,它们的作用不同,抽象层次不同,模糊程度不同。

13、“结构化语言”是描述加工“做什么”的,并且使开发人员和用户都能看懂,因此无严格的外语法,内层自然语言描述较抽象、较概括。而PDL是描述处理过程“怎么做”的细节。开发人员将按其处理细节编程序,故外层语法更严格一些,更趋于形式化,内层自然语言描述实际操作更具体更详细一些。1PDL特点PDL的特点如下:(1)所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。,(2)描述处理过程的说明性语言没有严格的语法。(3)具有数据说明机制,包括简单的与复杂的数据说明。(4)具有模块定义和调用机制,开发人员应根据系统编程所用的语种,说明PDL表示有关程序结构。,2程序结构用PDL表示的程序结构

14、一般有下列几种结构。1)顺序结构采用自然语言描述顺序结构:处理S1 处理S2 处理Sn,2)选择结构(1)IF-EISE结构:IF条件 IF条件 处理S1 或 处理S ELSE ENDIF 处理S2 ENDIF,(2)IF-ORIF-ELSE结构:IF条件1 处理S1 ORIF条件2 ELSE处理Sn ENDIF,(3)CASE结构:CASE OF CASE(1)处理S1 CASE(2)处理S2 ELSE处理Sn ENDCASE,3)重复结构(1)FOR结构:FOR i=1 TO n 循环体 END FOR(2)WHILE结构:WHILE条件 循环体 ENDWHILE,(3)UNTIL结构:R

15、EPEAT 循环体 UNTIL条件4)出口结构(1)ESCAPE结构(退出本层结构):WHILE条件 处理S1 ESCAPE L IF条件 处理S2 ENDWHILE L:,(2)CYCLE结构(循环内部进入循环的下一次):L:WHILE条件 处理S1 CYCLE L IF条件 处理S2 ENDWHILE,5)扩充结构(1)模块定义:PROCEDURE模块名(参数)RETURN END(2)模块调用:CALL模块名(参数),(3)数据定义:DECLARE属性 变量名,属性有:字符、整型、实型、双精度、指针、数组及结构等类型。(4)输入/输出:GET(输入变量表)PUT(输出变量表),3PDL应

16、用示例现以系统主控模块详细设计为例,说明如何用PDL来描述。PROCEDURE 模块名()清屏;显示系统用户界面;PUT(“请输入用户口令:”);GET(password);IF password系统口令 提示警告信息;退出运行 ENDIF,显示本系统主菜单;WHILE(true)接收用户选择ABC;IF ABC=“退出”Break;ENDIF 调用相应下层模块完成用户选择功能;ENDWHILE;清屏;RETURN END,从示例可以看到PDL的总体结构与一般程序完全相同。外语法同相应程序语言一致,内语法使用自然语言,易编写,易理解,也很容易转换成源程序。除此以外,还有以下优点:(1)提供的机

17、制较图形全面,为保证详细设计与编码的质量创造了有利条件。(2)可将注释嵌入在源程序中一起作为程序的文档,并可同高级程序设计语言一样进行编辑、修改,有利于软件的维护。(3)可自动生成程序代码,提高软件生产率。目前已有PDL多种版本(如PDL/pascal,PDL/C,PDL/Ada等),为自动生成相应代码提供了便利条件。,3.7 小结,从软件设计开始,瀑布模型的各阶段都是面向计算机领域的。软件设计分为概要设计和详细设计两个阶段。概要设计的任务是要建立软件系统的体系结构,即软件系统要划分多少个模块,模块之间的层次结构和调用关系是怎样的。同时还要设计数据结构和数据库结构,设计人机接口等。,概要设计还

18、要求遵守相应的设计原理,如模块化、抽象、信息隐蔽和模块独立性等原理。在建立软件体系结构时还要遵循软件结构设计的一些准则,如软件结构的深度、宽度、扇入、扇出要适当,模块的作用范围要在其控制范围之中等。软件体系结构可用软件结构图和IPO图的H图来描述。概要设计的方法可采用结构化方法和面向对象方法等来设计。概要设计产生的文档是概要设计说明书。概要设计之后要进行软件详细设计。软件详细设计的主要任务是描述每个模块的算法,即实现该模块功能的处理过程,它通常采用结构化程序设计来进行,采用程序流程图、PAD图、PDL语言等工具来描述。,对于某些项目,由于采用了相应的开发工具,如PowerBuilder,Dev

19、elop 2000等,这时软件详细设计阶段工作就不太明显了。,习题,1什么是软件概要设计?该阶段的基本任务是什么?2软件设计的基本原理包括哪些内容?3衡量模块独立性的两个标准是什么?它们各表示什么含义?4模块间的耦合性有哪几种?它们各表示什么含义?5模块的内聚性有哪几种?各表示什么含义?,6什么是软件结构?简述软件结构设计优化准则。7什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系?8详细设计的基本任务是什么?有哪几种描述方法?9结构化程序设计基本要点是什么?10请使用流程图、PAD图和PDL语言描述下列程序的算法。(1)在数据A(1)A(10)中求最大数和次大数。(2)输

20、入三个正整数作为边长,判断该三条边构成的三角形是直角、等腰或一般三角形。,11用PAD图描述以下问题的控制结构。有一个表A(1),A(2),A(N),按递增顺序排列。给定一个Key值,在表中用折半法查找。若找到,将表位置i送入x,否则将零送到x,同时将Key值插入表中。算法:(1)置初值H=1(表头),T=N(表尾)。(2)置i=(H+T)/2(取整)。(3)若Key=A(i),则找到,i送到x;若KeyA(i),则Key在表的后半部分,i+1送入H;若KeyA(i),则Key在表的前半部分,i-1送入T,重复第2步查找,直到HT为止。(4)查不到时,将A(i),A(N)移到A(i+1),A(N+1),Key值送入A(i)中。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号