软件工程期末复习题库

一、单选题 (188题 )

1.(0.0分)集成测试的主要方法有两个,一个是( ) 一个是( )。
A.白盒测试方法、黑盒测试方法
B.等价类划分方法、边缘值分析方法
C.渐增式测试方法、非渐增式测试方法
D.因果图方法、错误推测方法
答案 C

2.(0.0分)软件实现是软件产品由概念到实体的一个关键过程,它将( )的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但是规范的程序设计风格将会对后期的软件维护带来不可忽视的影响。
A.软件设计
B.详细设计
C.架构设计
D.总体设计
答案 A

3.(0.0分)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( )。
A.内聚性和耦合性
B.局部化和封装化
C.抽象和信息隐藏
D.逐步求精和结构图
答案 A

4.(0.0分)使用白盒测试方法时确定测试数据应根据( )和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂程度
C.程序的难易程度
D.程序的功能
答案 A

5.(0.0分)(9)使用白盒测试方法时确定测试数据应根据( )和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂程度
C.程序的难易程度
D.程序的功能
答案 A

6.(0.0分)面向对象的动态模型中,每张状态图表示( )的动态行为。
A.某一个类
B.有关联的若干个类
C.一系列事件
D.一系列状态
答案 A

7.(0.0分)关联是建立( )之间关系的一种手段。
A.对象
B.类

C.功能
D.属性
答案 B

8.(0.0分)数据流图是进行软件需求分析的常用图形工具,其基本图形符号是( )。
A.输入、输出、外部实体和加工
B.变换、加工、数据流和存储
C.加工、数据流、数据存储和外部实体
D.变换、数据存储、加工和数据流
答案 C

9.(0.0分)(11)集成测试的主要方法有两个,一个是( ) 一个是( )。
A.白盒测试方法、黑盒测试方法
B.等价类划分方法、边缘值分析方法
C.渐增式测试方法、非渐增式测试方法
D.因果图方法、错误推测方法
答案 C

10.(0.0分)软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的( )。
A.可用性
B.可维护性
C.可扩展性
D.可移植性
答案 B

11.(0.0分)(3) 在分层体系结构中,( )实现与实体对象相关的业务逻辑。
A.表示层
B.持久层
C.实体层
D.控制层
答案 D

12.(0.0分)下列选项中不属于CI管道的是( )。
A.构建
B.模拟
C.单元测试
D.集成测试
答案 B

13.(0.0分)应该在( ),确定对象类中应有的服务。
A.建立对象模型之时
B.建立动态模型和功能模型之后
C.建立功能模型之后
D.建立动态模型之后
答案 B

14.(0.0分)(5)进行需求分析可使用多种工具,但( )是不适用的。
A.数据流图
B.PAD图
C.状态转换图
D.数据词典
答案 B

15.(0.0分)(3)LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的( ) 不同。
A.详细程度
B.分解要求
C.使用方法
D.改进过程
答案 A

16.(0.0分)软件工程的三要素是( )。
A.技术、方法和工具
B.方法、对象和类
C.方法、工具和过程
D.过程、模型、方法
答案 C

17.(0.0分)功能模型中所有的( )往往形成一个层次结构,在这个层次结构中一个数据流图的过程可以由下一层数据流图做进一步的说明。
A.事件追踪图
B.物理模型图
C.状态迁移图
D.数据流图
答案 D

18.(0.0分)极限编程中,在设计系统的体系架构时,可以采用( )促使团队成员共同努力。
A.WIP
B.CRC卡
C.燃尽图
D.Scrum任务板
答案 B

19.(0.0分)在需求分析之前有必要进行( )工作。
A.程序设计
B.可行性分析
C.ER分析
D.2NF分析
答案 B

20.(0.0分)面向对象的主要特征除了对象唯一性、封装、继承外,还有( )。
A.兼容性
B.完整性
C.可移植性
D.多态性
答案 D

21.(0.0分)( )研究往往是系统开发过程中难度最大的工作,是可行性研究的关键。
A.技术可行性
B.操作可行性
C.经济可行性
D.风险可行性
答案 A

22.(0.0分)应用执行对象的操作可以改变该对象的( )。
A.行为
B.功能

C.属性
D.数据
答案 C

23.(0.0分)验收测试的任务是验证软件的( )。
A.可靠性
B.正确性
C.移植性
D.有效性
答案 D

24.(0.0分)需求分析的主要方法有( )。
A.形式化分析方法
B.PAD图描述
C.结构化分析SA方法
D.程序流程图
答案 C

25.(0.0分)面向对象技术中,对象是类的实例。对象有三种成份:( ) 、属性和方法(或操作)。
A.标识
B.继承
C.封装
D.消息
答案 C

26.(0.0分)(9)软件维护的副作用,是指( )。
A.运行时误操作
B.隐含的错误
C.因修改软件而造成的错误
D.开发时的错误
答案 C

27.(0.0分)使用软件时提出增加新功能就必须进行( ) 维护。
A.预防性
B.适应性
C.完善性
D.纠错性
答案 C

28.(0.0分)需求规格说明书的作用不应包括( )。
A.软件设计的依据
B.用户与开发人员对软件要做什么的共同理解
C.软件验收的依据
D.软件可行性研究的依据
答案 D

29.(0.0分)( )是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其他图的基础。
A.部署图
B.类图
C.组件图
D.配置图
答案 B

30.(0.0分)(8)软件测试可能发现软件中的( ),但不能证明软件( )。
A.所有错误、没有错误
B.设计错误、没有错误
C.逻辑错误、没有错误
D.错误、没有错误
答案 D

31.(0.0分)进行需求分析可使用多种工具,但( )是不适用的。
A.数据流图
B.PAD图
C.状态转换图
D.数据词典
答案 B

32.(0.0分)每个对象可用它自己的一组属性和它可以执行的一组( )来表征。
A.操作
B.功能
C.行为
D.数据
答案 A

33.(0.0分)白盒测试法是根据程序的( )来设计测试用例的方法。
A.输出数据
B.内部逻辑
C.功能
D.输人数据
答案 B

34.(0.0分)关联是建立( )之间关系的一种手段。
A.对象
B.类
C.功能
D.属性
答案 B

35.(0.0分)对象模型的描述工具是( )。
A.状态图
B.数据流图
C.结构图
D.对象图
答案 D

36.(0.0分)面向对象的动态模型中,每张状态图表示( )的动态行为。
A.某一个类
B.有关联的若干个类
C.一系列事件
D.一系列状态
答案 A

37.(0.0分)(4)软件开发计划是软件工程中的一种( )性文档。
A.技术
B.管理

C.检索
D.文献
答案 B

38.(0.0分)面向数据流的软件设计方法可将( )映射成软件结构。
A.控制结构
B.模块
C.数据流
D.事物流
答案 C

39.(0.0分)(3)在软件工程中,白盒测试方法可用于测试程序的内部结构,此方法将程序作为( )。
A.循环的集合
B.路径的集合
C.目标的集合
D.地址的集合
答案 B

40.(0.0分)CI/CD实践过程中不包括( )。
A.持续集成
B.持续改进
C.持续交付
D.持续测试
答案 B

41.(0.0分)(6)软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )。
A.分析阶段
B.设计阶段
C.编码阶段
D.测试阶段
答案 C

42.(0.0分)( )意味着一个操作在不同的类中可以有不同的实现方式。
A.多继承
B.多态性
C.消息
D.封装
答案 B

43.(0.0分)通过执行对象的操作改变对象的属性,但它必须通过( )的传递。
A.操作
B.消息
C.信息
D.继承
答案 B

44.(0.0分)(2)( ) 的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。
A.估算
B.度量
C.风险分析
D.进度安排
答案 B

45.(0.0分)软件需求规格说明书的内容不应该包括( )。
A.对重要功能的描述
B.对算法的详细过程描述
C.对数据的要求
D.软件的性能
答案 B

46.(0.0分)影响软件可维护性的主要因素不包括( )。
A.可修改性
B.可测试性
C.可用性
D.可理解性
答案 C

47.(0.0分)汽车有一个发动机,汽车和发动机之间的关系是( )关系。
A.组装
B.整体部分
C.分类
D.一般具体
答案 B

48.(0.0分)成功的测试是指运行测试用例后( )。
A.发现了程序错误
B.未发现程序错误
C.证明程序正确
D.改正了程序错误
答案 A

49.(0.0分)(1)程序编译器的体系结构适合使用( )。
A.仓库体系结构
B.模型-视图-控制器结构
C.客户机/服务器结构
D.以上都不是
答案 A

50.(0.0分)(2)模块的独立性是由内聚性和耦合性来度量的,其中内聚性是( )。
A.模块间的联系程度
B.信息隐藏程度
C.模块的功能强度
D.接口的复杂程度
答案 C

51.(0.0分)功能模型中所有的( )往往形成一个层次结构,在这个层次结构中一个数据流图的过程可以由下一层数据流图做进一步的说明。
A.事件追踪图
B.物理模型图
C.状态迁移图
D.数据流图
答案 D

52.(0.0分)软件工程中描述生命周期的瀑布模型一般包括计划、需求分析、设计、编码、( )、维护等几个阶段。
A.产品发布
B.版本更新

C.可行性分析
D.测试
答案 D

53.(0.0分)在E-R模型中,包含以下基本成分( )。
A.数据、对象、实体
B.控制、关系、对象
C.实体、关系、控制
D.实体、属性、关系
答案 D

54.(0.0分)(3)软件需求规格说明书的内容不应该包括( )。
A.对重要功能的描述
B.对算法的详细过程描述
C.对数据的要求
D.软件的性能
答案 B

55.(0.0分)下列不属于面向对象的要素有( )。
A.继承
B.抽象
C.分类性
D.封装
答案 C

56.(0.0分)面向对象分析的首要工作是建立( )。
A.系统的动态模型
B.系统的功能模型
C.基本的E-R图
D.问题的对象模型
答案 D

57.(0.0分)(3)研究软硬件资源的有效性是进行( )研究的一方面。
A.技术可行性
B.经济可行性
C.社会可行性
D.操作可行性
答案 A

58.(0.0分)(3)Jackson方法根据( )来导出程序结构。
A.数据流图
B.数据间的控制结构
C.数据结构
D.IPO图
答案 C

59.(0.0分)在软件维护的内容中,占维护活动工作量比例最高的是( )。
A.纠错性维护
B.适应性维护
C.预防性维护
D.完善性维护
答案 B

60.(0.0分)为了提高模块的独立性,模块之间最好是( )。
A.公共环境耦合
B.控制耦合
C.数据耦合
D.特征耦合
答案 C

61.(0.0分)螺旋模型综合了( )的优点, 并增加了风险分析。
A.增量模型和喷泉模型
B.瀑布模型和演化模型
C.演化模型和喷泉模型
D.原型和喷泉模型
答案 B

62.(0.0分)(2)软件危机的主要原因是( )。
A.软件工具落后
B.软件生产能力不足
C.实行严格的产品控制
D.软件本身的特点及开发方法
答案 D

63.(0.0分)(3)第一个体现结构化编程思想的程序设计语言是( )。
A.FORTRAN
B.C
C.Pascal
D.Cobol
答案 C

64.(0.0分)( )是从用户使用系统的角度描述系统功能的图形表达方法。
A.类图
B.活动图
C.用例图
D.状态图
答案 C

65.(0.0分)所有的对象可以成为各种对象类,每个对象类都定义了一组( )。
A.说明
B.类型
C.过程
D.方法
答案 D

66.(0.0分)模块的独立性是由内聚性和耦合性来度量的,其中内聚性是( )。
A.模块间的联系程度
B.信息隐藏程度
C.模块的功能强度
D.接口的复杂程度
答案 C

67.(0.0分)软件危机的主要原因是( )。
A.软件工具落后
B.软件生产能力不足

C.对软件的认识不够
D.软件本身的特点及开发方法
答案 D

68.(0.0分)面向对象的分析方法主要是建立3类模型,即( )。
A.系统模型、ER模型、应用模型
B.对象模型、动态模型、功能模型
C.ER模型、对象模型、功能模型
D.对象模型、动态模型、应用模型
答案 B

69.(0.0分)(5)下列是面向对象设计方法中有关对象的叙述,其中( )是正确的。
A.对象在内存中没有它的存储区
B.对象的属性集合是它的特征表示
C.对象的定义与程序中类型概念相当
D.对象之间不能相互通信
答案 B

70.(0.0分)面向对象程序设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的( )。
A.多态性
B.封装性
C.继承性
D.重用性
答案 C

71.(0.0分)面向对象分析的首要工作是建立( )。
A.系统的动态模型
B.系统的功能模型
C.基本的ER图
D.问题的对象模型
答案 D

72.(0.0分)极限编程所推崇的规则和实践方法中,所有代码都必须通过( )。
A.单元测试
B.集成测试
C.功能测试
D.验收测试
答案 A

73.(0.0分)黑盒测试是从( )观点的测试,白盒测试是从( )观点的测试。
A.开发人员、管理人员
B.用户、管理人员
C.用户、开发人员
D.开发人员、用户
答案 C

74.(0.0分)软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( )。
A.生命周期
B.面向对象设计
C.面向对象分析
D.面向对象程序设计
答案 C

75.(0.0分)(5)软件工程中描述生命周期的瀑布模型一般包括计划、需求分析、设计、编码、( )、维护等几个阶段。
A.产品发布
B.版本更新
C.可行性分析
D.测试
答案 D

76.(0.0分)(4)( )可以帮助人们简单方便地复用已经成功的设计或体系结构设计。
A.商业构件
B.设计模式
C.遗留系统
D.需求规格说明
答案 B

77.(0.0分)(2)白盒法又称为逻辑覆盖法,主要用于( )。
A.确认测试
B.系统测试
C.α测试
D.单元测试
答案 D

78.(0.0分)(6)面向对象设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的( )。
A.多态性
B.封装性
C.继承性
D.重用性
答案 C

79.(0.0分)(6)数据流图是进行软件需求分析的常用图形工具,其基本图形符号是( )。
A.输入、输出、外部实体和加工
B.变换、加工、数据流和存储
C.加工、数据流、数据存储和外部实体
D.变换、数据存储、加工和数据流
答案 C

80.(0.0分)(6)按照软件配置管理的原始指导思想,受控制的对象应是( )。
A.软件过程
B.软件项目
C.软件配置项
D.软件元素
答案 C

81.(0.0分)下面( ) 不是人们常用的评价软件质量的4个因素之一。
A.可理解性
B.可靠性
C.可维护性
D.易用性
答案 D

82.(0.0分)面向对象的分析方法主要是建立三类模型,即( )。
A.系统模型、ER模型、应用模型
B.对象模型、动态模型、功能模型

C.ER模型、对象模型、功能模型
D.对象模型、动态模型、应用模型
答案 B

83.(0.0分)软件测试的目的是尽可能发现软件中的错误,通常( )是代码编写阶段可进行的测试,它是整个测试工作的基础。
A.集成测试
B.系统测试
C.验收测试
D.单元测试
答案 D

84.(0.0分)面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父亲,下层可以有子类,这种层次结构系统的一个重要性质是( ),一个类获得其父亲的全部描述(数据和操作)。
A.兼容性
B.继承性
C.复用性
D.多态性
答案 B

85.(0.0分)(2)需求分析是一个( ),它应该贯穿于系统的整个生命周期中,而不是仅仅属于软件生命周期早期的一项工作。
A.概念
B.工具
C.方法
D.过程
答案 D

86.(0.0分)( ) 的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。
A.估算
B.度量
C.风险分析
D.进度安排
答案 B

87.(0.0分)XP的4个价值观包括( )。
A.交流、简单、反馈、勇气
B.沟通、合作、自信、挑战
C.交流、简单、合作、信任
D.沟通、坚持、合作、挑战
答案 A

88.(0.0分)在下列选项中,( )不属于软件工程学科所要研究的基本内容。
A.软件工程材料
B.软件工程目标
C.软件工程原理
D.软件工程过程
答案 A

89.(0.0分)下列选项中不属于DevOps生命周期的是( )。
A.持续反馈
B.集成或构建
C.持续部署
D.调查分析

答案 D

90.(0.0分)面向对象设计时,对象信息的隐藏主要是通过( )实现的。
A.对象的封装性
B.子类的继承性
C.系统模块化
D.模块的可重用
答案 A

91.(0.0分)汽车有一个发动机,汽车和发动机之间的关系是( )关系。
A.组装
B.整体部分
C.分类
D.一般具体
答案 B

92.(0.0分)面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是( ),一个子类获得其父类的全部描述(数据和操作)。
A.兼容性
B.继承性
C.复用性
D.多态性
答案 B

93.(0.0分)(5)在面向数据流的软件设计方法中,一般将信息流分为( )。
A.数据流和控制流
B.变换流和控制流
C.事务流和控制流
D.变换流和事务流
答案 D

94.(0.0分)CMM模型将软件过程的成熟度分为5个等级。在( )使用定量分析来不断地改进和管理软件过程。
A.管理级
B.优化级
C.定义级
D.可重复级
答案 B

95.(0.0分)画分层DFD图的基本原则有( )。
A.数据守恒原则
B.分解的可靠性原则
C.子、父图平衡的原则
D.数据流封闭的原则
答案 C

96.(0.0分)面向对象设计OOD模型的主要部件中,通常不包括( )。
A.通信部件
B.人机交互部件
C.任务管理
D.数据管理
答案 A

97.(0.0分)(7)黑盒测试是从( )观点的测试,白盒测试是从( )观点的测试。

A.开发人员、管理人员
B.用户、开发人员
C.用户、管理人员
D.开发人员、用户
答案 B

98.(0.0分)(3)( )是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其他图的基础。
A.部署图
B.类图
C.组件图
D.配置图
答案 B

99.(0.0分)(5)白盒测试法是根据程序的( )来设计测试用例的方法。
A.输出数据
B.内部逻辑
C.功能
D.输人数据
答案 B

100.(0.0分)(13)单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( )。
A. 系统功能 B.局部数据结构 C.重要的执行路径 D.错误处理
答案 A

101.(0.0分)(3)软件生命周期模型不包括( )。
A.瀑布模型
B.用例模型
C.增量模型
D.螺旋模型
答案 B

102.(0.0分)(5)下列哪项不是风险管理的过程?( )。
A.风险规划
B.风险识别
C.风险评估
D.风险收集
答案 D

103.(0.0分)软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )。
A.分析阶段
B.设计阶段
C.编码阶段
D.测试阶段
答案 C

104.(0.0分)敏捷开发和DevOps都是一种理念,他们的理念相似,都是为了更好更快地发布产品,但又不完全相同,而( )是实现这两者理念的一种方法。
A.XP
B.Scrum
C.CI/CD
D.看板
答案 C

105.(0.0分)(3)软件工程的三要素是( )。
A.技术、方法和工具
B.方法、对象和类
C.方法、工具和过程
D.过程、模型、方法
答案 C

106.(0.0分)(8)使用软件时提出增加新功能就必须进行( ) 维护。
A.预防性
B.适应性
C.完善性
D.纠错性
答案 C

107.(0.0分)(4)面向对象设计的结果,实现时( )。
A.只能使用面向对象语言
B.只能使用非面向对象语言
C.可以使用第四代语言
D.既可使用面向对象语言,也可使用非面向对象语言
答案 A

108.(0.0分)软件过程是( )。
A.特定的开发模型
B.一种软件求解的计算逻辑
C.软件开发活动的集合
D.软件生命周期模型
答案 C

109.(0.0分)(7)下面( ) 不是人们常用的评价软件质量的4个因素之一。
A.可理解性
B.可靠性
C.可维护性
D.易用性
答案 D

110.(0.0分)在面向数据流的软件设计方法中,一般将信息流分为( )。
A.数据流和控制流
B.变换流和控制流
C.事务流和控制流
D.变换流和事务流
答案 D

111.(0.0分)面向对象分析阶段建立的3个模型中,核心的模型是( )模型。
A.功能
B.动态
C.对象
D.分析
答案 C

112.(0.0分)(4)包含风险分析的软件工程模型是( )。
A.螺旋模型
B.瀑布模型

C.增量模型
D.喷泉模型
答案 A

113.(0.0分)(4)成功的测试是指运行测试用例后( )。
A.发现了程序错误
B.未发现程序错误
C.证明程序正确
D.改正了程序错误
答案 A

114.(0.0分)(2)只有类的共有界面的成员才能成为使用类的操作,这是软件设计的( )原则。
A.过程抽象
B.信息隐藏
C.功能抽象
D.共享性
答案 B

115.(0.0分)(12)CMM 表示( )。
A.软件过程成熟度模型
B.软件配置管理
C.软件质量认证
D.软件重用
答案 A

116.(0.0分)当算法中需要用一个模块去计算多种条件的复杂组合,并根据这些条件完成适当的功能时,从供选择的答案中,选出合适的描述工具。( )
A.程序流程图
B.N-S图
C.PAD图
D.判定表
答案 D

117.(0.0分)(4)面向对象分析阶段建立的3个模型中,核心的模型是( )模型。
A.功能
B.动态
C.对象
D.分析
答案 C

118.(0.0分)按照软件配置管理的原始指导思想,受控制的对象应是( )。
A.软件过程
B.软件项目
C.软件配置项
D.软件元素
答案 C

119.(0.0分)(7)螺旋模型综合了( )的优点, 并增加了风险分析。
A.增量模型和喷泉模型
B.瀑布模型和快速原型模型
C.瀑布模型和喷泉模型
D.快速原型模型和喷泉模型
答案 B

120.(0.0分)(1)增量模型本质上是一种( )。
A.线性顺序模型
B.整体开发模型
C.非整体开发模型
D.螺旋模型
答案 C

121.(0.0分)(1)下列说法中正确的是( )。
A.20世纪50年代提出了软件工程的概念
B.20世纪60年代提出了软件工程概念
C.20世纪70年代出现了客户机/服务器技术
D.20世纪80年代软件工程学科达到成熟
答案 B

122.(0.0分)(2) ( )是一种纯面向对象语言。
A.C
B.Pascal
C.Eiffel
D.Lisp
答案 C

123.(0.0分)下列选项中不属于看板项目的5条核心原则的是( )。
A.可视化工作流程
B.限制工作进度
C.制定明确的执行策略
D.额外制定流程应对变化
答案 D

124.(0.0分)( )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.类图
B.顺序图
C.状态图
D.协作图
答案 B

125.(0.0分)在软件测试中,逻辑覆盖标准主要用于( )。
A.白盒测试方法
B.黑盒测试方法
C.灰盒测试方法
D.回归测试方法
答案 A

126.(0.0分)(1)在需求分析之前有必要进行( )工作。
A.程序设计
B.可行性研究
C.E-R分析
D.行为建模
答案 B

127.(0.0分)(4)为了提高模块的独立性,模块之间最好是( )。
A.公共环境耦合
B.控制耦合

C.数据耦合
D.特征耦合
答案 C

128.(0.0分)LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的( ) 不同。
A.详细程度
B.分解要求
C.使用方法
D.改进过程
答案 A

129.(0.0分)软件维护的副作用,是指( )。
A.运行时误操作
B.隐含的错误
C.因修改软件而造成的错误
D.开发时的错误
答案 C

130.(0.0分)软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( )。
A.总结
B.阶段性报告
C.需求分析评审
D.以上答案都不正确
答案 C

131.(0.0分)(2)软件过程是( )。
A.特定的开发模型
B.一种软件求解的计算逻辑
C.软件开发活动的集合
D.软件生命周期模型
答案 C

132.(0.0分)以下哪一项不是面向对象的特征( )。
A.多态性
B.继承性
C.封装性
D.过程调用
答案 D

133.(0.0分)Scrum有一套其独特且固定的管理方式,从( )几个维度维度出发,来保证执行过程更高效。
A.角色、工件
B.角色、不同形式的会议
C.角色、工件、不同形式的会议
D.角色、工件、客户需求
答案 C

134.(0.0分)可行性研究也称为( )。
A.技术可行性研究
B.操作可行性研究
C.经济可行性研究
D.项目论证
答案 D

135.(0.0分)对象模型的描述工具是( )。
A.状态图
B.数据流图
C.结构图
D.对象图
答案 D

136.(0.0分)(12)软件测试的目的是尽可能发现软件中的错误,通常( )是代码编写阶段可进行的测试,它是整个测试工作的基础。
A.集成测试
B.系统测试
C.验收测试
D.单元测试
答案 D

137.(0.0分)通过执行对象的操作改变对象的属性,但它必须通过( )的传递。
A.操作
B.消息
C.信息
D.继承
答案 B

138.(0.0分)( )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A.软件生命周期
B.软件测试
C.软件工程
D.软件过程
答案 C

139.(0.0分)黑盒测试方法根据( )设计测试用例。
A.程序的调用规则
B.软件要完成的功能
C.模块间的逻辑关系
D.程序的数据结构
答案 B

140.(0.0分)(4)项目团队原来有6个成员,现在又增加了6个成员,这样沟通渠道增加了多少? ( )
A.4.4倍
B.2倍
C.6倍
D.6条
答案 A

141.(0.0分)下列说法中正确的是( )。
A.20世纪50年代提出了软件工程的概念
B.20世纪60年代提出了软件工程概念
C.20世纪70年代出现了客户机/服务器技术
D.20世纪80年代软件工程学科达到成熟
答案 B

142.(0.0分)SA法的主要描述手段有( )。
A.系统流程图和模块图
B.DFD图、数据词典、加工说明

C.软件结构图、加工说明
D.功能结构图、加工说明
答案 B

143.(0.0分)面向对象分析是对系统进行( )的一种方法。
A.设计评审
B.程序设计
C.需求建模
D.测试验收
答案 C

144.(0.0分)下列是面向对象设计方法中有关对象的叙述,其中( )是正确的。
A.对象在内存中没有它的存储区
B.对象的属性集合是它的特征表示
C.对象的定义与程序中类型概念相当
D.对象之间不能相互通信
答案 B

145.(0.0分)在下面的叙述中哪一个不是软件需求分析的任务?( )。
A.问题分解
B.可靠性与安全性要求
C.结构化程序设计
D.确定逻辑模型
答案 C

146.(0.0分)(4)下面所列的性质中,( )不属于面向对象设计的特性。
A.继承性
B.重用性
C.封装性
D.可视化
答案 D

147.(0.0分)软件测试的目的是( )。
A.证明软件的正确性
B.找出软件系统中存在的所有错误
C.证明软件系统中存在错误
D.尽可能多的发现软件系统中的错误
答案 D

148.(0.0分)(11)影响软件可维护性的主要因素不包括( )。
A.可修改性
B.可测试性
C.可用性
D.可理解性
答案 C

149.(0.0分)所有的对象可以成为各种对象类,每个对象类都定义了一组( )。
A.说明
B.类型
C.过程
D.方法
答案 D
150.(0.0分)(6)在软件测试中,逻辑覆盖法主要用于( )。
A.黑盒测试方法
B.白盒测试方法
C.灰盒测试方法
D.软件验收方法
答案 B

151.(0.0分)(5) ( )用于封装具体的平台,从而使应用程序可以在不同的平台上运行。
A.抽象工厂模式
B.外观模式
C.观察者模式
D.以上都不是
答案 A

152.(0.0分)动态模型的描述工具是( )。
A.设计图
B.结构图
C.状态图
D.对象图
答案 C

153.(0.0分)下面所列的性质中,( )不属于面向对象程序设计的特性。
A.继承性
B.重用性
C.封装性
D.可视化
答案 D

154.(0.0分)面向对象模型主要由以下哪些模型组成( )。
A.对象模型、动态模型、功能模型
B.对象模型、数据模型、功能模型
C.数据模型、动态模型、功能模型
D.对象模型、动态模型、数据模型
答案 A

155.(0.0分)(10)软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的( )。
A.可用性
B.可维护性
C.可扩展性
D.可移植性
答案 B

156.(0.0分)(10)黑盒测试方法根据( )设计测试用例。
A.程序的调用规则
B.软件要完成的功能
C.模块间的逻辑关系
D.程序的数据结构
答案 B

157.(0.0分)在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是( )。
A.顺序图

B.状态图
C.系统结构图
D.数据流图
答案 B

158.(0.0分)(1)面向对象设计阶段的主要任务是系统设计和( )。
A.结构化设计
B.数据设计
C.面向对象程序设计
D.对象设计
答案 D

159.(0.0分)(7) 结构化分析方法的基本思想是( )。
A.自底向上逐步分解
B.自顶向下逐步分解
C.自底向上逐步抽象
D.自顶向下逐步抽象
答案 B

160.(0.0分)下述任务中,不属于软件工程需求分析阶段的是( )。
A.分析软件系统的数据要求
B.确定软件系统的功能需求
C.确定软件系统的性能要求
D.确定软件系统的运行平台
答案 D

161.(0.0分)面向对象设计阶段的主要任务是系统设计和( )。
A.结构化设计
B.数据设计
C.面向对象程序设计
D.对象设计
答案 D

162.(0.0分)包含风险分析的软件工程模型是( )。
A.喷泉模型
B.瀑布模型
C.增量模型
D.螺旋模型
答案 D

163.(0.0分)Jackson方法根据( )来导出程序结构。
A.数据流图
B.数据间的控制结构
C.数据结构
D.IPO图
答案 C

164.(0.0分)需求工程的主要目的是( )。
A.系统开发的具体方案
B.进一步确定用户的需求
C.解决系统是“做什么的问题”
D.解决系统是“如何做的问题”

答案 C

165.(0.0分)只有类的共有界面的成员才能成为使用类的操作,这是软件设计的( )原则。
A.过程抽象
B.信息隐藏
C.功能抽象
D.共享性
答案 B

166.(0.0分)下列哪项不是风险管理的过程?( )。
A.风险规划
B.风险识别
C.风险评估
D.风险收集
答案 D

167.(0.0分)(4)在下列选项中,( )不属于软件工程学科所要研究的基本内容。
A.软件工程材料
B.软件工程方法
C.软件工程原理
D.软件工程过程
答案 A

168.(0.0分)( )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐藏的,外界只能通过有限的接口与对象发生联系。
A.多态性
B.继承
C.消息
D.封装
答案 D

169.(0.0分)软件生命周期模型不包括( )。
A.瀑布模型
B.用例模型
C.增量模型
D.螺旋模型
答案 B

170.(0.0分)下列选项中不属于典型的 CI/CD 管道的阶段是( )。
A.提交
B.构建
C.模拟
D.测试和部署
答案 C

171.(0.0分)程序语言的特性包括( )。
A.习惯特性
B.算法特性
C.工程特性
D.技术特性
答案 B

172.(0.0分)(1)软件测试的目的是( )。
A.证明软件是正确的

B.发现软件的错误
C.找出软件中的所有错误
D.评价软件的质量
答案 B

173.(0.0分)(2)网站系统是一个典型的 ( )。
A.仓库体系结构
B.胖客户机/服务器结构
C.瘦客户机/服务器结构
D.以上都不是
答案 C

174.(0.0分)软件的集成测试工作最好由( )承担,以提高集成测试的效果。
A.该软件的设计人员
B.该软件开发组的负责人
C.不属于该软件开发组的软件设计人员
D.该软件的编程人员
答案 C

175.(0.0分)在结构化分析方法中,用以表达系统内数据的运动情况的工具是( )。
A.数据流图
B.数据字典
C.结构化语言
D.判定表与判定树
答案 A

176.(0.0分)(8)在E-R图中,包含以下基本成分( )。
A.数据、对象、实体
B.控制、关系、对象
C.实体、关系、控制
D.实体、属性、关系
答案 D

177.(0.0分)用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为( )工具。
A.CAD
B.CAI
C.CAM
D.CASE
答案 D

178.(0.0分)(1)软件实现是软件产品由概念到实体的一个关键过程,它将( )的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但是规范的程序设计风格将会对后期的软件维护带来不可忽视的影响。
A.软件设计
B.详细设计
C.架构设计
D.总体设计
答案 B

179.(0.0分)(4)软件需求分析阶段的工作,可以分为以下5个方面:对问题的识别、分析与综合、编写需求分析文档以及( )。
A.总结
B.阶段性报告
C.需求分析评审

D.以上答案都不正确
答案 C

180.(0.0分)(1)软件工程针对维护工作的主要目标是提高软件的可维护性,降低( )。
A.维护的效率
B.维护的工作量
C.文档
D.维护的代价
答案 B

181.(0.0分)软件测试可能发现软件中的( ),但不能证明软件( )。
A.所有错误、没有错误
B.设计错误、没有错误
C.逻辑错误、没有错误
D.错误、没有错误
答案 D

182.(0.0分)UML是软件开发中的一个重要工具,它主要应用于 ( )。
A.基于螺旋模型的结构化方法
B.基于需求动态定义的原型化方法
C.基于数据的数据流开发方法
D.基于对象的面向对象的方法
答案 D

183.(0.0分)在下列选项中,( )不是软件的特征。
A.系统性与复制性
B.可靠性与一致性
C.抽象性与智能性
D.有形性与可控性
答案 D

184.(0.0分)Mantei提出了3种通用的项目组组织方式:民主分权式、控制分权式。
A.启发式
B.归纳式
C.总结式
D.控制集权式
答案 D

185.(0.0分)(1)面向数据流的软件设计方法可将( )映射成软件结构。
A.控制结构
B.模块
C.数据流
D.事物流
答案 C

186.(0.0分)在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是( )。
A.顺序图
B.状态图
C.系统结构图
D.数据流图
答案 B

187.(0.0分)增量模型本质上是一种( )。
A.线性顺序模型
B.整体开发模型
C.非整体开发模型
D.螺旋模型
答案 C

188.(0.0分)项目团队原来有6个成员,现在又增加了6个成员,这样沟通渠道增加了多少?
A.4.4倍
B.2倍
C.6倍
D.6条
答案 A

二、判断题 (166题,每小题0分,共0分)

189.(0.0分)(9)信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图。
答案 是

190.(0.0分)SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应
答案 否

191.(0.0分)(7)风险有两个显著特点,一个是不确定性,另一个是损失。
答案 是

192.(0.0分)软件危机的主要表现是软件需求增加,软件价格上升。 ()
答案 否

193.(0.0分)代码行技术是比较简单的定量估算软件规模的方法。
答案 是

194.(0.0分)(8)单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。
答案 是

195.(0.0分)(2)螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
答案 否

196.(0.0分)面向对象的分析过程主要包括三项内容:理解、表达和验证。
答案 是

197.(0.0分)软件测试的目的是证明软件是正确的。()
答案 否

198.(0.0分)(6)非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
答案 是

199.(0.0分)需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。()
答案 否

200.(0.0分)(4)软件设计说明书是软件概要设计的主要成果。
答案 否

201.(0.0分)面向对象分析的核心在于建立一个描述软件系统的模型。
答案 否

202.(0.0分)在软件开发中采用原型系统策略的主要困难是成本问题。 ()
答案 否

203.(0.0分)(3)关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。()

答案 否

204.(0.0分)(7)需求分析阶段的成果主要是需求规格说明书,但该成果与软件设计、编码、测试直至维护关系不大。
答案 否

205.(0.0分)面向对象分析方法认为系统是对象的集合,是以功能和数据为基础的。
答案 是

206.(0.0分)需求规格说明书描述了系统每个功能的实现。 ()
答案 否

207.(0.0分)(6)现代程序员组中,技术组长既对技术工作负责,又负责非技术事务。
答案 是

208.(0.0分)(4)民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过协商做出技术决策。
答案 是

209.(0.0分)(4)软件工具的作用是为了延长软件产品的寿命。 ()
答案 否

210.(0.0分)软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高代价。
答案 是

211.(0.0分)现代程序员组中,技术组长既对技术工作负责,又负责非技术事务。
答案 否

212.(0.0分)风险有两个显著特点,一个是不确定性,另一个是损失。
答案 是

213.(0.0分)软件测试的目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据。 ()
答案 是

214.(0.0分)(3)软件工程过程应该以软件设计为中心,关键是编写程序。
答案 否

215.(0.0分)在面向对象的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏。 ()
答案 是

216.(0.0分)(11)功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。
答案 是

217.(0.0分)在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。 ()
答案 否

