【软件工程】软件工程复习题库2023


在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
SpringCloud
MybatisPlus
JVM

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


软件工程复习题库

  • 一、选择题
  • 二、填空题
  • 三、判断题
  • 四、简答题

一、选择题

1、具有风险分析的软件生命周期模型是( C )。
A.瀑布模型      B.喷泉模型 
C.螺旋模型      D.增量模型
2、软件工程的基本要素包括方法、工具和( A )。
A. 过程         B. 软件系统  
C. 硬件环境      D. 人员
3、在结构化分析方法中,( C )表达系统内部数据运动的图形化技术。
A. 数据字典      B. 实体关系图  
C. 数据流图       D. 状态转换图
4、“软件危机”是指( C)。
A.计算机病毒的出现      
B.利用计算机进行经济犯罪活动
C.软件开发和维护中出现的一系列问题
D.人们过分迷恋计算机系统
5、软件维护费用高的主要原因是( C )。
A、人员少 B、人员多
C、生产率低 D、生产率高
6、随着软硬件环境变化而修改软件的过程是( B )。
A.校正性维护       B.适应性维护     
C.完善性维护       D.预防性维护
7、需求分析中开发人员要从用户那里了解( A )。
A.软件做什么       B.用户使用界面   
C.输入的信息       D.软件的规模
8、软件详细设计的主要任务是确定每个模块的( A )。
A.算法和使用的数据结构     B.外部接口     
C.功能          D.编程
9、为了提高模块的独立性,模块内部最好是( C )。
A.逻辑内聚       B.时间内聚     
C.功能内聚       D.通信内聚
10、一个模块的( C )太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。
A.深度         B. 宽度 
C. 扇出          D. 扇入
11、模块的内聚性最高的是( D )。
A.逻辑内聚        B.时间内聚 
C. 偶然内聚       D.功能内聚
12、需求分析是( A )。
A. 软件开发工作的基础      B. 软件生存周期的开始
C. 由系统分析员单独完成的    D. 由用户自己单独完成的
13、在白盒测试技术测试用例的设计中,( B )是最强的覆盖标准。
A.语句覆盖        B.路径覆盖 
C. 条件组合覆盖      D.判定覆盖
14、软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称( C )。
 A. 改正性维护       B. 适应性维护  
C. 完善性维护         D. 预防性维护
15、( C ) 是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A. 多态性         B. 继承  
C. 封装         D. 消息
16、对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。
A.结合     B.隐藏   
C.封装    D.抽象
17、瀑布模型本质上是一种( A )模型。
A线性顺序 B顺序迭代
C线性迭代 D及早见产品
18、( A )意味着一个操作在不同的类中可以有不同的实现方式。
A.多态性   B.多继承   
C.类的可复用   D.信息隐藏
19、单元测试的测试用例主要根据( D  )的结果来设计。
A.需求分析       B.源程序  
C.概要设计  D.详细设计
20、软件测试是为了( B )而执行程序的过程。
A. 纠正错误     B. 发现错误 
C. 避免错误       D. 证明正确
21、类构件的重用方式有多态重用、继承重用和( A  )
A.实例重用        B.重载重用   
C. 代码重用           D. 方法重用
22、支持面向对象技术的软件生存周期模型是( A )。
A.喷泉模型        B.螺旋模型   
C.增量模型           D.瀑布模型
23、在白盒测试技术测试用例的设计中,(A )是最弱的覆盖标准。
A.语句覆盖        B.路径覆盖   
C.条件组合覆盖      D.判定覆盖
24、下面哪些测试方法属于白盒测试(A、C、E )(多选)。
A、基本路径测试 
B、等价类划分 
C、边界值分析 
D、错误推测 
E、逻辑覆盖测试
25、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C )。
A、详细计划  B、可行性分析
C、运行阶段  D、测试与排错
26、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( C )。
A、详细设计阶段  B、概要设计阶段
C、需求分析阶段  D、测试和运行阶段

