第3讲 详细设计_第1页
第3讲 详细设计_第2页
第3讲 详细设计_第3页
第3讲 详细设计_第4页
第3讲 详细设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、1第三讲 详细设计2n详细设计目的详细设计目的 详细设计的目的是为系统结构图中的每一个模块确定采用的算法(包括数据结构的操作、构件之间的通信),用某种选定的表达工具给出清晰的描述,使程序员可以将这种描述直接翻译为某种语言程序。3- 详细设计是一个定义低层构件、模块和接口的过程;- 把AD阶段构建的设计模型进一步扩展为一个结构化的构件规范集合;- 每一个构件规范都要定义:功能、输入、输出及内部处理。4n实施者实施者 软件工程师5n详细设计的原则详细设计的原则为了能够使模块的逻辑描述清晰准确,在详细设计阶段应遵循下列原则。 (1) 将保证逻辑描述的清晰度放在首位 (2) 设计过程中应采用逐步细化的

2、实现方法 (3) 选择适当的表达工具 6详细设计的过程(1) 定义设计标准定义设计标准 - 设计方法; - 文档; - 命名约定; - CASE工具; - 错误处理7(2)构件分解构件分解- 从ADD中的构件开始分解,直到构件可以利用所选编程语言进行实现;- 分解过程所用的方法和工具应与体系结构设计阶段一致。8 构件分解的基本原则: - 构件不能包含太多的功能 - 构件不能太复杂 - 构件应具有高内聚特征; - 注重构件重用。9(3) 软件重用软件重用 如: - 数据管理; - 人机交互构件; - 数学库; - 图形库等等。10(4) 定义构件处理定义构件处理 利用伪码(pseudo-code

3、)勾画模块的处理步骤,然后逐步细化; 对处理的描述应反映所选编程语言的特点。11 每一个模块/方法应仅包含一个入口和一个出口; - 控制应从入口到出口; - 只有在循环中控制流可以逆向。 12(5 5)形成详细设计文档并评审)形成详细设计文档并评审 内部评价设计规范的完整性、一致性、正确性。(6 6)形成其它管理文档)形成其它管理文档- 开发者撰写用户手册;- 形成测试规范 单元测试由程序员完成,测试规范由软件工程师完成; 对于大型项目,系统测试和验收测试规范由第三方完成。 对于小型项目,系统测试和验收测试规范由开发者完成,用户审核认可。13n 详细设计的工具详细设计的工具 可以分为图形、表格

4、和语言三类。 1图形工具:包括程序流程图、N-S图和PAD图; 2表格工具:包括判定表和判定树; 3语言工具:包括PDL语言。 141程序流程图程序流程图也称为程序框图,它是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具。1)程序流程图的符号和表示方式152)用程序流程图表达的三种基本控制结构如下图所示。 16 3)程序流程图的实例下面以求一组数中的最大值为例说明程序流程图的画法。如果要实现找出一组数中最大值这个功能,可将这组数存于一个数组A中,如果用语言描述其计算过程如下:(1)输入一个数组A,元素个数为N;(2)令最大数MAX=A(1)(数组中的第1元素);(3)从A(2)至A(N)(

5、即第2个元素至最末一个元素)依次与最大数MAX进行比较;(4)如新元素MAX,则MAX=新元素;(5)输出最大数MAX。1718 4)程序流程图的优缺点 程序流程图的优点是比较直观、清晰,使用灵活,便于阅读和掌握,因此在20世纪40年代末到70年代初被普遍采用。但随着程序设计方法的发展,程序流程图的许多缺点逐渐暴露出来。这些缺点主要体现在以下方面: 可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构; 程序流程图本质上不支持逐步求精,它使程序员容易过早地考虑程序的具体控制流程,而忽略了程序的全局结构; 程序流程图难以表示系统中的数据结构; 对于大型系统而言,程序流程图描述过于琐碎,不

6、容易阅读和修改。19 2盒图 盒图又称为N-S图(Nassi-Shneiderman 图),它是由Nassi和Shneiderman 按照结构化的程序设计要求提出的描述一种图形算法工具。 1)盒图的表示方式 用盒图表达的三种基本控制结构如下图所示。 20 2)盒图的实例 以前面求一组数中最大值的算法为例,如用盒图描述,结果如下图所示。 21 3)盒图的优缺点 盒图有如下一些优点: 所有的程序结构均用方框来表示,无论并列或者嵌套,程序的结构清晰可见; 它的控制转移不能任意规定,必须遵守结构化程序设计的要求; 很容易确定局部和全程数据的作用域; 很容易表现嵌套关系,也可以表示模块的层次结构。盒图不

7、足的是,当程序内嵌套的层数增多时,内层的方块越画越小,不仅会增加画图的困难,并将使图形的清晰性受到影响;当需要对设计进行修改时,盒图的修改工作量会很大。 22 3PAD图PAD是问题分析图(Problem Analysis Diagram)的英文缩称。PAD图的基本原理是:采用自顶向下、逐步细化和结构设计的原则,力求将模糊的问题解的概念逐步转换为确定的和详尽的过程,使之最终可采用计算机直接进行处理。 1) PAD图的表示方式 用PAD图表达的三种基本控制结构如下图所示。 AB顺序型顺序型ABPWHILE PS选择型选择型重复型重复型23输入数组输入数组AMAX=A(1)I=2,N输出输出MAX

8、MAX=A(I)MAXA(I)2) PAD图的实例 以前面求一组数中最大值的算法为例,如用PAD图来描述,结果如下图所示。 24 3)PAD图的优缺点PAD图的主要优点如下: 支持自顶向下,逐步求精的要求; PAD图满足结构化程序设计要求,因此采用PAD图导出的程序必然是结构化的; PAD图描述的算法结构清晰、易读易懂、使用方便。图中每条竖线表示一个嵌套层次,图示随层次增加向右伸展; PAD图既可以描述控制,也可以描述数据结构,很容易将PAD图描述的算法转换为源程序代码; 可自动生成程序。但是,与程序流程图和盒图相比,PAD图的使用不是很普遍。 25 4判定表和判定树 请分别用判定表和判定树工

9、具来描述某单位工资档案管理系统中“职务津贴计算”加工逻辑过程。 假定职工的职称只分为助工、工程师和高工三种,保低津贴分别是350、400、500元,并且单位根据职工的工作年限给予津贴适当的上浮奖励,具体上浮情况如下:无论助工、工程师和高工工作年限在10年以下的无浮动;对于在单位工作超过10年但不到20年的职工,助工、工程师津贴上浮20%,高工上浮30%;对于在单位工作超过20年的职工,助工津贴上浮30%,工程师津贴上浮35%,高工上浮40%。 262728 5PDL语言 PDL语言即过程设计语言(Procedure Design Language),是一种用于描述程序算法和定义数据结构的伪码设

10、计语言。 1)PDL的构成 PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇来表示实际操作,同时却使用另一种语言(某种结构化的程序设计语言)的语法来定义控制结构和数据结构。自然语言的采用使算法的描述灵活自由、清晰易懂,结构化程序设计语言的采用使控制结构的表达具有固定的形式且符合结构化设计的思想。 29 2)PDL的实例 前面求一组数中最大值的过程如果用PDL语言描述,结果如下: INPUT ARRAY A MAX=A(1) DO FOR I=2 TO N IF MAXA(I) SET MAX=A(I) ENDIF PRINT MAX30 3)PDL语言的优缺点 PDL语言具

11、有如下一些优点: PDL虽然不是程序设计语言,但是它与高级程序设计语言非常类似,只要对PDL描述稍加变换就可变成源程序代码,因此,它是详细设计阶段很受欢迎的表达工具; 用PDL写出的程序,既可以很抽象,又可以很具体。因此,容易实现自顶向下逐步求精的设计原则; PDL描述同自然语言很接近,易于理解; PDL描述可以直接作为注释插在源程序中,成为程序的内部文档,这对提高程序的可读性是非常有益的。 PDL的缺点是不如图形工具那样描述形象直观,对复杂条件的描述,不如判定表清晰、简单,因此常常将PDL描述与一种图形描述工具结合起来使用。 3132程序的复杂性度量程序的复杂性度量 定量度量程序复杂程度的方

12、法很有价值: 1) 估算出系统中故障的数量; 2) 估算系统开发需要用的工作量; 3) 可以用来比较两个不同的设计或两个不同算法的优劣; 4) 可以作为模块规模的精确限度。 33 环形复杂度的度量方法 1程序图 使用McCabe方法首先需要画出程序图(Program Graph),所谓程序图可以看成是“退化了的”程序流程图,也就是把程序流程图中的每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为程序图。几种基本结构的程序图如下图所示。3435开始开始 Sabcdefgh结束结束E(a)程序流程图)程序流程图abcdefghE(b)程序图程序图例

