软件工程复试面试问题总结(一)_东华大学软件工程复试问题重要程度汇总-程序员宅基地

技术标签: 复试  笔记  软件工程  

软件=程序+数据+系列文档

软件危机是什么?

软件危机是指软件在开发维护的过程中出现的一系列严重的问题。
两个问题:

一是如何开发软件,如何满足对软件日益增长的需求。

二是如何维护数量不限已经膨胀的已有软件

软件危机的表现


软件的开发成本和进度估计不准确。
用户对已经开发出来的软件不满意。
软件没有合适的文档资料。
软件的成本在公司的总成本中逐年上升。
软件产品的质量常常不可靠。
软件常常是不可维护的。

软件危机出现的原因


一是指软件生产自身存在的复杂性。
二是指与软件开发过程中使用的方法和技术有关

软件工程?

采用工程概念原理技术方法开发维护软件,把经过时间考验而验证正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济的开发处高质量的软件并有效地维护它

软工方法学三要素是什么?

软工方法学三要素:

1方法(指的是开发方法)

2、工具(支持方法的工具)

3过程(管理过程)

软件的生命周期?

软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期。软件生存周期包括:

(1)问题定义:弄清"用户需要计算机解决什么样的问题”,提出"系统目标和范围的说明“,提交用户审查和确认。

(2)可行性分析:把待开发系统的目标以明确的语言描述出来,并从经济、技术、法律等多个方面进行可行性分析。

(3)需求分析:弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。

(4)开发阶段设计、实现(完成源程序的编码)、测试

(5)维护:改正性维护(由于开发测试的不彻底、不完全),适应性维护(适应环境变化),完善性维护(使用过程中提出的一些建设性意见),预防性维护(改善软件系统的可维护性和可靠性)。

软件开发模型有哪些?

<**瀑布模型**>

思想:软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落

优点:1.奠定了软件工程方法的基础;

      2.流水依赖,便于分工协作;

      3.推迟物理实现,易于修改文档,有复审质量保证;

不足:与用户见面晚,成功率低,一般为25%

适用范围:适用与系统要求明确的系统,各种应用软件的开发均可适用

<**快速原型模型**>

思想:软件开发人员以用户需求出发快速开发一个原型,以便向用户展示软件系统应有的部分或全部的功能和性能,在征求用户对原型的评价意见后,进一步使需求精确化、完全化,并据此改进、完善原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达到一致的理解位置

优点:比瀑布模型更符合人们认识事物的过程和规律,使一种较适用的开发框架

适用:适用于那些不能预先确切定义需求的软件系统的开发

<**渐增模型**>

次开发一个模块,当这个模块客户满意了之后,才进行下一个模块的开发。所以产品是以一次一个构建的方式开发的

<**螺旋模型**>

瀑布模型原型模型结合

四部分组成:制定计划、风险分析、实施开发、客户评估

适用:需要具有相当丰富的风险评估经验和专门知识,价格昂贵,适用大型软件的开发

<**喷泉模型**>

面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型

<**V模型**>

通过开发测试同时进行的方式来缩短开发周期

极限编程是什么?

极限编程(简称XP)是由KentBeck在1996年提出的,是一软件工程方法学,是敏捷软件开发中可能是最富有成效的几种方法学之一。

“Extreme”(极限)是指,对比传统的项目开发方式,XP强调把它列出的每个方法和思想做到极限、做到最好

极限编程以五种基本方式改进软件项目; 沟通,简单,反馈,尊重和勇气。极端程序员经常与他们的客户和程序员沟通。他们保持设计简洁。他们通过从第一天开始测试他们的软件获得反馈。他们尽早将系统交付给客户,并按照建议实施变更。每一个小小的成功都会加深对每个团队成员独特贡献的尊重。有了这个基础,Extreme程序员就能够勇敢地响应不断变化的需求和技术。

敏捷开发是什么?

敏捷开发(scrum)是一种软件开发的流程,强调快速反应快速迭代价值驱动

敏捷开发用户的需求进化为核心采用迭代、循序渐进的方法进行软件开发。

优点:

  1. 敏捷开发的高适应性,以人为本的特性。
  2. 更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。

缺点:

  1. 由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

内聚和耦合的含义

(1)内聚指块内联系,即模块的功能强度的度量;

    在模块划分时,要遵循“一个模块,一个功能”的原则,尽可能模块达到功能内聚。

(2)耦合:指块间联系,即软件系统结构中各模块间相互联系的紧密程度的度量。