218.(0.0分)模型是对现实的简化,建模是为了更好地理解所开发的系统。
答案 是

219.(0.0分)用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。()
答案 是

220.(0.0分)模型是对现实的简化,建模是为了更好地理解所开发的系统。
答案 是

221.(0.0分)主程序员组的两个关键特性是专业化和层次性。
答案 是

222.(0.0分)与计算机科学的理论研究不同,软件工程是一门原理性学科。 ()
答案 否

223.(0.0分)(3)需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性研究的依据。
答案 否

224.(0.0分)(2)进行程序设计语言的选择时,首先考虑的是应用领域。
答案 是

225.(0.0分)HIPO法既是需求分析方法,又是软件设计方法。
答案 是

226.(0.0分)用面向对象方法开发的软件系统,可维护性好。
答案 是

227.(0.0分)多态性防止了程序相互依赖而带来的变动影响。
答案 否

228.(0.0分)在技术层面上,DevOps要求致力于自动化,使项目在工作流程内和工作流程之间不断前进,并致力于反馈和测量,使团队能够不断加快周期,提 高软件质量和性能。
答案 是

229.(0.0分)(5)FORTRAN、Pascal、C语言和汇编语言都是科学工程计算可选用的语言。
答案 否

230.(0.0分)每个 CI/CD 过程都需要有如单元测试、集成测试等所有测试,且持续测试的目标始终相同。
答案 否

231.(0.0分)分层的DFD图可以用于可行性分析阶段,描述系统的物理结构.()
答案 否

232.(0.0分)(6)划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。
答案 否

233.(0.0分)用例之间有扩展、使用、组合等几种关系。
答案 否

234.(0.0分)需求评审人员主要由开发人员组成,一般不包括用户。()
答案 否

235.(0.0分)(7)结构化设计SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应
答案 否

236.(0.0分)民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过协商做出技术决策。
答案 是

237.(0.0分)进行程序设计语言的选择时,首先考虑的是应用领域。()
答案 是

238.(0.0分)(9)白盒测试法是一种静态测试方法,主要用于模块测试。
答案 否

239.(0.0分)(4)设计模式是从大量或成功实践中总结出来并且被广泛公认的实践和知识。
答案 是

240.(0.0分)类的设计过程包括:确定类,确定关联类,确定属性,识别继承关系。
答案 是

241.(0.0分)面向对象分析阶段建立的3个模型中,核心的模型是功能模型。
答案 否

242.(0.0分)(4)面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。()
答案 是

243.(0.0分)软件生命周期最后一个阶段是书写软件文档。
答案 否

244.(0.0分)面向对象的开发方法将过程作为最基本元素,是分析问题、解决问题的核心。

答案 否

245.(0.0分)白盒法是一种静态测试方法,主要用于模块测试。()
答案 否

246.(0.0分)(5)需求规格说明书描述了系统每个功能的具体实现。
答案 否

247.(0.0分)(2)软件危机的主要表现是软件需求增加,软件价格上升。 ()
答案 否

248.(0.0分)回避风险指的是:风险倘若发生,就接受后果。
答案 否

249.(0.0分)测试用例由输人数据和预期的输出结果两部分组成。()
答案 是

250.(0.0分)(2)如果通过软件测试没有发现错误,则说明软件是正确的。
答案 否

251.(0.0分)在面向对象的需求分析方法中,建立动态模型是最主要的任务。
答案 否

252.(0.0分)软件质量保证的措施主要有,基于非执行的测试(也称为复审)、基于执行的测试和程序正确性证明。
答案 是

253.(0.0分)CI/CD 的目标是帮助开发人员以速度和效率交付软件。团队不断将代码交付到生产中,运行新功能和错误修复的持续流程。
答案 是

254.(0.0分)白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。()
答案 是

255.(0.0分)(2)面向数据的设计方法一般都包括下列任务: 确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。
答案 是

256.(0.0分)(3)软件工程学科出现的主要原因是软件危机的出现。 ()
答案 是

257.(0.0分)(11)文档是影响软件可维护性的决定因素。
答案 是

258.(0.0分)软件工程学科出现的主要原因是软件危机的出现。 ()
答案 是

259.(0.0分)(1)C语言是一种纯面向对象语言。
答案 否

260.(0.0分)(8)分层的DFD图可以用于可行性研究阶段,描述系统的物理结构。
答案 否

261.(0.0分)(1)判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
答案 否

262.(0.0分)瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。()
答案 否

263.(0.0分)一个设计得好的软件系统具有低内聚、高耦合的特征。()
答案 否

264.(0.0分)信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图。()
答案 是

265.(0.0分)(14)软件生命周期最后一个阶段是书写软件文档。
答案 是

266.(0.0分)文档是影响软件可维护性的决定因素。
答案 是

267.(0.0分)在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
答案 否

268.(0.0分)XP中通过结对,程序员通常可以更快地解决问题,出现更少的错误,降低了测试的时间和成本。但相应个别的人员流动对项目进展造成的影响就会很大。
答案 否

269.(0.0分)多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。
答案 否

270.(0.0分)需求分析是开发方的工作,用户的参与度不大。()
答案 否

271.(0.0分)(2)需求分析是开发方的工作,用户的参与度不大。
答案 否

272.(0.0分)Backlog的关键要点在于清楚表述列表中每个需求任务对用户带来的价值,进行动态的需求管理以及迭代的需求分析过程。
答案 是

273.(0.0分)软件设计说明书是软件概要设计的主要成果。
答案 否

274.(0.0分)(2)功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。
答案 是

275.(0.0分)(6)白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。
答案 是

276.(0.0分)软件就是程序,编写软件就是编写程序。()
答案 否

277.(0.0分)(10)在需求分析阶段主要采用图形工具来描述的原因是图形的信息量大,便于描述规模大的软件系统。( )
答案 否

278.(0.0分)类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。
答案 否

279.(0.0分)(13)进行软件维护活动时,直接修改程序,无需修改文档。
答案 是

280.(0.0分)(4)项目的应用领域是选择程序设计语言的关键因素。
答案 是

281.(0.0分)功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。
答案 是

282.(0.0分)(3)白盒测试无须考虑模块内部的执行过程和程序结构,只需了解模块的功能即可。
答案 否

283.(0.0分)(8)回避风险指的是:风险倘若发生,就接受后果。
答案 是

284.(0.0分)用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。()
答案 是

285.(0.0分)(3)良好的分层体系结构有利于系统的扩展和维护。
答案 是

286.(0.0分)对象模型的描述工具是状态图。
答案 否

287.(0.0分)Scrum Master帮助团队尽其所能地完成工作。例如组织会议,处理遇到的障碍和挑战等,同时Scrum Master应该对团队成员指派对应任务,告诉团队成员应该做什么。 ( )
答案 否

288.(0.0分)(4)需求分析的主要目的是解决软件开发的具体方案。
答案 否

289.(0.0分)适应性维护是在软件使用过程中,用户会对软件提出新的功能和性能要求,为了满足这些新的要求而对软件进行修改,使之在功能和性能上得到完善和增强的活动。
答案 否

290.(0.0分)程序设计语言是指编程时表现出来的特点、习惯、逻辑思维等。()
答案 否

291.(0.0分)(10)在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。
答案 否

292.(0.0分)进行软件维护活动时,直接修改程序,无需修改文档。
答案 否

293.(0.0分)(1)瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
答案 否

294.(0.0分)需求分析的主要目的是解决软件开发的具体方案。 ()
答案 否

295.(0.0分)继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。
答案 否

296.(0.0分)UML语言支持面向对象的主要概念,并与具体的开发过程相关。
答案 否

297.(0.0分)部署图描述系统硬件的物理拓扑结构以及在此结构上执行的软件。
答案 是

298.(0.0分)(2)可行性研究过程也称为项目论证过程。 ( )
答案 是

299.(0.0分)(5)软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高代价。
答案 是

300.(0.0分)类封装比对象封装更具体、更细致。
答案 否

301.(0.0分)(15)CMM 是指导软件开发的一种面向对象的新技术。
答案 是

302.(0.0分)类是指具有相同或相似性质的对象的抽象,类的具体化就是对象。
答案 是

303.(0.0分)关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。()
答案 否

304.(0.0分)(4)软件测试的目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据。
答案 是

305.(0.0分)继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。
答案 否

306.(0.0分)非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。()
答案 是

307.(0.0分)(2)面向对象分析和设计活动是一个多次反复迭代的过程。()
答案 是

308.(0.0分)划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。
答案 否

309.(0.0分)面向对象的方法是以类作为最基本的元素,它是分析问题、解决问题的核心。
答案 否

310.(0.0分)所有进入CD过程的代码必须首先通过 CI。
答案 是

311.(0.0分)UML 是一种建模语言,是一种标准的表示,是一种方法。
答案 否

312.(0.0分)面向对象的继承性是子类自动共享父类数据结构和方法的机制。
答案 是

313.(0.0分)(12)适应性维护是在软件使用过程中,用户会对软件提出新的功能和性能要求,为了满足这些新的要求而对软件进行修改,使之在功能和性能上 得到完善和增强的活动。
答案 是

314.(0.0分)(3)投资回收期越长,所获得的利润就越快,因此该项目就值得开发。 ( )
答案 否

315.(0.0分)判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
答案 否

316.(0.0分)(1)软件测试是对软件规格说明、软件设计和编码的最全面也是最后的审查。
答案 否

317.(0.0分)常用的制定进度计划的工具主要有Word和Excel两种。
答案 否

318.(0.0分)CI/CD管道还可以降低编写代码时的风险,使开发人员能够专注于修复代码错误。
答案 否

319.(0.0分)(1)用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。
答案 是

320.(0.0分)使用XP方法时,项目组的所有成员最好在同一个场所工作,以便及时的沟通和解决问题。同时,要求有一个现场用户,由其提出需求并制定需求优先级,编写验收测试用例 。
答案 是

321.(0.0分)软件设计一般分为总体设计和详细设计,它们之间的关系是全局和局部。()
答案 否

322.(0.0分)(1)软件就是程序,编写软件就是编写程序。()
答案 否

323.(0.0分)(4)螺旋模型属于增量模型。
答案 否

324.(0.0分)面向对象分析和设计活动是一个多次反复迭代的过程。()
答案 是

325.(0.0分)顺序图描述对象是如何交互的并且将重点放在消息序列上。
答案 是

326.(0.0分)好程序的一个重要标准是源程序代码的逻辑简明清晰、易读易懂。 ()
答案 是

327.(0.0分)(10)总体上说,软件工程文档可以分为用户文档、开发文档和管理文档三类。
答案 是

328.(0.0分)(11) 设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需考虑怎样具体地实现这些功能。 ( )
答案 是

329.(0.0分)用例需求分析方法采用的是一种结构化的情景分析方法,即是一种基于场景建模的方法。
答案 否

330.(0.0分)类封装比对象封装更具体、更细致。
答案 否

331.(0.0分)(3)良好的个人编程风格是一个优秀的程序员所应具备的素质。
答案 是

332.(0.0分)原型化开发方法包括生成原型和实现原型两个步骤。 ()
答案 否

333.(0.0分)(2)软件体系结构的描述是不同项目相关人员之间进行沟通的实现手段。
答案 是

334.(0.0分)(1)在面向对象的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏。 ()
答案 是

335.(0.0分)发现错误多的模块,残留在模块中的错误也多。()
答案 是

336.(0.0分)无论用哪种形式来创建看板图,看板都会有一个原则:提高工作的灵活性、透明度和产出质量 。
答案 否

337.(0.0分)(4)代码行技术是成本估算技术的一种。 ( )
答案 是

338.(0.0分)(3)模块独立要求高耦合低内聚。
答案 否

339.(0.0分)(1)软件开发计划是软件工程中的一种技术性文档。 ( )
答案 否

340.(0.0分)功能模型是类似编译器之类系统的主要模型。
答案 是

341.(0.0分)单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。 ()
答案 是

342.(0.0分)活动图显示动作及其结果,着重描述操作实现中所完成的工作,以及用例实例或类中的活动。
答案 否

343.(0.0分)(9)软件质量保证的措施主要有,基于非执行的测试(也称为复审)、基于执行的测试和程序正确性证明。
答案 是

344.(0.0分)(5)主程序员组的两个关键特性是专业化和层次性。
答案 是

345.(0.0分)(1)代码行技术是比较简单的定量估算软件规模的方法。
答案 是

346.(0.0分)(1)系统体系结构的最佳表现形式是一个可执行的软件原型。
答案 否

347.(0.0分)软件过程改进也是软件工程的范畴。 ()
答案 是

348.(0.0分)(7)软件测试的目的是证明软件是正确的。
答案 否

349.(0.0分)总体上说,软件工程文档可以分为用户文档、开发文档和管理文档三类。
答案 是

350.(0.0分)(5)测试用例由输人数据和预期的输出结果两部分组成。
答案 是

351.(0.0分)(3)常用的制定进度计划的工具主要有Word和Excel两种。
答案 是

352.(0.0分)模块独立要求高耦合低内聚。
答案 否

353.(0.0分)面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。()
答案 是

354.(0.0分)面向对象分析就是抽取和整理用户需求并建立问题域精确模型的过程。
答案 是

三、填空题 (40题,每小题0分,共0分)

355.(0.0分)如何规避竞标失败的风险方法
答案 售前调研,售前审评

356.(0.0分) 对自己承担的模块进行 “设计,编程,调式”,对进度和质量负责。
答案 程序员

357.(0.0分) 根据需求,设计用户界面原型,不断优化。
答案 界面设计师

358.(0.0分)在软件开发项目里,常量名称选用[1]字母,变量名选用[2]字母
答案 [1]大写 [2]小写

359.(0.0分)汇编语言也是[1]的低级语言
答案 面向机器

360.(0.0分)[1]是扩充C的面向对象编程语言
答案 Objective-C

361.(0.0分)对于大规模的科学运算,可以选用FORTAN或者C语言,因为它们具有大量的标注[1]
答案 库函数

362.(0.0分)[1]语言是可以直接操纵计算机底层硬件的语言
答案 机器

363.(0.0分)如何进行立项审评? , ,
答案 审评准备,然后举行评审会议,然后机构领导终审。

364.(0.0分) 参与立项过程,想机构领导争取资源,在项目结束时,对本项目进行自我评估,对项目成员的业绩进行评估
答案 项目经理

365.(0.0分)今年来流行的[1]也是基于JavaScript的后台通信机制
答案 Ajax

366.(0.0分)[1]性好的语言可以使系统方便地在不同的计算机系统上运行
答案 可移植

367.(0.0分) 参与客户需求调研,分析需求,撰写需求文档。
答案 需求分析员

368.(0.0分)超高级语言是对[1]和[2]更高级的抽象
答案 [1]数据处理 [2]过程描述

369.(0.0分)C++是一种纯 [1]
答案 面向对象语言

370.(0.0分)面向对象设计的结果,实现时只能使用[1]语言。
答案 面向对象

371.(0.0分)可行性研究步骤
答案 明确系统得目标,分析研究现行系统,设计新系统得高层逻辑模型,获得并比较可行的方案,撰写可行性研究报告

372.(0.0分)可行性分析的基本概念
答案 市场可行性分析,政策可行性分析,技术可行性分析,成本一收益分析,SWOT(强项,弱项,机会,威胁)分析

373.(0.0分)在自主研产品的立项管理流程中,立项建议人负责
答案 产品构思和调研,,可行性分析,立项建议

374.(0.0分)产品生命周期有
答案 产品构思 ,立项开发 ,结束项目 ,产品淘汰

375.(0.0分)Java编译器首先将[1]编译成虚拟机中的[2].
答案 [1]源代码 [2]字节码

376.(0.0分)PHP融合了[1]、[2]、[3]等语言的语法特性
答案 [1]C [2]Java [3]Perl

377.(0.0分)第一个体现结构化编程思想的程序设计语言是 [1]
答案 Pascal

378.(0.0分)在自主研产品的立项管理流程中,机构领导负责
答案 立项审评 ,项目筹备

379.(0.0分)自主研产品的立项管理流程有 个阶段。
答案 立项建议 立项评审 构思和调研 可行性分析 项目筹备

380.(0.0分)超高级语言一般由[1]和[2]支持
答案 [1] 知识库 [2] 方法库

381.(0.0分)[1]是一种嵌入在HTML内部的在服务器端执行的脚本语言
答案 PHP

382.(0.0分) 根据需求,设计软件系统架构,撰写设计文档
答案 系统设计师

383.(0.0分)规范的[1]会对后其的软件维护带来很多便利
答案 编程风格

384.(0.0分)可行性研究可以分为 , ,
答案 技术可行性研究 ,经济可行性研究 ,社会可行性研究

385.(0.0分)合同项目的立项管理流程 【4-1】【4-2】 步骤进行
答案 售前调研,售前评审,竞标答题【4-1】签证合同【4-2】无合同立项审评,项目筹备

386.(0.0分)C既具有[1]语言的特点,又具有[2]语言的特性
答案 [1]高级语言 [2]汇编语言

387.(0.0分)进行立项审评过程
答案 审评准备,举行审评会议,机构领导终审

388.(0.0分)汇编语言保持了机器语言[1]、[2]的特性
答案 [1]简洁 [2]快速

389.(0.0分)在合同项目立项管理流程的主要工作中,机构领导负责
答案 签证合同 ,无合同立项评审 ,售钱调研 ,售钱审评

390.(0.0分)在合同项目立项管理流程的主要工作中,营销人员负责
答案 售钱调研 ,售钱审评 ,合同竞标

391.(0.0分) 是项目的决策者,负责立项,任命项目经理,调配本部门的人力资源
答案 机构领导

392.(0.0分) 根据计划进行测试,使用Bug跟踪工具,机实将测试信息反馈给相关负责人。
答案 测试员

393.(0.0分)序言注释需位于模块的[1]部分
答案 起始

394.(0.0分)一些对性能要求极高的图形程序,就必须使用[1]或者[2]实现核心代码
答案 [1]C [2]C++

四、简答题 (190题,每小题0分,共0分)

395.(0.0分)需求分析员做什么工作?
答案
参与客户需求调研,分析需求,撰写需求文档。
参与需求文档,讲需求准确的传达给客户和其他项目成员。

