您的位置:首页 > 其它

中兴笔试题目总结(四)软件工程部分

2012-09-16 10:11 204 查看
1.CMM

CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。CMM为企业的软件过程能力提供了一个阶梯式的进化框架,阶梯共有五级。第一级只是一个起点,任何准备按CMM体系进化的企业都自然处于这个起点上,并通过它向第二级迈进。除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,可以向下一级别迈进。

第一级:初始级(Initial);

第二级:可重复级(Repeatable);

第三级:已定义级(Defined);

第四级:受管理级(Managed);

第五级:优化级(Optimizing)

CMM的基本思想是,因为问题是由我们管理软件过程的方法引起的,所以新软件技术的运用不会自动提高生产率和利润率。CMM有助于组织建立一个有规律的、成熟的软件过程。改进的过程将会生产出质量更好的软件,使更多的软件项目免受时间和费用的超支之苦。

CMM实施步骤

成熟度等级1:初始级(Initial)。

处于这个最低级的组织,基本上没有健全的软件工程管理制度。每件事情都以特殊的方法来做。如果一个特定的工程碰巧由一个有能力的管理员和一个优秀的软件开发组来做,则这个工程可能是成功的。然而通常的情况是,由于缺乏健全的总体管理和详细计划,时间和费用经常超支。结果,大多数的行动只是应付危机,而非事先计划好的任务。处于成熟度等级1的组织,由于软件过程完全取决于当前的人员配备,所以具有不可预测性,人员变化了,过程也跟着变化。结果,要精确地预测产品的开发时间和费用之类重要的项目,是不可能的。   

成熟度等级2:可重复级(Repeatable)。

在这一级,有些基本的软件项目的管理行为、设计和管理技术是基于相似产品中的经验,故称为“可重复”。在这一级采取了一定措施,这些措施是实现一个完备过程所必不可缺少的第一步。典型的措施包括仔细地跟踪费用和进度。不像在第一级那样,在危机状态下方行动,管理人员在问题出现时便可发现,并立即采取修正行动,以防它们变成危机。关键的一点是,如没有这些措施,要在问题变得无法收拾前发现它们是不可能的。在一个项目中采取的措施也可用来为未来的项目拟定实现的期限和费用计划。   

成熟度等级3:已定义级(Defined)。

在第3级,已为软件生产的过程编制了完整的文档。软件过程的管理方面和技术方面都明确地做了定义,并按需要不断地改进过程,而且采用评审的办法来保证软件的质量。在这一级,可引用CASE环境来进一步提高质量和产生率。而在第—级过程中,“高技术”只会使这一危机驱动的过程更混乱。   成熟度等级4:已管理级(Managed)。

一个处于第4级的公司对每个项目都设定质量和生产目标。这两个量将被不断地测量,当偏离目标太多时,就采取行动来修正。利用统计质量控制,管理部门能区分出随机偏离和有深刻含义的质量或生产目标的偏离(统计质量控制措施的一个简单例子是每千行代码的错误率。相应的目标就是随时间推移减少这个量)。   

成熟度等级5:优化级(Optimizing)。

—个第5级组织的目标是连续地改进软件过程。这样的组织使用统计质量和过程控制技术作为指导。从各个方面中获得的知识将被运用在以后的项目中,从而使软件过程融入了正反馈循环,使生产率和质量得到稳步的改进。

2.什么是极限编程

极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。

3.电路交换和分组交换的区别和特点?

电路交换与分组交换的区别:

(一)电路交换:由于电路交换在通信之前要在通信双方之间建立一条被被双方独占的物理通路(有通信双方之间的交换设备和链路逐段连接而成),因而有以下优缺点。

优点:

1,由于通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小。

2,通信双方之间的物理通路一旦建立,双方可以随时通信,实时性强。

3,双方通信时按发送顺序传送数据,不存在失序问题。

4,电路交换既适用于传输模拟信号,也适用于传输数字信号。

5,电路交换的交换设备及控制均较简单。

缺点:

1, 电路交换的平均连接建立时间对计算机通信来说嫌长。

2, 电路交换建立连接后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低。

3, 电路交换时,数据直达,不同类型,不同规格,不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。

(二)分组交换:分组交换采用存储转发方式,将一个长报文分割为若干个较短的分组,然后把这些分组(携带源地址,目的地址和编号信息)逐个的发送出去。因此分组交换有以下优缺点。

优点:

1, 分组交换不需要为通信双方预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送分组。

2, 由于采用存储转发方式,加之交换结点具有路径选择,当某条传输线路故障时可选择其他传输线路,提高了传输的可靠性。

3, 通信双方不是固定的占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。

4, 加速了数据在网络中的传输。因为分组是逐个传输,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线式传输方式减少了传输时间。

5, 分组长度固定,相应的缓冲区的大小也固定,所以简化了交换结点中存储器的管理。

6, 分组较短,出错几率减少,每次重发的数据量也减少,不仅提高了可靠性,也减少了时延。

缺点:

1, 由于数据进入交换结点后要历经存储转发这一过程,从而引起转发时延(包括接受分组,检验正确性,排队,发送时间等),而且网络的通信量越大造成的时延就越大,实时性较差。

2, 分组交换只适用于数字信号。

3, 分组交换可能出现失序,丢失或重复分组,分组到达目的结点时候,对分组按编号进行排序等工作,增加了麻烦。

总之,若传输的数据量很大,而且传送时间远大于呼叫时间,则采用电路交换较为合适;当端到端的通路有很多段的链路组成时,采用分组交换较为合适。从提高整个网络的信道利用率上看,分组交换优于电路交换。

4.移动通信系统的组成,光纤通信系统的组成

蜂窝移动通信系统主要是由交换网路子系统(NSS)、无线基站子系统(BSS)和移动台(MS)三大部分组成。其中NSS与BSS之间的接口为“A”接口,BSS与MS之间的接口为“Um”接口。在模拟移动通信系统中,TACS规范只对Um接口进行了规定,而未对A接口做任何的限制。因此,各设备生产厂家对A接口都采用各自的接口协议,对Um接口遵循TACS规范。也就是说,NSS系统和BSS系统只能采用一个厂家的设备,而MS可用GSM通信系统的组成。

基本的光纤通信系统由数据源、光发送端、光学信道和光接收机组成

5.黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。

白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

6.耦合

简单地说,软件工程中对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。   

有软硬件之间的耦合,还有软件各模块之间的耦合。   

耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口。   

耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:   

(1) 内容耦合。当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。   

(2) 公共耦合。两个或两个以上的模块共同引用一个全局数据项,这种耦合被称为公共耦合。在具有大量公共耦合的结构中,确定究竟是哪个模块给全局变量赋了一个特定的值是十分困难的。   

(3) 外部耦合 。一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。   

(4) 控制耦合 。一个模块通过接口向另一个模块传递一个控制信号,接受信号的模块根据信号值而进行适当的动作,这种耦合被称为控制耦合。   

(5) 标记耦合 。若一个模块A通过接口向两个模块B和C传递一个公共参数,那么称模块B和C之间存在一个标记耦合。   

(6) 数据耦合。模块之间通过参数来传递数据,那么被称为数据耦合。数据耦合和最低的一种耦合形式,系统中一般都存在这种类型的耦合,因为为了完成一些有意义的功能,往往需要将某些模块的输出数据作为另一些模块的输入数据。   

(7) 非直接耦合 。两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的   

总结:耦合是影响软件复杂程度和设计质量的一个重要因素,在设计上我们应采用以下原则:如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,尽量避免使用内容耦合。

7. 内聚按强度从低到高有以下几种类型:

(1)偶然内聚

  如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。

(2)逻辑内聚

  几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。

(3)时间内聚

  如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。

(4)通信内聚

  如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。

(5)顺序内聚

  如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。

(6)功能内聚

  模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。

(7)信息内聚

  模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该模块执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: