软件工程面试

一、软件分析:是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言表达出来的过程,基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。


二、软件设计(概要设计和详细设计):主要任务就是将软件分解成模块使之能实现某个功能的数据和程序说明、可执行程序的程序单元。

数据流图——


三、软件编码(单元测试):指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的”源程序清单”。
四、软件测试:目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。

五、软件维护:指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。


IPO图

瀑布模型

测试覆盖

判定表

PAD图

SA 方法

DFD

三、简答题(简要回答下列问题,每小题4分)

1、什么是软件工程目标和内容是什么/p>

软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程内容:包括开发技术和开发管理两个方面。

2、软件开发中有哪几种过程模型些适用于面向对象的软件开发/p>

软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。

其中喷泉模型、统一软件过程适用于面向对象的软件开发。

3、什么是结构分析方法方法使用什么描述工具/p>

结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。

4、什么是软件概要设计阶段的基本任务是什么br>把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。

基本任务:

⑴设计软件系统结构

⑵进行数据结构及数据库的设计

⑶编写概要设计的文档

⑷评审

5、软件维护有哪些内容/p>

(1)校正性维护。在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。

(2)适应性维护。为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。

(3)完善性维护。为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。

(4)预防性维护。为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。

6、软件测试要经过哪些步骤些测试与软件开发各阶段之间有什么关系/p>

软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。

单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。

集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。

确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。

系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。

7、什么是软件生存周期有哪几个活动/p>

软件生存周期:一个软件从提出开发要求开始直到该软件 废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

8、衡量模块独立性的两个标准是什么表示什么含义/p>

内聚和耦合。

内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。

耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。

9、什么是结构分析方法构化分析方法通过哪些步骤来实现/p>

结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。

实现的步骤:⑴了解当前系统的工作流程,获得当前系统的物理模型。 ⑵抽象出当前系统的逻辑模型。 ⑶建立目标系统的逻辑模型。 ⑷作进一步补充和优化。

1、什么是需求分析求分析阶段的基本任务是什么/p>

需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

基本任务:

⑴问题识别

⑵分析与综合,导出软件的逻辑模型

⑶编写文档

11、什么样是”事物流”么是”变换流”/p>

数据流图(DFD)一般可分为”变换流”,”事物流”两种。

换流”:由输入﹑输出﹑变换(或称处理)三部分组成,是一顺序结构。

物流”:它的某个加工,分离成许多发散的数据流,形成许多加工路径,并且根据输入值选择其中一个路径来执行。(这人加工称为事务处理中心)

12、单元测试有哪些内容/p>

单元测试主要针对模块的以下五个基本特征进行测试:

(1)模块接口

(2)局部数据结构

(3)重要的执行路径

(4)错误处理

(5)边界条件

13、什么是软件生存周期模型哪些主要模型/p>

生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。

主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。

14、软件设计的基本原理包括哪些内容/p>

⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成整体,可以满足问题的要求。

⑵抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。通过抽象确定组成软件的过程实体。

⑶信息隐蔽:将模块实现自身功能的细节与数据”隐蔽”起来。模块间仅交换为完成系统功能所必须的信息。

⑷模块独立性:每个模块只完成系统要求的独立的子功能。

15、结构化程序设计的基本要点是什么/p>

主要有三个:

1、采用自顶向下、逐步求精的程序设计方法

2、使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。

3、主程序员组的组织形式。

16、详细设计有哪几种描述方法/p>

详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。

17、单元测试中采用什么方法/p>

测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。桩模块则用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。

18、什么是软件配置管理么是基线/p>

软件配置管理,简称SCM(Software Configuration Management),是指一组管理整个软件生存期各阶段中变更的活动。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高生产率。

基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。

19、简述文档在软件工程中的作用/p>

文档在软件工程中的作用如下:

(1)提高软件开发过程的能见度

(2)提高开发效率

(3)作为开发人员阶段工作成果和结束标志

(4)记录开发过程的有关信息便于使用与维护;

(5)提供软件运行、维护和培训有关资料;

(6)便于用户了解软件功能、性能。

2、软件工程三要素之间的关系/p>

软件质量是软件工程的生命线,软件工程以质量保证为基础。

质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。

软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。

方法支撑过程和工具,过程和工具又促进方法学的研究。

21、说明面向对象的特征/p>

面向对象的特征是:

(1)对象唯一性。每个对象都有自身唯一的标识,在对象生存期中,其标识不变,不同的对象不能有不同的标识。

(2)分类性。是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类

(3)继承性。是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

(4)多态性。是指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。

22、简述”变换分析”设计步骤。

⑴确定变换中心,逻辑输入和输出。

⑵设计软件结构的顶层和第一层–变换结构。

⑶设计中﹑下层模块,对第一层的模块自顶向下分解。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年6月3日
下一篇 2018年6月3日

相关推荐