396.(0.0分)对比面向对象需求分析方法和结构化需求分析方法。
答案
结构化需求分析方法基于“分解”和“抽象”的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。常用的结构化需求分析工具有数据流图、数据字典和E-R图。数据流图把软件系统看成是由数据流联系的各种功能的组合,可以用来建立目标系统的逻辑模型。数据字典用于定义数据流图中各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释。E-R图可以用于描述应用系统的概念结构数据模型,它采用实体、关系和属性这三个基本概念来进行建模。
面向对象需求分析方法主要基于面向对象的思想,以用例模型为基础进行需求分析。面向对象的概念中主要涉及了对象、类、封装、继承和多态等概念。因为面向对象的软件工程方法更符合人类的思维习惯,稳定性好,而且可复用性好,所以在目前的软件开发领域中最为流行。

397.(0.0分)名词解释:命名规则
答案
是电脑程序设计的源代码针对标识符的名称字符串进行定义(即“命名”)而规定的一系列规则。

398.(0.0分)应用题:3)现在有一个医院病房监护系统,用户提出的系统功能要求如下: 在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。 当病症出现异常时,系统会立即自动报警,通知值班医生及时进行处理,同时立即打印病人的病情报告和更新病历。 请建立医院病房监护系统的功能模型。
答案
在本题中,动作对象主要包括病人、医生和护士三类。
病人的病症信号会被局部监视系统采集,并传递到中央监视系统中。中央监视系统会读入病人的相关信息,并在必要的时候进行报警。护士会按照要求对病员的情况进行报告,该报告会与病员日志数据一并传递给医生。
中央监视系统还会对病员的病症信号进行分析处理,并根据病员日志数据对日志进行更新。医院病房监护系统的功能模型如图7.22所示。

399.(0.0分)需求评审的作用是什么?为什么必须评审?评审的标准是什么?
答案
评审的作用(目的)
为了及早消除隐藏的错误,确保需求说明准确、完整地、清晰、无二义地表达产品的功能和质量要求。
评审的必要性
需求说明书的描述几乎都是自然语言,这种非形式化的语言容易出现不准确、冗余、遗漏和理解不一致等问题。因此对规格说明书的审查是必须的。通过评审后的需求文档才是有效的。
评审的标准:
就是需求分析和说明的质量要求:正确性;无歧义性;完整性;一致性;重要性/稳定性分级;可验证性;可修改性;可追踪性;

400.(0.0分)XP是一种什么样的模型?
答案
XP是现代版的增量模型:它的特点是客户参与、适应变化、测试驱动、以代码为核心。实行XP的条件如下。
企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具;
软件结构是开放的,增量可随意整合;
开发团队拥有“系统隐喻”;

401.(0.0分)与计算机硬件相比,计算机软件有哪些特点?
答案
软件的特点如下。
无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等;
人们在分析、设计、开发、测试软件产品的过程中,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动;
不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题;
软件的开发和运行必须依赖于特定的计算机系统环境;
具有可复用性。

402.(0.0分)应用题:(3)王大夫在小镇上开了一家牙科诊所,他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。 当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后, 助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。 系统能够按病人姓名和日期进行查询,能顾显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人 的电话号码。接待员还可以打印出关于所有病人的每天和每周的工作安排。 对上述牙科诊所管理系统,建立其功能模型。
答案
从需求中可以看出,当病人进行预约时,需要提供姓名,预约日期。然后系统查询预约登记表,查看该日期是否有效,若预约成功,则记录入预约记录表。然后病人提供名字,系统核实,病人提供病人的病历号。在每次预约完成后,更新预约登记表,标记其已完成,必要时也可以预约下次就诊日期。诊所的职员可以查询预约登记表,删除预约。系统可以提取每天的预约打印出来给牙医。
根据上述功能,可建立该系统功能模型,如图C-20所示。

403.(0.0分)请简述面向缺陷的维护
答案
面向缺陷维护的内容是:该软件产品能够正常运行,可以满足用户的功能、性能、接口需求,只是维护前在个别地方存在缺陷,用户不是非常满意。克服缺陷的方法是修改程序,也就是通常说的只修改程序,不修改数据结构。

404.(0.0分)名词解释:移植
答案
移植是适配软件的过程,以便它可以在新的计算机平台上运行

405.(0.0分)名词解释: 函数式编程
答案
是一种编程范式,它将电脑运算视为函数运算,并且避免使用程序状态以及易变对象

406.(0.0分)软件测试的目的是什么?
答案
测试的目的如下。
测试是一个为了发现程序中的错误为目的的程序执行过程;
一个好的测试用例是能最大限度地找到迄今为止尚未发现的错误; 成功的测试是能发现了那些尚未发现的错误。

407.(0.0分)请阐述敏捷开发方法与瀑布模型有什么不同。
答案
瀑布模型
瀑布模型强调对项目的预见和严格控制,将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和软件发布这6个基本活动,并通过文档或管理工具来把控项目。为了避免过程中的需求变化,在前期需求细节的确定上会花费大量时间,按照自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。瀑布模型有以下特点:
(1)为项目提供了按阶段划分的检查点。
(2)当前一阶段任务完成后,只需要去关注后续阶段。
(3)瀑布模型强调文档的作用,并要求每个阶段都要仔细检查。
瀑布由于强调严格遵循流程,项目经理更容易规划和管理进度。在一个新产品从0到1时,需求都是基础且不会有太大改动,这种情况下使用瀑布式开发更好。另外一些面向政府或者大型机构的产品,往往有其业务逻辑支撑,需求固化(组织也相对抵触新的风险)。通常组织对预期(时间)也会有强烈的要求,瀑布式开发更容易把控进度。

瀑布模型有以下不足:
(1)各个阶段的划分完全固定,阶段之间会产生大量的文档,极大地增加了工作量。
(2)在项目各个阶段之间少有反馈,主要依赖各种文档进行交接,缺乏协同。
(3)只有在项目生命的后期才能看到结果,从而增加了开发的风险。
(4)虽然通过很多的强制完成日期和里程碑来跟踪项目阶段,但项目依然经常延误,而且延误会传导到下一个阶段。
(5)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
(4)不能有效地应对外界变化。
2. 敏捷开发
随着互联网的普及,涌现出越来越多面向个人用户的产品。这类产品的需求总是在不断增加和变化的,产品不得不拥抱变化,而敏捷开发更适用此类产品。因此我们总是强调敏捷开发,强调精益产品。
敏捷开发强调拥抱变化,具体方法是将项目拆解成用户故事,并排出优先级,在不考虑细节和技术定义的情况下确认迭代周期。同时敏捷开发提倡去文档和去工具化,在项目过程中可以随时增加和修改需求优先级,通过每日站会来确保团队的每个人都知晓项目进度和变化。
软件开发根本就没有什么灵丹妙药可言。虽然敏捷开发可以很快开发出优秀的应用软件,但并不是说这项技术适合每个项目。在实施敏捷开发之前,一定要对现有项目做好分析,对症下药。
瀑布模型和敏捷开发
敏捷开发和瀑布模型,有不同的适用场景,一定不要一拥而上,全都转为敏捷开发模式。
瀑布模型,期望通过严格的过程检查点,来保证交付质量。这在客户业务场景明确,业务需求相对稳定的情况下,更加适用。但通常的现状是,客户不清楚自己想要什么,市场环境又不断变化,客户只有在看到产品那一刻,才知道自己想要的是什么不想要什么。
瀑布模型,就像行驶在封闭高速公路上的重型卡车,速度又慢,又难以调转方向,只能沿着封闭的车道走到下一个出口(产品交付),才能根据迟来的反馈缓慢进行调整。结果,往往已经浪费了大量的时间和人力、物力等成本。
相形之下,敏捷开发通过较短的冲刺,小批量,每次交付一个小的可运行增量;船小好调头,即使出错,沉没成本也低。通过小步冲刺,快速迭代的方式,“迎合并接受变化,而不是拒绝变化”。
再从团队来进行分析,敏捷开发强调直接沟通,如果在团队人数众多,以及人员变动的情况下,就要花费许多时间使团队达成一致。因此敏捷开发更适合小型的、稳定的,以及容易达成共识的团队。而大中型团队,且人员变动频繁,则适合瀑布模型中强调的文档及管理工具方法。
敏捷开发与瀑布模型适用不同的项目环境,并不是一个非黑即白的关系,很多时候需要打组合拳,和平共处,目标都是尽力和尽快地满足业务的目标。

408.(0.0分)为什么说需求过程是一个迭代过程?
答案
由于人们对客观事物的认识是不断深化的,所以需求过程是一个迭代过程,每次迭代都可提供更高质量和更详细内容的软件需求。这种迭代会给项目带来一定的风险,上一次迭代的设计实现可能会因为需求不足而被推翻。
在很多情况下,对需求的理解会随着设计过程和实现过程的深入而不断深化,这也会导致在软件生命周期的后期,重新修订软件需求。原因可能来自于错误的分 析,客户环境和业务流程的改变,市场趋势的变化等。无论是什么原因,软件分析师应认识到需求变化的必然性,并采取相应的措施,减少需求变更对软件系统的影响。

409.(0.0分)请简述DevOps流行起来的因素。
答案
(1)容器技术开始成熟,特别是docker技术的大行其道。
(2)微服务架构技术的广泛使用。
微服务是支撑DevOps方法的手段,传统开发是在一个服务器里面,把各种元素装在一起组合成一个程序,但微服务是每一个服务是一个单独的单元,可以部署在不同的服务器上,通过SOA的方法,把它连接起来,再提供整个功能。
微服务是由一个个团队组成,每团队有自己的服务,做好后,可以独立地进行测试、开发、部署,然后将整个应用组合到一起。
(3)敏捷开发流程的深入人心。
诸如Scrum,、Kanban和XP等敏捷方式被团队广泛使用,TDD、BDD、DDD这些测试驱动设计、行为驱动设计、域驱动设计等设计方式的采纳,CI和CD这些持 续集成和持续部署等方式的实施,这些都是对DevOps的强烈需求。

410.(0.0分)风险识别的步骤是什么?
答案
风险识别分为三步进行:收集资料;估计项目风险形势;识别风险。

