软件工程860考研简答题知识点

  1. 什么是软件

    • 1、答:软件就是与计算机系统操作有关的计算机程序,以及可能有的文件、文档及数据。以开发语言作为描述语言,可以认为:软件=程序+数据+文档。
      程序指按事先设计的功能和性能需求执行的指令序列;数据是程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
  2. 软件生命周期有哪些阶段

    • 问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、维护
  3. 什么是需求分析?有哪些确认过程

    • 需求分析是确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。换句话说,需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。
    • 需求确认分为:需求获取;需求提炼;需求描述和需求验证
  4. 什么是回归测试?为什么要做回归测试

    • 回归测试指有选择地重新测试系统或其组件,以验证对软件的修改没有导致不希望出现的影响,以及系统或组件仍然符合其指定的需求。
    • 原因:1)测试中,如有缺陷修正、功能增加,变化的部分必须再测试;2)软件的修改可能会导致新的缺陷及其他问题,为防止,需要再测试。
  5. 软件维护有哪些基本类型?请具体说明

    • 完善性维护、纠错性维护、适应性维护、预防性维护。
    • 完善性维护是满足用户对软件提出的新的功能与性能需求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性进行的维护。
    • 纠错性维护是指为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误用,应当进行的诊断和改正错误的过程
  6. 请说明TCP连接断开的步骤

    • 1)客户发送TCP FIN控制报文段到服务器;
      2)服务器接收FIN,回复ACK,半关闭连接;
      3)待服务器不向客户发送数据时,发送FIN到客户;
      4)客户接收到FIN后,回复ACK,进入“timed wait”状态,等待结束时释放连接资源;

      5)服务器接收到ACK,连接关闭

  7. 什么是HOL阻塞?这出现在输入端口还是输出端口?

    • 有时,在输入端口队列中排在第一位的数据包必须等待,因为在它想要转发的输出端口上没有可用的缓冲区空间,发生这种情况时,第一个数据包后面的所有数据包都会被阻止,即使它们的输出队列有空间容纳它们。HOL阻塞发生在输入端口。
  8. 链路层可以提供哪些服务

    • 1)成帧,在每个网络层数据报经链路传送之后,几乎所有的链路层协议都要将其链路层帧封装起来

      2)链路接入,将链路层帧发送到物理链路上,媒体访问控制(MAC)协议规定了帧在链路上传输的规则。
      3)可靠交付,当链路层协议提供可靠交付服务时,它保证无差错地经链路层移动每个网络层数据报。链路层的可靠交付服务通常通过确认和重传取得。
      4)差错检测和纠正,由于信号衰减和电磁噪声,一个帧原始比特为1,在接收方判断为0,反之亦然,链路层能够检测出这种情况,差错纠正不仅能检测帧中出现的比特差错,而且能够准确地确定帧中的差错出现的位置,并纠正这些错误。

  9. CDN有哪些服务器安置原则

    • 1)深入:通过在遍及全球的接入ISP中部署服务器集群来深入到ISP的接入网中。其目标是靠近客户,通过减少端用户和CDN集群之间的链路和数量,从而改善了用户感受时延和吞吐量。
      2)邀请做客:通过在关键位置建集群并使用专用高速网络连接这些集群来邀请到ISP做客。与深入设计原则相比,邀请做各设计通过产生较低的维护和管理开销,可能以对端用户的较高时延和较低吞吐量为代价。
  10. 假设Alice要发送一封邮件给Bob,请说明其完整流程

    • 1)Alice使用用户代理编写发送给Bob的邮件

    • 2)Alice的用户代理发送邮件到其邮件服务器,邮件被存放在邮件消息队列

    • 3)Alice的邮件服务器的SMTP客户端发起建立一个到Bob的邮件服务器的SMTP服务器端的TCP连接
      4)SMTP客户端在TCP连接上发送Alice的邮件消息

    • 5)Bob服务器收到邮件,存放邮件消息到Bob的邮箱

      6)Bob调用他的用户代理读取邮件内容


  1. 软件危机产生的原因是什么
    • 客观原因:软件本身特点,软件是一种逻辑部件,一般来说其规模庞大,难以把控。
      主观原因:使用了不正确的开发方法,例如忽视了需求分析,错误得认为:软件开发=程序编写,或者轻视了软件维护。
  2. 用例图中的拓展和包含有什么不同
    • 包含关系:指把一个较复杂用例所表示的功能分解成较小的步骤。一个用例可以包含另一个用例
    • 扩展:是指用例功能的延伸,相当于为基础用例提供一个附加功能。由一个用例的扩展点可以扩展出另一个用例。
    • 在扩展关系中,一个基本用例执行时,可以执行、也可以不执行扩展用例部分;在包含关系中,在执行基本用例时,一定会执行包含用例部分
  3. 软件缺陷有哪些
    • 1)软件未实现产品说明书要求的功能。
      2)软件出现了产品说明书指明不能出现的错误
      3)软件实现了产品说明书未提到的功能。
      4)软件未实现产品说明书虽未明确提及但应该实现的目标。
      5)软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好。
  4. 什么是软件再工程?有哪些过程?
    • 软件再工程指对现有软件进行仔细审查和改造,对其进行重新构造,使之成为一个新的形式,同时包括随之产生的对新形式的实现。
      其过程有:正向工程、库存目录分析、文档重构、逆向工程、代码重构、数据重构。
  5. 软件项目管理是什么?其四要素分别是什么?
    • 软件项目管理指计划、协调、度量、监控、控制及报告等管理方法在软件开发和维护中的具体应用,以保证整个过程是系统的、有原则的、可量化的。其四要素为:
      人员(People):关键业务领域:招聘、选拔、绩效管理、培训、薪酬、职业发展、组织和工作设计、团队/文化的发展
      产品(Product):在策划一个项目以前,应当建立产品的目标和范围,应考虑其他解决办法,以及技术和管理应当被约束。
      过程(Process):软件开发的一个全面计划。
      项目(Project):理解成功项目管理的关键因素,掌握项目计划、监控和控制的一般方法。
  6. 从用户的观点看,POP协议中下载并删除模式和下载并保留模式有什么区别?
    • 通过下载并删除模式,在用户从POP服务器检索其邮件后,将删除这些邮件。这给移动用户带来了问题,移动用户可能想要从许多不同的机器(办公室PC,家用PC等)访问邮件。在下载并保留模式中,用户检索邮件后不会删除邮件。这也是不方便的.因为每次用户从新机器检索存储的邮件时,所有未删除的邮件都将被传送到新机器(包括非常旧的邮件)。
  7. DHCP有哪几个步骤?
    • DHCP服务器发现:一台新到的主机的首要任务是发现一含要与其交互的DHCP服务器。这通过使用一个DHCP发现报文来完成,客户在UDP分组中向端口67发送该发现报文。其广播目的地址为255.255.255.255,原地址为0.0.0.0,还有一个事务ID;
    • 2)DHCP服务器提供:DHCP服务器收到一个DHCP发现报文时,使用一个DHCP提供报文向客户做出响应,仍然使用广播地址255.255.255.255。其内容包括收到该发现报文的事务ID、向客户推荐的IP地址、网络掩码以及IP租用期;
      3)DHCP请求:新到达的客户从一个或多个服务器提供中选择一个,并向选中的服务器提供用一个DHCP请求报文进行响应,回显配置参数;
      4)DHCPACK:服务器用DHCPACK报文对DHCP请求报文进行响应,证实所要求的参数。
  8. 交换机的转发表是如何自学习的?
    • 1)交换机初始为空。
      2)对于在每个接口接收到的每个入帧,该交换机在其表巾存储:①在该帧源地址字段中的MAC地址;②该帧到达的接口;③当前时间交换机以这种方式在它的表中记录了发送结点所在的局域网网段。如果在局域网上的每个结点最终都发送了一个帧,则每个结点最终将在这张表中留有记录。
      3)如果在一段时间(称为老化期)后,交换机没有接收到以该地址作为源地址的帧,就在表中删除这个地址。以这种方式,如果一台PC被另一台PC(具有不同的适配器)代替,原来PC的MAC地址将最终从该交换机表中被清除掉。
  9. 防火墙分为哪几类?请分别说明。
    • 防火墙能够分为三类:传统分组过滤器、状态过滤器和应用程序网关。
      1)传统的分组过滤器:一个机构通常都有一个将其内部网络与其ISP(并因此与更大的公共因特网相连)相连的网关路由器。所有离开和进入内部网络的流量都要经过这个路由器,而这个路由器正是分组过滤出现的地方。分组过滤器独立地检查每个数据报,然后基于管理员特定的规则决定该数据报应当允许通过还是应当丢弃。
      2)状态分组过滤器:在传统的分组过滤器中,根据每个分组分离地作出过滤决定。
      状态过滤器实际地跟踪TCP连接,并使用这种知识作出过洁、决定。
      3)应用程序网关:是一个应用程序特定的服务器,所有应用程序数据(入和出的)都必须通过它。多个应用程序网关可以在同一主机上运行,但是每一个网关都是有自己的单独服务器

  1. 软件工程与计算机科学有什么区别?

    • 软件工程 计算机科学
      变化程度 随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。同时软件工程本身也处于不断的发展中 对于某一种特定问题的正确解决方法将永远不会改变
  2. 能力成熟度模型CMM有哪些等级,分别是什么?

    • 5优化级:持续的过程改进;
      4量化管理级:量化管理;
      3已定义级:过程标准化
      2可重复级:基本项目管理
      1初始级:有能力的人和个人英雄主义
  3. 系统结构图有哪几个模块?请具体解释

    • 1)传入模块-从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。
      2)传出模块-从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。
      3)变换模块一它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流
      4)协调模块-对所有下属模块进行协调和管理的模块。
  4. 什么是集成测试?简述其目的与方法。

    • 定义:将软件集成起来后进行测试。别名:子系统测试、组装测试、部件测试等。
      目的:检查诸如两个模块单独运行正常,但集成起来运行可能出现问题的情况。
      主要方法:自顶向下的集成方法、自底向上的集成方法、SMOKE方法
  5. 软件维护过程模型有哪些阶段?

    • 分类与鉴别阶段、分析阶段、设计阶段、实现阶段、系统测试阶段、验收测试阶段、交付阶段。
  6. Cookie有哪些组成部分?

    • 1)在http响应报文中的cookie首部行;
      2)在下一条http请求报文中的cookie首部行;
      3)cookie文件保存在用户主机中并被用户浏览器管理;
      4)cookie 信息也保存在web.站点的后端数据库中
  7. 什么是慢启动?为什么该阶段报文段数量以指数形式增长?

    • 当一条TCP连接开始时,拥塞窗口的值通常初始置为一个MSS的较小值,一般情况下为1。
      因为每当传输的报文段首次被确认就增加一个MSS。TCP向网络发送第一个报文段并等待一个确认,当该确认到达时,TCP发送方将拥塞窗口增加一个MSS,下次将发送出两个MSS。当这两个报文段被确认,则对每个确认报文段发送方将增加一个MSS,使得拥塞窗口变为4个MSS,并这样下去。这一过程每过一个RTT,发送速率就翻番,因此在慢启动阶段其报文段数量以指数形式增长。
  8. 端到端时延和分组时延抖动的区别是什么?分组时延抖动的原因是什么?

    • 端到端延迟是数据包从源到目的地在网络中传输所需的时间。延迟抖动是从当前数据似到下一个数据包的端到端延迟的波动。
  9. 请解释唯密文攻击、已知明文攻击和选择明文攻击。

    • 1)唯密文攻击:有些情况下,入侵者只能得到截取的密文,也不了解明文报文的内容
      2)已知明文攻击。如过入侵者以某方式确信在密文报文中会出现某单词,他就可以确定其单词的组成(明文,密文)配关系。入侵者也可能会幸运地记录到传输的所有密文,然后在一张纸上找到发送者写下的已解密的明文。当入侵者知道(明文,密文)的一些匹配时,我们将其称之为对加密方案的已知明文攻击。
      3)选择明文攻击。在选择明文攻击中,入侵者能够选择某一明文报文并得到该明文报文对应的密文形式

  1. 面向对象的主要特征有哪些?简要说明其含义。
    • 对象的唯一性:每个对象都有自身唯一的标识;
      分类性:将具有一致的数据结构(属性)和行为(操作)的对象抽象成类
      继承性:指子类自动共享父类数据结构和方法的机制。
      多态性:指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。
  2. 简述快速原型模型的开发步骤。
    • 快速分析:迅速确定基本需求,集中力量确定需求说明。
      快速构造原型:在快速分析的基础上,在强有力的软件工具支持下,快速构造所需的原型。
      运行原型:在开发者指导下,用户参与原型的运行,各类人员在共同运行原型中进一步加深对系统的了解及相互间的理解,以发现各种问题。
      评价原型:在运行基础上,根据原型目标,考核原型的特性,分析原型效果是否满足用户需求,提出修改意见。
      修改原型,在评价基础上进行修改。若不满足需求说明,则根据明确的需求修改原型。若不满足用户需求,则先修改并明确用户需求,再重新构造原型。
  3. 简述软件工程与软件危机的概念以及提出软件工程概念的目的
    • (1)软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科;
      (2)软件生产率、软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,把这一现象称为软件危机;
      (3)软件工程概念的提出是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的软件危机
  4. 简述软件生存周期过程、软件生存周期模型、软件项目过程管理之间的关系。
    • (1)软件生存周期过程回答软件开发需要做哪些工作
      (2)软件生存周期模型回答软件开发活动或任务如何组织
      (3)软件项目过管理回答软件过程如何管理。
      (4)软件生存周期过程是软件生存周期模型和软件项目过程管理的基础。
      (5)软件生存周期模型为软件项目过程管理提供支持。
  5. 请简述与传统共享式局域网相比,交换式局域网为什么能改善网终的性能和服务质量?
    • 传统共享式局域网的核心设备是集线器(hub),而交换式局域网的核心设备是局域网交换机。在使用共享式集线器的传统局域网中,在任何一个时刻只能有一个结点能够通过共享通信信道发送数据;在使用交换机的交换式局域网中,交换机可以在它的多个端口之间同时建立多个并发连接,从而实现了结点之间数据的并发传输,有效改善了网络性能和服务质量
  6. 当某个路由器发现一个IP数据报的校验和有差错时,为什么只能采取丢弃的方法而不是要求源结点重发此数据报。
    • 当路由器在接收到一个IP数据报而检测到校验和出现差错时,不知道数据报头部中的哪个或哪几个比特发生了变化,因此不能相信数据报头部中的任何字段。所以该路由器不能向发送数据报的源结点发送差错报告,因为不能相信数据报头部中的源IP地址字段。同样,该路由器也不能将受损的数据报继续转发给目的结点,因为它不能相信数据报头部中的目的IP地址字段。除了丢弃该数据报,该路由器没有其他的选择
  7. 简述传输层与网络层之间的关系
    • 由于网络层是通信子网的一个组成部分,所提供的面向连接的服务或无连接服务并不可靠。不能满足用户对服务质量的需求.解决问题的唯一办法就是在网络层上增加一层协议即传输层协议,对网络层提供的服务加以改善。可以说,传输层在分层的网络体系结构中起着承上启下的作用,使用了网络层提供的服务。并通过执行传输层协议,针对高层屏蔽通信子网在技术IP设计上的差异与服务质量的不足。问更高层提供了一个标准的完善的通信服务。
  8. 在使用FTP服务下载文件或上传文件时,可能会发现文件的传输速率会有较大的变化,比如说,最初的传输速率可能高达几十kbps,最后的传输速率能只有几或几十个kbps这是为什么,试分析其中可能的原因。
    • 在使用FTP服务、可能会发现在传输一个文件时,文件的传输速率有较大的变化.一般来说,造成这种状况的原因通常有两个方面;其中一个可能的原因是现在FTP服务器上的连接请求数过多,另一个可能的原因是当前的网络发生了拥塞,即网络中的数据流量过大。

  1. 你认为一个好的软件开发人员应具备哪些基本素质?

    • (1)牢固掌握计算机软件的基本知识和技能;
      (2)善于分析和综合问题,具有严密的逻辑思维能力;
      (3)工作踏实细致,遵循标准和规范,具有严格的科学作风;
      (4)工作有耐心、有毅力、有责任心;
      (5)善于听取别人的意见,善于与周围人员团结协作,建立良好的人际关系;
      (6)具有良好的书面和口头表达能力
  2. 需求工程包括哪些基本活动?每一项活动的主要任务是什么?

    • (1)需求获取(问题识别):采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。
      (2)需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。

      (3)需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述己确定的需求。
      (4)需求验证评审软存需求规梧说明,现保证其正确性、一致性、完备性、准确性和清晰性。
      (5)需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。

  3. 简述容错技术的四种主要手段,并解释。

    • 结构冗余:包括静态冗余、动态冗余和混合冗余。
      信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
      时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。
      冗余附加技术:指为实现上述冗余技术所需的资源和技术。
  4. 计算机网络的功能主要有哪些?根据自己的兴趣和需求,举出几种应用实例

    • 计算机网络的主要功能包括:数据交换和通信、资源共享、提高系统的可靠性、分布式网络处理以及负载均衡等。在现实社会与生活中,计算机网络的应用范围十分广泛,例如电子邮件、网络浏览、文件传输、网络打印等
  5. 什么是网络协议?由哪几个基本要素构成?

    • 为进行计算机网络中的数据交换而建立的规则、标准或约定称为网络协议。进一步地,网络协议包括3个基本要素:语义、语法和时序(同步)。其中,语义规定了需要发出的控制信息,执行的动作以及返回的响应;语法规定了用户数据与控制信息的结构与格式,以及数据出现的顺序的意义;时序(同步)则规定了事件执行的顺序,即确定通信过程中通信状态的变化。
  6. 在数据传输过程中,若接收方收到的二进制比特序列为1011011010,接收双方采用的生成多项式为G(x)=x4+x3+1,则该二进制比特序列在传输中是否出现了差错?如果没有出现差错,发送数据的比特序列和CRC校验码的比特序列分别是什么?

    • 1011011010与生成多项式11001(G(x)=x4+x-3+1)按位异或后余数为1110,由于余数不为零,所以出现了差错。最后四位为校验码,所以原始数据比特序列为101101,CRC校验码为0100。

  1. 简述对软件测试的目的
    • 软件测试是(1)为了发现错误而执行程序的过程;
      (2)一个好的用例能够发现至今尚未发现的错误的测试。
      (3)一个成功的测试是发现至今尚未发现的错误的测试。
  2. 就程序设计语言的工程特性而言,对程序编码有哪些要求?
    • 就程序设计语言的工程特性而言,对程序编码有如下要求:
      (1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性
  3. 模块的内聚性包括哪些类型?
    • (1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚
  4. 什么是模块化?软件结构设计的优化准则是什么?
    • 模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程
      软件结构设计的优化准则有以下几条
      (1)划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。(2)一个模块的作用范围应在其控制范围之内,且判断所在的模块应与其影响的模块在层次上尽量靠近。
      (3)软件结构的深度、宽度、扇入、扇出应合适
      (4)模块的大小要适中。
  5. 当路由器在转发某个IP数据报发现差错(例如目的结点不可到达)时,只能向发送该数据报的源结点发出ICMP差错报告报文,而不能向该数据报经过的中间路由器发送差错报告报文,为什么?
    • 一个IP数据报的头部中关于路由惟一可用的信息是标识源主机的IP地址和标识目的主机的目的IP地址,而不包含该数据报在通信子网中所经过的完整路径(除了采用源路由选项的特殊情形)。因此,当一个IP数据报到达某个特定的路由器时,这个路由器不可能知道该数据报到达之前所经过的路径。当路由器在转发该数据报时发现差错(例如目的结点不可到达或超时)时,并不知道哪些中间结点曾经处理过该数据报,因此,只能向该数据报的源结点发送ICMP差错报告报文。尽管源结点可能不是导致该差错的结点,还是采取一定的措施来纠正这个差错。
  6. 为什么UDP的校验和要与IP的校验和分开进行?你是否反对在包含UDP用户数据报的整个IP数据报中仅使用一个校验和的协议?
    • UDP协议与IP协议所处的协议层不同,UDP处于传输层,而IP处于网络层。如果在整个IP数据报中只使用一个校验和,则需要对IP数据报的整个部分进行校验,包括头部与数据部分。这样,当IP数据报在通信子网中进行传输时,由于每个路由器都需要对接收的整个IP数据报进行校验以判断是否出现了传输差错,路由器用于处理每个IP数据报的时间无疑会增加,也就是路由器的负载将变重。因此,IP数据报的传输时延将会变长,同时,传输效率也会下降。反之,如果整个IP数据报的校验分为独立的两次校验,即UDP对UDP数据报的头部以及数据部分进行校验,IP仅对IP数据报的头部进行校验,路由器只需要校验IP数据报的头部,而较长的数据部分只由目的端完成.这大大降低了路由器处理IP数据报的时间,进而减小了IP数据报的传输时延.而且,两次校验相互独立,IP与UDP采用的校验方法可以不同。因此,在包含UDP用户数据报的整个IP数据报中,不应该采用仅使用一个校验和的机制。
  7. 简述域名服务器(DNS)的工作原理。
    • 域名系统采用了客户/服务器的模式,其中客户端完成域名解析功能的软件称为域名解析器.当客户端需要域名解析时,通过域名解析器构造一个域名请求报文,并发往本地的一个域名服务器,域名请求报文指明了所要求的域名解析方法包括两类。递归解析与反复解析。其中,递归解析方法要求域名服务器一次性完成域名解析任务;而反复解析方法则每次只要求请求一个域名服务器.当指定的域名服务器收到域名请求报文时,首先检查所请求的域名是否在自己所管辖的范围内。如果域名服务器可以完成域名解析的任务,就将请求的域名转换成相应的IP地址,并将结果返回给发送域名请求报文的客户端。否则,域名服务器将检查客户端要求的解析方法类型;如果要求递归解析,就请求另外一个域名服务器,并最终将结果返回给客户端;如果要求反复解析,就产生一个响应并传回给客户端,该响应指定了客户端下次应该请求的域名服务器。

  1. 简述关联、泛化、细化和依赖的概念以及前三者与依赖的关系。
    • (1)关联是类目之间的一种结构关系,是对一组具有相同结构、相同链的描述。
      (2)泛化是一般性类目(父亲)和它的较为特殊性类目(子类)之间的一种关系,有时称为(is_a kind_of)关系。
      (3)细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约。
      (4)依赖是一种使用关系,用于描述一个类目使用另一目的信息和服务。
      (5)关联、泛化和细化都是一类特定的依赖。
  2. 简述边界值分析在设计测试用例时可以遵循的原则。
    • (1)如果某个输入条件规定了输入值的范围,则应选择正好等于边界值的数据,以及刚刚超过边界值的数据作为测试数据。
      (2)如果某个输入条件规定了值的个数,则可用最大个数、最小个数、比最大个数多1、比最小个数少1的数作为测试数据。
      (3)如果程序的规格说明中,输入域或输出域是有序集合,则选取集合的第一个元素、最后一个元素以及典型元素作为测试用例。
      (4)如果程序中使用了内部数据结构,则应当选择这个内容数据结构的边界上的值作为测试用例。
      (5)分析规格说明,找出其它可能的边界条件。
  3. 简述变换设计与事务设计的区别及联系。
    • (1)变换设计的目的是将变换型数据流图映射为模块结构图,他由3部分组成:获取数据、变换数据和输出数据,其中变换数据是核心。为了协调这些模块的有序工作,还应设计一个主控模块来协调和控制其他模块。变换设计比较机械。
      (2)事务设计的目的是将事务型数据流图映射为模块结构图,事务设计都有一个明显的事务处理中心,事务中心需完成3个任务:接收输入数据、分析并确定对应的事务和选取该事务对应的一条活动路径。
      (3)在总体设计中,通常以变换设计为主,事务设计为辅进行结构设计。
  4. 简述CMMI提出所基于的基本思想。
    • (1)CMMI模型基于过程途径思想,通过过程把软件质量的三个支撑点:受训的人员、规程和方法、工具和设备进行集成,以开发所期望的系统/产品。
      (2)CMMI紧紧围绕开发、维护和运行,把经过证明的最佳实践放在一个结构中。
      (3)该结构有助于指导组织确定其过程的改善优先次序,有助于指导这些改善的实施,以提高其过程能力和成熟度,并且还支持其他领域能力成熟度模型的开发。
  5. 在TCP/IP协议族的传输层中,有两个不同的传输层协议TCP和UDP,为什么设置这样两种不同的协议,试对它们进行比较。
    • TCP和UDP是工作在传输层的Internet协议,其中TCP是一种可靠的、面向连接的协议,专门设计用于在不可靠的Internet上提供可靠的、端到端的字节流通信。
      TCP协议可以确保一台主机的字节流无差错地传送到目的主机。UDP是一种不可靠、无连接的协议,主要用于不要求数据报顺序到达的传输中,数据报传输顺序的检查与排序由应用层完成。UDP向应用程序提供了一种发送封装的原始IP数据报的方法,并且发送时无需建立连接。
  6. 试述CSMA/CD的基本工作原理。
    • CSMA/CD的基本工作原理可以简单地概括为4点:想听后发,边发边听,冲突停止,随即延迟后重发。首先,每个站点发送数据之前必须侦听信道的忙、闲状态。如果信道空闲,立即发送数据,同时进行冲突检测;如果信道忙,站点继续侦听总线,直到信道变为空闲。如果在数据发送过程中检测到冲突,将立即停止发送数据并等待一段随机长的时间,然后重复上述过程。
  7. 简述非对称加密算法RSA。
    • RSA算法是目前最常使用的非对称加密方式,其安全性基于大数因子分解的困难性。由于RSA需要很高的计算能力和较长时间的加密、解密过程,因此破解它非常困难。

  1. 简述软件测试和软件调试之间的区别

    • (1)测试从一个侧面证明程序员的“失败”。调试是为证明程序员的正确。
      (2)测试从已知条件开始,使用预先定义的程序且有预知的结果,不可预见的仅是程序是否通过测试。调试是以不可知的内部条件开始,结果很难预见。
      (3)测试是有计划的,并要进行测试设计。调试是不受时间约束的。
      (4)测试是一个发现错误,改正错误,重新测试的过程。调试是一个推理过程。
      (5)测试的执行是有规程的。调试的执行往往要求程序员进行必要推理。
      (6)测试经常由独立的测试组在不了解软件设十的条件下完成呢。调试必须由了解详细设计地程序员完成
      (7)大多数测试的执行和设计可由工具支持。调试时,程序员能利用的工具主要是调试器
  2. 什么是模块?什么是内聚模块?请列出从低到高的常见内聚类型

    • (1)模块是执行一个特殊任务的一个过程以及相关的数据结构。
      (2)模块内聚是指一个模块由各成分之间相互关联程度的度量。
      (3)几种从低到高的常见模块内聚类型:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。
  3. 简述软件测试步骤及关注的内容

    • (1)由于软件错误的复杂性,在软件工程测试中因综合运用测试技术,实施合理的测试步骤:单元测试,集成测试,有效性测试和系统测试。
      (2)单元测试关注每个独立的模块。
      (3)集成测试关注模块的组装。
      (4)有效性测试关注检验是否符合用户所见的文档。

      (5)系统测试关注检验系统中所有元素(包括硬件、信息等)之间的协作是否合适,整个系统的性能、功能是否达到。

  4. 简述UDP和TCP协议的主要特点及适用场合

    • 用户数据报协议UDP是一个比较简单的、无连接、不可靠的传输层协议。UDP协议将UDP用户数据报传送给网络层,由IP协议将UDP封装在IP数据报中,然后通过通信子网进行传输,进而提供了端到端的数据报传输服务。但是,UDP提供无连接的服务,用户数据报在发送之前不需要建立传输连接,这导致使用UDP的进程不能发送数据流;因此在实际使用中,要求每一个传输数据长度必须足够短,能装入到一个用户数据报中.进一步地,UDP协议没有流量控制机制,也没有确认,只提供有限的差错控制机制.因此,UDP协议简单,在一些特定的应用中协议运行效率高。UDP通常用于可靠性较高的网络环境(例如,局域网]或不要求可靠传输的场合,另外也常用于客户机/服务器模式中。传输控制协议TCP是一个面向连接、可靠的传输层协议.TCP协议是面向连接的,要求在传输报文段之前必须在源进程和目的进程之间建立传输连接。因此TCP能够提供端到端的、全双工的字节流传输服务。为了实现可靠的数据传输服务,TCP提供了对报文段的检错、确认、重传和排序等功能,提供了可靠地建立连接和拆除连接的方法,还提供了流量控制和阻塞控制的机制。对此,TCP常被用来在一个不可靠的互联网中为应用程序提供面向连接的、可靠的、端到端的字节流服务。
  5. 为什么HTTP、FTP、SMTP、POP3运行于TCP而不是UDP之上

    • 因为HTTP、FTP、SMTP、POP3协议都要求数据传输的可靠性,而TCP协议提供了面向连接的可靠数据传输服务,这样使得高层协议不需要考虑数据传输的可靠性问题.如果采用无连接、不可靠的UDP协议,高层协议就需要采取比较复杂的机制来进行确认、重传以保证数据传输的可靠性。因此,基于TCP协议更加合适。
  6. 将数字签名与公钥加密方法结合使用,可以带来什么好处?

    • 将数字签名与公钥加密方法结合使用,就能保证消息传输的保密性,并验证消息发送者是可信的。
  7. 在Internet中分片传送的IP数据报在最终的目的主机进行重组。还可以有另外一种方式,即各分片在通过了一个网络就进行一次重组。试比较这两种方法的优劣。

    • 采用在最终目的结点进行分片的重组有两个缺点。首先,由于一个IP数据报在经过一个具有较小的最大传输单元MTU的网络被分片后,如果不立即进行重组,各分片将从这个分片的地方一直传送到最终目的结点并进行重组。这样做可能导致重组的低效率;即使各分片在被分片后经过一些MTU较大的网络,仅仅直接通过这些网络。其次,一个IP数据报的任何一个分片丢失,该数据报将不能被重组,这将增大IP数据报传输失败的概率。尽管有这些不足之处,在最终目的结点进行重组的方法运行效果很好。这是因为该方法允许每个分片独立地进行路由选择,并且不要求中间路由器存储或者重组分片。

你可能感兴趣的:(软件工程860考研简答题知识点)