软件工程试题(作业)

…衆ロ難τιáo~ 提交于 2020-01-07 08:12:05

如何评测软件工程知识技能水平?

我的CSDN:https://blog.csdn.net/P71720/article/details/103742773

(一),选择题(5*2)

(1) 需求分析中开发人员要从用户那里了解( A )。    
A.软件做什么  B.用户使用界面 
C.输入的信息  D.软件的规模

(2) 软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( C )。
A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段
答案解析:在结构化的软件开发中,一般情况下,可能需要占用的人数最多的阶段是在软件编程的阶段,但从工作量上来说,在软件的需求分析、定义及软件的测试和维护阶段需要的工作量更多,用软件开发计划中的40-20-40原则,即可说明这一点,在软件需求分析和定义阶段,虽然工作量比软件编程多,但因为软件的需求分析和定义对开发人员的素质要求比较高,所以占用的人员并不需要太多;同时由于软件维护的周期比较长,所以其耗的工作量比软件编程多,但一般来说它占用的人员并不比软件编程阶段占用的人员多,所以答案为C。

(3) 当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为( D ) 。
A、数据耦合    B、公共耦合
C、标记耦合    D、内容耦合

(4) UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )。(商汤科技2018秋招嵌入式软件工程师笔试)
A.基于瀑布模型的结构化方法
B.基于需求动态定义的原型化方法
C.基于对象的面向对象的方法
D.基于数据的数据流开发方法

答案解析:UML是统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。UML是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。UML最适于数据建模,业务建模,对象建模,组件建模。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。IBM的Rational Rose和MS的Visio都是UML工具。

(5) 数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,( B )是常采用的。
①自顶向下 ②自底向上 ③分层绘制 ④初步求精
A.全是   B.①③和④   C.②③和④    D.①和③

(二),名词解析(5*4)

1,设计模式
答案解析:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
2,模块化
答案解析:模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。
3,实现视图
答案解析:开发视图也称为模块视图,在UML中被称为实现视图,它主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,例如,软件开发的容易性、软件复用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统I/O关系的模型图和子系统图来描述。
4,功能内聚
答案解析:功能内聚指模块内所有元素共同完成一个功能,缺一不可,因此模块不能再分割。
5,多态
答案解析:多态指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

(三), 简答题(10*4)

1, 简述在测试中采用自顶向下集成和自底向上集成的优缺点。(出自百度文库)
答案解析:自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。缺点是在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。

2, 一般而言,衡量某种程序语言是否适合于特定的项目,应考虑下面一些因素?
答案解析:算法和计算复杂性; 软件运行环境; 用户需求中关于性能方面的需要; 数据结构的复杂性; 软件开发人员的知识水平; 可用的编译器与交叉编译器。

3,传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。(出自百度文库)
答案解析:传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早期的错误直到开发晚期才能被发现,开发的风险较大。

4, 软件危机是什么?请给出解决途径。(原创)
答案解析:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。软件工程学从硬件工程和其他人类工程中吸收了许多成功的经验,明确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用的技术和方法,并应用于软件工程实践,从而缓解软件危机。

(四),综合题(15*2)

1,,根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。(出自百度文库)

解答:

2,画出下面程序流程图所对应的程序流图,并计算其环形复杂度V(G)。(出自百度文库)

答案:

(1)

(2),计算其环形复杂度:V(G)=E –N +2=13 –10 +2=5 

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!