411.(0.0分)应用题:(1)请对下面代码的布局进行改进,使其符合规范更容易理解。 for (i = 1;i <= n-1;i++){ t = i; for(j = i+1;j <= n;j++) if(a[j]
答案
for(i = 1; i < n; i++) for(j =n-1;j >= i; j–){ if(a[j]

412.(0.0分)名词解释:编程语言
答案

编程语言是人于计算机交流的重要工具

413.(0.0分)请简述软件设计与需求分析的关系。
答案
软件设计可看作将需求规格说明书逐步转换为软件源代码的中间过渡过程。
活动输入:需求规格说明书;
活动输出:设计规格说明书;
活动目标:需求模型转换成设计模型;
活动过程:层层分解,逐步求精。

414.(0.0分)什么是软件的可维护性?软件的可维护性与哪些因素有关?
答案
软件的可维护性是用来衡量对软件产品进行维护的难易程度的标准,它是软件质量的主要特征之一。影响软件可维护性的因素有很多,如可理解性、可测试性、可修改性等。

415.(0.0分)请简述如何准备时间跟踪图。
答案
事件跟踪图能形象、清晰地表示事件序列以及事件与对象的关系。在事件跟踪图中,一条竖线代表一个类和对象,每个事件用一条水平的箭头线表示,箭头方向从事件的发送对象指向接受对象。事件按照先后顺序排列,时间从上向下递增。

416.(0.0分)名词解释:跨平台
答案
跨平台泛指程序语言、软件或硬件设备可以在多种作业系统或不同硬件架构的电脑上运作

417.(0.0分)请简述如何优化对象设计。
答案
优化对象设计如下。
确定优先级。
提高效率。
调整继承关系。

418.(0.0分)软件配置管理的目的是什么?
答案
通俗地讲,软件配置管理的目的,就是为了做到“三个有利于”:有利于配置项的综合管理,有利于基线的变更管理,有利于版本的升级管理,以保证所交付的软件版本产品能够满足需求规格说明书中的各项具体要求,节省人力、物力资源,加强安全与保密工作。
科学地讲,软件配置管理的目的,就是为了建立和维护在整个软件生命周期内软件产品的完整性。

419.(0.0分)怎样理解迭代模型RUP对软件维护的影响?
答案
RUP的功能覆盖整个软件的开发周期,从需求分析开始,直到软件的发布、实施和维护为止,因而它对传统意义下的维护工作产生重大影响。
RUP把软件生命周期定义为4个主要阶段:初始、细化、构造、移交。经过这4个阶段的历程被称为一个开发周期,自动产生一个周期内的所有文档,从而生成一个软件产品。首次经历这4个阶段称为该产品的初开发周期,除非该产品的生命终止,否则它将重复初始、细化、构造和移交这4个阶段,从而演化为下一代产品,这就是对旧有产品的维护,也是新产品的升级换代,也就是开发周期的演化,也就是RUP对软件维护工作的影响。

420.(0.0分)什么是软件危机?什么原因导致了软件危机?
答案
软件危机的现象如下。
经费超预算,项目一再拖延;
不重视需求,开发的软件不能满足用户要求,项目成功率低;
没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差;
开发工具落后,手工方式、开发效率低;
所有导致软件危机的原因,都与软件本身的产品特点相关。
软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。
软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。
软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。
软件成本主要是由研发成本构成;而硬件的生产成本,主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比,要复杂的多。

421.(0.0分)应用题:如果要求两个正整数的最小公倍数,请用程序流程图、N-S图和PAD图分别表示出求解该问题的算法。
答案
在计算两个正整数的最小公倍数时,首先需要确定最小公倍数的查找范围。由数学相关知识可知,最小公倍数的最小可能值为两个正整数中较大者,最大可能值为两个正整数的乘积。因此,在开始查找最小公倍数之前,首先要对这两个正整数进行比较并且计算二者乘积。
在确定了查找范围之后,就可以对其中的数字进行逐一的判断,直至找到最小公倍数。程序流程图如图4.40所示。

422.(0.0分)请简述项目计划应该包括的内容。
答案
项目计划应该包括的内容如下。
确定详细的项目实施范围;
定义递交的工作成果;
评估实施过程中主要的风险;
制定项目实施的时间计划;
成本和预算计划;
人力资源计划等。

423.(0.0分)名词解释:指令代码
答案
计算机指令代码,机器语言,用来表示指令集中的指令的代码

424.(0.0分)请简述软件维护的工作程序。
答案
软件维护的工作程序与软件开发的工作程序相仿。其工作程序是:维护的需求分析、维护的设计、修改程序代码、维护后的测试、维护后的试运行、维护后的正式运行、维护过程的评审和审计。

425.(0.0分)请阐述面向对象的基本概念。
答案
面向对象的基本概念包括对象、类、封装、继承和多态。对象可以是客观世界中存在的事物,也可以是概念化的实体,它由一组属性和操作组成。属性是用来描述对象静态特征的数据项,是对客观世界实体所具有性质的抽象。操作是用来描述对象动态特征。类是对对象的抽象,是对具有相同属性和相同操作的一组相似对象的定义。封装是指把对象的属性和操作结合在一起,组成一个独立的单元。继承表示类之间的层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。多态是一种使父类中定义的属性或操作被子类继承后,可以有不同的实现的机制。

426.(0.0分)

应用题:(2)请将图6-38(二维表格)用Jackson图来表示。 图6-38 二维表格
答案
二维表格的Jackson图如图C-9所示。

427.(0.0分)请简述Scrum会议的步骤和并加以说明。
答案
(1)整理产品需求清单:产品经理和Scrum团队进行碰头,基于用户故事和需求反馈来确定产品需求的优先级。Backlog并不是代办事项列表,而是产品的所有 功能列表。然后研发团队在每次迭代阶段去完成清单中一部分,最终完成整个项目。
(2)确定迭代规划:在每次迭代开始之前,产品经理会在迭代规划会议上和团队讨论优先级高的功能需求。然后确认有哪些功能将会在下次迭代时完成,并将这些功能从产品需求清单中移至迭代任务清单中。
(3)梳理产品需求清单:结束迭代后,产品经理需要和团队碰头来确认下次迭代的任务清单。团队可以利用这个阶段剔除相关度低的用户故事,提出新的用户故事,再重新评估故事的优先级,或将用户故事分成更小的任务。这次梳理会议的目的是确保产品需求清单里的内容足够详细,并且和项目目标保持一致。
(4)每日站会:每天花15分钟左右开一次站会,期间团队每个成员都会讨论当前的进度和出现的问题。这个过程有助于团队保持日常联系。
(5)迭代演示:在每次迭代结束时,团队需要向产品经理报告已完成的工作,并做产品现场演示。
(6)迭代回顾:在每次迭代结束后,团队需要开例会总结使用Scrum进行研发带来的影响,并探讨在下次迭代中是否有能做得更好的地方。

428.(0.0分)请简述静态测试和动态测试的区别。
答案
按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确 性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。测试人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。

429.(0.0分)请简述极限编程的定义和特点。
答案
极限编程是一种实践性较强的规范化的软件开发方法,它强调用户需求和团队工作。利用极限编程方法进行软件开发实践的工程师,即使在开发周期的末期,也可以很快地响应用户需求。在团队工作中,项目经理、用户以及开发人员都有责任为提高软件产品的质量而努力。XP特别适用于软件需求模糊且容易改变、开发团队人数少于10人、开发地点集中(比如一个办公室)的场合。

430.(0.0分)请简述数据流图的作用。
答案
数据流图的作用:数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。

431.(0.0分)请简述CI/CD及其用途。
答案
CI/CD 是一套使软件开发的构建、测试和部署阶段自动化的实践。自动化可缩短交付时间,并提高整个开发生命周期的可靠性。
CI/CD 中的 CI 代表持续集成。CD 是指连续交付或连续部署,具体取决于团队选择如何推动代码更改以进行生产。持续集成和持续交付是 CI/CD 中的两个不同流程,具有不同的用途:
•(1)CI 运行自动构建和测试步骤,以确保代码更改能够可靠地合并到中央存储库中。
•(2)CD 提供了向最终用户交付代码的快速无缝方法。

432.(0.0分)应用题:现有一段判定三角形类型的程序,可以根据输入的三角形的三边长来判定可构成的三角形是否为等腰三角形。请用等价类划分法来为此段

代码设计测试用例。
答案

433.(0.0分)名词解释:脚本语言
答案
脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言

434.(0.0分)请简述软件配置管理的工作内容。
答案
配置管理的工作范围一般包括如下的四个方面。
标识配置项;配置项是配置管理中的基本单元,每个配置项应该包含相应的基本配置管理的信息。标识配置项就是要给配置项取一个合适的名字。
进行配置控制;进行配置控制是配置管理的关键,包括存取控制、版本控制、变更控制和产品发布控制等。存取控制通过配置管理中的“软件开发库”、“软件基线库”、“软件产品库”来实现,每个库对应着不同级别的操作权限,为团队成员授予不同的访问权利。版本控制往往使用自动的版本控制工具来实现,比如SVN。变 更控制是应对软件开发过程中各种变化的机制,可以通过建立控制点和报告与审查制度来实现。产品发布控制面向最终发布版本的软件产品,旨在保证提交给用户的软件产品版本是完整、正确和一致的。
记录配置状态;配置状态报告记录了软件开发过程中每一次配置变更的详细信息。记录配置状态的目的是使配置管理的过程具有可追踪性。
执行配置审计。配置审计是为了保证软件工作产品的一致性和完整性,从而保证最终软件版本产品发布的正确性。

435.(0.0分)请简述在软件设计的过程中需要遵循的规则。
答案
在软件设计的过程中需要遵循的规则:模块化、抽象化、逐步求精和信息隐藏。

436.(0.0分)请简述可行性研究所研究的问题。
答案
可行性研究主要做4个方面的研究。
①经济可行性 :进行成本∕效益分析。从经济角度判断系统开发是否“合算”。
②技术可行性 :进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。
③法律可行性 :确定系统开发可能导致的任何侵权、妨碍和责任。
④方案的选择 :评价系统或产品开发的几个可能的候选方案。最后给出结论意见。

437.(0.0分)RUP包含了哪些核心工作流和哪些核心支持工作流?
答案
RUP建立了对软件过程普遍适用的理论指导框架,是典型的软件开发过程,包括直接参与软件产品构造的核心工作流和若干属于项目管理范畴的支持工作流。核心工作流包括:业务建模、需求、分析与设计、实现、测试、部署;
支持工作流包括:配置与变更管理、项目管理、环境。

438.(0.0分)请举例阐述桥接模式。
答案
设想要用蜡笔绘制一幅图画,为了画不同尺寸的图形,我们需要准备大中小三种尺寸的蜡笔。可是,如果我们需要涂的颜色有12种,那么我们就不得不准备多达 36种蜡笔。显然,这不利于我们作画。如果我们用毛笔来画画,那么我们就可以准备3种尺寸的毛笔和有12种颜料的调色板来满足我们的需求,如此一来需要准备的物品数少了,作画时找物品也更方便了,效率也自然提高了。
实际上,毛笔比蜡笔作画更方便的本质原因是毛笔作画中笔和颜色得到了分离,实现了桥接模式的设计模式。桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
图9-26和图9-27分别通过毛笔和蜡笔的设计类图来体现桥接模式。

我们可以发现,蜡笔的颜色和蜡笔本身是分不开的,所以就造成必须使用36支色彩、大小各异的蜡笔来绘制图画;而毛笔与颜料能够很好地脱耦,各自独立变化, 便简化了操作。从UML类图关系上看,具体蜡笔和抽象蜡笔是继承关系,大量的继承提高了系统的耦合度;而当我们将颜色分离出来后,毛笔和颜色是聚合关系, 颜色可以作为颜料实体独立存在。这样一来我们就使用桥接模式通过增加聚合关系减少了继承关系,降低了系统的耦合度,所以说毛笔的设计模式符合了面向对象设计的低耦合的原则。
代码清单9-1到代码清单9-7为毛笔设计模式的Java代码。

代码清单9-1 Brush.java
//Brush.java
public abstract class Brush { protected Color color;

public void setColor(Color color){ this.color=color;
}

public void paint(){ switch(color.getClass().getName()){
case “Red”:
Red red = (Red) color; red.putColorOn(); break;
case “Green”:
Green green = (Green) color; green.putColorOn();
break; case “Blue”:
Blue blue = (Blue) color;

blue.putColorOn(); break;
}
}
}

代码清单9-2 BigBrush.java
//BigBrush.java
public class BigBrush extends Brush{

@Override
public void paint() { super.paint();
System.out.println(“用大号” + color.getClass().getName() + “毛笔作画”);
}
}

代码清单9-3 MidBrush.java
//MidBrush.java
public class MidBrush extends Brush{

@Override
public void paint() { super.paint();
System.out.println(“用中号” + color.getClass().getName() + “毛笔作画”);
}
}

代码清单9-4 SmallBrush.java
//SmallBrush.java
public class SmallBrush extends Brush{

@Override
public void paint() { super.paint();
System.out.println(“用小号” + color.getClass().getName() + “毛笔作画”);
}
}

代码清单9-5 Color.java
//Color.java
public interface Color { public void putColorOn();
}

代码清单9-6 Red.java
//Red.java
public class Red implements Color{ @Override
public void putColorOn() { System.out.println(“着上红色”);
}
}

代码清单9-7 Blue.java

//Blue.java
public class Blue implements Color{ @Override
public void putColorOn() { System.out.println(“着上蓝色”);
}
}

代码清单9-7 Green.java
//Green.java
public class Green implements Color{ @Override
public void putColorOn() { System.out.println(“着上绿色”);
}
}

439.(0.0分)名词解释:编程风格
答案
编程风格是指源程序的书写习惯

440.(0.0分)传统软件维护分哪几大类?
答案
传统软件维护分四大类,分别是:纠错性维护;适应性维护;完善性维护;预防性维护。

441.(0.0分)请简述数据字典的作用。
答案
数据词典的作用:分析模型中包含了对数据对象、功能和控制的表示。在每一种表示中,数据对象和控制项都扮演一定的角色。为表示每个数据对象和控制项的特性,建立了数据词典。数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。

442.(0.0分)请简述何为面向对象设计。
答案
面向对象设计是面向对象方法在软件设计阶段应用与扩展的结果,就是根据在问题域中已建立的分析模型,运用面向对象技术进行系统软件设计,并且补充实现的细节部分,如人机界面、数据存储、任务管理等,形成符合成本和质量要求的、抽象的系统实现方案,在求解域中建立设计模型。

443.(0.0分)请比较结构化软件设计方法和面向对象软件设计方法。
答案
结构化软件设计方法和面向对象软件设计方法是两种主流的软件设计方法。
结构化软件设计方法更关注于系统的功能,采用自顶向下、逐步求精的设计过程,以模块为中心来解决问题,按照工程标准和严格的规范将目标系统划分为若干功能模块。面向数据流的方法和面向数据结构的方法是两种常用的结构化软件设计方法。面向数据流的设计方法大多在概要设计阶段使用,它借助于数据流图来进行设计工作,而面向数据结构的设计方法通常在详细设计阶段使用,它按输入、输出以及计算机内部存储信息的数据结构进行软件结构的设计,从而把对数据结构的描述转换为对软件结构的描述。常用的结构化软件设计工具有流程图、N-S图和PAD图等。
与结构化软件设计方法相比,面向对象软件设计方法的使用范围更广。与传统的软件工程方法不同的是,面向对象的方法不强调需求分析和软件设计的严格区分。从分析到设计的过渡,是一个逐渐扩充、细化和完善分析阶段所得到的各种模型的过程。面向对象的设计可以分为系统设计和对象设计两个阶段。系统设计关注于确定实现系统的策略和目标系统的高层结构,而对象设计是对需求分析阶段得到的对象模型的进一步完善、细化或扩充。

444.(0.0分)如何理解软件生命周期的内在特征?
答案
软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,所以在资源分配、时间把握和项目管理上都会比较容易控制。应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。

445.(0.0分)产品调研5个步骤什么?
答案
市场调查

政策调查
同类产品调查竞争对手调查用户调查

446.(0.0分)程序员做什么工作?
答案
对自己承担地模块进行 “设计,编程,调式“,对进度和质量负责。对所有源代码进行配置管理。

447.(0.0分)针对软件质量保证问题,最有效的办法是什么?
答案
通常,人们将“质量标准”、“配置管理”、“测试测量”作为质量管理的三大支柱,而将 “SQA计划”、“SQA进度”、“SQA评审和审计”作为质量管理三大要素。软件 质量保证是一个质量管理过程,基本思想是以事前预防为主,以事后测试和纠偏为辅,采取标本兼治的方法,且以治本为主。为此,要从“事前、事中、事后”三个层次上对软件质量进行控制。归根结底一句话:软件质量保证的最有效的办法是软件质量过程管理,因为质量蕴涵在过程之中。

448.(0.0分)应用题:某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品,计划数量不低于300;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名、技术等级。请画出E-R图。
答案
根据题目中给出的一对多和多对多的关系,画出此E-R图,如图C-7所示。

图C-7 某企业集团工厂的E-R图

449.(0.0分)产品构思4个步骤什么?
答案
产品地主要功能是什么产品如何开发
谁购买和使用产品如何销售

450.(0.0分)应用题:某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下。 报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。 报社下设多个发行站,每个站负责收集登录订单、打印收款凭证等事务。 报社负责分类并统计各个发行站送来的报刊订阅信息。 请就此需求建立这个报刊征订的计算机管理系统的对象模型。
答案
在本题中,对象主要包括:
报社:包含分类、统计等操作;
发行站:包含登录订单、打印凭证等操作;
刊物:包含代码、名称等属性,以及登陆订单、打印凭证等操作;
订单:包含代码、名称、订期等属性,以及登陆订单、打印凭证等操作; 订户:包含名称、地址等属性。
对象之间相互关系主要包括: 报社可以发行多个刊物;
报社包含多个发行站;
订单记录刊物的订购情况; 发行站拥有刊物订单;

订户可以填写多张订单。
报刊征订的计算机管理系统的对象模型如图8.16所示。

451.(0.0分)请简述现代软件工程与传统软件工程显著的区别和改进。
答案
传统软件工程是基于结构化的软件开发方法,而现代软件工程是以面向对象技术为标志。
不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中,采用面向对象的思维方式,更加完整、自然地反映客观世界;
采用架构技术,开发效率、产品质量得到了极大提高;
更注重团队开发和管理,融入更多、更新的管理理念和手段。如RUP模型、XP模型、过程改进、能力成熟度模型、配置管理等。

452.(0.0分)在可行性研究步骤中“明确系统得目标”时,做什么?
答案
人员要访问相关人员,阅读分析可以掌握得材料,确认用户需要珏姐得问题得实质。

453.(0.0分)名词解释:平台支持
答案
是指软件及硬件运行的环境,可以在何种操作系统下操作运行

454.(0.0分)应用题:(3)如果要求两个正整数的最小公倍数,请用程序流程图、N-S图和PAD图分别表示出求解该问题的算法。
答案
在计算两个正整数的最小公倍数时,首先需要确定最小公倍数的查找范围。由数学相关
知识可知,最小公倍数的最小可能值为两个正整数中较大者,最大可能值为两个正整数的乘积。 因此,在开始查找最小公倍数之前,首先要对这两个正整数进行比较并且计算二者乘积。
在确定了查找范围之后,就可以对其中的数字进行逐一的判断,直至找到最小公倍数。
1)程序流程图如图C-10所示。

2)N-S图如图C-11所示。

3)PAD图如图C-12所示。

455.(0.0分)请简述DevOps带来的变革。
答案
1)角色分工:打破传统团队隔阂,让开发、运维紧密结合,高效协作
2)研发:专注研发、高度敏捷、持续集成
3)产品交付:高质量、快速、频繁、自动化、持续交付

456.(0.0分)名词解释:低级语言
答案
低级语言一般指机器代码或汇编语言

457.(0.0分)软件工程中的文档可以分为哪几类?
答案
按照文档产生和使用的范围,软件工程中的文档大致可以分为3类:
开发文档:这类文档在软件开发过程中,作为软件开发人员前一阶段工作成果的体现和后一阶段工作依据的文档。包括:软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、可行性研究报告、项目开发计划。
管理文档:这类文档是在软件开发过程中,由软件开发人员制定的需提交的一些工作计划或工作报告。管理人员能够通过这些文档了解软件开发项目的安排、进度、资源使用和成果等。包括项目开发计划、测试计划、测试报告、开发进度月报及项目开发总结。
用户文档:这类文档是软件开发人员为用户准备的有关该软件使用、操作、维护的资料。它包括用户手册、操作手册、维护修改建议、软件需求说明书、运行模式建议说明书。

458.(0.0分)需求管理过程的目标和内容是什么?
答案
需求管理的目标,是保证软件项目或产品满足客户在软件功能、性能、接口三个方面的需求。需求管理过程的内容,主要包括需求确认、需求评审、需求追踪和需求变更活动管理。

459.(0.0分)每个软件企业遵循的软件开发过程都是一样的吗?
答案
任何软件过程只是给软件开发组织的一个参考,并非清规戒律。企业规划软件过程要适合企业的实际情况,并且不是一成不变,要随着企业的发展、环境的变化和项目的性质来改进软件过程。RUP就是一个可裁剪的软件过程模板。

460.(0.0分)界面设计师做什么工作?
答案
根据需求,设计用户界面原型,不断优化,建设公共界面库,便于其他人员复用。

461.(0.0分)请简述软件测试的原则。
答案

软件测试的原则如下。完全测试是不可能的。测试中有风险存在。
软件测试只能表明缺陷的存在,而不能证明软件产品已经没有缺陷。软件产品中所存在的错误数与已发现的错误数成正比。
要避免软件测试的杀虫剂现象。
在设计测试用例时,应包括输入数据和预期的输出结果两个部分,并且,输入数据不仅应该包括合法的情况,还应该包括非法的输入情况。要集中测试容易出错或错误较多的模块。
应该长期保留所有的测试用例。
使开发人员和测试人员分立,即软件的开发工作和测试工作不能由同一部分人来完成。测试工作应该尽早开始,并且贯穿于整个开发过程中。

462.(0.0分)名词解释:面向过程编程
答案
是一种以过程为中心的编程思想。 这些都是以什么正在发生为主要目标进行编程

463.(0.0分)为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端?
答案
因为软件工程的提出是为了解决软件危机所带来的各种弊端。具体地讲,软件工程的目标主要包括以下几点。
使软件开发的成本能够控制在预计的合理范围内。
使软件产品的各项功能和性能能够满足用户需求。
提高软件产品的质量。
提高软件产品的可靠性。
使生产出来的软件产品易于移植、维护、升级和使用。
使软件产品的开发周期能够控制在预计的合理时间范围内。

464.(0.0分)如何理解需求分析的作用和重要性。
答案
一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的业务领域也不甚了解,用户与开发人员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的困难。所以,开发人员和用户之间充分和有效的沟通在需求分析的过程中至关重要。

465.(0.0分)可行性研究的结论有什么。
答案
可行,按计划进行
基本可行,需要对解决方案做出修改。不可行,终止项目。

466.(0.0分)需求开发经过哪些步骤?每个步骤有何作用?
答案
通过4项具体活动达到目标:需求获取、需求分析、需求说明、需求验证。
需求获取: 即调查软件需求,需求是用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。
需求分析: 分析建模也称需求建模,建模是对现实世界进行抽象的过程;通过符号和文字说明来描述系统模型,使用户和开发者之间建立共同的语言基础,消除理解歧义。
需求说明: 编写需求文档,也称编写需求规格说明书,或称需求说明、需求描述。 需求说明书是需求阶段的最终成果,也是需求分析阶段复审的依据;是用户领域专家、软件分析师、软件设计师共同交流的途径和媒介;是交付给用户文档的一部分。
需求验证: 即需求评审。根据需求说明书,分析师、设计师、客户会评审文档,对需求的正确性、一致性、完整性、无二义性进行评审、确认。

467.(0.0分)为什么说“高内聚、低耦合”的设计有利于提高系统的独立性?
答案
内聚和耦合往往密切相关,模块的高内聚通常意味着低耦合。低耦合因为模块之间的耦合程度越低,相互影响就越小,发生异常后产生连锁反应的概率就越低;在修改一个模块时,低耦合的系统可以把修改范围尽量控制在最小的范围内;对一个模块进行维护时,其他模块的内部程序的正常运行不会受到较大的影响。

468.(0.0分)请简述软件文档的意义。
答案
文档是指某种数据媒体和其中所记录的数据。它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读的东西。在软件工程中,文档常常用来表示对活 动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软件产品的一部分,没有文档的软件就不称其为软件。软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量。高质量、高效率地开发、分发、管理和维护文档对于转让、变更、修正、扩充和使用文档,对于充分发挥软件产品的效益有着重要的意义。

469.(0.0分)应用题:(2)使用Python对求两个整数的最大公约数进行编程。
答案
在计算两个整数的最大公约数时,可以使用辗转相除的方法。由于相除取余的过程可能会重复多次,所以可以使用递归的方式来简化代码。因此,可以通过设计一个递归函数来对输入的整数进行计算,直至找到二者的最大公约数。程序如下。
using System;
using System.Collections.Generic; using System.Linq;
using System.Text;

namespace GreatestCommonDivisor
{
class Program
{
//辗转相除法
public static int calculate(int x, int y)
{
if (x < y)
{
return calculate1(y, x);
}
return calculate1(x, y);
}

// x is no less than y
private static int calculate1(int x, int y)
{
if (x % y != 0)
{
return calculate1(y, x % y);
}
return y;
}
}
}

470.(0.0分)请简述面向数据流的设计方法的主要思想。
答案
面向数据流的设计方法就是通常所说的结构化设计方法,它是以数据流图为基础,将DFD变换成软件结构的不同映射方法,以软件结构图(SC图)的形式表现。
SC图描述软件系统的层次和分块结构的关系,体现模块与模块之间的联系与通讯,从而表达软件的体系结构。

471.(0.0分)软件就是程序吗?如何定义软件?
答案
人们经过长期的实践已经逐步认识到,软件≠程序,程序只是软件的关键要素。普遍能接受的观点是:软件 = 程序+数据+文档。

