软件工程面试基本概念

1.软件危机
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

2.软件生命周期
软件生命周期是指软件从开始研制到最终被废弃所经历的各个阶段。在不同的阶段里,由不同的组织和人员执行不同的任务,需要消耗不同的资源。
生命周期常见的有:瀑布模型、V模型、敏捷开发模型。
阶段:需求分析->软件设计->程序编码->软件测试->运行维护

3.软件过程模型
所谓软件过程模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。一个错误模型的选择,将迷失我们的开发方向。
常见过程模型有: 瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、Rational统一模型。

4.结构化程序设计
结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。

5.黑盒测试
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

6.白盒测试
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

7.模块独立性
模块独立性是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。

8.软件工程
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

9.软件质量

  1. 概括地说,软件质量就是“软件与明确的和隐含的定义的需求度相一致的程度”。
  2. 具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含知特征的程度。

10.集成测试
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

11.软件维护
软件维护(Software maintenance)是一个软件工程名词,是指在软件产品发布后,因修正错误、提升性能或其他属性而进行的软件修改。

12.回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。

13.用例
用例(英语:use case),或译使用案例、用况,是软件工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。

14.参与者
所有参与到软件项目中的人员称为参与者。把项目或系统的一组职责称为角色。一个角色与一组任务联系在一起,且被派给一个参与者。一个参与者能充当多个角色。

15.给出模块内聚的定义,并举例说明3 种模块内聚类型。
模块内聚是模块内各处理成分之间的相互关联。作为模块化度量指标之一,它是指导人们进行模块结构设计的重要概念。模块内聚可分为:

  1. 偶然内聚:即一个模块内各成分之间毫无关系,则称为偶然内聚。
  2. 逻辑内聚:即把几个逻辑上相关的功能放在一个模块中,则称为逻辑内聚。
  3. 时间内聚:即如果一个模块完成的功能必须在同一时间内执行,则称为时间内聚。
  4. 过程内聚:即如果一个模块内部的处理成分相关,且这些处理成分必须以特定的次序执行,则称为过程内聚。
  5. 通信内聚:即如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
  6. 顺序内聚:即如果一个模块的各个处理成分和同一功能相关,且一个成分的输出作为另一成分的输入,则称为顺序内聚。
  7. 功能内聚:即模块的所有成分对于完成单一功能都是基本的,则称为功能内聚。

16.状态图
状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。

17.软件配置管理
软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

18.软件的可靠性
软件可靠性 (software reliability )是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;规定功能是指为提供给定的服务,软件产品所必须具备的功能。软件可靠性不但与软件存在的缺陷和(或)差错有关,而且与系统输入和系统使用有关。软件可靠性的概率度量称软件可靠度。

19.总体设计
系统总体结构设计是要根据系统分析的要求和实际情况来对新系统的总体结构形版式和可利用的组件进行大致的设计,是宏观上的规划。在总体设计阶段应该将系统的物理元素划分出来——权程序、文件、数据库、人工过程和文档

20.软件测试和调试的区别
软件测试是软件测试人员和程序员都参与的一项工作,是贯穿整个生命周期的, 只需要发现软件的错误,而软件调试主要是程序员自己参与,对程序(设计、编 码)进行修改、排除错误,主要是在开发阶段。

21.可行性研究的目的
可行性研究的基本任务,是对新建或改建项目的主要问题,从技术经济角度进行全面的分析研究,并对其投产后的经济效果进行预测,在既定的范围内进行方案论证的选择,以便最合理地利用资源,达到预定的社会效益和经济效益。

22.简述三种面向对象模型的作用
对象模型:表示了静态的结构化的系统数据性质,描绘了系统的静态结构,抄从客观世界实体的对象关系角度来描对象 .
动态模型:该模型描述了系统百的控制结构,它表示了瞬间的,行为化的系统的系统控制性质,它关心的是系统的挖掘度及操作的执行顺序,序幕宏观世界从对象的事件和状态的角度出发,表现知了对象的相互行为.
功能模型:描述了系统的所有计算,指出发生的时间,事件和道客观.

23.数据字典
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。

24.详细设计
详细设计包括业务对象设计、功能逻辑设计、数据库设计和界面设计等工作。详细设计是系统实现的依据,需要考虑所有的设计细节。

25.什么是需求分析,需求分析的主要作用是什么
需求分析:开发来人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,源再由需求定义转换到相应的需求规格说明的过程。
基本任务:

  1. 问题识别:双方确定对问题的综合度需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。
  2. 分析与综合,导出软件的逻辑模型
  3. 编写知文档:包括编写"需求规格说明书",“初步用户使用手册”,“确认测试计划”,"修改完善软件开发计划。

26.就程序设计语言的工程特性而言,对程序编码有哪些要求?

  1. 可移植性
  2. 开发工具的可利用性
  3. 软件的可重用性
  4. 可维护性

27.用例和场景之间的关系
用例与场景的关系)就像类与实例的关系,即用例是场景的抽象,场景是用例的具象化实现

28.顺序图和协作图的区别
顺序图与协作图都表示对象之间的交互作用,只是它们的侧重点有所不同:

  1. 顺序图描述了交互过程中的时间顺序,但没有明确地表达对象之间的关系;协作图描述了对象之间的关系,但时间顺序必须度从顺序号获得
  2. 两个图中所使用的建模元素,也各有特点。顺序图中有生命周期线和控制焦点,协作图中没有;协作图中有路径,协作图中的消息必须要有消息顺序号,顺序图中没有路径,也可内以没有消息顺序号
  3. 和协作图相比,顺序图在表示算法,生命周期,具有多线程特征的对象等方面相对来说更容易一些,但在表示并发控制流方面困难一些。
  4. 两种图的语义是等价的,可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。但两者不能完全代替。顺序图能表示协作图不能表示的信息,协作图也同理。

