大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
详细设计的工作:确定应该怎样具体地实现所有要求的系统,也就是说经过这个阶段的设计工作,应该得出目标系统的精确描述。
设计得到的结果是确定每个模块内部的算法和数据结构,产生描述各模块处理过程的详细文档。
又称为程序框图,对控制流程的描绘很直观,便于初学者掌握。
出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图。
它有下述特点:
(2) 没有箭头,不可能任意转移控制。
(3) 很容易确定局部和全程数据的作用域。
(4) 很容易表现嵌套关系,也可以表示模块的层次结构。
问题分析图(problem analysis diagram), 1973年由日本日立公司发明。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。下图给出PAD图的基本符号。
也称为伪码,这是一个笼统的名称,现在有许多种不同的过程设计语言在使用。它是用正文形式表示数据和处理过程的设计工具。
环形复杂度定量度量程序的逻辑复杂度
计算:
方法一:流图中的区域数等于环形复杂度;
方法二:流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数;
方法三:流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目
耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。包括数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合。
内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。包括:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。
根据每个模块的成本和接口成本确定的软件总成本最低。
题目3、环形复杂度的计算,结果说明了什么?掌握三种方法中的一种就行。
方法一:流图中的区域数等于环形复杂度;
方法二:流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数;
方法三:流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。它是对软件测试难度的一种定量试题,也能对软件最终的可靠性给出某种预测。
程图由一些特定意义的图形、流程线及简要的文字说明构成,它能清晰明确地表示程序的运行过程。在使用过程中,人们发现流程线不一定是必需的,为此,人们设计了一种新的流程图,它把整个程序写在一个大框图内,这个大框图由若干个小的基本框图构成,这种流程图简称N-S图。
START IF p THEN WHILE q DO f END DO ELSE BLOCK g n END BLOCK END IF STOP
从伪码转换成的数据流程图如下:
从伪码转换成的盒图如下:
(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。本题图6-18所示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,下图所示盒图描绘了两个等价的结构化程序。
(3)不使用flag把该程序改造为等价的结构化程序的方法如下图所示。
(1)用判定表表示手续费的计算方法
(2)用判定树表示手续费的计算方法
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170292.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...