472.(0.0分)测试员做什么工作?
答案
根据计划进行测试,使用Bug跟踪工具,及时将测试信息反馈给相关负责人。测试工程师及时将共性地质量问题汇报给项目经理。

473.(0.0分)应用题:(1) 某图书借阅管理系统需求说明如下: 1 ) 管理员应建立图书书目,以提供图书检索的便利。一条书目可有多本同ISBN号的图书,每一本图书只能对应于一个书目。 2) 图书可被读者借阅。读者在办理图书借阅时,管理员应记录借书日期,并记录约定还书日期,以督促读者按时归还。一个读者
可借阅多本图书,一本图书每次只能被一个读者借阅。 3) 图书将由管理员办理人出库。图书人出库时,应记录图书状态变更,如:存库、外借,并记录变更日期。一个管理员可办理多本图书人出库,但一本图书的某次入出库办理,必须有确定的管理员经手。 试以上述说明为依据,请画出该系统的类图。
答案
根据题意可以抽象出系统的实体类包括教师、习题、习题答案、作业题板、练习题板以及学生。作业题板与练习题板可以泛化为题板抽象类。根据描述对各个类添加适当的属性。在各个类之间按照文字描述建立关联关系。教师与习题之间构成1对多关系,教师与作业题板构成1对多关系,习题与习题答案之间构成1对1关
系,习题与题板之间构成多对多关系且这一关联关系可以描述为聚合关系,学生与作业题板构成多对多关系,学生与练习题板构成1对多关系。类图可参考下图。类图如C-21图所示。

474.(0.0分)请简述面向功能的维护
答案
面向功能维护的内容是:该软件产品在功能、性能、接口上存在某些不足,不能满足用户的某些需求,因此需要增加某些功能、性能、接口。解决这些不足的方法是,不但要修改设计,而且也要修改程序,也就是通常说的,既要修改数据结构,又要修改编码。

475.(0.0分)应用题: 一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD、录音图书磁带和报纸等出版物供读者借阅。这些出版物有出版物名、出版者、获得日期、目录编号、书架位置、借出状态和借出限制等属性,并有借出、收回等服务。 请建立上述的图书馆馆藏出版物的对象模型。
答案
图书馆所藏出版物拥有共同的基类:馆藏出版物类。
馆藏出版物类的成员变量包括出版物名称、出版者、获得日期、目录编号、借出状态、借出限制等,并包括借出和收回两项操作。各种类型的出版物类继承于馆藏出版物类,并定义了各自的属性。
图书馆馆藏出版物的对象模型如图7.21所示。

476.(0.0分)请简述面向对象的启发规则。
答案
面向对象启发规则如下。
设计结果应该清晰易懂。
一般-特殊结构的深度应适当。
设计简单类。
使用简单的协议。
使用简单的操作。
把设计变动减至最小。

477.(0.0分)请简述CI/CD 所具有的优势。
答案

1)更快、更可靠的版本发布
CI/CD 加快了开发过程,使产品能够快速到达用户手中。管道还可以降低编写代码时的风险,使开发人员能够专注于编码而不是修复错误。
2)更高的可见性
CI/CD 管道允许团队详细分析生成和测试的结果。更高的透明度揭示了发展进程中潜在的可以改进的地方。开发人员可以轻松跨越各个阶段,发现效率低下的地方,并优化流程以提高生产力。
3)早期错误检测
多种类型的自动化测试使得可在早期阶段发现大多数错误问题。在自动化测试和手动QA检查之间,采用CI/CD很少在最后时刻检查出新的错误。
4)快速反馈循环
快速地更新可以让用户不断地反馈。利用A/B测试中的用户输入测试功能,并与用户一起试验产品的早期版本。
5)更快乐的开发和运维团队
CI/CD允许开发人员以更少的手动任务和更少的纠错来递交代码更改。标准化的环境、交付过程中的测试、单独的环境变量和自动回滚,使得运维团队享有稳定性。

478.(0.0分)为什么需求分析特别重要?
答案
需求分析特别重要,是因为:
许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。
需求分析的输出文档是《用户需求报告》,它既是软件生命周期中的第一个里程碑,又是客户、软件开发人员和项目管理人员三者必须遵守的一根基线,是三者共同工作的基础,是项目Alpha测试和Beta测试的准则,是供方交付产品和需方验收产品的依据。
需求分析要占用整个软件开发时间或工作量的30%左右。
需求获取中的错误,属于软件开发中的早期错误,它会在后续的设计和实现中进行发散式的传播。
根据以上4个原因,IT企业的高层经理对需求分析特别重视,常常派经验最丰富的人员去作项目需求。正因为如此,“系统分析员”才是软件行业中最高的技术职称。

479.(0.0分)目前项目开发时常用的小组组织方法有哪些?
答案
目前项目开发时常用的小组组织方法有: 民主制程序员组、主程序员组和现代程序员组。

480.(0.0分)什么是调试?什么是测试?二者有何区别?
答案
调试(debug)指的是对模块的调试,是程序员交付可运行的代码模块所必须经历的工作。软件测试(test)有如下特点。 软件测试的目的是发现程序中的错误,是为了证明程序有错, 而不是证明程序无错;
不仅仅是测试程序,还应该对开发过程中所有的产品进行测试,包括文档,其目的是为了尽早地、尽可能多地发现并排除软件中潜在的错误。二者的区别如图5.11所示。

481.(0.0分)应用题:(3)当手机开机时,它处于空闲状态,当用户使用电话呼叫某人时,收集进入拨号状态。如果呼叫成功,即电话接通,手机就处于通话 状态;如果呼叫不成功,例如对方线路有问题或关机,则拒绝接听。这时手机停止呼叫,重新进入空闲状态,手机进入空闲状态下被呼叫,手机进入响铃状态;如果用户接听电话,手机处于通话状态;如果用户未做出任何反应,可能他没有听见铃声,手机一直处于响铃状态,如果用户拒绝来电,手机回到空闲状态。 请按以上描述绘制出使用手机的状态图。
答案
状态图
手机可以分为空闲、响铃、拨号与通话四种状态。根据题目叙述分别在各个状态之间添加转移即可。如图C-17所示。。

482.(0.0分)请简述面向对象分析的过程。
答案
面向对象分析的基本任务是运用面向对象的方法,软件工程师和用户必须充分沟通,以了解基本的用户需求,对问题域和系统责任进行分析和理解。

483.(0.0分)什么是敏捷软件开发?
答案
敏捷软件开发是软件开发行业的一个大流行语,它是管理软件开发项目的一种不同方式。它不是一种特定的软件开发方法,而是一组基于敏捷宣言中表达的价值和原则的方法和实践的总称。

484.(0.0分)名词解释:二进制代码
答案
由两个基本字符’0’、'1’组成的代码。

485.(0.0分)如何进行项目的时间管理?
答案
项目的时间管理首先要对项目活动进行定义,依据包括:工作分解结构、项目范围说明、历史信息、约束条件、假定和专家评论。在整个项目中,我们需要一份能清晰描述活动发生的时间和所需要的资源的计划,项目进度安排的内容为如下。
定义一组项目活动,并建立活动之间的相互关系;
估算各个活动的工作量和完成任务所需要的资源;
定义里程碑;
分配人力和其他资源,制定进度时序;
检查进度安排,确保任务之间没有冲突,并且包含了完成项目必需的所有任务。

486.(0.0分)可行性研究是什么
答案
可行性研究就是指在项目进行开发之前,对改项目是否能在特定的资源,时间等制约条件下完成做出评估,并且确定它是否值得去开发。

