软件工程问的面试题

软件工程知识点

  1. 黑盒测试和白盒测试?
    白盒测试是把测试对象看见透明的。也就是代码是透明的。我们知道程序的内部代码。要根据程序的代码设计更尽可能多的测试用例来测试。
    它的优点是代码覆盖率特别高,他的缺点就是覆盖所有的代码路径的难度特别大,业务功能可能覆盖不全,测试的开销大。
    一般白盒是配合黑盒所使用。
    黑盒测试是把测试的对象看成一个黑盒子。他是站在用户的角度上来测试的。只根据需求规格说明书。检查程序的功能是否符合它的功能说明。检查非功能性需求是否满足设计要求?。

  2. 高内聚低耦合?

    高内聚低耦合师软件工程中的概念,是面向对象编程的一种设计。

    内聚它是指内部间聚集,关联的程度。高内聚则是要高度的聚集,最好就是做到功能内聚,模块内的各组成部分都是为了完成同一个功能而存在,就比如说JDK中的Math类,他就是为了完成数学运算而设计的类。内聚性高它的可靠性,可重用性,可读性都会提高。

    耦合是指模块间的关联程度,我们设计要减量减低各个模块间的耦合程度,因为一旦各模块耦合程度高,那么对程序的维护就会非常困难,牵一发动全身。

    https://baike.baidu.com/item/%E9%AB%98%E5%86%85%E8%81%9A%E4%BD%8E%E8%80%A6%E5%90%88/5227009?fr=aladdin

  3. 软件测试有哪些?软件测试的作用?

    静态测试,动态测试,黑盒测试,白盒测试。(展开了也要会讲)

    作用:软件测试就是检查实际输出和预期输出的一种审核,通过软件测试,我们可以尽早的发现软件的一些问题,减少损失,提升开发效率。

    https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/327953?fr=aladdin

  4. 你所知道管理软件?

    ERP企业资源计划,OA协同管理软件

    https://baike.baidu.com/item/%E4%BC%81%E4%B8%9A%E8%B5%84%E6%BA%90%E8%AE%A1%E5%88%92/25984?fromtitle=ERP&fromid=22997&fr=aladdin

  5. Java中各种数据类型占用的字节数?

    byte 1个,short 2个,char 2个,int 4 个,float 4个,long 8个,double 8个,boolean 1位

  6. 数据结构,队列和栈的区别

    栈是一种后进先出的数据结构。

    队列则是一种先进先出的数据结构。

  7. 解释一下UML?

    统一建模语言,UML是面向对象设计的建模工具,独立于任何具体的程序设计语言。

    UML采用一组图形符号来描述软件模型,这些图形符号简单、直观和规范。开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。

    一般用UML画用例图,类图,对象图,状态图等。

    https://baike.baidu.com/item/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80/3160571?fromtitle=UML&fromid=446747&fr=aladdin

  8. 图灵奖是什么?

    图灵奖被称为计算机界 的诺贝尔奖,专门奖励那些对计算机事业做出重要贡献的个人,是为了纪念计算机科学的先驱图灵而设立的。中国只有姚期智获得过此殊荣。

  9. 面向对象和面向过程的区别?

    面向对象呢就是分析解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候一个一个一次调用就可以了。

    面向对象是把构成问题的事物分解为各个对象,建立对象的目的不是为了完成某个步骤,而是为了描述某个事物在解决步骤中的行为。

    举个例子。人吃午饭,用面向过程的方法解决就是先去拿筷子,再拿碗,然后去盛饭,再夹菜,最好吃饭。而面向过程,实现抽象对象,抽象出,人,餐具,食物,然后调用人拿餐具去吃饭。

    优缺点:

    面向过程的开发,性能较高,因为不需要实例化对象,缺点是没有面向对象容易维护和复用。

    面向对象则相反。性能稍有差距,但是容易维护和扩展

    https://blog.csdn.net/jerry11112/article/details/79027834

  10. 软件的生命周期?

    软件的生命周期是指软件的产生到报废的过程。

    分为三个阶段:

    1.软件定义阶段:软件的定义,可行性分析,需求分析

    2.软件开发阶段:系统设计,软件开发,软件测试

    3.软件的运行和维护:软件运行,软件维护。

  11. 什么是检索?检索的过程是什么?

  12. Linux下、常用命令?
    文件相关:mkdir,touch,rm,mv,cp,ls,find
    网络相关:ping,ipconfig,netstat
    数据库:use ,mysql -u -p,insert等常见的mysql命令

  13. 离散数学与计算机技术的联系?

  14. 生命周期模型,1.瀑布模型 2,快速原型模型,3迭代模型

posted @ 2020-04-23 10:30  li33的博客  阅读(2528)  评论(0编辑  收藏  举报