软件工程试题

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


(一),选择题(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

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值