软件工程考研复试基本概念相关推荐

  1. 软件工程考研复试速成 - 知识点精炼 - 背诵版

    针对于考研复试 软件工程 的面试问答,一般都是抽查重点的概念问题,所以本文对软件工程知识点进行重点的精炼,力求节省准研究生们的复习时间.   写这篇博客也是因为小编也在准备复试,对学习的网课进行笔记梳 ...

  2. 海南大学软件工程考研复试经验分享

    近期初试考试结束,由于不少同学咨询我考研复试应该如何准备?我自己考研复试成绩是5/120,排名前五,获得新生入学一等奖学金.下面我也想把自己的经验分享给大家,希望可以帮助到大家. 其实我是个人情况是属 ...

  3. 西电计算机学院(原软件学院)软件工程考研复试

    ①:进行一个自我介绍(中文或英文),若英文水平好的建议用英文,这样更能引起老师对你的注意. ②:介绍完成后,在你的前面有五张纸条,上面分别是五段专业英语文章,你去随便抽一张,抽到以后,先大声朗读一遍, ...

  4. 计算机复试上机辅导班,软件工程考研辅导班:考研院校2020年计算机/软件工程复试经验总结...

    2020 年考研笔试已经过去了,相信考研的读者现在在期待成绩公布,过线之后,还要面对复试,那现在该如何准备复试的相关内容呢? 下面这篇文章是读者写的,她对于考研复试有着自己独到的见解,我大概看了一下, ...

  5. 2023最新广西大学计算机电子信息考研复试之计算机网络和软件工程 828数据结构与程序设计上岸冲刺复试宝典(复试版/复试资料)

    2023最新广西大学计算机电子信息考研复试之计算机网络和软件工程 828数据结构与程序设计上岸冲刺复试宝典(复试版/复试资料) 适用专业:计算机科学与技术(学硕) 计算机技术(专硕).人工智能(专硕) ...

  6. 考研复试——软件工程笔记归纳+思维导图

    考研复试的软件工程重点归纳 原文记录在我的幕布https://mubu.com/doc/3C3pXXIGg0上 里面查看观感更好 思维导图在最后,较为庞大.同样推荐到链接里面查看.点击查看思维导图即可 ...

  7. 东北大学计算机考研复试时软件工程的一些总结(一)

    东北大学计算机考研复试时软件工程的一些总结(一) 第一章 软件工程概述 第二章 软件开发过程和活动 第一章 软件工程概述 1.1 软件开发有哪些特点? 难以描述性.缺乏可见性.复杂性.变化性.风险性. ...

  8. 华科计算机考研2022年分数线,2022年华中科技大学软件工程考研分数线、参考书、上岸前辈初复试经验...

    原标题:2022年华中科技大学软件工程考研分数线.参考书.上岸前辈初复试经验 历年录取分数线: 2019年:单科分数线60,60,90,90,总分要求360分: 2018年:单科分数线55,55,90 ...

  9. 武汉大学计算机学院参考书目,2020武汉大学计算机与软件工程考研初试科目、参考书目及复试详情...

    原标题:2020武汉大学计算机与软件工程考研初试科目.参考书目及复试详情 本文将由新祥旭徐老师全方位的对武汉大学计算机专业考研进行解析,主要有以下几个板块:学院介绍,专业情况介绍,2019录取情况分析 ...

最新文章

  1. Delphi中使用ListView和TreeView的Item中的Data可能被忽略的内存泄漏
  2. Python 析构方法__del__
  3. 如何找到SAP Fiori 应用里cache-control header是从后台何处设置的
  4. Prototype(原型原型链)
  5. 土地利用覆被变化的概念_【能源+气候】生物质能碳捕集与封存技术在气候变化下的减排潜力...
  6. android消息处理机制原理解析
  7. python 将图片旋转多个角度_用Python玩转PDF的各种骚操作
  8. 使用echarts来显示世界地图和全国地图,并且可以下钻层级
  9. 计算机Word更改表格中,教你修改Word文本表格
  10. C#输入分数自动成绩评级
  11. eclipse导入已存在工程报 Faceted Project Problem 错误
  12. Java线程状态详解
  13. IDEA的使用大全(快捷键、TomCat、Maven......)
  14. 实现 Google 第三方授权登录
  15. 武汉黑马培训python
  16. win11点击任务栏音量、无线、电池按钮无反应的解决过程
  17. 企业网站建设的要求及策划
  18. 远程访问Access数据库
  19. windows怎么禁用usb
  20. toLatin1 qt

热门文章

  1. Android内核开发:为什么刷机后系统第一次启动会很慢?
  2. VB6 mysql二进制读取,vb6关于VB以二进制(binary)方式读取文本内容
  3. mysql explain索引_mysql 索引+explain
  4. 基于stm32的蓝牙遥控智能小车_基于51用蓝牙控制小车(提高篇)
  5. python中使用什么获取两个集合的补集_python中求两个List的交集、并集和差集
  6. python设计选择题代码源_Python程序的设计试题库完整
  7. 学计算机应用基础学到了什么,2021年学习计算机应用基础心得体会-得范文网
  8. 03、了解自动配置原理笔记
  9. 计算机课程教改论文,计算机公共课教学改革论文
  10. php svn更改密码,svn 开启修改备注