【软件工程总复习】第六章 详细设计

目录


详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。

1. 过程设计工具

1.1 图形工具(要考)

1.1.1 程序流程图

1.1.2 结构化流程图 N-S图(盒图)(重点)(画图——建模)

循环方式表示循环,不要用选择

1.1.2.1 N-S图的定义

N-S图也被称为盒图或NS图。是结构化编程中的一种可视化建模。(Nassi和Shneiderman提出了一种符合结构化程序设计原则的图形描述工具,称为盒图,又称为N-S图(以两个人的名字的第一个字母组成)。在N-S图中,全部算法写在一个大框图内,这个大框图由若干个小的基本框图构成,可以表示顺序、选择和循环三种基本控制结构,)

1.1.2.2 N-S图的特点

  1. NS图形象直观,功能域明确,具有良好的可见度;
  2. 很容易确定局部和全局数据的作用域;
  3. 不可能任意转移控制;
  4. 很容易表示嵌套关系及模块的层次关系;
  5. 复杂度接近代码本身,修改需要重画整个图;
  6. 它强制设计人员按SP方法进行思考并描述他的方案,因为除了表示几种标准结构的符号之处,它不再提供其它描述手段,这就有效地保证了设计的质量,从而也保证了程序的质量。

1.1.2.3 N-S图解结构(基本符号)

1.1.2.3.1 顺序结构

所有语句顺序执行
在这里插入图片描述
在这里插入图片描述

1.1.2.3.2 选择结构
1.1.2.3.2.1 条件结构

P成立的情况下执行A,不成立的情况下执行B
在这里插入图片描述
在这里插入图片描述

1.1.2.3.2.2 多分支选择结构

P=1的时候,执行A1,P=2的时候,执行A2,依次类推;
在这里插入图片描述

1.1.2.3.3 循环结构
1.1.2.3.3.1 当型循环结构

先判断后执行,当P1条件成立的情况下,反复执行A语句,直到P1条件不成立为止
在这里插入图片描述

1.1.2.3.3.1 直到型循环结构

先执行后判断,当P1条件不成立的情况下,反复执行A语句,直到P1条件成立为止

在这里插入图片描述

1.1.2.4 N-S图的实例

1.1.2.4.1 实例1:输入三角形三边长,判断三遍构成的是等边,等腰,还是一般三角形

在这里插入图片描述

在这里插入图片描述

1.1.2.4.2 实例2:求1到5所有整数相乘的乘积

在这里插入图片描述

1.1.2.4.3 实例3:请用N-S图设计一个计算5的阶乘的程序。

在这里插入图片描述
在这里插入图片描述

1.1.2.4.4 实例4:求1到100所有整数的总和

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.1.2.4.5 实例5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1.2.4.6 实例6

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.1.2.4.7 实例7

在这里插入图片描述
在这里插入图片描述

1.1.2.4.8 实例8

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1.2.4.9 实例9 求1+2+3+…+100 的和

1.1.3 问题分析图 PAD图(重点)(画图——建模)

在这里插入图片描述

1.2 表格工具(要考)

判定表与判定树是一种列表设计工具,常用于条件嵌套的复杂判定情况的分析与设计,以及多分支结构代码的设计与实现。

1.2.1 判定表(必考)(重点)

(以表格的形式,来组合多个条件,通过判定表可以综合考虑多个条件的输入和输出结果之间的关系)判定用来描述一些不易用语言表达清楚或需要很大篇幅才能用语言表达清楚的加工逻辑。在某些数据处理问题中,其数据流程图的处理需要依赖于多个逻辑条件的取值,这些取值的组合可能构成多种不同情况,相应地需要执行不同的动作。这种问题用结构化语言来叙述很不方便,使用判定表或判定树作为表示加工说明的工具是最合适的。 一个判定表由四个部分组成,

条件所指对象(条件框) 各种条件的组合(条件组合)
所有的操作(操作框) 在对应的条件组合下,某个操作是否要执行(执行的操作)

1.2.1.1 判定表案例(详细解题思路)

【案例】:手机通话
1)条件:

是否欠费 是否开机
欠费 开机
不欠费 不开机

2)条件组合:

条件1:是否欠费 条件2:是否关机 结果
欠费 关机 不能通话
欠费 开机 不能通话
不欠费 关机 不能通话
不欠费 开机 能通话

3)概念

条件桩、动作桩、条件项、动作项

条件桩:所有可能出现的条件,例如上例中,有两个条件:是否欠费、是否开机
动作桩:所有可能出现的值,例如上例中,有四个值:欠费、不欠费、开机、不开机
条件项:这是条件桩中的一个或者多个
动作项:这是动作桩中的一个或者多个值

4)等价类
有效、无效

在判定表中,表示有效和无效有两种方式
方式1: 用字母表示
有效等价类: Y
无效等价类: N
方式2: 用数字表示
有效等价类: 1
无效等价类: 0

5)基于判定表的方式设计测试用例的步骤

第一步:首先确定条件桩

是否欠费
是否开机
这里是有两个条件,那么就是在表格中写入两行内容,每行代表一个条件

第二步:确定动作桩

一共有四种动作,每个条件桩中有 2 个,一共有四个动作
欠费、不欠费
开机、关机

第三步:确定条件组合的结果

将每个条件的每个值都和另外一个条件的每个值进行组合

第四步:确定条件组合的结果

在这里插入图片描述

第五步:根据结果写测试用例

思考:条件数量,和测试用例的数量是什么关系?
条件越多,得到的测试用例的数量越多
各条件个数相乘等于测试用例个数

1.2.2 判定树(要考)——简单

判定树是用一种树图形方式来表示多个条件、多个取值所应采取的动作。判定树分支表示各种不同的条件,随着分支层次结构的扩充,各条件完成自身的取值。判定树的叶子给出应完成的动作。

1.2.3 判定表与判定树的应用

1.2.3.1 细化学生成绩的奖励条件:学生每学期已修课程成绩的比率。优秀比率占70%以上,并且中以下所占比率小于15%,而且表现优良的学生可以获得一等奖学金,表现一般的学生可以获得二等奖学金;优秀比率占50%以上,中以下所占比率小于20%,表现优良的学生可以获得二等奖学金,表现一般的学生可以获得三等奖学金;中以下所占比率小于20%,表现优良的学生可以获得三等奖学金,表现一般的学生可以获得四等奖学金。请用判定表与判定树表达上述计算方案。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2.3.2 某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬×0.1;(3)如果班级人数超过60人,课酬增加:基本课酬×0.2;(4)如果教师是副教授,课酬增加:基本课酬×0.1;(5)如果教师是教授,课酬增加:基本课酬×0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬×0.1。请用判定表达上述计算方案。

在这里插入图片描述

1.2.3.3 某高校研究生招生系统的初选方法如下:总分300(含)以上进入候选学生库,否则退档数学分数不低于70分,则进入三级备选库,否则进入四级备选库:在三级备选库的基础上,如果专业课分数高于100分,则进入一级备选库,否则进入二级备选库,请画出对应的判定表与判定树。

在这里插入图片描述

1.2.3.4 用判定表与判定树描述检查定货单的处理逻辑:“如果金额超过1000元而又未过期,则发出批准单和提货单。如果金额超过2000元,但已过期,则不发出批准单和提货单。如果金额低于2000元,则不论是否过期,都发出批准单和提货单,而且对低于2000元已过期的还需发出通知单。

在这里插入图片描述

1.2.3.5 某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习。高中文化程度当电工;年龄在2040岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者中学文化程度当材料员,大学文化程度当技术员。请用判定表与判定树描述上述问题的加工逻辑 。

在这里插入图片描述

1.3 语言工具

1.3.1 过程设计语言 PDL

2. 程序复杂程度的定量度量

  1. 流图中线性无关的区域数等于环形复杂度
  2. 流图G的环形复杂度V(G) = E - N + 2,其中,E是流图中边的条数,N是结点数。
  3. 流图G的环形复杂度V(G) = P + 1,其中,P是流图中判定结点的数目。

猜你喜欢

转载自blog.csdn.net/weixin_51911075/article/details/128858144