软件工程——第6章详细设计知识点整理

news2024/9/30 3:20:51

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明!

文章目录

1.详细设计阶段的根本目的是?

2.详细设计的任务?

3.详细设计的结果地位?如何衡量程序质量?

4.结构程序设计的本质?

5.人机界面设计可能遇到的问题有哪些?

6.用户界面设计是一个什么样的过程?

7.人机界面设计有哪些指南?

8.什么是过程设计的工具?

9.程序流程图是什么?

10.程序流程图的主要优点?

11.程序流程图的主要缺点?

12.盒图(N-S图)的特点?

13.PAD图是什么?

14.PAD图的优点?

15.判定表适用场景?

16.判定表由哪几个部分组成?分别代表什么含义?

17.判定树的优缺点?

18.什么是过程设计语言(PDL)?

19.PDL的优点?

20.PDL的缺点?

21.最著名的面向数据结构的设计方法是哪两个?

22.Jackson方法的5个步骤是什么?

23.定量度量程序复杂程度方法的作用?

24.定量度量程序复杂度的方法有哪些?

25.流图的作用?

26.计算环形复杂度V(G)的方法有哪些?

27.环形复杂度的用途?

28.详细设计的基本原则?

29.结构化的判断方法?

章末小结


1.详细设计阶段的根本目的是?

确定应该怎样具体地实现所要求的系统

2.详细设计的任务?

  1. 过程设计:即每个模块所包含的算法
  2. 数据设计:即软件中所需的数据结构
  3. 接口设计:即各个模块间的通信方式

【注】详细设计阶段的任务还不是具体地编写程序,而是设计出程序的“蓝图

3.详细设计的结果地位?如何衡量程序质量?

详细设计的结果基本上决定了最终的程序代码质量。

衡量程序代码质量不仅要看它的逻辑是否正确性能是否满足要求,更主要的是看它是否容易阅读和理解

4.结构程序设计的本质?

        结构程序设计本质上并不是无GOTO语句的编程方法,而是一种使程序代码容易阅读、容易理解的编程方法。结构程序设计是尽可能少用GOTO语句的方法

5.人机界面设计可能遇到的问题有哪些?

  1. 系统响应时间
  2. 用户帮助措施
  3. 出错信息处理
  4. 命令交互

6.用户界面设计是一个什么样的过程?

        用户界面设计是一个迭代的过程,一旦建立起用户界面原型,就必须对它进行评估,以确定其是否满足用户的需求

7.人机界面设计有哪些指南?

  1. 一般交互指南
  2. 信息显示指南
  3. 数据输入指南

8.什么是过程设计的工具?

描述程序处理过程的工具称为过程设计的工具,它们可以分为图形、表格、语言3类

9.程序流程图是什么?

程序流程图又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法

10.程序流程图的主要优点?

程序流程图的主要优点是对控制流程的描绘很直观,便于初学者掌握

11.程序流程图的主要缺点?

  1. 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构
  2. 程序流程图中的箭头代表控制流,因此程序员不受任何约束,可以完全不顾程序设计的精神随意转移控制
  3. 程序流程图不易表示数据结构

12.盒图(N-S图)的特点?

  1. 功能域明确,可以从盒图上一眼就看出来
  2. 不可能随意转移控制
  3. 很容易确定局部和全程数据的作用域
  4. 容易表现嵌套关系,也可以表现模块的层次结构

 

13.PAD图是什么?

        PAD图是问题分析图(Problem Analysis Diagram),用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。

 

14.PAD图的优点?

  1. 使用表示结构化控制结构的PAD符号设计出来的程序必然是结构化程序
  2. PAD图所描绘的程序结构十分清晰
  3. 用PAD图表现程序逻辑,易读、易懂、易记
  4. 容易将PAD图转换成高级语言源程序,这种转换可以用软件工具自动完成提高软件可靠性和软件生产率
  5. 既可以用于表示程序逻辑,也可以用于描绘数据结构
  6. PAD图的符号支持自顶向下、逐步求精方法的使用

15.判定表适用场景?

当算法中包含多重嵌套的条件选择时

16.判定表由哪几个部分组成?分别代表什么含义?

判定表由4个部分组成

左上部:表示列出所有的条件

左下部:表示所有可能做的动作

右上部:表示各种条件组合的一个矩阵

右下部:表示和每种条件组合所对应的动作

 

17.判定树的优缺点?

优点:形式简单,无需任何说明,易于掌握和使用

缺点简洁性差,同一个值往往要写多遍,且越接近叶子端重复次数越多

 

18.什么是过程设计语言(PDL)?

        过程设计语言(PDL)也称为伪码,是一种“混杂”语言,它使用一种语言的词汇,同时却使用另一种语言的语法

19.PDL的优点?

  1. 可以作为注释直接插在源程序中间
  2. 可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作
  3. 已经有自动处理PDL的程序存在,而且可以自动由PDL生产程序代码

20.PDL的缺点?

不如图形工具形象直观

21.最著名的面向数据结构的设计方法是哪两个?

Jackson方法和Warnier方法