若模块间存在耦合,应尽量使用数据耦合,少用控制耦合,慎用或者有控制地使用公共耦合,并限制公共耦合的范围,尽量避免内容耦合。

高内聚低耦合的系统具有更好的重用性、维护性、扩展性,可以更高效地完成系统的维护开发。

黑盒测试和白盒测试

1、黑盒测试把程序看作一个黑盒子,完全不考虑程序的内部逻辑结构和内部特性。它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称为功能测试基于规格说明书的测试

  黑盒测试方法:等价类划分法、边界值分析法、错误推测法、因果图法、功能图法和接口测试法

2、白盒测试检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试

是把测试对象看成一个玻璃盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计测试用例对程序所有的逻辑路径进行测试,通过在不同点检查程序的状态,确定实际状态是否与预期一致。白盒测试又称为结构测试基于程序的测试

白盒测试主要包含六种测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

软件维护的困难?

软件维护工作的困难性表现在一下几个方面:

    1、理解别人写的程序困难,困难程度随软件配置成分减少而迅速增加;

    2、要维护的软件往往没有合适的文档或资料不全;

    3、绝大多数软件设计时没有考虑将来的修改;

    4、软件维护不是一项吸引人的工作;

    5、软件人员经常流动,维护不能依靠原开发人员;

    6、追踪软件的建立过程非常困难,或根本做不到。

软件工程方法学一般有哪两种?

结构化方法学(又称为生命周期方法学):强调自顶向下顺序完成软件开发的任务。

结构化方法学中有三种基本控制结构:1.顺序2.选择3.循环

面向对象方法学:量模拟人类习惯的思维方式去开发。

简述结构化分析、设计的要点

  结构化分析方法适用于数据处理类型软件的需求分析。

  其要点是 “自顶向下” 地开发系统,由整体到各组成部分,由表及里,由抽象到具体,逐步求精

  (1)模块化

  (2)自顶向下

  (3)上层模块分解为下层模块,有三种不同的结构形式:即顺序结构、选择结构、循环结构。

面向对象的基本概念

(1)对象:对象是人们要进行研究的任何事物。从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

(2)类:类是具有相同或相似性质的对象的抽象。类的具体化就是对象,也可以说类的实例是对象。

(3)消息对象之间进行通信的结构叫做消息。消息包含接收对象去执行某种操作的信息。

(4)方法:类中操作的实现过程叫做方法。一个方法有方法名、参数、方法体。

面向对象和面向过程软件工程有哪些区别

(1)面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现。

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

(2)面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现。

        面向对象是把事情看成是一个个小的对象组成的,这些对象之间相互关系,构成了整个项目。在面向对象的思想中,万物皆对象。而“类”,就是对象的抽象或者说是概括。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45452617/article/details/123480098

智能推荐

阿里百秀移动端首页-程序员宅基地

文章浏览阅读543次,点赞12次,收藏7次。bootstrap在设置字体图标时,通过引用相关字体图标的类名,就可直接在该元素前面添加一个伪元素放至字体图标,调整字体图标的位置时直接设置该元素的before伪元素即可。超小屏幕时阿里百秀图片隐藏,被替代为文字,给图片添加类名hidden-xs即可,事先准备好一个盒子来装文字,再让该文字只在超小屏幕显示即可,即添加类名visible-xs。,里面的a元素宽高撑满,a里的元素宽高也撑满,切记不可设置margin,设置li的宽度时,左边为50%,右边为25%,若使用margin则会把右边的图片挤下去。

百度最近K淘客站,K的挺凶啊!_淘客站百度-程序员宅基地

文章浏览阅读2.3k次。很多之前收录几万,几十万的站,都被K的不行了。。。不知道收入是不是也影响很大呢。。看来靠百度SEO还是不太靠谱啊!还是要靠内容!_淘客站百度

JUC高并发与线程安全(2)_juc怎么实现的线程安全-程序员宅基地

