软件工程 第五章 详细设计

1 详细设计的内容是什么

内容
(1)确定每个模块的算法。
(2)确定每一个模块的数据组织。
(3)为每个模块设计一组测试用例。
(4)编写详细设计说明书。

原则
(1)模块的逻辑描述正确可靠、清晰易读。
(2)采用结构化程序设计方法,改善控制结构,降低程序复杂度,提高程序的可读性、可测试性和可维护性。

结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。

2 详细设计的工具有哪些。都有哪些优缺点

工具:程序流程图、N-S图、PAD图、PDL语言

  • 程序流程图

    • 程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具
    • 优点:独立于任何一种程序设计语言,比较直观和清晰地描述过程的控制流程,易于学习掌握
    • 缺点
      1.使程序员容易过早地考虑程序的具体控制流程,而忽略了程序的全局结构
      2.程序流程图中用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制
      3.在表示数据结构方面存在不足
    • 流程图的五种基本控制结构:
      流程图的五种基本控制结构2
  • 盒图(N-S图)

    pad图
    • PAD是用结构化程序设计思想表现程序逻辑结构的图形工具。
    • PAD允许使用递归。
    • 优点
      1.PAD图描绘的程序清晰度和结构化程度高
      2.用PAD图表现程序逻辑,易读、易懂、易记
      3.利用PAD图设计出的程序必定是结构化的程序
      4.容易将PAD图转化成高级语言源程序
      5.PAD图支持自顶向下逐步求精的方法(利用扩充结构)
      6.既可以用于表示程序逻辑,也可以用于描绘数据结构
    • 缺点
      不如流程图易于执行(找了好久只找到一个缺点)
  • 伪代码PDL(过程设计语言)

    • PDL是所有非正文形式的过程设计工具的统称,具有“非纯粹”的编程语言的特点
    • PDL也称伪码
    • PDL具有严格的关键字外部语法,用于定义控制结构和数据结构
    • PDL表示实际操作和条件的内部语法通常是灵活自由的,以便可以适应各种工程项目的需要
    • 是一种“混杂”语言,它使用一种语言(某种自然语言)的词汇,同时,却使用另一种语言(某种结构化的程序设计语言)的语法。
    • 优点
      1.可以使评审工作变得更加容易
      2.可以帮助实现逐步细化的思想
      3.使变动工作变得很容易
      4.减少了注释工作量
      5.比其他形式的设计文件更容易维护
    • 缺点
      不如图形工具形象直观

3 什么是环形复杂度,与算法复杂度有何异同/h3>

定义:环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量。

算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。

异同:
异:算法复杂度侧重程序的,用于在时间和空间的维度上评价算法或程序的效率。环形复杂度侧重程序的逻辑复杂性。
同:环形复杂度与算法复杂度都用来评价程序的复杂性,定量度量,只是侧重不同维度。

4 如何计算程序的环形复杂度。

画出程序图对应的控制流图

  • V ( G ) = E ? N + 2 V(G) = E-N+2 V(G)=E?N+2
  • V ( G ) = P + 1 V(G) = P+1 V(G)=P+1
  • V ( G ) = 区域数 V(G) = 区域数 V(G)=区域数

E E E为流图的边数, N N N是流图中的节点数, P P P为判定节点数
V ( G ) V(G)10的模块规模是比较好的

5 环路复杂度对编程有什么指导意义。

程序的环路复杂度则取决于程序控制流的复杂度,也就是取决于程序结构的复杂程度。当程序内分支或循环个数增加时,则相应地环域复杂度也随之增加。因此,它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。

6 补充

程序复杂程度的定量度量

一 McCabe方法(环形复杂度)
? ?见上
二 Halstead方法
Halstead方法是根据程序中运算符和操作数的总数来度量程序的复杂程度
? ? N = N 1 + N 2 N=N1+N2 N=N1+N2
? ? N 1 :运算符出现的总次数 N1:运算符出现的总次数 N1:运算符出现的总次数
? ? N 2 :操作数出现的总次数 N2:操作数出现的总次数 N2:操作数出现的总次数
? ?预测程序长度的公式为:
? ? H = n 1 l o g 2 n 1 + n 2 l o g 2 n 2 H=n1log2n1+n2log2n2 H=n1log2n1+n2log2n2

什么是SD

结构化设计(SD)面向对象设计(OOD)

来源:咕噜咕噜咕噜噜噜噜

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月28日
下一篇 2022年9月28日

相关推荐