22.Jackson方法的5个步骤是什么?

  1. 分析并确定输入数据和输出数据的逻辑结构,并采用Jackson图描绘这些数据结构
  2. 找出输入数据结构和输出数据结构中有对应关系的数据单元
  3. 由描绘数据结构的Jackson图导出描绘程序结构的Jackson图
  4. 列出所有操作和条件,并且把它们分配到程序结构图的适当位置
  5. 用伪码表示程序

 

23.定量度量程序复杂程度方法的作用?

  1. 估算出软件中错误的数量以及软件开发需要用的工作量
  2. 定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣
  3. 程序的定量度量复杂程度可以作为模块规模的精确限度

24.定量度量程序复杂度的方法有哪些?

McCabe方法和Halstead方法

25.流图的作用?

流图仅仅描绘程序的控制流程,用任何方法表示的过程设计结果都可以翻译成流图

 

26.计算环形复杂度V(G)的方法有哪些?

  1. V(G)=流图中线性无关的区域个数
  2. V(G)=E-N+2 ,E为流图中边的总数, N为结点的个数
  3. V(G)=P+1,P是流图中判定结点的个数

【注】以上图中流图为例,该流图环形复杂度为4

27.环形复杂度的用途?

环形复杂度是对测试难度的一种定量度量,也能对软件的可靠性给出某种预测

28.详细设计的基本原则?

  1. 选择适当的图和工具来描述算法
  2. 算法描述应该正确可靠、清晰易懂
  3. 采用结构化的程序设计方法
  4. 降低复杂度

29.结构化的判断方法?

一个循环里只能有一个出口,如果多于一个出口就是非结构化的

章末小结


        详细设计阶段的关键任务是确定怎样具体地实现用户需要的软件系统。也就是要设计出程序的“蓝图”。除了应该保证软件的可靠性之外,使将来编写出的程序可读性好、容易理解、容易测试容易修改和维护,是详细设计阶段最重要的目标。结构程序设计技术是实现上述目标的基本保证,是进行详细设计的逻辑基础。
        人机界面设计是接口设计的一个重要的组成部分。对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样重要。 人机界面的质量直接影响用户对软件产品的接受程度,因此,对人机界面设计必须给予足够重视。在设计人机界面的过程中,必须充分重视并认真处理好系统响应时间、用户帮助设施、出错信息处理和命令交互这4个设计问题。人机界面设计是一一个迭代过程,通常,先创建设计模型,接下来用原型实现这个设计模型并由用户试用和评估原型,然后根据用户意见修改原型,直到用户满意为止。总结人们在设计人机界面过程中积累的经验,得出了一些关于用户界面设计的指南,认真遵守这些指南有助于设计出友好、高效的人机界面。
        过程设计应该在数据设计、体系结构设计和接口设计完成之后进行,它的任务是设计解题的详细步骤(即算法),它是详细设计阶段应完成的主要工作。过程设计的工具可分为图形、表格和语言3类,这3类工具各有所长,读者应该能够根据需要选用适当的工具。

        在许多应用领域中信息都有清楚的层次结构,在开发这类应用系统时可以采用面向数据结构的设计方法完成过程设计。本章以Jackson结构程序设计技术为例,对面向数据结构的设计方法做了初步介绍。为了能使用这种方法解决实际问题,还需要进一步钻研有关的专著。
        使用环形复杂度可以定量度量程序的复杂程度,实践表明,环形复杂度V(G)=10是模块规模的合理上限

反反复复,扎扎实实;念念不忘,必有回响!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在GitHub上爆火!跳槽必看《Java 面试突击核心讲》知识点笔记整理

不知道大家在面试中有没有这种感觉:面试官通常会在短短两小时内对面试者的知识结构进行全面了解,面试者在回答问题时如果拖泥带水且不能直击问题的本质,则很难充分表现自己,最终影响面试结果。 所以针对这种情况,这份…

从0到1精通自动化测试,pytest自动化测试框架,使用自定义标记mark(十一)

一、前言 pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行 app自动化的时候,如果想android和ios公用一套代码时,也可以使用标记功能,标明哪些是ios用例,哪些是a…

除静电设备给我们的生产带来怎样的便利

一般来说,我们需要根据具体的生产工艺和场景选择适当的静电设备,并按照厂商提供的操作规范正确使用,以确保除静电设备有效发挥作用。 1. 静电消除:静电设备可以帮助消除物体表面的静电电荷,防止静电积聚。静电积聚可能…

UML类图设计

1.普通类,抽象类,接口 普通类 抽象类 接口 1 关联关系 依赖关系 关联:对象之间的引用关系 依赖:耦合性最低,一些静态方法等 2 聚合关系 组合关系 聚合:整体与部分的关系,但是部分可以脱…

英特尔 oneAPI 2023 黑客松大赛:赛道二机器学习:预测淡水质量 实践分享

目录 一、问题描述二、解决方案1、方案简述2、数据分析预处理特征类型处理特征分布分析 3、特征构造4、特征选择过滤法重要性排序 5、模型训练 总结未来工作 一、问题描述 淡水是我们最重要和最稀缺的自然资源之一,仅占地球总水量的 3%。它几乎触及我们日常生活的方…