文章浏览阅读94次。6、countDownLatch/CyclicBarrier/semaphorecountDownLatch初始化一个数值,阻塞线程知道倒数到0触发事件class countDownLatchDemo { public static void main(String[] args) throws InterruptedException { CountDownLat..._juc怎么实现的线程安全

一种嵌入式软件的协议测试方法和装置_如何测试嵌入式软件的协议-程序员宅基地

文章浏览阅读129次。设备组成Etest_CPS系统主要由硬件部分与软件部分组成。硬件部分由PCI机箱、PCI控制器以及各种PCI接口板卡组成。软件部分由测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块等主要软件模块以及曲线数据生成、CRC插件生成与诊断、测试数据记录与查看、应用协议生成工具、应用协议模板管理、测试报告生成等系列工具组成。各模块主要功能(1)硬件部分Etest硬件部分采用标准的机柜形式,主机采用PCI工业控制计算机,各类接口板块采用PCI总线的接口板卡。主要硬件部分的指_如何测试嵌入式软件的协议

论文笔记《Knowledge Enhanced Contextual Word Representations》-程序员宅基地

文章浏览阅读3.8k次,点赞6次,收藏9次。Motivition作者的出发点有几个:尽管BERT这种预训练模型取得了state-of-art的成绩。但是、因为他们没有包含真实世界的实体,所以导致这些模型也很难覆盖真实世界的知识。没有实体没有知识怎么办呢?Knowledge bases、知识库有。知识库不仅拥有丰富的高质量、人类产生的知识,而且他们包含与原始文本中互补的信息,还能够编码事实性的知识。所以用知识库可以解决因不频繁出现但..._knowledge enhanced contextual word representations

百度地图 生成静态缩略图_百度地图 sdk 缩略图-程序员宅基地

文章浏览阅读296次。【代码】百度地图 生成静态缩略图。_百度地图 sdk 缩略图

随便推点

Zeta--S3 Linux抓取一帧YUV图像后使用硬件编码器编码成H.264-程序员宅基地

文章浏览阅读389次。1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <getopt.h> 5 #include <fcntl.h> 6 #include <unistd.h> 7 #include &..._yuv jpg linux 硬件编码器

macOS Big Sur:快速入门的50个使用技巧_macos big sur右键-程序员宅基地

文章浏览阅读1.6k次。MacOS Big Sur 是 Mac 目前的最新操作系统,它为您的计算机带来了许多新功能,包括完全重新设计的用户界面,该界面借鉴了 iPhone 和 iPad 上人们已经熟悉的功能。为了大家快速上手macOS Big Sur,给大家带来了快速入门的50个使用技巧。1.安装助手的可访问性首次设置macOS时,设置向导中有一个新步骤,可让您有机会在登录之前配置各种辅助功能。在早期版本的macOS中,您可以在设置向导中启用的唯一可访问性选项是VoiceOver,因此对于发现可访问性功能有用的用户来说,_macos big sur右键

数学建模python和matlab_数学建模可以用Python吗-程序员宅基地

文章浏览阅读906次。数学建模中,大多数人都在用MATLAB,但MATLAB不是一门正统的计算机编程语言,而且速度慢还收费,最不能忍受的就是MATLAB编辑器不支持代码自动补全。python对于数学建模来说,是个非常好的选择。python中有非常著名的科学计算三剑客库:numpy,scipy和matplotlib,三者基本代替MATLAB的功能,完全能够应对数学建模任务。下面列举几个python解决数学建模的例子:线性..._数学建模可以混用python和matlab吗

Windows无法安装到这个磁盘。选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装到GPT磁盘。_windows 无法安装到这个磁盘。 选中的磁盘具有 mbr 分区表。在 efi 系统上,windo-程序员宅基地

文章浏览阅读6.5w次。1. 使用UtralISO制作win10 64位的启动盘2. 在SSD的磁盘上安装win10出现了错误。Windows无法安装到这个磁盘。选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装到GPT磁盘。3. 解决办法(1)首先选择的U盘启动必须是常规的U盘启动,而不能是UEFI的U盘启动,要不然下边的设置都不生效(2)进入BIOS,将Stor_windows 无法安装到这个磁盘。 选中的磁盘具有 mbr 分区表。在 efi 系统上,window

Numpy基础数据结构_numpy的数据结构-程序员宅基地

文章浏览阅读397次。NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成:① 实际的数据② 描述这些数据的元数据。_numpy的数据结构

msyql on DUPLICATE key UPDATE使用_on duplicate key update duplicate entry '627880338-程序员宅基地

文章浏览阅读641次。msyql on DUPLICATE key UPDATE使用类似oracle中的merge,如果在插入时,某条记录已经存在,那么就执行update操作,如果不存在,则执行insert操作。需要注意的是,表必须有主键。下面有一个例子。执行下面的语句:insert into student_class VALUES(1,'小cc',1) on DUPLICATE ke_on duplicate key update duplicate entry '627880338445574144' for key 'primar

推荐文章

热门文章

相关标签