软件工程知识点答案.docx

上传人:b****2 文档编号:23160683 上传时间:2023-05-08 格式:DOCX 页数:18 大小:28.81KB
下载 相关 举报
软件工程知识点答案.docx_第1页
第1页 / 共18页
软件工程知识点答案.docx_第2页
第2页 / 共18页
软件工程知识点答案.docx_第3页
第3页 / 共18页
软件工程知识点答案.docx_第4页
第4页 / 共18页
软件工程知识点答案.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

软件工程知识点答案.docx

《软件工程知识点答案.docx》由会员分享,可在线阅读,更多相关《软件工程知识点答案.docx(18页珍藏版)》请在冰豆网上搜索。

软件工程知识点答案.docx

软件工程知识点答案

软件工程知识点答案

时间

特点

程序设计

程序系统

软件工程

软件所指

程序

程序及说明书

程序,文档,数据

主要程序设计语言

汇编及机器语言

高级语言

软件语言

软件工作范围

程序编写

包括设计和测试

软件生存期

需求者

程序设计本人

少数用户

市场用户

开发软件的组织

个人

开发小组

软件工程知识点答案

软件规模

小型

中小型

大中小型

决定质量的因素

个人程序技术

小组技术水平

管理水平

开发

子程序,程序库

结构化程序设计

数据库,开发工具,开发环境。

工程化开发方法,标准和规范,网络和分布式开发,面向对象技术

维护责任者

程序设计者

开发小组

专职维护人员

硬件特征

价格高存储容量小

工作可靠性差

降价速度容量及工作可靠性有明显提高

大容量模型化及网络化方向发展

软件特征

完全不受重视

软件技术的发展不能满足需求,出现软件危机

开发技术有进步

2.软件工程的定义

软件工程的定义:

采用工程的概念、原理、技术和方法来计划、开发与维护软件,把经过

时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结

合起来,以较经济的手段获得能在实际机器上运行的可靠软件的一系列方法。

软件工程=工程技术+管理技术+技术方法

3.软件开发方法的模型

随意编程面向过程面向对象面向组件面向配置文件面向WebService

4.软件危机定义:

是计算机软件在它的开发和维护过程中所遇到的一系列严重问题

5.软件危机主要包含问题:

⑴如何开发软件,怎样满足对软件日益增长的需求;

⑵如何维护数量不断膨胀的已有软件。

6.软件危机的原因:

客观:

软件本身特点(软件的规模庞大、复杂性高)

⑵主观:

不正确的开发方法,软件开发和维护有许多错误的认识和作法。

(忽视需求分析;软件开发=程序编写;轻视软件维护)

7.软件危机的特征:

软件价格在整个项目投入中的比例不断升高

软件开发成本严重超标

软件开发周期大大超过规定日期

软件质量难于保证

软件修改,维护困难

失败的根本原因在于:

开发人员写出的东西达不到用户要求(人的问题

技术问题)

8.软件工程的原理:

⒈用分阶段的生命周期计划严格管理

不成功的软件项目中有一半左右是由于计划不周造成的。

⒉坚持进行阶段评审

软件的质量保证工作不能等到编码阶段结束之后再进行。

⒊实行严格的产品控制

在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。

⒋采用现代程序设计技术

采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。

⒌结果应能清楚地审查

根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得

所得到的结果能够清楚地审查。

⒍开发小组的人员应该少而精

⒎承认不断改进软件工程实践的必要性

不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。

9.软件生命周期:

软件定义,软件开发和运行维护

10.常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发(RAD)模型。

11.软件过程分类及各类内容:

基本过程:

生命周期原动力

支持过程:

辅助基本过程执行

组织过程:

建立控制和改进生命周期过程

12.软件过程的构造:

建立一个公共过程框架,其中定义了少量可用于所有软件项目的框架活动

给出各个活动的任务集合,使得框架活动能够活动能够适合于项目的特点和项目组的需求

保护伞活动,如软件质量保证等,它们独立于任何一个框架活动并将贯穿于整个过程

13.软件工程包括三要素:

方法、工具和过程。

14.软件工程过程的基本活动

⑴软件规格说明:

规定软件的功能及其运行的限制;

⑵软件开发:

产生满足规格说明的软件;

⑶软件确认:

