软件工程问的面试题
软件工程知识点
-
黑盒测试和白盒测试?
白盒测试是把测试对象看见透明的。也就是代码是透明的。我们知道程序的内部代码。要根据程序的代码设计更尽可能多的测试用例来测试。
它的优点是代码覆盖率特别高,他的缺点就是覆盖所有的代码路径的难度特别大,业务功能可能覆盖不全,测试的开销大。
一般白盒是配合黑盒所使用。
黑盒测试是把测试的对象看成一个黑盒子。他是站在用户的角度上来测试的。只根据需求规格说明书。检查程序的功能是否符合它的功能说明。检查非功能性需求是否满足设计要求?。 -
高内聚低耦合?
高内聚低耦合师软件工程中的概念,是面向对象编程的一种设计。
内聚它是指内部间聚集,关联的程度。高内聚则是要高度的聚集,最好就是做到功能内聚,模块内的各组成部分都是为了完成同一个功能而存在,就比如说JDK中的Math类,他就是为了完成数学运算而设计的类。内聚性高它的可靠性,可重用性,可读性都会提高。
耦合是指模块间的关联程度,我们设计要减量减低各个模块间的耦合程度,因为一旦各模块耦合程度高,那么对程序的维护就会非常困难,牵一发动全身。
-
软件测试有哪些?软件测试的作用?
静态测试,动态测试,黑盒测试,白盒测试。(展开了也要会讲)
作用:软件测试就是检查实际输出和预期输出的一种审核,通过软件测试,我们可以尽早的发现软件的一些问题,减少损失,提升开发效率。
https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/327953?fr=aladdin
-
你所知道管理软件?
ERP企业资源计划,OA协同管理软件
-
Java中各种数据类型占用的字节数?
byte 1个,short 2个,char 2个,int 4 个,float 4个,long 8个,double 8个,boolean 1位
-
数据结构,队列和栈的区别
栈是一种后进先出的数据结构。
队列则是一种先进先出的数据结构。
-
解释一下UML?
统一建模语言,UML是面向对象设计的建模工具,独立于任何具体的程序设计语言。
UML采用一组图形符号来描述软件模型,这些图形符号简单、直观和规范。开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。
一般用UML画用例图,类图,对象图,状态图等。
-
图灵奖是什么?
图灵奖被称为计算机界 的诺贝尔奖,专门奖励那些对计算机事业做出重要贡献的个人,是为了纪念计算机科学的先驱图灵而设立的。中国只有姚期智获得过此殊荣。
-
面向对象和面向过程的区别?
面向对象呢就是分析解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候一个一个一次调用就可以了。
面向对象是把构成问题的事物分解为各个对象,建立对象的目的不是为了完成某个步骤,而是为了描述某个事物在解决步骤中的行为。
举个例子。人吃午饭,用面向过程的方法解决就是先去拿筷子,再拿碗,然后去盛饭,再夹菜,最好吃饭。而面向过程,实现抽象对象,抽象出,人,餐具,食物,然后调用人拿餐具去吃饭。
优缺点:
面向过程的开发,性能较高,因为不需要实例化对象,缺点是没有面向对象容易维护和复用。
面向对象则相反。性能稍有差距,但是容易维护和扩展
-
软件的生命周期?
软件的生命周期是指软件的产生到报废的过程。
分为三个阶段:
1.软件定义阶段:软件的定义,可行性分析,需求分析
2.软件开发阶段:系统设计,软件开发,软件测试
3.软件的运行和维护:软件运行,软件维护。
-
什么是检索?检索的过程是什么?
-
Linux下、常用命令?
文件相关:mkdir,touch,rm,mv,cp,ls,find
网络相关:ping,ipconfig,netstat
数据库:use ,mysql -u -p,insert等常见的mysql命令 -
离散数学与计算机技术的联系?
-
生命周期模型,1.瀑布模型 2,快速原型模型,3迭代模型