487.(0.0分)应用题:某银行计算机储蓄系统的工作流程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人的姓名、住址
(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能。
答案
在本题中,数据操作主要分为存款和取款两类。
在取款过程中,核对密码时需要从取款单和存款信息中获取数据,并将取款信息传递给后续数据流程依次进行计算利息和打印利息清单的相关操作,从而完成存款相关操作。
在存款过程中,记录存款信息时需要将存款信息进行储存并将存款利息数据传递给后续流程进行存款单打印,从而完成存款相关操作。此系统的数据流图如图3.18所示。

图3.18 数据流图

488.(0.0分)名词解释:编码文件
答案
编码文件是以编码格式存储数据的文件

489.(0.0分)请简述项目、项目管理和软件项目管理。
答案
项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、质量标准,以及特定的功能、性能和接口要求。项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目的计划、进度、质量、成本、资源进行管理和控制的活动。
软件项目管理以通用的项目管理知识体系为基础,管理的对象是软件工程项目。它结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,使得整个软件开发过程(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质的完成软件交付用户使用。

490.(0.0分)请简述验证与确认之间的区别。
答案
验证与确认之间的区别:
验证是检验开发出来的软件产品和设计规格说明书的一致性,即是否满足软件厂商的生产要求,保证生产出的产品是高质量的产品。确认就是检验产品功能的有效性,即是否满足用户的真正需求,确认是用户需要的产品。
因为设计规格说明书本身有可能存在错误,即便软件产品中某个功能实现的结果和设计规格说明书完全一致,但也可能不是用户需要的,因为设计规格说明书一开始就对用户需求的理解错了,所以仅仅进行验证测试是不充分的,还要进行确认测试。

491.(0.0分)请简述用户故事中的INVEST原则。
答案
①独立性(Independent)
②可协商性(Negotiable)
③有价值(Valuable)
④可以估算性(Estimable)
⑤短小(Small)
⑥可测试性(Testable)

492.(0.0分)请简述软件设计的工作目标和任务。
答案
软件设计的目标:将需求模型细化为设计模型,形成“设计规格说明书”。
软件设计的任务:概要设计和详细设计。概要设计是根据需求确定软件和数据的总体框架,详细设计是将其进一步精化成软件的算法表示和数据结构。

493.(0.0分)在可行性研究步骤中“获得并比较可行的方案”时,做什么?
答案
开发人员可根据新系统的高层逻辑模型提出实现此模型的不同方案。在设计方案的过程中要从技术,经济等角度考虑各方案的可行性。然后,从多个方案中选择出最合适的方案。

494.(0.0分)应用题:(1)某市进行招考公务员工作,分行政、法律、财经三个专业。市人事局公布所有用人单位招收各专业的人数,考生报名,招考办公室 发放准考证。考试结束后,招考办公室发放考试成绩单,公布录取分数线,针对每个专业,分别将考生按总分从高到低进行排序。用人单位根据排序名单进行录用,发放录用通知书给考生,并给招考办公室留存备查。请根据以上情况进行分析,画出顺序图。
答案
本题中,对象主要包括考生、人事局和招聘单位三种,所以包括三条对象生命线。
招聘单位将招聘计划发送给人事局,再由人事局发布给考生。考生通过人事局进行考试报名,报名信息由人事局传递给招聘单位。考生通过人事局进行考试。人事局向考生和招聘单位发布考试成绩。招聘单位将录用信息发给人事局,再由人事局发布给考生。公务员招聘考试管理系统的顺序图如图C-13所示。

495.(0.0分)在可行性研究步骤中“分析研究现行系统”时,做什么?
答案
可以在三个方面对现有系统进行分析: 系统组织结构定义
系统处理流程分析系统数据流分析

496.(0.0分)应用题:(1)请将图6-37(查看书籍的事务中心)映射成结构图。。

图6-37 “查看书籍”的事务中心
答案
“查看书籍”的结构图如图C-8所示。

图C-8 “查看书籍”的结构图

497.(0.0分)改进的Jackson图与传统的Jackson图相比有哪些优点?
答案
运用改进的Jackson图表达选择型或循环型结构时,选择条件或循环结束条件可以在图上直接表现出来,并且框间连线为直线,方便在打印机上输出。

498.(0.0分)对比瀑布模型、原型模型、增量模型和螺旋模型。
答案
4种模型的对比如下。
瀑布模型:主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是:过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作。
原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型的需求分析入手难的问题。
增量模型:对于需求复杂的系统,采用分块开发、逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量是一次迭代。增量模型的新版本叫做“极限编程”(XP)。
螺旋模型:融合了上述三种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。但风险分析的正确性是左右软件演进的关键因素。

499.(0.0分)什么是模块、模块化?软件设计为什么要模块化?
答案
模块:是完成特定功能的程序实体。模块是构成程序的基本构件。
模块化:是指解决一个复杂问题时自顶向下逐层分解成若干模块的过程。每个模块完成一个特定的子功能,所有模块按系统结构组合起来,完成整个系统所要求的功能。
模块化设计。
将问题简化,划分模块可使每一个模块完成单一的功能;
可以独立地进行模块的编码测试,便于软件开发工作的组织; 把每一个模块要解决的问题局限在有限的范围,减少出错机会; 便于纠错;
便于对特定的模块进行优化处理;
一个模块可被重复使用,以提高软件产品的复用率; 程序易于理解;
利于估计工作量和开发成本。

500.(0.0分)产品调研5个方式什么?
答案
从网络上搜查资料从书中提取信息 与用户交谈
向用户群体法调查问卷
与同行和专家交谈,听取他们的意见

501.(0.0分)请简述软件工程的目标、过程和原则。
答案
目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。
软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效率、高效益)。
实现目标的过程:完成产品加工的过程。它包括:基本过程、支持过程和组织过程。
进行过程应遵守的原则:原则就是过程中的轨道约束。它包括:选取适宜的开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程的管理。

502.(0.0分)简述软件工程研究的内容。
答案
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
其中软件开发方法的内容又涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件支持过程由所支持的CASE工具组成, 常用的CASE工具有Power Designer和Rational Rose等。

503.(0.0分)请简述做进度计划的两种方式。
答案
(9)做进度计划的两种方式如下。
甘特图用线段标明子任务的分解;标明各个任务的计划开始时间、完成时间;标明各个任务与参与工作的人数,各子任务间的并行和串行的关系的衔接情况; 特点是:简单、明了、直观、易于编制;以文档与评审作为开发进度的里程碑;
缺点是:无法标明多个任务之间存在的相互制约关系;无法标明关键的控制作业;
工程网络图是用时间和节点来表示工作流程的有序、有向的网状图形。它可弥补甘特图无法表达关键路径和作业之间的制约关系,并且易于调整。

504.(0.0分)如何进行软件项目的风险分析?
答案
软件项目的风险分析主要在可行性分析阶段进行,其内容包括风险识别、风险预测和风险管理。风险识别主要从项目、技术和商业的角度对潜在的风险进行识别。风险预测利用定量的方法对风险发生的可能性和产生后果的严重程度做出估计。风险管理的内容涉及两个方面。一方面,风险管理者需要综合考虑风险发生的概率及发生后产生后果的严重性,确定特定风险的处理策略。对于发生概率低,影响也低的风险可以采用规避策略,即不需要考虑。另一方面,风险管理者需要对已经识别出的风险定期进行评估,重新预测其发生的可能性和产生后果的严重程度,从而根据变化及时调整对该风险的处理策略。由于变化具有永恒性,风险管理的活动应该存在于项目进行的整个过程中。

505.(0.0分)技术可行性研究是什么
答案
就是要回答使用现有的技术能否实现待开发的系统的问题。在用户提出的系统功能,性能及实现系统的各项约束条件下,技术可行性研究从技术角度研究实现系统的可行性。

506.(0.0分)类间的外部关系有几种类型?每种关系表达什么语义?
答案
类的外部关系有关联、继承、依赖三种关系,画出完整的类图是OOA建模的最终结果。
关联:对象之间的静态关系,表示一个对象拥有另一些对象,或一个对象是由另外一些对象组成;
继承:也是对象之间的一种静态关系,表示对象之间的父子关系,可提高类的复用性;
依赖:是对象之间的信息交互关系,一个对象需要另一些对象为它提供服务。

507.(0.0分)请简述软件估算的意义。
答案
科学的软件估算可以在项目早期就相对精确地估算出项目的人力、时间和资金等成本,有利于制定合理的计划和安排合理的预算,保证项目的顺利实施。

508.(0.0分)简述软件质量的定义。
答案
所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。

509.(0.0分)如何理解结构化需求分析方法的基本思想。
答案
结构化需求分析是一种面向数据流的需求分析方法。它基于“分解”和“抽象”的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。
“分解”是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后再分别解决。
最顶层描述了整个目标系统,中间层将目标系统划分为若干个模块,每个模块完成一定的功能,而最底层是对每个模块实现方法的细节性描述。可见,在逐层分解的过程中,起初并不考虑细节性的问题,而是先关注问题最本质的属性,随着分解自顶向下进行,才逐渐考虑越来越具体的细节。这种用最本质的属性表示一个软件系统的方法就是“抽象”。

510.(0.0分)在可行性研究步骤中“设计新系统得高层逻辑模型”时,做什么?
答案
从较高层次设想新系统得逻辑模型,概括得描述开发人员对新系统的理解和设想。

511.(0.0分)名词解释:机器语言
答案
计算机语言是一种计算机可以识别,执行的代码,并且机器语言采用”0”和”1”为指令代码来编写程序

512.(0.0分)用户需求报告与需求分析规格说明书有何差异?
答案
用户需求报告与需求分析规格说明书的差异如下。
用户需求报告是对外的,需求规格说明书是对内的。
用户需求报告是站在用户(使用者)的角度、用他们可以看懂的语言(比如自然语言)写的,需要用户签字确认。
需求规格说明书则不同,它是对内的,不需要用户签字确认。它是站在开发者的角度、可以采用形式化或半形式化的语言进行描述。
一般来说,用户需求报告是合同的产物,需求规格说明书是立项建议书的产物。用户需求报告是对合同而言的。需求规格说明书是对立项建议书而言的。
由用户需求报告可产生需求规格说明书。
签完合同后,一般是先写出用户需求报告,后写出需求规格说明书。当需求报告由用户签字确认后,需求规格说明书很快就会出来了。

513.(0.0分)请简述软件工程的三要素。
答案
软件工程的三要素是从计算机科学的观点来看软件工程,即从软件开发的技术层面来看,有过程、方法和工具。
“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。
“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。如经常说的面向结构、面向对象、面向组件等开发方法,以及项目管理中的估算、度量、计划等管理方法。软件工程以介绍方法为主。
“工具”可为过程和方法提供自动的或半自动的支持。这些工具既包括软件,也包括硬件。软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件 工具集成起来搭建一个能够支持团队开发的平台,称之为计算机辅助软件工程,即CASE。CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形 成了一个软件工程环境。

514.(0.0分)应用题:(2)一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD、录音图书磁带和报纸等出版物供读者借阅。这些出版物有出版物名、 出版者、获得日期、目录编号、书架位置、借出状态和借出限制等属性,并有借出、收回等服务。 请建立上述的图书馆馆藏出版物的对象模型。
答案
图书馆所藏出版物拥有共同的基类:馆藏出版物类。馆藏出版物类的成员变量包括出版物名称、出版者、获得日期、目录编号、借出状态、借出限制等,并包括借出和收回两项操作。各种类型的出版物类继承于馆藏出版物类,并定义了各自的属性。图书馆馆藏出版物的对象模型图C-19所示。

515.(0.0分)对基于面向对象思想的设计而言,有哪些方法或机制可以实现信息隐藏?
答案
通常,模块的信息隐藏可以通过接口来实现。模块通过接口与外部进行通信,而把模块的具体实现细节(如数据结构、算法等内部信息)隐藏起来。一般来说,一个模块具有有限个接口,外部模块通过调用相应的接口来实现对目标模块的操作。

516.(0.0分)项目的时间管理是否就是做进度计划?
答案
完整的时间管理还包括活动定义、活动排序、活动资源估算、活动历时估算、进度计划、进度控制。进度计划只是项目时间管理的一个子集。

517.(0.0分)怎样进行代码行LOC度量?怎样进行功能点FP度量?它们可以度量的指标有哪些?
答案
代码行度量:是指统计可执行的源代码行数来反映软件规模。采用直接测量法和经验估算法都可以获得数据;但如何定义源代码行缺乏统一的认识和标准,时代的差异、语言的差异和经验的差异,可能会造成统计数据的差异较大,但是在一个企业内部其具有参照性。
功能点度量:通过统计系统的“功能性”来反映软件规模。它只能采用间接测量找出系统的功能点FP。尽管是间接测量,但克服LOC度量存在的问题,FP度量用于 事前规模估算要比LOC要严谨些。
用这两种规模度量的结果,可进一步计算生产率、软件质量、软件成本和文档数量等指标。

518.(0.0分)需求分析的理论基础有哪些?
答案
需求分析的理论基础有:什么是软件需求;软件需求需要量化;需求是一个过程;需求过程中的角色;需求过程是一个迭代的过程;需求来源等6条理论基础。

519.(0.0分)请简述DevOps工具的类别。
答案
(1)项目管理工具
(2)协作式源代码库
(3)CI/CD管道
(4)测试自动化框架
(5)配置管理(基础设施即代码)工具
(6)监控工具
(7)持续反馈工具

520.(0.0分)应用题:办公室复印机的工作过程大致如下:未收到服印命令时处于闲置状态,一旦接收到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令:如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命 令;如果复印时发生卡纸故障,则进入卡纸状态, 发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。 请用状态转换图描绘复印机的行为。
答案
在复印机接到命令之前,应处于闲置状态。在接到命令之后,复印机处于准备复印的状态。在准备复印状态下,如果发现缺纸,则会发出相应警告,并在状纸之后重新进入闲置状态;否则,复印机会进入复印状态。在复印状态下,如果发生卡纸,则会发出相应警告,并在故障排除后重新进入闲置状态;否则,复印机会正常完成复印命令,并闲置。
复印机的状态转换图如图3.20所示。

521.(0.0分)软件设计如何分类,分别有哪些活动?
答案
从活动任务来看,软件设计是对软件需求进行:数据设计、体系结构设计、接口设计、构件设计和部署设计。
从工程管理角度来看,软件设计分为概要设计和详细设计。前期进行概要设计,得到软件系统的基本框架。后期进行详细设计,明确系统内部的实现细节。

522.(0.0分)什么是白盒测试?有哪些常用的白盒测试方法?
答案
白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。

523.(0.0分)技术可行性研究包括什么
答案
风险分析资源分析

技术分析

524.(0.0分)在可行性研究步骤中“撰写可行性研究报告”时,做什么?
答案
可行性研究的最后异步就是撰写可行性研究报告。此报告包括项目简介,可行性分析过程和结论等内容。

525.(0.0分)应用题:(1)某程序功能说明书指出,该程序的输入数据为每个学生的学号。其中,学号由以下三个部分构成: ①入学年份:4位数字(1 9 0
0~2 9 9 9)之间的数字; ②专业编码:0或1开头的4位数字; ③序号:2位数字。 试用等价类划分法设计测试用例。
答案

526.(0.0分)什么是类?类与传统的数据类型有什么关系?
答案
具有相同特征和行为的对象归结在一起就形成类,也就是说,类是具有相同属性和服务的一组对象的集合。
在面向对象方法学中,类是某些对象的模板,抽象地描述属于该类的全部对象的属性和操作。属于某个类的对象称为该类的实例。每个对象都是某个类的实例,对象的状态则包含在实例的属性中。类和实例的关系是一种抽象与具体的关系。实例是类的具体体现,类是多个实例的综合抽象。现实中没有真正的类存在,类只是对具有相同属性和行为的一组相似的对象的抽象,而现实中存在的只是某一类的具体的实例。例如,现实中没有抽象的“汽车”,人们只见到了具体的一辆辆的卡 车、小轿车等。

527.(0.0分)社会可行性研究是什么
答案
社会可行性研究从政府,法律,制度等社会因素方面考虑项目开发得可能性和合理性。比如,将来软件产品服务得领域是否与国家得政策或法律法规想抵触。

528.(0.0分)请简述软件项目管理和软件工程的区别和关系。
答案
软件项目管理和软件工程的区别和关系如下。
目标相同:软件工程与软件项目都是围绕软件产品开发的管理;
作用不同:
软件工程是软件开发方法论,是关于如何开发出好的软件产品;
软件项目管理是软件产品的生产管理形式,项目目标是项目的绩效,。
两者关系:
软件工程对于任何软件项目具有指导性,软件项目管理是落实软件工程思想的载体。

529.(0.0分)应用题:使用Microsoft Visual Studio 2010和C#对求两个整数的最大公约数进行编程。
答案
在计算两个整数的最大公约数时,可以使用辗转相除的方法。
由于相除取余的过程可能会重复多次,所以可以使用递归的方式来简化代码。因此,可以通过设计一个递归函数来对输入的整数进行计算,直至找到二者的最大公约数。程序如下。
using System;
using System.Collections.Generic; using System.Linq;
using System.Text;

namespace GreatestCommonDivisor
{
class Program
{
//辗转相除法
public static int calculate(int x, int y)
{
if (x < y)
{
return calculate1(y, x);
}
return calculate1(x, y);
}

// x is no less than y
private static int calculate1(int x, int y)
{
if (x % y != 0)
{
return calculate1(y, x % y);
}
return y;
}
}
}

530.(0.0分)应用题:某校图书馆管理系统具有以下功能。 借书:先为读者办理借书证,借书证上记录读者姓名、学号、所属系和班级等信息。借书时根据读者的借书证查阅读者档案,若借书数目未超过规定数量,则办理借阅手续,修改库存记录及读者档案;若超过规定数量则不予借阅。 还书:根据读者书中的条形码, 修改库存记录及读者档案,若借阅时间超过规定期限则罚款。 图书管理员还要定期生成订书清单,包括书名、图书代号、单价、数量等,根据需要向供应商订购图书。请按照以上需求建立这个图书馆管理系统的对象模型。
答案
在本题中,对象主要包括:
订书清单:包含书名、图书代号、单价、数量等属性; 图书管理员:包含订购图书等操作;
借书证:包含姓名、学号、借阅信息等属性; 供应商:包含供货等操作;
图书:包含书名、条形码、出版社等属性; 读者:包含姓名、学号、所属班级等属性。

对象之间相互关系主要包括:
图书管理员可以生成多个订书清单; 图书管理员可以办理多个借书证; 供应商处理多个订书清单;
供应商可以为多本图书供应; 图书管理员可以管理多个图书; 一个读者拥有一个借书证;
一个读者可以借阅多本图书。
图书管理系统的对象模型如图8.15所示。

531.(0.0分)应用题:(1)在温室管理系统中,有一个环境控制器,当没有种植作物时处于空闲状态。一旦种上作物,就要进行温度控制,定义气候,即在什 么时期应达到什么温度。当处于夜晚时,由于温度下降,要调用调节温度过程,以便保持温度;太阳出来时,进入白天状态,由于温度升高,要调用调节温度过程,保持要求的温度。当日落时,进入夜晚状态。当作物收获,终止气候的控制,则进入空闲状态。 请建立环境控制器的动态模型。
答案
环境控制器在被定义气候之前,处于闲置状态。 在被定义气候之后,开始温度控制:当处于白天模式时,如果温度升高,则进行调温操作;如果出现日落,则转换为夜间模式。当处于夜间模式时,如果温度降低,则进行调温操作;如果出现日出,则转换为白天模式。当环境控制器被命令终止气候时,则重新处于限制状态。环境控制器的动态模型如图C-18所示。

532.(0.0分)应用题:旅游价格折扣分类如下表,请用判定表和判定树分别画出表达该逻辑问题的算法。

答案
这里有两个条件
旅游时间t:t1{7-9,12};t2{1-6,10,11}
订票量 a: a1{≤20};a2{>20}
根据旅游时间、订票量的条件组合,以及折扣量画出如图4.38所示的判定表。

据旅游时间、订票量和折扣量画出如图4.39所示的判定树(决策树)。

533.(0.0分)需求分析的目的和工作目标是什么?
答案
需求分析的目的是:弄清用户对系统的细节要求,完整、准确、清晰、具体地回答目标系统“做什么”。
需求分析的目标是:是对用户提出的软件功能、性能等应用问题及其环境进行分析与理解,采用一系列的分析方法和技术,把系统可行性分析阶段产生的系统规格说明书和项目规划逐步精确化、完全化、一致化,借助于当前系统的逻辑模型导出目标系统的逻辑模型,最终形成需求规格说明文档的过程。

534.(0.0分)为什么要进行软件维护?软件维护的作用有哪些?
答案
软件维护是软件产品生命周期的最后一个阶段。在产品交付并且投入使用之后,为了解决在使用过程中不断发现的各种问题,保证系统正常运行,同时使系统功能随着用户需求的更新而不断升级,软件维护的工作是非常必要的。概括地说,软件维护就是指在软件产品交付给用户之后,为了改正软件测试阶段未发现的缺陷, 改进软件产品的性能,补充软件产品的新功能等,所进行的修改软件的过程。

535.(0.0分)应用题:在温室管理系统中,有一个环境控制器,当没有种植作物时处于空闲状态。一旦种上作物,就要进行温度控制,定义气候,即在什么时期应达到什么温度。当处于夜晚时,由于温度下降,要调用调节温度过程,以便保持温度;太阳出来时,进入白天状态,由于温度升高,要调用调节温度过程,保持要求的温度。当日落时,进入夜晚状态。当作物收获,终止气候的控制,则进入空闲状态。 请建立环境控制器的动态模型。
答案
环境控制器在被定义气候之前,处于闲置状态。
在被定义气候之后,开始温度控制:当处于白天模式时,如果温度升高,则进行调温操作;如果出现日落,则转换为夜间模式。当处于夜间模式时,如果温度降低,则进行调温操作;如果出现日出,则转换为白天模式。
当环境控制器被命令终止气候时,则重新处于限制状态。环境控制器的动态模型如图7.20。

536.(0.0分)经济可行性研究是什么
答案
经济可行性研究也叫成本效益分析,它回答的是待开发系统的经济效益能否超过它的开发成本问题。通过成本效益分析,经济可行性研究从经济角度去判断是否值得为改系统投资。成本效益分析需要估计出开发系统得总成本和将来系统投入使用后带来得总收益。当总收益大于总成本时,该项目才值得开发。

537.(0.0分)请简述结构化设计的优点。
答案
结构化设计的优点如下。
减少设计复杂性。将大化小,使复杂问题简单化。
结构独立。将程序划分成多个相对独立的模块。
模块功能单一化,可使软件设计获得最大的益处。
易于进行软件修改。
易于开发和维护。
加强了代码的可重用性。

538.(0.0分)请简述软件设计优化的准则。
答案
软件设计优化的准则如下。
划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性。模块划分的准则:“将相关的各部分放在一起,无关的东西不要放在一起。”
模块的大小要适中。
模块的接口要简单、清晰、含义明确,便于理解,易于实现、易于测试和维护。
一个模块的作用范围应在其控制范围之内,且判定所在的模块,应与受其影响的模块在层次上尽量靠近。
软件结构的深度、宽度、扇入、扇出应适当。
力求设计单入口和单出口的模块,避免“病态连接”,以防止内容耦合。
设计功能可预测模块的划分,应防止功能过分局限。

539.(0.0分)当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较适合?
答案
开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。螺旋模型是一种综合性的模型,适和于较复杂的系统

540.(0.0分)请简述编码风格的重要性。要形成良好的编码风格可以从哪些方面做起?
答案
阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章。应当在编写程序时讲究程序的风格,这将大量地减少人们阅读程序的时间。良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。要形成良好的编码风格可从以下方面做起。
版权和版本声明。程序版式。
注释。

命名规则。数据说明。代码构造。输入输出。效率。

541.(0.0分)需求分析的难点在哪里?
答案
需求分析的难点是:在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。要知道,合同是具有法律效力的。

542.(0.0分)名词解释:多重继承
答案
多重继承指的是一个类可以同时继承多个类,比如A类继承自B类和C类

543.(0.0分)请简述软件工程的基本原则。
答案
软件工程的基本原则如下。
将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。
坚持阶段评审制度,以确保软件产品的质量。
实施严格的产品控制,以适应软件规格的变更。在软件开发的过程中,用户需求很可能不断地发生变化。
采用现代的程序设计技术。
开发出来的软件产品应该能够清楚地被审查。
合理地安排软件开发小组的人员,并且开发小组的人员要少而精。
不断地改进软件工程实践。

544.(0.0分)请简述软件过程。
答案
软件过程就是软件产品的加工过程,其本质就是将“客观世界”映射(虚拟)到“计算机世界”,即从抽象到具体的逐步细化过程。系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就是计算机世界里的代码。

545.(0.0分)名词解释:汇编语言
答案
是任何一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言

546.(0.0分)应用题:(2)某学校领书的工作流程为: 学生班长填写领书单,班主任审查后签名,然后班长拿领书单到书库领书。书库保管员审查领书单是否有班主任签名,填写是否正确等,不正确的领书单退回给班长;如果填写正确则给予领书并修改库存清单;当某书的库存量低于临界值时,登记需订书的信息,每天下班前为采购部门提供一张订书单。用用例图、顺序图和活动图来描述领书的过程。
答案
1)用例图
首先确定存在3个参与者:学生班长、班主任、书库管理员。接着分析出7个用例:填写领书单、学生班长领书、班主任签名、书库管理员审查领书单、给予领书并修改库存清单、登记需订书信息、提供订书单。然后确定包含(include)关系:班主任签名前需要学生班长填写领书单;学生班长领书前需要班主任签名;书库 管理员审查领书单前需要学生班长去领书;书库管理员给予领书并修改库存清单前需要审查领书单;书库管理员提供订书单前需要登记需订书信息。最后,就可以通过分析出的一系列关系绘制出如图C-14所示的用例图。

2)顺序图

学生班长填写领书单,提交给班主任签名。班主任将签名后的领书单交给学生班长,学生班长拿着签名后的领书单去领书。书库管理员首先审查领书单,若填写正确则给予领书并修改库存清单。如果某书的库存量低于临界值,书库管理员便登记需订书的信息,并为采购部门提供订书单,顺序图如图C-15所示。

3)活动图
学生班长填写领书单,提交给班主任签名。学生班长拿着签名后的领书单去领书。书库管理员首先审查领书单,若有班主任签名且填写正确则给予领书并修改库存清单。书库管理员检查库存,如果库存不足,书库管理员便登记需订书的信息,并为采购部门提供订书单,活动图如图C-16所示。

图C-16 活动图

547.(0.0分)在选择编程语言时,通常要考虑哪些因素?
答案
在选择编程语言时,通常需考虑以下因素。 待开发系统的应用领域,即项目的应用范围。用户的要求。
软件开发人员的喜好和能力。系统的可移植性要求。
算法和数据结构的复杂性。

548.(0.0分)如何进行立项审评?
答案
审评准备,然后举行评审会议,然后机构领导终审。

549.(0.0分)什么是配置项?什么是配置管理?
答案
软件配置管理中的基本单元,称为软件配置项。
在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟踪、管理,使其最终形成受控的软件版本产品,这一管理过程称为软件配置管理。

550.(0.0分)应用题:有如下一个学生选课系统:教师提出开课计划,系统批准后给教师下发开课通知。学生可向系统提出选课申请,系统批准后给学生下发选课申请结果通知。课程结束后,系统还可以帮助教师录入学生成绩,同时把成绩单发送给学生。请画出该系统顶层的数据流图。
答案
在本题中,外部交互方包括学生和教师两类。

对于教师而言,他们可以提交开课计划并在系统批准之后得到开课通知。被批准的开课通知会被系统存储。此外,教师还可以对学生的成绩进行录入和存储。系统会根据存储的学生成绩,将成绩单发送给学生。
对于学生而言,他们可以通过查询开课信息从已存储的课程记录中获取开课信息。此外,他们还可以提交选课计划并在系统批准中得到申请结果。被批准的选课计划会被系统存储。
该系统顶层的数据流图如图3.19所示。

551.(0.0分)请简述度量、估算和计划之间的关系。
答案
度量、估算和计划之间的关系如下。
度量:是对已发生事物的某个属性指标的获取。度量是通过大量的数据测量反映的。
估算:是对未发生事物的评估,主要评估未知事物的规模以及将要占用的资源,以期估算成本和工作量。
计划:是对资源按开发进度进行合理的预配置;
度量与估算:作用期不同,度量用于事后的指标评估,估算用于事前的资源计划。但估算有可能利用原先的度量指标;有的度量有可能来自经验数据,有的度量指标有可能用估算的方法;
估算与计划:估算是制定计划的依据,好的计划来源于正确的估算。