27、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A )。
A、需求分析阶段  B、详细设计阶段
C、概要设计阶段  D、可行性研究阶段
28、软件工程的出现主要是由于( C )。
A.程序设计方法学的影响  B.其它工程科学的影响
C. 软件危机的出现   D.计算机的发展
29、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )
A、硬件环境     
B、软件开发的环境
C、软件开发工具和软件开发的环境 
D、开发人员的素质
30、 DFD中的每个加工至少有( B )。
A、一个输入流或一个输出流
B、一个输入流和一个输出流
C、一个输入流
D、一个输出流
31、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )
A、基于瀑布模型的结构化方法 
B、基于需求动态定义的原型化方法
C、基于对象的面向对象的方法 
D、基于数据的数据流开发方法
32、瀑布模型的存在问题是( B )
A 用户容易参与开发
B 缺乏灵活性
C 用户与开发者易沟通
D 适用可变需求

33、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的( B )
A、控制流  B、数据流 
C、程序流  D、指令流
34、软件开发的结构化生命周期方法将软件生命周期划分成( A )
A、 计划阶段、开发阶段、运行阶段 
B、 计划阶段、编程阶段、测试阶段
C、 总体设计、详细设计、编程调试 
D、需求分析、功能定义、系统设计
35、可行性研究主要从以下几个方面进行研究:( A )
A 技术可行性,经济可行性,操作可行性
B技术可行性,经济可行性,系统可行性
C经济可行性,系统可行性,操作可行性
D经济可行性,系统可行性,时间可行性
36、耦合是对软件不同模块之间互连程度的度量。以下各种耦合按从强到弱排列顺序为 ( C )
A 内容耦合,控制耦合,数据耦合,公共环境耦合。
B 内容耦合,控制耦合,公共环境耦合,数据耦合。
C 内容耦合,公共环境耦合,控制耦合,数据耦合。
D 控制耦合,内容耦合,数据耦合,公共环境耦合。
37、可行性分析研究的目的( B )
A 争取项目
B 项目是否值得开发
C 开发项目
D 规划项目
38、数据字典是用来定义( D )中的各个成分的具体含义
A 流程图 B 功能结构图
C 系统结构图 D 数据流图
39、程序的三种基本控制结构的共同特点是( C )
A 只能用来描述简单程序
B 不能嵌套使用
C 单入口,单出口
D 仅用于自动控制系统
40、为高质量的开发软件项目,在软件结构设计时,必须遵循( A )原则
A 信息隐蔽 B 质量控制
C 程序优化 D 数据共享
41、黑盒测试在设计测试用例时,主要研究( A )
A 需求规格说明于概要设计说明
B 详细设计说明
C 项目开发计划
D 概要设计说明与详细设计说明
42、通过 ( B ) 可以完成数据流图的细化。
A 结构分解 B 功能分解
C 数据分解 D 系统分解
43、程序流程图 (PDF) 中的箭头代表的是 ( B )
A 数据流 B 控制流
C 调用关系 D 组成关系
44、软件定义期问题定义阶段涉及的人员有 ( D )
A 用户、使用部门负责人
B 软件开发人员、用户、使用部门负责人
C 系统分析员、软件开发人员
D 系统分析员、软件开发人员、用户、使用部门负责人
45、软件生命周期中所花费用最多的阶段是( D )
A 详细设计 B 软件编码
C软件测试 D软件维护
46、程序的三种基本控制结构是( B )
A 过程、子程序和分程序
B 顺序、选择和重复
C 递归、堆栈和队列
D 调用、返回和转移
47、软件可维护性的特性中相互矛盾的是( C)。
A 可修改性和可理解性
B 可测试性和可理解性
C 效率和可修改性
D 可理解性和可读性
48、需求分析阶段的任务是确定( D )
A.软件开发方法
B.软件开发工具
C.软件开发费
D.软件系统的功能
49、快速原型模型的主要特点之一是( D )
A 开发完毕才见到产品
B 及早提供全部完整的软件产品
C 开发完毕后才见到工作软件
D 及早提供工作软件
50、画某系统的数据流图时,顶层图有( B )
A 0张 B 1张
C 2张 D 3张及其以上
51、可维护性的特性中相互促进的是( A )
A.可理解性和可测试性  B.效率和可移植性
C.效率和可修改性   D.效率和结构好
52、( D )是以提高软件质量为目的的技术活动。
A.技术创新   B.测试  
C.技术创造   D.技术评审
53、软件测试可能发现软件中的( B ),但不能证明软件 ( )。
A.所有错误,没有错误
B.错误,没有错误
C.逻辑错误,没有错误
D. 设计错误,没有错误
54、以下不属于软件维护困难表现的是( C )。
A.读懂别人的程序是困难的
B.文档的不一致性
C.源程序及相关文档的错误或丢失
D.软件开发和软件维护在人员和时间上的差异
E. 软件维护不是一项吸引人的工作
55、软件设计一般分为总体设计和详细设计,它们之间的关系是 ( A )。
A.全局和局部 B.抽象和具体
C.总体和层次 D.功能和结构
56、在一个课程注册系统中,定义了类 CourseSchedule 和类 Course ,并在类 CourseSchedule 中定义了方法 add (c:Course) 和方法 remove (c:Course),则类 CourseSchedule 和类 Course 之间的关系是( C )。
A.泛化关系 B.组合关系
C.依赖关系 D.包含关系
57、在销售管理系统需求文档中出现下列描述,属于功能需求范畴的是 ( A )
A.系统应能产生月销售报表
B.系统应在 5 分钟内计算出给定季度的总销售税
C.对要构建的账户接收系统,必须为月财务状况系统提供更新信息
D.任取 1 秒钟,一个特定应用所消耗的可用计算能力平均不超过 50%
58、在结构化分析方法的基本术语中,数据流的起点称为( D )
A.数据潭 B.数据存储
C.加工 D.数据源
59、面向数据流软件设计方法一般是把数据流图中的数据流化分为 ( B ) 两种流,再将数据流图映射为软件结构。
A. 数据流与事务流 B. 交换流和事务流
C. 信息流与控制流 D. 交换流和数据流
60、一组模块共同引用一个全局数据项,则该组模块间的耦合类型是 ( D )
A.数据耦合 B.标记耦合
C.控制耦合 D.公共耦合
61、软件调试的目的是( A )。
A.找出错误所在并改正之
B.排除存在错误的可能性
C.对错误性质进行分类
D.统计出错的次数
62、模块( B )定义为受该模块内一个判断影响的所有模块集合。
A 控制域 B 作用域
C 宽度 D 接口
63、面向数据结构的设计方法( Jackson方法)是进行( B ) 的形式化的方法。
A.系统设计 B、详细设计
C、 软件设计 D、编码
64、下列关于瀑布模型的描述正确的是( D )。
A.瀑布模型的核心是按照软件开发的时间顺序将问题简化
B.瀑布模型具有良好的灵活性
C.利用瀑布模型,如果发现问题修改的代价很低
D. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开
65、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现( C )的错误。
A.接口错误 B. 编码错误
C.性能、质量不合要求 D. 功能错误
66、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0] ,现从输入的
角度考虑一组测试用例: -1.001, -1.0,1.0, 1. 001。设计这组测试用例的方法是( C )
A. 条件覆盖法
B. 等价分类法
C. 边界值分析法
D. 错误推测法
67、下列关于效率的说法不正确的是( D )
A.效率是一个性能要求,其目标应该在需求分析时给出.
B.提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C.效率主要指处理机时间和存储器容量两个方面
D.程序的效率与程序的简单性无关
68、在软件结构设计完成后,对于下列说法,正确的是( C )
A 软件层数过多,可能是因为各管理子模块功能过于复杂的原因。
B 对软件宽度影响最大的因素是扇入。
C 一个模块的扇出太多,说明该模块过分复杂,缺少中间层
D 一个模块的扇入太多,说明该模块过分复杂,缺少中间层
69、以下说法正确的是( A )。
A.等价划分法是一种有效的白盒测试方法。
B.在等价划分法中,为了提高测试效率,一个测试用例可以覆盖多个有效等价类。
C.等价划分法的关键是按照用例来确定等价类。
D.设计测试方案时,要么采用等价划分法,要么采用边界值分析法。
70、从现存的程序代码中抽取有关数据、体现结构和处理过程的设计信息,以便恢复设计结果的过程,称为( B )。
A.代码重构 B.逆向工程
C.数据重构 D.正向工程
71、白盒测试法是通过分析程序的( C ) 来设计测试用例的。
A.应用范围 B.功能
C.内部逻辑 D.输入数据
72、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这
需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性
C.完善性 D.预防性
73、软件危机的主要原因是( C )。
A软件本身特点与开发方法
B对软件的认识不够
C软件生产能力不足
D软件工具落后
74、DFD是常用的进行软件需求分析的图形工具,其基本符号是( C )。
A.输入、输出、外部实体和加工
B.变换、加工、数据流和存储
C.加工、数据流、数据存储和外部实体
D.变换、数据存储、加工和数据流
75、下列关 于面向对象分析与设计说法错误的是( B )。
A 面向对象的设计以面向对象分析为基础归纳出类
B 建立类结构或进一步构造成类库,实现分析结果对问题空间的
C 面向对象的设计是面向对象分析的另一种思维方式
D 面向对象的设计是面向对象分析进一步的细化和更高的抽象
76、在面向对象方法中,信息隐蔽是通过对象的( C ) 来实现的。
A分类性 B继承性
C封装性 D共享性
77、采用面向对象方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( D )。
A.面向对象测试 B.面向对象实现
C.面向对象设计 D.面向对象分析
78、下面关于面向对象分析与面向对象设计的说法,不正确的是( D )。
A.面向对象分析侧重于理解问题
B.面向对象设计侧重于理解解决方案
C.面向对象分析描述软件要做什么
D.面向对象设计一般不关注技术和实现层而的细节
79、软件的集成测试工作最好由( D )人员承担,以提高集成测试的效果。
A.该软件的设计人员
B.该软件开发组的负责人
C.该软件的编程人员
D.不属于该软件开发组的软件设计人员
80、面向对象的分析方法主要是建立三类模型,即( D )。
A.系统模型、ER模型、应用模型
B.对象模型、动态模型、应用模型
C. E-R模型、对象模型、功能模型
D.对象模型、动态模型、功能模型
81、汽车有一个发动机,汽车和发动机之间的关系是( B )关系。
A.一般与具体 B.整体与部分
C.分类 D. is a
82. Scrum有一套独特且固定的管理方式,从( C )几个维度出发,来保证执行过程更高效。
A.角色、工件 B. 角色,不同形式的会议
C.角色、工件、不同形式的会议 D. 角色、工件、客户需求
83.Scrum中的三种角色包括( A )。
A.产品经理、Scrum主管、Scrum团队 B. 产品经理、Scrum主管、用户
B.Scrum主管、Scrum团队、测试团队 C. 产品经理、程序员、用户
84. 面向对象技术中,对象是类的实例。对象由三种成分:( A )、属性和方法。
A.标识     B.封装   
C.继承    D.消息

