您好,欢迎访问三七文档
第七章构件级设计详细设计需要完成的工作在详细设计过程中,需要完成的工作是:(1)确定软件各个组成部分内的算法以及各部分的内部数据组织。(2)选定某种过程的表达形式来描述各种算法。可选用的过程表达形式有:流程图、盒图、PAD图等。(3)编写详细设计说明书。(4)制定单元测试计划。(5)进行详细设计评审。详细设计的表示详细设计中应采用合适的方式来描述模块内问题解决过程的细节,采用结构化的图形设计表示法是人们易于使用、易于理解的方式。图形设计表示法流程图盒图PAD图PDL语言程序流程图程序流程图是人们对解决问题的方法、思路或算法的一种描述。流程图的优点:(a)采用简单规范的符号,画法简单;(b)结构清晰,逻辑性强;(c)便于描述,容易理解。程序流程图结构化程序基本结构顺序结构选择结构循环结构标准流程图符号我国国家标准局批准的国家标准(GB1525-89)流程图符号:标准流程图示例盒图(N-S图)盒图是结构化程序设计出现之后,为支持这种设计方法而产生的一种描述工具。在NS图中,每个处理步骤用一个盒子表示。盒子可以嵌套。盒子只能从上头进入,从下头走出,除此之外别无其他出入口,所以盒图限制了随意的控制转移,保证了程序的良好结构与流程图相比,NS图的优点在于:(1)它强制设计人员按结构化程序设计方法进行思考并描述其方案;(2)图像直观,容易理解设计意图,为编程、复查、测试、维护带来方便;(3)简单易学。PAD图(问题分析图)PAD图是二维结构。PAD所描述的程序层次关系表现在纵线上,每条纵线表示了一个层次。PAD图是从左向右展开的。PAD图的描述结果保证了算法必然是结构化的。AB(a)顺序结构ABP(b)选择结构WHILEPS(c)WHILE型循环结构UNTILPS(d)UNTIL型循环结构A1A2P=An…P1P2Pn(e)多分支结构(f)语句标号(g)定义PAD图的基本符号ACB1B2P1WHILEP3C4CdefC1C2C3P2PAD图提供的定义功能PAD图的优点清晰的反映了程序的层次结构支持逐步求精的设计方法易读易写,使用方便支持结构化程序设计可自动生成程序PDL(ProgramDesignLanguage)PDL是一种用于描述功能模块的算法设计和加工细节的语言。它是一种伪码。一般地,伪码的语法规则分为“外语法”和“内语法”。外语法应当符合一般程序设计语言常用语句的语法规则;而内语法可以用英语中一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。使用PDL语言,可以做到逐步求精:从比较概括和抽象的PDL程序起,逐步写出更详细的更精确的描述。PDL程序的主要特征:①用PDL写出的程序具有正文格式。在计算机上可做正文处理.②PDL程序中会有一些能够标明程序结构的关键字.③PDL语言仅有少量的简单语法规则,大量使用人们习惯的自然语言。④使用PDL语言常常按逐步细化的方式写出程序.⑤PDL程序的注释行对语句进行解释,起到提高可读性的作用。PDL程序的构成(1)数据说明:PDL程序中指明数据名的类型及作用域.其形式为:declare<数据名>as<限定词><限定词>具体的数据结构:scalar<纯量>array<数组>list<列表>char<字符>structure<结构>(2)子程序结构procedure<子程序名>interface<参数表>分程序PDL语句returnend<子程序名><PDL语句指各种PDL构造>3)分程序结构begin<分程序名>PDL语句end<分程序名>(4)顺序结构选择型if<条件>thenPDL语句elsePDL语句endifif<条件>then<PDL语句>elseif<条件>then<PDL语句>else<PDL语句>endifCASE型Case选择句子of标号{,标号}:PDL语言[defoult]:[PDL语句]endcaseWHILE循环loopwhile条件PDL语句endloopUNTIL型循环loopuntil条件PDL语句endloop练习用程序流程图、盒图和PAD图描述下述面问题的控制结构。在数据A(1)~A(10)中求最大数。编码阶段编码(Coding)俗称编程序,把详细设计结论翻译成可执行代码的过程。分析阶段和设计阶段产生的文档,都不能在计算机上执行。只有到了编码阶段,才产生可执行代码(ExecutableCodes),把软件的需求真正付诸实现,所以编码阶段也称为实现(Implementation)阶段。7.1程序设计语言的特性7.1.1心理特性语言的心理特性指影响程序员心理的语言性能,许多这类特性是作为程序设计的结果而出现的,虽不能用定量的方法来度量,但可以认识到这类特性在语言中的表现形式:二义性、简洁性、局部性和顺序性、传统性。7.1.2工程特性为满足软件工程的需要,程序设计语言还应考虑:源代码的可移植性。要增强可移植性,就必须在设计时考虑模块与操作系统的特性不应有紧密的联系,同时要使用标准语言和标准的数据库操作,并且对程序中各种可变信息均应参数化,以便于修改。配套的开发工具。可维护性。可重用性。将设计变换为源程序的便利程度以及编译器的有效性等。7.2程序设计语言的基本机制程序设计语言的基本机制包括:1.对象说明预先说明程序中将要使用的常量、变量的名字和类型、过程或函数以及定义将要使用的类、类的实例等,便于编译程序检查使用方式的合法性,从而帮助程序员发现错误。2.数据类型的定义数据类型定义是一种抽象机制,例如类就是一个高度抽象的概念,类将数据结构和作用在数据结构上的一组操作封装成一个整体。7.2程序设计语言的基本机制3.子程序是可独立编译的程序单元,包含自己的数据结构和控制结构。子程序一般具备如下三种机制:①子程序说明,它给出子程序与其他程序单元的接口;②子程序体,它实现子程序的数据和控制结构;③调用方式。方法是类的实例对象提供给外界的接口,对象的数据结构必须由该类的方法来修改,其他的操作只有通过该接口才能进行一定权限的访问。7.2程序设计语言的基本机制4.几乎所有现代程序设计语言都允许程序员使用顺序、分支和循环三类结构,甚至许多语言的结构编辑器直接给出它们对应的语法框架。在面向对象程序设计语言中,最基本的机制除了类、对象之外,类之间存在继承关系,而对象之间通过消息传递以及动态链接等机制进行控制。7.3程序设计风格7.3.1命名程序设计过程要涉及到对变量、常量、函数、类、对象等编程元素进行命名。一个变量的作用域越大,它的名字所携带的信息就应该越多。所以,命名是良好程序设计风格的第一步。变量命名对于初学者,尤其是编写大型软件系统,推荐采用有意义的名字。匈牙利命名法是目前应用最广泛的一套变量命名规则,其规则为如下三个部分的组合:[前缀]-数据类型-变量名常用前缀例子包括:类成员变量以m开头,即m_;全局变量以g开头,即g_类型前缀类型前缀INTNVOIDvUINTUBOOLbLONGLCStringsULONGUlCDialogdlgWORDWCListlstDWORDDwCArrayarrFLOATFCRecordsetrcCHARCh指针类型pWCHARWch字符数组sz常用的数据类型缩写m_pHandler:某个类中的一个成员变量,它是一个指向Handler的指针变量。g_bInSearched:一个BOOL类型的全局变量,表示当前是否处于搜索过程中。pszName:一个指向字符数组类型的指针类型的局部变量。类名类名一律以C开头,并且紧接着C的第一个字母要大写。如ClassCStudentCDiaog的子类一律以CDlg作为前缀。如ClassCDlgLogin:CDialog函数或过程名函数和过程一般采用具有动作性的名字,如GetIfIndex()、SetValue()等。对于返回布尔类型值的函数,应该从函数名称中可以清楚地看出其返回值的情况。如应该使用IsEOF()和LargeOf(),而不要使用JudgeEOF()和CompareSize().7.3程序设计风格7.3.2表达式和语句名字的合理选择可以帮助读者理解程序,同样,我们也应该以尽可能一目了然的形式写好表达式和语句。应该写最清晰的代码,通过给运算符两边加空格的方式来帮助阅读,用加括号的方式排除二义性,用缩行显示程序的结构,不要一行多条语句,避免复杂的判定条件,避免多重循环嵌套,以及在表达式中使用括号以提高运算次序的清晰度等。采用一种一致的风格,是使程序呈现出结构清晰的最省力的方法。7.3程序设计风格7.3.3程序注释注释是帮助阅读和理解程序的一种有效手段,用自然语言或伪码描述。注释说明了程序的功能,特别是在维护阶段,对理解程序提供了明确的指导。注释一般分为序言性注释和功能性注释。每一个程序都由一个表明程序用途的序言性注释开始。7.3程序设计风格序言性注释应置于每个模块的起始部分,主要内容有:说明每个模块的用途、功能;说明模块的接口:调用形式、参数描述及从属模块的清单;数据描述:重要数据的名称、用途、限制、约束及其他信息;开发历史:设计者、审阅者姓名及日期,修改说明及日期。7.3程序设计风格功能性注释嵌入在源程序内部,说明程序段或语句的功能,以及数据的状态。注意以下几点:注释用来说明程序段,而不是每一行程序都要加注释;使用空行、缩格或括号,以便很容易区分注释和程序;修改程序的同时要修改注释。7.3程序设计风格7.3.4输入与输出在编写输入和输出程序段时应考虑以下原则:输入操作步骤和输入格式应尽量简单;应检查输入数据的合法性、有效性,报告必要的输入状态信息及错误信息;输入一批数据时,使用数据或文件结束标志,而不要用计数来控制;在进行交互式输入时,提供可用的选择和边界值;当程序设计语言有严格的格式要求时,应保持输入格式的一致性;输出数据表格化、图形化。7.4程序设计语言的选择7.4.1程序设计语言的分类程序设计语言是人和计算机通信的基本工具,它的特点不可避免会影响人思维和解决问题的方式,影响人和计算机通信的方式和质量。分类:1.基础语言;2.结构化语言;3.面向对象语言。1.基础语言FORTRAN、COBOL和BASIC是这类语言的代表。之所以称这些为基础语言,是因为它们都有较长的使用历史,在国内外流传甚广,有大量已开发的应用软件,今天仍拥有广大的用户。2.结构化语言20世纪70年代以来,在结构化程序设计影响下,先后出现了一批常用的结构化语言。Pascal它是第一个系统地体现结构化程序概念的现代高级语言。C语言它除了具有结构化语言的公共特征,如表达简洁,控制结构与数据结构完备,有丰富的运算符和数据类型外,尤以移植力强、编译质量高等特点。Ada语言它是迄今为止最完善的面向过程的现代语言,也是集FORTRAN以来各种语言之大成的语言。3.面向对象语言C++语言C++是从C语言进化而来,是C语言的超集。Java语言Java语言是当今流行的新兴网络编程语言,它的面向对象、跨平台、分布式应用等特点给编程人员带来了一种崭新的计算概念。国外不少软件公司在4GL的影响下,推出了一些快速开发的编码工具,其中流行较广的有Delphi、PowerBuilder、VisualBasic、VisualFoxpro和Javascript等等。它们一般都限定于某些特定的应用领域(如数据库应用、网络开发),或支持某种编程特色(如可视化编程),由于易学易用而受到用户欢迎。7.4程序设计语言的选择7.4.2程序设计语言的选择D.A.Fisher说过:“程序设计语言不是引起软件问题的原因,也不能用它来解决软件问题。但是,由于语言在一切软件活动中所处的中心地位,它们能使现存的问题变得较易解决,或者更加严重。”当衡量某一语言是否可选作编码语言时,常使用以下几项为评价标准:应
本文标题:第7章构件设计.
链接地址:https://www.777doc.com/doc-2111951 .html