确认软件能够完成客户提出的要求;

⑷软件改进:

为满足客户的变更要求,软件必须在使用的过程中改进。

15软件工程的原则:

抽象与自顶向下、逐层细化采用分层抽象的方法,有效控制软件开发的复杂性。

模块化把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。

信息隐蔽和数据封装将模块中的软件设计决策封装在模块内部,使得模

块实现与使用分离,有助于控制修改局部化。

抽象与自顶向下、逐层细化

局部化在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有

特定目的的事物。

一致性整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部

接口的一致性、软件与硬件接口的一致性、系统规格说明与系统行为的一致性。

完备性软件系统中不丢失任何成分。

可验证性系统分解应当遵循易检查、易测试和易评审的原则,以保证系统的正确性。

16.需求的层次?

业务需求;用户需求;功能需求和非功能需求;系统需求

17.信息系统需求获取的步骤?

定义项目的视图和范围

确定用户类

确定目标系统的业务工作流

运用需求获取技术开发反映主要业务规则的用例(或数据流图)并设置优先级。

收集来自用户的质量特性信息和其他非功能需求

分类在用例(或数据流图)中涉及的数据

详细拟订用例(或数据流图)的规格说明

开发并评估界面原型

从功能描述中开发概念测试用例

18.功能性需求包括什么?

1.功能需求

例举出开发软件在职能上应做什么,这是最主要的需求。

2.性能需求

给出所开发软件的技术性能指标,包括存储容量限制、运行时间限制、安全保密性等。

3.环境需求

软件系统运行时多所处的环境要求。

4.可靠性需求

各种软件在运行时,失败的影响各不相同,在需求分析时,应对所开发的软件在投入运行后不发生故障的概率,按实际的运行环境提出的要求。

5.安全保密要求

把软件运行的安全需求恰当地做出规定,以便对所开发的软件给予特殊的设计,使其在运行中其安全保密方面的性能得到必要的保证。

6.用户界面需求

软件与用户界面的友好性是用户能够方便有效、愉快地使用该软件的关键之一。

7.资源使用需求

开发软件运行时所需的数据、软件、内存空间等各项资源。

8.软件成本消耗与开发进度需求

软件项目立项后,要根据合同规定,对软件开发的进度和各项步骤的费用提出要求,作为开发管理的依据。

9.预先估计系统可能达到的目标

在开发过程中可对系统将来可能的扩充与修改做准备。

19.非功能性需求包括什么?

过程需求;产品需求;外部需求

20.如何将分析模型转换为设计?

将数据流图转换为体系结构设计

21.软件设计的主要手段

设计应遵循抽象化的原则,包含数据抽象和过程抽象。

过程抽象是指在软件设计中将处理过程的实现细节隐藏在数据抽象中,可

以直接通过模块接口使用这些处理操作。

数据抽象是指采用抽象数据类型表示数据,实现数据封装,使得使用者可通

过接口使用数据而不必关心数据结构的实现。

设计应遵循自顶向下、逐步细化的原则,建立一个层次的结构。

设计应当遵循模块化的原则

设计应遵循信息隐蔽的原则

22.衡量功能独立性的两个准则?

模块间的耦合和模块的内聚

23.结构化设计方法的实施要点?

首先研究、分析和审查数据流图

根据数据流图确定数据处理的类型

由数据流图推导出系统的初始结构图。

利用一些启发式原则改进系统初始结构图,直到得到符合要求的结构图为止。

修改和补充数据字典。

制定测试计划。

24.结构图的主要成分?

模块;模块的调用关系和接口;模块间的信息传递;重复调用和选择调用的符号

25.结构图中的4种类型的模块?

传人模块;传出模块;变换模块;协调模块

26.使用结构化方法进行软件系统设计的过程?

复查并改造数据流图;确定数据流图具有交换流特性还是事务流特性;导出初始的软件结构图;逐级分解;改进软件结构;导出接口描述和全局数据结构。

27.改进系统结构的启发式原则?

模块功能的完善化;消除重复功能,改善软件结构;模块的作用范围应在控制范围之内;尽可能减少高扇出结构,随着控制层次深度的增大增加扇入;减少或者避免使用病态连接;模块的大小是适中;设计功能可预测的模块,避免过分受限的模块;软件包应满足设计的约束和可移植性