552.(0.0分)请简述面向分析的基本任务。
答案
面向对象分析的目的是对客观世界的系统进行建模,是定义所有与待解决问题相关的类。完成对所求解问题的分析,确定系统“作什么”,并建立系统的模型。

553.(0.0分)敏捷方法的核心价值观有哪些?它对传统方法的“反叛”体现在哪些方面?
答案
敏捷思想的核心价值观大体包括以下几方面。
注重个人与交互。
重点关注可以工作的软件。
提高客户参与程度。
以积极的心态响应需求变化。
敏捷联盟强调的价值观是这一流派的核心。人是受价值观驱使的,敏捷项目管理因而也是以价值观为推动力的。一个团队可以采用敏捷做法,但如果它不接受敏捷价值观,它将不能得到敏捷方法的潜在好处。
敏捷方法对传统方法的“反叛”体现在以人为中心,不再依靠文档来控制过程,认为传统过程过于僵化、文档繁烦,主张对传统过程瘦身,在上述价值观的支配下, 做到够用为准。

554.(0.0分)应用题:根据以下描述画出相应的状态转换图: 到ATM机前插入磁卡后输入密码,如果密码不正确则系统会要求再次输入密码,如三次输入不正确则退出服务;密码正确后,系统会提示选择服务类型,如选择存款则进行存款操作,存款完毕后可选择继续服务,也可以选择退出服务;如选择取款则进行存款操作,取款完毕后可选择继续服务,也可以选择退出服务。
答案
根据题目描述,活动由插入磁卡开始,输入密码后需对密码进行判断——若密码不正确,则返回输入密码状态;若三次输入密码都不正确,则进入退出服务状态而结束;若密码正确,进入服务类型选择状态。在服务类型选择状态中,需要再次判断,若用户选择存款,则进入存款状态;用户选择取款,则进入取款状态。存款或取款状态结束后,继续进行判断,若用户选择继续服务,则再次进入服务类型选择状态,否则进入退出服务状态而结束活动。其状态转换图如图C-6所示。

图C-6 状态转换图

555.(0.0分)如何进行结构化需求分析,其建模方法都有哪些?
答案
(3)结构化分析的具体步骤如下。
建立当前系统的“具体模型”:系统的“具体模型”就是现实环境的真实写照,这样的表达与当前系统完全对应,因此用户容易理解。
抽象出当前系统的逻辑模型:分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得当前系统的“逻辑模型”。
建立目标系统的逻辑模型:分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”。
为了对目标系统进行完整的描述,还需要考虑人机界面和其他一些问题。在结构化分析中经常用到的建模方法主要有:
数据流图。
实体关系。
控制流图。
状态转换图。

556.(0.0分)名词解释: 数据结构
答案
数据结构是计算机存储、组织数据的方式

557.(0.0分)什么是黑盒测试?有哪些常用的黑盒测试方法?
答案
黑盒测试法是依据软件的需求规格说明书,检查程序功能是否满足需求的要求,主要的黑盒测试方法有:等价类划分,边界值分析,错误推测法,因果图法和场景法。

558.(0.0分)请简述主程序员组的优缺点。
答案
主程序员组的优缺点如下。
优点主要有:主程序员广播式发布工作要求,组织管理好、效率高、质量容易保证、成本相对较低。
缺点主要有:人员完整配备较难、不利人才脱颖而出。并且,能够在技术和管理两方面都能同时具备优秀品质的主程序员更不多见。

559.(0.0分)什么是面向对象技术?面向对象方法的特点是什么?
答案

面向对象分析的目标是完成对所需求解问题的分析,确定待建的系统所要做的工作,定义所有与待解决问题相关的类,并建立系统的模型。面向对象分析的关键是识别出问题域中的对象,并分析它们之间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。
面向对象分析模型通常包括对象模型、动态模型和功能模型。对象模型是最基本、最重要、最核心的模型,描述软件系统的静态结构;动态模型描述系统的控制结构;功能模型描述软件系统必须完成的功能。这三种模型各自从不同的侧面反映软件系统的内容,相互影响、相互制约,有机的结合在一起,全面地表达对目标系统的需求。

560.(0.0分)应用题:图5.13给出了用盒图描绘的一个程序的算法,请用逻辑覆盖法设计测试方案,要求做到语句覆盖和路径覆盖。

答案
实现语句覆盖的测试方案如下:
覆盖THEN部分的语句,即使得条件(A>0)And(B>O)和条件(C>A)Or(DO)And(B>O)和条件(C>A)Or(D

561.(0.0分)系统设计师做什么工作?
答案
根据需求,设计软件系统架构,撰写设计文档。参与设计评审,将涉及方案准确地传达给客户和其他项目成员。

562.(0.0分)什么是动态模型?
答案
对于一个系统来说,功能模型指明了系统应该“做什么”,而动态模型则明确规定了“什么时候做”。即在何种状态下、接受了什么事件的触发,来确定对象的可能事件的顺序。

563.(0.0分)请简述结构化维护和非结构化维护
答案
结构化维护的前提是软件产品或软件项目必须有完善的文档,并且文档与程序代码互相匹配,两者完全一致。在这样的前提下,维护不但会比较省力,而且维护后可以用原来的测试用例进行回归测试。
相反,若软件产品或软件项目只有程序而没有文档,或文档很不规范,很不齐全,对这样的软件进行维护,则称为非结构化维护。

564.(0.0分)应用题:某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码 是由区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号 是任意长度为4的数字串。请写出在数据字典中,电话号码的数据条目的组成。
答案
电话号码的数据字典如下。
电话号码 = 分机号|外线号码分机号 = 7201…7299
外线号码 = 9+[市话号码|长话号码]
长话号码 = 区号+市话号码区号 = 100…300
市话号码 = 局号+分局号
局号 =[455|466|888|552]
分局号 = 4{数字}4

565.(0.0分)与面向结构化开发过程相比,为什么面向对象能更真实地反映客观世界?
答案
结构化也就是面向过程的方法:从客观事物的行为出发,肢解客观事物的整体性,从分析、设计到编程完全看不出事物的原貌;

面向对象:从观察、抽象客观事物开始,就以事物原貌、事物的整体为出发点。从分析、设计、编程一直反映事物的原貌,它利用事物具有整体性、关联性、交互性、继承性和多态性的本源特征映射领域问题到计算机世界中。

566.(0.0分)名词解释:面向对象编程
答案
是一种对现实世界理解和抽象的方法

567.(0.0分)名词解释:虚拟机
答案
指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

568.(0.0分)请简述CMM的作用。
答案
CMM的作用如下。
CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认可软件工程达到的程度。(如同评定职称的条件)
CMM是软件组织提升自身能力、走向成熟的参照系。它提供了走向成熟的阶梯目标,但并不提供走向目标的方法。
CMM等级的提高依靠软件过程改进。
CMM既是评估软件能力成熟度的模型,也起到了促进软件企业按照该模型设置的级别和关键过程域不断改进自己的软件过程的作用。

569.(0.0分)民主制、主程员制各存在什么问题?
答案
民主制程序员组中所有程序员不分主次,这样在责任落实、分工协作方面存在一些问题。责任不明,分工不清,大家都负责,实际上没有人负责。
主程序员制是主程序员负责制,克服了民主制的缺点,但又走到了另一个极端,只有主程序员负责,其他成员的积极性就被扼杀了。另外,主程序员这个置位既是一个技术岗位,也是一个管理角色,这样的置位很难找到胜任的人担任。因为,热衷于技术的人,往往对管理不感兴趣,而具有管理才能的人,大多不会是技术专家。

570.(0.0分)请对比黑盒测试与白盒测试。
答案
黑盒测试与白盒测试的对比如图5.12所示。

571.(0.0分)软件测试应该划分几个阶段?各个阶段应重点测试的内容是什么?
答案
软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试;每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告五个步骤。
单元测试对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
集成测试软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
系统测试,系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。
验收测试,在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
回归测试,回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。

572.(0.0分)请简述面向对象分析的目的。
答案
面向对象分析的过程如下:
获取客户对系统的需求。
标识类和对象。
定义类的结构和层次。

建造对象-关系模型。
建立对象-行为模型。

573.(0.0分)应用题:(2)图12-36给出了用盒图描绘的一个程序的算法,请用逻辑覆盖法设计测试方案,要求做到语句覆盖和路径覆盖。

答案
实现语句覆盖的测试方案如下:
覆盖THEN部分的语句,即使得条件(A>0)And(B>O)和条件(C>A)Or(DO)And(B>O)和条件(C>A)Or(D

574.(0.0分)与传统的软件工程方法相比,面向对象的软件工程方法有哪些优点?
答案
面向对象的软件工程方法的优点如下。
符合人类的思维习惯。面向对象的软件工程方法最重要的特点就是把事物的属性和操作组成一个整体,以对象为核心,更符合人类的思维习惯。此外,它更加注重人类在认识客观世界时循序渐进,逐步深化的特点。它主张在软件开发的过程中多次反复迭代的思想。
可复用性好。面向对象的软件工程方法由于采用了继承和多态的机制,极大地提高了代码的可复用性。
稳定性好。面向对象的软件工程方法基于对象的概念。当目标系统的需求发生变化时,只要实体及实体之间的联系不发生变化,就不会引起软件系统结构的变化,而只需要对部分对象进行局部修改即可。
可维护性好。由于利用面向对象软件工程方法开发的软件系统稳定性好和可复用性好,而且采用了封装和信息隐藏机制,易于对局部软件进行调整,所以系统的可维护性比较好。

575.(0.0分)请简述CMM软件过程成熟度的5个级别,以及每个级别对应的标准。
答案
5个级别如下。
初始级的软件过程是无秩序的,它几乎处于无步骤可循的状态。管理是随机的,软件产品的成功往往取决于个人。
在可重复级,已建立了基本的项目管理过程,对成本、进度和功能特性进行跟踪,并且在借鉴以往经验的基础上制定了必要的规范。
在已定义级,用于管理和工程两个方面的过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。所有项目均使用经过批准、裁减的标准软件过程来开发和维护软件。
已管理级的软件过程和产品质量有详细的度量标准并且得到了定量的认证和控制。
优化级的软件过程可以通过量化反馈和先进的新思想、新技术来不断地、持续性地改进。

576.(0.0分)软件维护的副作用表现在哪4个方面?
答案
软件维护的副作用表现在如下的4个方面
使编码更加混乱,程序结构更加不清晰,可读性更差,而且有连锁反应。
数据结构是系统的骨架,修改数据结构是对系统伤筋动骨的大手术,在数据冗余与数据不一致方面,可能顾此失彼。
需要与用户协商,一旦有疏忽,可使系统发生意外。
对结构化维护要严防程序与文档的不匹配。

577.(0.0分)请简述 Scrum与看板的区别。

答案
Scrum看板开发方式
要求定时迭代没指定定时限迭代,可以分开计划、发布、过程改进,可以事件驱动而不是限定时限团队在每个迭代承诺一定数目的工作承诺不是必须的
以速度(Velocity)作为计划和过程改进的度量数据使用开发周期作为计划和过程改进的度量数据指定跨功能团队没有指定跨功能团队,也容许专门团队
工作任务细分,可于一个迭代中完成没有指定工作任务大小指定使用燃烧图没有指定任何图表
间接限制开发中工作(每个迭代)设定开发中工作的限制(每个工作流程状态) 规定估算过程没有指定任何估算方式
在迭代中不能加入新工作任务只要生产力容许,可以随时加工作任务由单一团队负责 Sprint Backlog多个团队和团员分享看板
指定3个角色(产品经理、Scrum Master、Scrum团队)没有指定任何团队角色Scrum board 在每个迭代后重设看板反映持久开发情况
规定优先化的 product backlog优先级是非必须的

578.(0.0分)请简述估算的作用。
答案
计划是项目的启动入口,项目开展过程就是执行计划。而估算是制定计划的依据,因此估算是项目开展的基础。估计的主要工作如下。
范围估算,搞清软件边界。
规模估算:定量单位采用LOC或FP。
工作量估算:工作量估算决定了开发团队的规模和组建,决定开发周期和进度估算。
开发周期与进度估算:进度估算是对整个开发周期中不同阶段的里程碑进行估算。
人力资源估算:在考虑各种软件开发资源时,人是最重要最优先考虑的资源。
开发成本估算:整个开发周期所花费的工作量产生的劳动费用。
软硬件资源估算:软件开发所需的硬件工具及软件工具。

579.(0.0分)请简述如何准备脚本。
答案
在建立动态模型的过程中,脚本是指在某一执行期间内系统中的对象(或其他外部设备)与目标系统之间发生一个或多个典型的互换信息时产生的事件,所互换的信息值就是该事件的参数,对于各事件,应确定触发事件的动作对象和该事件的参数。

580.(0.0分)你所在的信息系统开发公司指定你为项目负责人。你的任务是开发一个应用系统,该系统类似于你的小组以前做过的那些系统,不过这一个规模更大而且更复杂一些。需求已经由客户写成了完整的文档。你将选用哪种小组结构?为什么?你准备采用哪(些)种软件过程模型?为什么?
答案
由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用, 统一意志统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主程序员组的形式为宜。
针对待开发的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发本系统。

581.(0.0分)请简述界面设计应该遵循的原则。
答案
置界面于用户控制之下: 以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式;提供灵活的交互;允许用户交互可以被中断和撤销;当技能级别增长时可以使交互流水化并允许定制交互;使用户隔离内部技术细节;设计应允许用户和出现在屏幕上的对象直接交互。
减少用户的记忆负担:减少对短期记忆的要求;建立有意义的缺省;定义直觉性的捷径;界面的视觉布局应该基于真实世界的隐喻;以不断进展的方式揭示信息。
保持界面一致:允许用户将当前的任务放入有意义的语境;在应用系列内保持一致性;如果过去的交互模式已经建立起了用户期望,不要改变它,除非有不得已的理由。

582.(0.0分)请简述软件文档的主要作用。
答案
软件文档的作用主要体现在以下各方面。
管理依据。
任务之间联系的凭证。
质量保证。
培训与参考。
软件维护支持。
历史档案。

583.(0.0分)假设你要开发一个软件,它的功能是把73 624.938 5这个数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。
答案
对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。

584.(0.0分)应用题:(1)某图书管理系统有以下功能: 1) 借书:输入读者借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书文件上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,拒借,未达10本,办理借书(检查该读者目录并将借书情况登入借书 文件)。 2) 还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理。否则,修改库存目录与借书文件。 3) 查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。 用结构化分析方法画出系统顶层图、0层图(数据流图),并写出数据字典。
答案
1)顶层图:对于图书管理系统,外部用户有读者和管理工作人员。读者分为第一次借书的读者和多次借书的读者,第一次借书的读者需要在借书文件上建立档案才能借书。工作人员需要对借书文件、库存数目文件进行修改,也能查阅读者情况、图书借阅情况、库存情况。系统顶层图如图C-1所示。

图C-1 系统顶层图

2)查询0层图:工作人员通过借书文件查询读者情况。通过库存目录文件查询库存情况。通过查询借书文件和库存目录文件查询图书借阅情况。最后打印统计表。查询0层图如图C-2所示。

图C-2 查询0层图

3)借书0层图:读者将借书证输入借书台,借书台在系统中查询借书证是否有效,若有效,通过借书文件查看借书次数。若第一次借书,则在借书文件中建立档案,办理借书,并将借书信息登入借书文件,检查读者目录;若为多次借书,则从借书文件中检查所借图书是否超过10本,若超过10本,拒借,并将信息反馈给读者,否则办理借书,并将借书信息登入借书文件,检查读者目录。借书0层图如图C-3所示。

图C-3借书0层图

4)还书0层图:工作人员通过借书文件读取读者记录。通过读者记录查询所借日期。如果借书超期,反馈读者罚款信息并收取罚款,并修改库存目录与借书文件。还书0层图如图C-4所示。

图C-4 还书0层图
5)数据字典

A.顶层图数据字典:
首次借书读者 = {读者+借书证} 多次借书读者 = {读者+借书证} 借书证 = {姓名+学号}

读者 = {姓名+学号+班号}
工作人员 = {姓名+工作人员代号}
姓名: 2{汉字}4
学号: 8{数字}8
班号:4{数字}4
工作人员代号: 4{数字}4
读者情况 = {姓名+学号}
图书借阅情况 = {图书名+图书编号+读者+库存数量}
库存情况 = {图书名+图书编号+库存数量}
图书名: {汉字}
图书编号: 6{数字}6

B.借书0层图:
借书证 = {姓名+学号}
读者 ={ 姓名+学号+班号} 借书次数: 0…*
读者信息 = {姓名+学号}
借书情况 = {读者+图书名+图书编号+所借日期} 读者目录 = {读者+图书名+图书编号+所借日期} 姓名: 2{汉字}4
学号: 8{数字}8
班号: 4{数字}4
图书名: {汉字}
图书编号: 6{数字}6
所借日期: 8{数字}8

C.还书0层图:
工作人员 = {姓名+工作人员代号}
读者记录 = {读者+图书名+图书编号+所借日期}
读者 = {姓名+学号+班号}
罚款信息 = {读者+图书名+图书编号+罚金数额}
库存目录 = {图书名+图书编号+库存数量}
借书文件 = {读者+图书名+图书编号+所借日期}
姓名: 2{汉字}4
学号: 8{数字}8
班号: 4{数字}4
工作人员代号: 4{数字}4
图书名: {汉字}
图书编号: 6{数字}6 所借日期: 8{数字}8 罚金数额: 1{数字}2

D.查询0层图:
工作人员 = {姓名+工作人员代号}
库存目录 = {图书名+图书编号+库存数量}
借书文件 = {读者+图书名+图书编号+所借日期}
统计表 = {库存目录+读者记录}
读者记录 = {读者+图书名+图书编号+所借日期}
姓名: 2{汉字}4
学号: 8{数字}8
班号: 4{数字}4
工作人员代号: 4{数字}4
图书名: {汉字}
图书编号: 6{数字}6
所借日期: 8{数字}8

你可能感兴趣的:(编程相关资料,软件工程)