软件工程

1.促使软件工程这门学科出现的主要原因是(C)

A. 计算机硬件的发展                     B. 其他工程学科的影响

C. 软件危机的发生                        D. 先进程序设计方法的出现

2.软件的生命周期模型有多种,下面选项中,(C)不是软件的生命周期模型。

A. 螺旋模型                B. 增量模型             C. 功能模型                D. 瀑布模型

3. 可行性研究中,技术可行性主要解决(D)。

A.是否存在侵权           B.成本效益问题

C.运行方式问题           D.技术风险问题

4. 我们学过的过程模型中,(D)模型是风险驱动的,它适用于内部开发的大型软件项目。   

A. 瀑布模型       B. 快速原型模型       C. 增量模型           D. 螺旋模型

5.数据流图是常用的进行软件需求分析的工具,其基本符号是(C)。

A.输入、加工、输出                             B.加工、变换、输入和输出

C.加工、数据流、数据存储和外部实体     D.实体、属性和关系

6. 系统流程图是描述(D)的工具。

A. 程序系统          B. 逻辑系统        C. 体系结构       D. 物理系统

7. 数据字典中,一般不包含对下列选项中(D)条目的定义。

A.数据流            B.数据存储       C.数据项        D.源点和终点

8. 衡量模块独立性程度的两个标准是(C)。

A.抽象和信息隐蔽                        B.局部化和封装

C.耦合性和内聚性                        D.激活机制和控制方法

9. 在多层次的结构图中,其模块的层次数称为结构图的(C)。

A.宽度                 B.粒度                 C.深度               D.控制域

10.为了提高测试的效率,应该(D)。

A.随机地选取测试数据          B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据

11. 结构化程序一般包括三种基本控制结构,下述结构中(B)不属于三种基本结构。

A.顺序结构        B.嵌套结构          C.选择结构            D.重复结构

12.总体设计阶段,用来描述软件结构的标准文档是(B)。

      A.IPO图            B.软件层次图        C.软件结构图           D.ER图

13.块内联系中,(B)种块内联系是最强的。

A.偶然性            B.功能性           C.通信性            D.顺序性

14. 程序设计语言可以分为低级语言和高级语言两大类,与高级语言相比,低级语言开发的程序具有(C)特点。

A. 运行效率低、开发效率低            B. 运行效率低、开发效率高

C. 运行效率高、开发效率低            D. 运行效率高、开发效率高

15. 把今天的方法应用到昨天的系统上,以支持明天的需求说明是哪一类维护活动(B)。

A.适应性维护          B.预防性维护         C.改正性维护         D.完善性维护

16.需求规格说明书的作用不应该包括(D)

A、软件设计的依据                 B、用户与开发人员对软件要做什么的共同理解

C、软件验收的依据                 D、软件可行性研究的依据

17. 软件生命周期中代价最大的阶段是(D)

A.详细设计          B.软件编码              C.软件测试         D.软件维护

18. 用例图中的用例表示(A)

A.某些用户可见的功能      B.系统行为      C.人与人之间的关系      D.系统状态

19. 软件的(A)设计又称为总体设计,主要任务是设计软件系统的总体结构。

A. 概要               B. 抽象               C. 逻辑               D. 规划

20. 用黑盒技术设计测试用例的方法之一为(A)

A等价划分法         B逻辑覆盖        C循环覆盖         D基本路径测试

21. 下列内聚类型中,内聚程度最低的是 (C)

A. 逻辑内聚         B.时间内聚           C.偶然内聚          D.功能内聚

22. 编码工作应该在(B)阶段结束之后开始。

A.总体设计          B.详细设计           C.维护             D.实现

23. 软件的4类维护活动中,哪一种的工作量是最大的(C)。

A.改正性维护        B.适应性维护          C.完善性维护          D.预防性维护

24. 黑盒测试在设计测试用例时,主要需要研究(A)

A.需求规格说明与概要设计说明             B.详细设计说明

C.项目开发计划                                   D.概要设计说明与详细设计说明

25. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()

A.条件覆盖法        B.边界值分析法       C.等价划分法          D.错误推测法

26. 通常,使用UML提供的(D)图来建立对象模型。

A.状态转换图          B.用例图           C.数据流图           D.类图

27. 因计算机硬件和软件环境变化而作出的修改软件的过程称为(B)

A.校正性维护         B.适应性维护          C.完善性维护        D.预防性维护

28.下面对编码应该遵循的原则叙述错误的是(A)

A. 为了节省空间而把多个语句写在同一行。       B. 保持输入格式简单。

C. 避免大量使用循环嵌套和条件嵌套。             D. 对所有输入数据都进行检验。

29. 黑盒测试法发现不了下述那种类型的错误( )

A. 程序功能不正确                                          B. 程序遗漏了功能

C. 程序中某处理路径有问题                             D. 界面错误