Python:pyecharts可视化

文章目录 简介Geo地理图绘制折线图区域突出显示横坐标带选择展示 add地图Mapformatter控制value显示在图中显示value值目标html的解析自定义地图js资源原生地图js的解析解决省份上文字不居中的问题 桑基图设置桑基柱的颜色 参考文献 简介 (这是20年的笔记&#xff…

医疗陪诊小程序开发功能有哪些?

医疗陪诊系统开发功能有哪些? 1、注册登录。用户初次使用需使用个人手机号码或者是第三方社交账号进行注册登录,登陆之后填写个人相关信息,姓名、性别、年龄、过往病史、病历等信息,以便医生可以根据患者资料进行初步判断。…

小文智能自定义变量详解

在小文交互场景设计时,有一个特殊功能,叫做自定义变量。有时,根据外呼对象的不同,需要对用户传达不同的内容,比如称呼、地址、公司名称等等。此时,就可以使用小文交互的自定义变量功能来实现对不同用户呼出…

Destination unreachable(Port unreachable) 错误原因和解决办法

Destination unreachable(Port unreachable) 是一条由网络设备(如路由器或防火墙)生成的ICMP(Internet Control Message Protocol)错误消息,用于通知源设备目标设备或端口无法到达。 一、什么是ICMP ICMP(I…

【中危】Guava<32.0.0 存在竞争条件漏洞

漏洞描述 Guava 是 Google 公司开发的开源 Java 代码库,提供常用的Java工具和数据结构。 Guava 1.0 至 31.1 版本中的 FileBackedOutputStream 类使用Java的默认临时目录创建文件,由于创建的文件名容易被攻击者猜测,在 Unix 和 Android Ice…

静电设备在静电处理环节中的原理

静电设备在静电处理环节中发挥着重要的作用。以下是一些常见的静电设备及其作用: 1. 静电消除器:静电消除器通过释放相等数量的正负离子,有效地中和周围环境中的静电荷,从而减少或消除静电引起的问题,例如静电吸附、电…

AI科技的应用革命:改变生活方式、提升人类生产力

人工智能技术的发展和应用,正在对我们的生活方式产生深远的影响。无论是在家庭、工作还是娱乐方面,越来越多的AI工具正在改变我们的习惯、观念和行为。它们为我们提供了更加智能化、个性化和定制化的服务和产品,让我们的生活变得更加便捷、高…

NXP i.MX 8M Plus工业核心板硬件说明书( 四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)

1 硬件资源 创龙科技SOM-TLIMX8MP是一款基于NXP i.MX 8M Plus的四核ARM Cortex-A53 单核ARM Cortex-M7异构多核处理器设计的高端工业核心板,ARM Cortex-A53(64-bit)主处理单元主频高达1.6GHz,ARM Cortex-M7实时处理单元主频高达800MHz。处理器…

【教程】Flutter与Rust完美交互,无需手写FFI代码

实践环境:Windows11 flutter_rust_bridge官方文档 Flutter环境配置教程 | Rust环境配置教程 新建一个全新的Flutter项目并运行: flutter create example && cd example && flutter run 在Flutter项目根目录新建一个Rust项目&#xf…

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 DDT简介 名称&am…

FPGA解码 MIPI 视频 OV4689采集 4line 2.7K分辨率 提供工程源码和技术支持

目录 1、前言2、Xilinx官方主推的MIPI解码方案3、本 MIPI CSI2 模块性能及其优越性4、我这里已有的 MIPI 编解码方案5、vivado工程介绍5、上板调试验证6、福利:工程代码的获取 1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了&#xff…

python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (三)

BeautifulSoup 简称:bs4 BeautifulSoup跟lxml 一样,是一个html文档的解析器,主要功能也是解析和提取数据 优缺点 缺点:效率没有lxml的效率高 优点:接口接口人性化,使用方便 延用了css选择器 安装Beautifu…

故障处理程序框图原理

一、故障处理程序框图 故障处理程序包括保护软压板的投切检查、保护定值比较、保护逻辑判断、跳闸处理程序和后加速部分。故障处理程序框图如图2-8所示。保护逻辑判断程序将在第三章中详述。 进入故障处理程序入口,首先置标志位KST为1,驱动起…

传统表格还是思维导图?哪种基本功能测试用例模式更好?

这个问题先抛出我的观点: 具体选择哪种形式更好,需要根据具体情况来考虑。 如果测试用例较为简单,可以选择表格形式;如果测试用例较为复杂,可以选择思维导图形式。但实际工作中,二者一般是结合使用的。 …

php正则匹配

一、基础内容 1、通用原子 2、元字符 符号意义.除了换行以外的所有字符*匹配前面的内容出现 0 次及以上?匹配前面的内容出现 0 次或 1 次出现一次或多次$必须以它结尾{n}恰巧出现 n 次{n,}大于等于 n 次{n,m}大于等于n,小于等于 m[]是一个集合,匹配中括号中的任…