二、填空题

1、一般来说,可以从 一致性完整性现实性有效性四个方面验证软件需求的正确性。
2、IPO图是 输入处理输出 的简称,它是美国IBM公司发展完善起来的一种图形工具。
3、系统流程图是描述 物理模型 的传统工具,用图形符号表达了系统中各种元素之间的 信息流动 情况。
4、数据流图中的箭头表示 数据流 ,椭圆或圆形表示 处理过程 ,矩形表示 数据源点/终点
5、集成测试的方法主要有 渐增式测试方法非渐增式测试方法
6、软件生命周期一般可分为: 需求分析设计编码测试运行维护 6个阶段。
7、面向对象分析要建立三个模型,其中 对象 模型是三个模型的核心,也是其他两个模型的框架
8、在结构化设计中,HIPO图应用在总体设计阶段,由 层次 图和 IPO图(输入-处理-输出) 两部分组成。
9、实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的 独立性
10、结构化语言是介于 自然语言和形式语言 之间的一种半形式语言
11、单元测试一般以 白盒测试技术 测试为主, 黑盒测试技术 测试为辅。
12、面向对象的数据存储管理模式分为 文件 、关系数据库和面向对象数据库三种。
13、在结构化分析中,用于描述加工逻辑的主要工具有三种,即: 结构化语言判定表判定树
14、成本效益分析的目的是从 经济 角度评价开发一个项目是否可行。
15、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略宽度优先策略    。
16、 内聚性 是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
17、详细设计的任务是确定每个模块的内部特性,即模块的算法、使用的数据
18、所有软件维护申请报告要按规定方式提出,该报告也称 软件问题报告。
19、内聚性有 6 种类型  偶然内聚逻辑内聚时间内聚通信内聚顺序内聚功能内聚  。
20、传统软件维护一般分为 4 大类,分别是  纠错性维护适应性维护完善性维护预防性维护
21、用户界面的 可使用性 是用户界面设计最重要的也是最基本的目标。
22、数据流图数据字典共同构成系统的逻辑模型
25、常见的软件概要设计方法有三大类:以数据流图为基础构造模块结构的 结构化设计方法 ,以数据结构为基础构造模块的 Jackson方法 ,以对象、类、继承和通信为基础的 面向对象的设计方法
26、实用的白盒测试覆盖技术有 4 种:语句覆盖判定覆盖条件覆盖路径覆盖
28、编码结束后,首先作单元测试,然后是集成测试系统测试和验收测试
29、面向对象设计阶段的主要任务是系统设计和对象设计