名词解释

  1. 软件

软件是程序、数据以及相关文档的完整集合。程序是能够完成预定功能的指令序列;数据是使程序能够处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。

  1. 软件工程

软件工程:软件工程是①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

  1. 扇出

扇出:扇出是一个模块直接控制的下级模块的个数。

  1. 扇入

扇入:一个模块的扇入表明有多少个上级模块直接调用它。

  1. 软件结构的宽度

软件结构内同一个层次上的模块总数的最大值

  1. 模块的作用域

模块的作用域:受该模块内一个判定影响的所有模块的集合

  1. 测试

测试:为了寻找错误而运行程序的过程。

  1. 结构程序设计

结构程序设计:程序的代码块仅仅通过顺序、选择和重复这3种控制结构进行连接;每个代码块只有一个入口和一个出口;尽可能少用GOTO语句,最好仅在检测出错误的时候才使用GOTO语句,并且总是使用前向GOTO语句。满足这些条件的程序是结构化程序。

  1. 维护

维护是为了使程序持久地满足用户需求而修改程序的过程。

 

  1. 改正性维护

改正性维护:测试不能发现所有的软件错误,在软件提交给用户使用之后,用户会发现错误,对这类错误的诊断和改正过程称为改正性维护。

判断题(A对,B错)

1.为提高软件产品的可维护性、尽可能使用高级语言编写程序。A

2.白盒测试法主要检查程序功能是否正确,程序能否适当接受输入数据并产生正确的输出信息。B

3. 维护活动必须应用于整个软件配置,以保证软件文档和程序的一致性。A

4. 调试的目标就是尽可能多的去寻找软件中的错误并改正错误。B

5. 软件一旦开发出来提交给用户使用,就不会发生变化了。B

6. 为提高软件产品的可维护性,编码时尽量多用全局变量。B

7. 进行概要设计时尽量加强模块间的联系。B

8. 完成测试后,为缩短源程序长度而删去程序中的注解。B

9. 为提高模块的独立性,在设计模块时力争做到高内聚。A

10. 在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。A

11. 用软件工程的原理开发和维护软件时,开发小组的人员应该多而精。B

12.在总体设计时,模块的规模应该越小越好。B

13. 应该远在测试开始之前就制定出测试计划。A

14. 软件工程关注于中小型程序的构造。B

15. 编码时应该尽可能选用面向机器的程序设计语言,比如汇编语言,以提高效率。B

大题

 

 

 

 

 

 

2. 对瀑布模型所表示的软件过程给出描述。

(1)问题定义阶段:确定问题是什么

(2)可行性研究阶段:确定问题是否有可行的解,并据此对以后的行动方针提出建议。

(3)需求分析阶段:确定为了满足用户的需求系统必须作什么

(4)总体设计阶段:确定系统如何完成预定的任务,确定软件由那些模块组成以及这些模块间的动态调用关系。

(5)详细设计阶段:确定怎样具体地实现所要求的目标系统,也就是确定每个模块的具体算法。

(6)编码阶段:将详细设计阶段得到的算法翻译成用某种程序设计语言编写的程序。

(7)测试:尽可能多的暴露程序中潜藏的错误。

(8)维护:对已交付使用的软件进行长期的管理工作,使其可持久的满足用户的需求。

3. 为什么要进行需求分析?从哪些方面去验证需求的正确性。

需求分析的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。

验证软件需求的正确性,一般应从4个方面进行:

 (1) 一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。

(2) 完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。

(3) 现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。

(4) 有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。

4. 用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是哪三种模型?它们各自的侧重点是什么?

用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。这3种模型都涉及到数据、控制和操作等共同的概念,只不过每种模型描述的侧重点不同。这3种模型从3个不同但又密切相关的角度模拟目标系统,它们各自从不同侧面反映了系统的实质性内容,综合起来则全面地反映了对目标系统的需求。一个典型的软件系统组合了上述3方面内容:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。

7. 软件产品的特点是什么 ?

答:①软件开发与硬件研制相比,更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。  ②大型软件仍然存在着潜伏的错误。  ③软件产品开发成功后,只需对原版软件进行复制,即可生产出任意多的同样的产品。 ④还有,软件在使用过程中的维护工作比硬件要复杂得多。 ⑤由于软件不是物理产品,所以它不会磨损和老化。

 

 

8. 软件危机的表现有哪些?

1)对软件开发成本和进度的估计常常很不准确。  2)用户对已完成的软件不满意的现象时有发生。 3)软件产品的质量往往是靠不住的。 4)软件常常是不可维护的。 5)软件通常没有适当的文档资料。  6)软件成本在计算机系统总成本中所占比例逐年上升。 7)软件开发生产率提高的速度远跟不上日益增长的软件需求。

9. 什么是α;测试和β测试?

答:α测试是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件产品(称为α版本)进行测试,试图发现错误并修改。β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值