13、子例子36 2. 环形复杂度的度量方法 环形复杂度等于强连通的程序图中线性无关的有向环的个数。根据图论,在一个强连通的有向图中线性无关环的个数由下面的公式给出: V(G)mn1 其中,V(G)表示有向图G中的线性无关的环数; m表示有向图G中有向边(弧)的个数; n表示有向图中的结点个数; 37用来源于图论中的公式来计算左图所示的强连通程序图的环形复杂度,根据公式可得: V(G)13101438 3环形复杂度的用途 程序的环形复杂度取决于程序控制流的复杂程度,也即取决于程序结构的复杂程度。当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对系统最终的可

14、靠性给出某种预测。 McCabe研究大量程序后发现,程序的环形复杂度越高,程序的可理解性就越差,程序测试和维护的难度也就越大,并且,环形复杂度高的程序,往往就是最容易出问题的程序。 实践证明,模块规模以V(G)10为宜,即尽量将程序的环形复杂度控制在10以下。 39详细设计规范Part 1 总体描述总体描述(General Description)1 前言(Introduction) 1.1 目的(Purpose) 1.2 范围(Scope) 1.3定义,首字母缩略词和简写(Definitions, acronyms and abbreviations) 1.4参考文献(References)

15、 1.5文档概要(Overview)402 项目标准,约定和规程(Project Standards, Conventions and Procedures) 2.1 设计标准(Design standards) 2.2 文档标准(Documentation standards) 2.3 命名约定(Naming conventions) 41Part 2 构件设计规范构件设计规范(Component Design Specifications) n 构件标识符(Component identifier) n.1 类型(Type) n.2 目的(Purpose) n.3 功能(Function)

16、 n.4 子构件(Subordinates) n.5 依赖性(Dependencies) n.6 接口(Interfaces) n.7 资源(Resources) n.8 参考文献(References) n.9 处理(Processing) n.10 数据(Data)42附录A 软件需求与构件跟踪矩阵(Appendix B Software Requirements vs Components Traceability matrix)43Part 1 总体描述总体描述(General description)Part 1/1 前言前言(Introduction)本节应描述目的、范围、术语、参

17、考文献和文档概要。(This section should describe the purpose and scope, and provide a glossary, list of references and document overview.)Part 1/1.1文档的目的文档的目的(Purpose of the document)本节应该:(1) 描述DDD的目的(describe the purpose of the particular DDD);(2) 描述DDD的目标读者(specify the intended readership of the DDD)。44Part

18、 1/1.2软件范围软件范围(Scope of the software)本节应:(1) 描述软件产品的名字(identify the software product(s) to be produced);(2) 解释软件将要做什么、不能做什么(explain what the proposed software will do (and will not do, if necessary));(3) 尽可能精确地描述系统产生的利益、实现的目标(describe the relevant benefits, objectives and goals as precisely as possi

19、ble);(4) 如果存在高层规范,则应该与其描述相一致(be consistent with similar statements in higher-level specifications, if they exist)。45Part 1/1.3定义,首字母缩略词和简写定义,首字母缩略词和简写(Definitions, acronyms and abbreviations)这一节应提供DDD中所用到的所有术语、缩写、简写的定义,或可参照的其它文档。(This section should define all terms, acronyms, and abbreviations used

20、 in the DDD, or refer to other documents where the definitions can be found.)Part 1/1.4参考文献参考文献(References)这一节应提供一个完整的文献列表,包括:名称、作者、日期、报告号、期刊名称、出版机构名称等。Part 1/1.5文档概要文档概要(Overview)本节应该:(1) 描述DDD其余部分的结构(describe what the rest of the DDD contains);(2) 解释DDD如何组织(explain how the DDD is organized)。46Part 1/2项目标准,约定和规程项目标准,约定和规程(Project Standards, Conventions and Procedures)Part 1/2.1 设计标准设计标准(Design standards)应参照AD阶段所采用的方法,仅描述DD阶段所用的具体方法。如果涉及多种方法或多种编程语言(例如,在一个Ada项目中采用C语言设计和编程),DD标准或许不同。47Part 1/2.2 文档标准文档标准(Documentation standard

温馨提示

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

评论

0/150

提交评论