28软件开发的4个阶段:

状态捕获,问题定义,技术开发,方案综合

29数据设计的原则?

①为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析

②确定对逻辑数据结构所必需的那些操作的程序模块(软件包),以便限制或确定各个数据设计决策的影响范围。

30内聚类型?

功能内聚;层内聚;通信内聚;顺序内聚;过程内聚;时间内聚;实用程序内聚

31举例说明如何实现程序的自顶向下?

32程序设计的风格?

源程序文档化数据说明语句结构输入/输出方法

33在语句结构中需要注意什么?

(315)

尽量只采用三种基本的控制结构来编写程序

在一行内只写一条语句,并且采用适当的移行格式,使程序的逻辑和功能变得更加明确。

在一行内写多个语句,会使程序可读性变差,因而不可取

程序编写首先应考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑

34什么是软件测试?

目的是什么?

从用户的角度出发,普边希望通过软件测试暴露软件中隐藏的错误和缺陷

从软件开发者角度出发,希望测试称为表明软件产品中不存在错误的过程

35软件测试的原则?

软件测试原则:

1.应当把“今早的和不断的进行软件测试”作为软件开发者的座右铭

2.测试用例应由测试输入数据,执行条件对应的预期输出结果组成

3.程序员应当避免检查自己的程序

4.再设计测试软件时,应当包括合理的输入条件和不合理的输入条件

5.充分注意测试中的集群现象

6.严格执行测试计划,排除测试的随意性

7.应对每一个测试结果做全面检查

8.妥善保存测试计、测试用例、出错统计和最终分析报告。

为维护提供方便。

36软件测试与程序设计之间的区别?

软件测试并不等于程序测试

软件测试贯穿于软件定义与开发的整个期间

程序测试只涉及到编码阶段

37基本路径测试的步骤?

1.基本流经测试方法把覆盖的路径压缩到一定程度内,程序中的循环体最多执行的依次

2.在程序控制流图上的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合;针对每条路径设计测试用例

3.设计出的测试用例需保证在测试中,程序的每一个可执行语句至少要执行一次

38划分等价类的原则?

1.如果输入条件规定了取值范围,或者值的个数。

则可以确立一个有效等价类和两个无效等价类

2.如果输入条件规定了输入值的集合,或者是规定了必须如何的条件,这时可确立一个有效的等价类和一个无效的等价类

3.如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类

4.如果规定了输入数据的一组值,而且程序要对每个输入值进行分别处理,这时可为每一个输入的值确立一个有效的等价类,此外针对这组值确立一个无效的等价类,他们是所有不允许的输入值的集合。

5.如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

6.如果我们却只,已划分的等价类中各元素在程序中的处理方式不同,则应该将此等价类进一步划分成更小的等价类。

39如何选择边界测试用例的原则?

1)整数边界:

1大小范围边界2.极限边界3.位边界

2)字符串边界:

1前后边界2长度边界3结束边界4取值范围边界5相似边界6数值边界7显示边界

40因果图的适用范围?

1.如果在测试时必须考虑输入条件的各种组合,可以使用一种适合于描述对于多种条件的组合,相应的产生多个动作的形式来设计测试用例,这就需要利用因果图

2.适合于检查程序输入条件的各种组合的情况

41使用各种测试方法的综合策略?

.任何情况下,必须使用边界值分析法

2.必要时用等价划分法补充一些测试用例

3.用错误推测法再追切一些测试用例

4.对照程序逻辑,检查已有的测试用例的逻辑覆盖程度,若达到标准,应在补充足够的测试用例

5.若程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图法。

42接口测试中包含的错误类型有哪些?

以及接口测试的准则?

类型:

参数接口、共享内存接口、程序接口、消息传递接口

错误类型:

接口勿用、接口误解、计时错误

准则:

1)为传递给其他构件的参数选择紧靠取值范围边界得值

2)当有指针通过接口传递时,可用空指针参数来测试

3)设计一些容易引起构件执行失效的假设进行测试

4)在有消息传递的系统中进行强度测试,即就加大消息传递的量,增加系统的负荷

5)当构件之间通过空想内存交互时,可以设计一种测试,改变正常的激活构件的顺序

43软件过程的构造是什么?

1)建立一个公共过程框架,定义少量可用于所有软件项目的框架活动

2)给出各个框架活动的集合,便得框架活动能够是用于项目的特点项目组的需求

3)最后是保护伞活动,独立于任何一个框架活动冰贯穿于整个过程

44软件过程的三大类包含什么内容?

基本过程,支持过程,组织过程

基本过程是生命周期中的原动力;支持过程辅助基本过程的执行;组织过程用于建立控制和改进生命周期的过城

基本过程:

获取、供应、开发、运行、维护

支持过程:

文档编制。

配置管理、质量保证、验证、确认、联合评审、审计、问题解决

组织过程:

管理、基础设施、改进、培训

45软件过程评估标准的结构是什么?

标准具有两维结构:

过程维和能力维

46软件过程的成熟度定义?

指一个软件过程被明确定义,管理,度量和控制的有效程度,成熟度越高说明软件过程能力改善的潜力越大

47CMM成熟度模型?

他是指对过程计划或者定义水平,过程实施水平,过程管理和控制水平,过程改善潜力等指标的综合评价

48软件成熟程度分为5级?

初始级、可重复级、可定义级、可尝试级、优化级。

49软件成熟度高低用什么衡量?

高:

项目开发可依据企业早已明确的过程准则来实现

开发结果较少依靠个人能力和自然因素

项目有过程控制并可对整个生产做出预测

产品质量得到有效监测

历史经验得以积累并可系统的用于现行行业未来的项目之中

低:

没有明确的软件郭晓恒体系可以依据

无法对生产进行预测

不严格执行生产过程

质量无法保证

无健全过程控制级质量控制体系

项目开发没有准则可以依据

开发结果主要依靠项目及个人的带有主观因素的能力发挥

50CMM如何定义关键过程域?

CMM定义关键过程域为一个互相关联的若干软件时间活动和有关基础设施的联合

51关键实践的5个特征?

执行约定(实施的保证),执行能力(实施kpa的前提条件),执行活动(执行kpa所需要的角色和步骤),测量和分析,验证实施。

52CMM的内部结构?

成熟度等级

53什么是CMMI?

SEI把各种模型进行了整合,用一个单一的过程框架,包括了各个不同的方面形成CMM1,即能力或者成熟度模型的形成

54CMMI模型系列?

1)CMMI------SW(软件能力成熟度模型集成)

2)CMMI-----SE/SW(系统工程和软件工程能力成熟度模型集成)

3)CMMI-----SE/SW/IPPD(系统工程软件工程集成化产品和过程开发能力成熟度模型集成)

4)CMMI-------SE/SW/IPPD/SS(系统工程软件工程集成化产品和过程开发,供应商管理宁溧成熟度模型集成)

55软件质量的定义?

软件质量的定义:

与软件产品满足规定的和隐含的需求的能力有关的途径或特征的全体。

56有关软件质量的术语?

软件质量管理、质量方针、质量目标、质量策划、质量控制、质量保证

57McCall质量模型?

58软件产品质量通过测量什么来判定?

内部质量特征、外部质量特征、使用质量特征

59可依赖性层次?

可依赖性,可靠性,安全防护性

60提高软件质量的方法?

原型划法敏捷开发

61软件原型支持需求工程的两项工程?

其他用途?

主要分类?

需求获取,需求有效性验证

其他用途:

用户培训,系统测试

主要分类:

进化式原型开发,抛弃式原型开发

62软件质量保证过程包括哪4个方面?

过程实施,产品质量保证,过程质量保证,质量保证体系的质量保证

63微软提出的软件质量保证检查表?

1.你识别出对你的项目很重要的质量特征了吗?

2.你让其他人都知道项目的目标了吗

3.你对外部质量特征和内部质量特征做了区分了吗?

4.有没有想过哪些特征是冲突的,哪些是互补的?

5.你的项目有没有采用几种不同的缺陷发现技术分析不同类型的错误?

6.你的项目计划中有没有包括在软件开发不同阶段进行质量保证的步骤?

7.质量有没有测量,以便于了解什么地方质量提高了,什么地方质量下降了?

8.管理层是否了解质量保证在(开发)前期增加成本,而在后期节省成本?

64外部质量特性与内部质量特性?

外:

正确性、可靠性、有效性、可用性、完整性、适用性、精确性、健壮性。

内:

可维护性、灵活性、可移植性、可复用性、可读性、可测试性、可理解性。

65质量保证活动的实施步骤?

1.Target:

以用户要求和开发方针为依据,对质量需求准则,质量设计准则的个质量特征设定质量目标

2.Plan:

设定适合于被开发软件的评测检查醒目(质量评价准则),研讨实现质量目标的方法或这手段。

3.Do:

之作高质量的规格说明和顺序,在接收质量检查前先做自我检查

4.Check:

以plan阶段设定的质量评价标准进行评价,计算结果用质量图的形式表示出来,比较评价结果的质量得分和质量目标看其是否合格

5.Action:

对评价发现的问题进行改进活动,如果实现并达到了质量目标,就转入下一个工程阶段,这样重复“plan”到“Action”的过程,直到整个开发项目完成。

66程序复杂性度量的参数主要有什么?

规格:

程序指令条数或源程序行数

难度:

与程序操作数和操作符有关的度量

结构:

与程序分支数有关的度量

智能度:

算法的难易程

67源代码行数度量法基于的两个前提是什么?

1.程序复杂性随着程序规模的增加不均匀增大

2.控制程序规模的方法最好是采用分儿治之的办法,将一个大程序分解为若干个简单的可理解的程序段

68方法的基本考虑是统计一个程序模快的源代码行数目并以源代码行数作为程序复杂性的度量

69McCabe度量法的定义?

又称环路复杂性度量,是一种基于程序控制法的复杂性度量方法,它基于一个程序模块的程序图环路的个数,因此计算他先画程序图

计算环路复杂性的方法:

V(G)=m-n+2(m是图G中的弧数,即箭头数,n是图G的结点数)

70计算环路复杂性的方法:

V(G)=m-n+2

计算环路复杂性的方法:

V(G)=m-n+2(m是图G中的弧数,即箭头数,n是图G的结点数)

71McCabe环路复杂度隐含的前提是什么?

错误与程序的判定加上例行子程序的调用数目成正比

72程序长度的定义?

n1表示程序中不同运算符的个数,n2表示程序中不同运算对象的个数,H表示程序的长度,公式为H=n1*logn1+n2*logn2

22

(H是程序长度的预测值不等于程序中的语句个数)

73Halstead的重要结论?

程序的实际Halsteasd长度N可以有词汇表n算出,即使程序还未编译完成,也能预算出程序的实际长度N。

74Halstead度量的缺点?

没有区别自己编的程序与别人编的程序,没有考虑非执行语句,没有把不同类型的运算对象,运算符与不同的错误发生率联系在一起,没有注意调用的深度。

忽视了嵌类结构。

75软件维护的定义及种类?

软件维护:

在支付以后,修改软件系统与部门以排除故障。

改进性能或其他属性或适应变更了的环境的过程。

种类:

改正性维护;适应性维护;完善性维护;预防性维护

76决定软件可维护性的因素?

可理解性;可靠性;可测试性;可修改性;可移植性;效率;可使用性

77提高软件可维护性的方法?

1)确定质量目标和优先级

2)规范化程序设计风格

3)选择可维护性高的设计语言

4)改进程序文档

5)保证软件质量审查方法

78逆向工程的定义?

指在软件生存周期中,将软件的某种形式描述转换成更抽象形式的活动

79重构的定义?

指在同一抽象级别上转换系统的描述形式

80设计恢复?

指借助工具从已有程序中抽象出有关数据结构设计,总体结构设计,过程设计的信息

81再工程的定义?

指在逆向工程所获得信息的基础上修改或者重构已有的系统,产生系统的一个新版本

82再工程的主要目的?

为遗留系统转换为可演化系统一共一条现实可行的途径

83再工程包含什么?

业务过程再过程软件再过程

84根据源程序的类别不同,逆向工程可分为?

对用户界面的逆向工程,对数据的逆向工程,对调节的逆向工程

85经过再工程过程可获得的信息?

格式,图形,文档,度量值,逻辑,报告

86程序分析技术?

程序结构工程工具,程序功能分析工具

87软件过程成熟度定义:

一个软件过程被明确定义,管理度量和控制的有效程度越高,改善的潜力越大。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1