三、判断题

1、向滞后的项目中增加人手会使得项目更加滞后。( T )
2、过程描述语言可以用于描述软件的系统结构。( F )
3、按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。( F )
4、只有质量差的软件产品才需要维护。( F )
5、层次图用来描述软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系(应该是调用关系)。在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。( F )
6、建立动态模型的第一步,是编写典型交互行为的脚本。( T )
7、软件错误可能出现在开发过程的早期,越早修改越好。( T )
8、软件模块的耦合是越低越好。(F  )
9、一个好的测试用例在于能发现至今未发现的错误。( T )
10、面向对象设计的结果只能采用面向对象语言来实现( F )
11、一个成功的项目唯一提交的就是运行程序。( F )
13、面向对象设计准则也要遵循弱耦合的原则,但是继承耦合则应该提高,紧密地继承耦合与高度的一般—特殊内聚是一致的。 ( T )
14、软件工作的考虑范围主要是程序设计和实现。( F )
15、环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:流图G的环形复杂度V(G) = N– E + 2。(改成E-N+2)( F )
16、等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。( T )
17、在进行概要设计时应加强模块间的联系。( F )
18、系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。( F )
19、建立动态模型的第一步,是编写典型交互行为的脚本。( T )
20、在程序调试时,找出错误的位置和性质比改正该错误更难。( F )
21、如果通过软件测试没有发现错误,则说明软件是正确的。( F )
22、快速原型模型可以有效地适应用户需求的动态变化。( T )
23、模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。( T )
24、集成测试主要由用户来完成。( F )
25、面向对象 = 对象 + 类 + 继承 + 消息传递。( T )

四、简答题

1、什么是软件生存周期?它有哪几个活动?

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期的活动包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动。

2、可行性研究的任务和步骤

可行性研究最根本的任务是对以后的行动方针提出建议;
步骤:
1.复查系统规模和目标
2.研究目前正在使用的系统
3.导出新系统的高层逻辑结构:即从现有物理系统->现有系统逻辑模型->目标系统逻辑模型->目标物理系统
4.进一步定义问题
5.导出和评价供选择的解法
6.推荐行动方案
7.草拟开发计划
8.书写文档提交审查

3、简述面向对象分析设计的三个模型

对象模型:描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。
动态模型:着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时序和改变的状态,包括状态图和事件跟踪图。
功能模型:着重于系统内部数据的传送和处理。

4、衡量模块独立性的两个定性标准是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?

衡量模块独立性的两个定性标准是内聚和耦合。
耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度。
在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合。

5、黑盒测试如何进行等价类划分?

有效等价类:依据需求说明书划分出来的集合,这些集合是合理的、有意义的数据的集合。通过这种有效等价类方法可以确定程序是否实现了需求规格说明书中的某些功能。
无效等价类:对于当前系统的需求规格说明书来说是不合理或者无意义的数据构成的集合。

6、什么是状态图?状态图的画法。

状态图是显示一个状态机的图,其中强调了从一个状态到另一状态的控制流。
状态图中最常用的元素有4个,分别是开始、结束、状态、转移


在这里插入图片描述


7、什么是数据流图?数据流图如何画?

数据流图从数据传递和加工角度,以图形方式来表达系统的逻辑功能、以图形的方式描绘数据在系统中流动和处理的过程。
画法:(1) 确定系统的输入输出 (2) 由外向里画系统的顶层数据流图 (3) 自顶向下逐层分解,绘出分层数据流图

8、什么是数据字典?数据字典如何定义?简述数据字典与数据流图的关系

所谓数据字典,是数据流程图的基础上,进一步定义和描述所有数据的工具,包括对一切动态数据(数据流)和静态数据(数据存储)的数据结构和相互关系的说明,是数据分析和数据管理的重要工具,是系统设计阶段进行数据库(文件)设计的参考依据。
数据字典是一种用户可以访问的记录数据库和应用程序源数据的目录。
数据字典的内容主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。

9、如何计算环路复杂度

1.圈复杂度
V(G)=E-N+2C 其中,E表示程序中的边数,N表示程序中的节点数,C表示程序中的稳定环数。
2.边复杂度
V(G)=E-N+1 其中,E表示程序中的边数,N表示程序中的节点数。
3.基本路径覆盖
1)给程序中的每个节点一个唯一的编号。
2)对悔个节点之间的边进行编号。
3)对程序中所有可能的简单路径进行识别并编号。
4)按照识别和编号的路径,构成路径集合,从而得到程序的基本路径集合。
5)计算基本路径集合的数量,得到程序的基本路径覆盖。

10、为了能获得高质量的设计结果,在软件设计过程中应遵循的准则有哪些?并简述

单一职责原则:一个类应该只有一个引起它变化的原因。
开闭原则:软件实体应当对扩展开放,对修改关闭。
里氏替换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。
接口隔离原则:客户端不应该强制依赖它不需要的接口。
依赖倒转原则 :高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AtCoder Beginner Contest 333 A~D(E,F更新中...)

A.Three Threes&#xff08;循环&#xff09; 题意&#xff1a; 给出一个正整数 N N N&#xff0c;要求输出 N N N个 N N N 分析&#xff1a; 按要求输出即可 代码&#xff1a; #include <bits/stdc.h> using namespace std;void solve() {int n;cin >> n;fo…

【C语言】自定义类型:结构体深入解析(一)

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; 啊森要自信的主页 ✏️真正相信奇迹的家伙&#xff0c;本身和奇迹一样了不起啊&#xff01; 欢迎大家关注&#x1f50d;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;>希望看完我的文章对你有小小的帮助&am…

springboot 学生信息管理

介绍 一个学生信息管理后台&#xff0c;适用于大作业&#xff0c;课设等 软件架构 springbootmybatisthymeleaf &#xff08;前后端未分离&#xff09; 安装教程 注&#xff1a;mysql数据库要8.0以上&#xff0c;&#xff0c;本地mysql新建一个名为 student 的空数据库&am…

open3d bug:pcd转txt前后位姿发生改变

1、open3d bug&#xff1a;pcd转txt前后位姿发生改变 open3d会对原有结果进行一个微小位姿变换 import open3d as o3d import numpy as np# 读取PCD点云文件 pcd o3d.io.read_point_cloud(/newdisk/darren_pty/zoom_centered_s2.pcd)# 获取点云坐标 points pcd.points# 指定…

4.1 媒资管理模块 - Nacos与Gateway搭建

文章目录 媒资管理模块 - 媒资项目搭建一、需求分析1.1 介绍1.2 数据模型1.3 分析网关 二、 搭建Nacos2.1 服务发现中心2.2.1 Maven2.2.2 配置Nacos 2.2 配置中心2.2.1 介绍2.2.2 Maven 坐标2.2.3 配置 content-api 工程2.2.4 配置 content-service 工程2.2.5 配置 system-api …

如何安装运行Wagtail并结合cpolar内网穿透实现公网访问网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 前言 Wagtail是一个用Python编写的开源CMS&#xff0c;建立在Django Web框架上。Wagtail 是一个基于 Django 的开源内容管理系统&#xf…

grafana基本使用

一、安装grafana 1.下载 官网下载地址&#xff1a; https://grafana.com/grafana/download官网包的下载地址&#xff1a; yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.2-1.x86_64.rpm官网下载速度非常慢&#xff0c;这里选择清华大…

Zotero 7 安装并彻底解决“无法安装插件。它可能无法与该版本的 Zotero 兼容“。以及解决“此翻译引擎不可用,可能是密钥错误“的问题

Zotero 7 安装并彻底解决"无法安装插件。它可能无法与该版本的 Zotero 兼容"。以及解决"此翻译引擎不可用&#xff0c;可能是密钥错误"的问题 &#xff01;&#xff01;&#xff01;不要直接在Zotero 6上安装翻译插件&#xff0c;将会版本不兼容&#xff0…

【python】飞机大战

import pygame import random# 敌机出现事件 ENEMY_EVENT pygame.USEREVENT # 发射子弹事件 FIRE pygame.USEREVENT 1class GameSprite(pygame.sprite.Sprite):def __init__(self, image_name, speed1):super().__init__()# 定义对象的属性self.image pygame.image.load(im…

使用IDEA创建springboot依赖下载很慢,解决方法

显示一直在resolving dependencies&#xff0c;速度很慢 原因&#xff1a;maven会使用远程仓库来加载依赖&#xff0c;是一个国外的网站&#xff0c;所以会很慢。应该使用阿里云的镜像&#xff0c;这样速度会提升很多。 步骤&#xff1a;1.右击pom.xml&#xff0c;选择"m…

MFC 窗口创建过程与消息处理

目录 钩子简介 代码编写 窗口创建过程分析 消息处理 钩子简介 介绍几个钩子函数&#xff0c;因为它们与窗口创建工程有关 安装钩子函数 HHOOK SetWindowsHookExA([in] int idHook,[in] HOOKPROC lpfn,[in] HINSTANCE hmod,[in] DWORD dwThreadId ); 参数说明…

前端常见面试题之html和css篇

文章目录 一、html1. 如何理解html语义化2. 说说块级元素和内联元素的区别 二、css1. 盒模型的宽度offsetWidth如何计算2. box-sizing:border-box有什么用3. margin的纵向重叠问题4. 谈谈你对BFC的理解和应用5. 清除浮动有哪些方式6. 使用flex布局实现骰子37.position的absolut…

喜报!巨蟹数科荣获国家“高新技术企业”认定!

根据《高新技术企业认定管理办法》&#xff08;国科发火〔2016〕32 号&#xff09;和《高新技术企业认定管理工作指引》&#xff08;国科发火〔 2016〕195号&#xff09;有关规定&#xff0c;经省高新技术企业认定管理机构组织企业申请、专家评审等程序&#xff0c;并经全国高新…

Linux汇编语言编程-机器语言

机器语言是处理器看到的语言。 在获取-执行周期【fetch-execute cycle 】中获取的字节是机器码的字节。汇编语言可以定义为一种使程序员能够控制机器码的语言。汇编语言指定机器码。如果不熟悉机器语言&#xff0c;汇编语言的这一特性是不明显的。本章介绍 x86 机器码的主要特征…

一句话木马是什么?代码实例及绕过方法

一句话木马是指一种短小的、通常只有一行代码的恶意软件&#xff0c;它被用来在目标系统中执行攻击者的命令或代码。这种类型的木马通常通过各种途径被注入到目标系统中&#xff0c;一旦成功运行&#xff0c;攻击者就可以远程控制受感染的系统。一句话木马的目的包括窃取敏感信…

RPC(3):HttpClient实现RPC之GET请求

1HttpClient简介 在JDK中java.net包下提供了用户HTTP访问的基本功能&#xff0c;但是它缺少灵活性或许多应用所需要的功能。 HttpClient起初是Apache Jakarta Common 的子项目。用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 H…

关于“Python”的核心知识点整理大全27

目录 10.5 小结 第&#xff11;1 章 测试代码 11.1 测试函数 name_function.py 函数get_formatted_name()将名和姓合并成姓名&#xff0c;在名和姓之间加上一个空格&#xff0c;并将它们的 首字母都大写&#xff0c;再返回结果。为核实get_formatted_name()像期望的那样工…

【超图】SuperMap iClient3D for WebGL/WebGPU ——地形影像

作者&#xff1a;taco 号外&#xff01;号外&#xff01;开新坑了&#xff01;开新坑了&#xff01;对于一个代码小白来讲&#xff0c;设置可能是刚接触开发的人&#xff08;还没接触准备接触&#xff09;的人来说。对于读代码或是在对产品的使用上会存在许许多多的疑惑。接下来…

uniapp笔记

/pages/component/swiper/swiper /pages/component/button/button navigator image 设置界面标题 页面跳转 设置TabBar 发起一个请求 网络请求

计算机组成原理——中央处理器cpu1-20

1、中央处理器&#xff08;CPU&#xff09;是指什么。C A、 运算器 B、 控制器 C、 运算器和控制器 D、 运算器、控制器和主存储器 2、在CPU中跟踪指令后继地址的寄存器是什么。B A、 主存地址寄存器 B、 程序计数器 C、 指令寄存器 D、 状态条件寄存器 3、操作控制器的…