- 193.82 KB
- 2022-08-30 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
计算机技术基础、计算机网络基础、信息技术网络基础(二)单项选择题K默认情况下,Linux系统屮用户登录密码信息存放在文件中。A・/etc/groupB./etc/userinfoC./etc/shadowD./etc/profie2、在Windows系统中若要显示工P路由表的内容,可以使用命令oA.Netstat-sB.Netstat-rC.Netstat-nD.Netstat-a3、在Linux系统,命令用于管理各项软件包。A.installB.rpmC.fsckD.msi4、TSP分配给某公可的地址块为199.34.76.64/28,则该公司得到的地址数是。A.8B・16C.32D.645^Wi-Fi联盟制定的安全认证方案WPA(Wi-fiProtectedAccess)是标准的子集。A.IEEE802・1丄B・IEEE802.11aC・IEEE802.11bD・IEEE802.Hi6、入侵检测系统使用入侵检测技术对网络和系统进行监视,并根据监视结果采取不同的处理,最大限度降低可能的入侵危害。以下关于入侵检测系统的叙述,不正确的是。A.入侵检测系统可以弥补安全防御系统的漏洞和缺陷B.入侵检测系统很难检测到未知的攻击行为C.基于主机的入侵系统可以精确地判断入侵事件D・网络检测入侵检测系统主要用于实时监控网络关键路径的信息7、对4对线的UTP链路来说,测试近端串扰(NEXT)损耗需要的次数至少是。A.4次B.8次C.12次D.6次8、计算机综合布线过程小,铺设金属管应尽量减少弯头,按照规定,每根金属管的弯头应不超过A.1个B.2个C・3个D・4个9、以下关于防火墙优点的叙述,不恰当的是A.防火墙能强化安全策略B.防火墙能防止从LAN内部攻击C.防火墙能限制暴露用户点D•防火墙能有效记录Internet上的活动10、隐蔽工程施工中,正确的做法是。A.暗管的弯转角度应小于90度B.待管内穿线工程完成后,清理管内杂物和积水,并开始进行地而工程C.管道明敷时必须弹线D.线管进入箱体时,宜采用上进线方式11>在面向对象软件开发过程中,采用设计模式开发。A.以复用成功的设计B.以保证程序的运行速度达到最优值\nA.以减少设计过程创建的类的个数B.允许在非面向对象程序设计语言中使用面向对象的概念\n丄2、某软件开发项目的用户在项目初始阶段捉出的需求不全而也不明确,此项目宜釆用开发。A.生命周期法B.原型法C.面向对象的开发方法D.瀑布式开发方法13.下列耦合形式屮,耦合度最弱的是oA.特征耦合B.公共耦合C.数据耦合D.控制耦合14、模块内部的算法设计在采用结构化方法进行开发的阶段进行。A.系统分析B.概要设计C.详细设计D.编码(实现)15、一个软件系统应具有什么样的功能,这是在阶段决定的。A•总体设计B.需求分析C.详细设计D.程序设计16、数据库设计依次为A.物理设计阶段、逻辑设计阶段、概念设计阶段B.概念设计阶段、逻辑设计阶段、物理设计阶段物理设计阶段逻辑设计阶段C.边界值分析D.变异测试C.逻辑设计阶段、概念设计阶段、A.概念设计阶段、物理设计阶段、17、不属于黑盒测试方法。A.等价类划分B.状态测试18、软件测试可由不同机构组织实施。以下说法正确的是。A.软件单元测试由承建单位组织,一般由软件开发组实施测试B.软件集成测试由业主单位组织,软件开发组和软件测试组联合实施测试C.软件确认测试由业主单位组织,软件测试组实施测试D.系统测试由监理单位组织,成立联合测试组实施测试19、软件质量的含义应完整包括。①能满足给定需要的特性之全休②具有所希望的各种属性的组合的程度③顾客或用户认为能满足其综合期期的程度④软件的组合特性,它确定软件在使用中满足顾客一切要求的程度A.①B.①②C.①②③D.①②③④20、在软件配置管理规程中应明确规定。①各级、各库中所管的软件实体的清单②保证安全性、可靠性、保密性、正确性、完备性、一致性和口J追踪性的具体措施③入库控制办法和审批手续④出库条件及其必备的手续⑤变更控制办法和审批手续A.③④⑤B.①②③④⑤C.①②③④D.①③④⑤21、软件配置管理应满足''〃、''可见性〃和''可控性〃要求。A.有效性B.可靠性C.实用性D.全面性22、某项目组拟开发一个大规模系统,R具备了相关领域及类似规模系统的开发经验。下列过程模\n型中,最适合开发此项目。A.原型模型B.瀑布模型C.V模型D・螺旋模型\nA.软件的规模B.开发小组的规模C.软件的难度D.软件的结构24、以下关于软件系统文档的叙述屮,错误的是oA.软件系统文档既包括有一定格式要求的规范文档,又包括系统建设过程屮的各种来往文件、会议纪要、会计单据等资料形成的不规范文档B.软件系统文档可以提高软件开发的可见度C.软件系统文档不能捉高软件开发效率D.软件系统文档便于用户理解软件的功能、性能等各项指标25、以下关于软件测试的叙述中,正确的是。A・软件测试不仅能表明软件中存在错误,也能说明软件中不存在错误B.软件测试活动应从编码阶段开始C.一个成功的测试能发现至今未发现的错误D.在一个被测程序段中,若已发现的错误越多,则残存的错误数越少26、不属于黑盒测试技术的是。A・错误猜测B.逻辑覆盖C.边界值分析D.等价类划分27、软件是指一个系统在给定时间间隔内和给定条件下无失效运行的概率。A.可靠性B.可用性C.可维护性D.可仲缩性28、在软件维护阶段,为软件的运行增加监控设施属于维护。A.改正性B.适应性C.完善性D.预防性29、面向对象分析的第一步是。A.定义服务B.确定附加的系统约束C.确定问题域D.定义类和对彖30、下列关于面向对象的分析与设计的描述,正确的是oA.面向对象设计描述软件要做什么B.面向对象分析不需要考虑技术和实现层面的细节C.面向对象分析的输入是面向对象设计的结杲D.而向对彖设计的结果是简单的分析模型31、数据流图(DFD.对系统的功能和功能之间的数据流进行建模,其中顶层数据流图描述了系统的A.处理过程B.输入与输出C.数据存储D.数据实体32、软件开发的增量模型。A.最适用于需求被清晰定义的情况B.是一种能够快速构造可运行产品的好方法C.最适合于大规模团队开发的项口D.是一种不适用于商业产品的创新模型33、假设某软件公司与客户签订合同开发一个软件系统,系统的功能有较清晰的定义,且客户对交付时间冇严格要求,则该系统的开发最适宜采用oA.瀑布模型B.原型模型C.V模型D.螺旋模型\n34、以下关于封装在软件复用中所充当的角色的叙述,正确的是。A.封装使得具他开发人员不需要知道一个软件组件内部如何工作B・封装使得软件组件更冇效地工作C.封装使得软件开发人员不简要编制开发文档A.封装使得软件组件开发更加容易35、数据流图的作用是。A.描述了数据对象之间的关系B.描述了对数据的处理流程C.说明了将要出现的逻辑判定D.指明了系统对外部事件的反应36、软件需求规格说明书在软件开发中具有重要作用,但其作用不应该包括。A.软件设计的依据B.用户和开发人员对软件要做什么的共同理解C.软件验收的依据D.软件可行性分析依据37、软件的复杂性与许多因素有关,不属于软件的复杂性参数。A.源程序的代码行数B.程序的结构C.算法的难易程度D.程序中注释的多少38、软件黑盒测试的测试用例设计主要考虑。A.软件功能B.输入数据C.输出数据D.内部逻辑39、代码走查(codewalkthrough)和代码审查(codeinspection)是两种不同的代码评审方法,这两种方法的主要区别是。A.在代码审杳中由编写代码的程序员來组织讨论,而在代码走查中由高级管理人员來领导评审小组的活动B.在代码审查中只检查代码中是否有错误,而在代码走查中还要检查程序与设计文档的一致性C.在代码走查屮只检查程序的正确性,而在代码审查屮还要评审程序员的编程能力和工作业绩D.代码审查是一种正式的评审活动,而代码走查的讨论过程是非正式的40、关于维护软件所需的成本,以卜•叙述正确的是oA.纠正外部和内部设计错误比纠正源代码错误需要更大的成本B.与需求定义相比,源代码的文字量大得多,所以源代码得维护成本更高C.用户文档需要经常更新,其维护成木超过了纠正设计错误的成木D.需求定义的错误会在设计时被发现并纠正,因此需求定义纠错的成本小于源代码纠错的成本答案:单项选择题Cetc/shadow文件用于保存Linux系统中用户登录密码信息,当然是使用加密后的形式。shadow\n文件仅对root用户可读,保证了用户口令的安全性。2、BNetsta匸命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。其中要显示工P路由表的内容可以使用命令Netstat-ro3、BRPM是RedHat公司随RedhatLinux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。4、B工SP分配给某公可的地址块为199.34.76.64/28,说明其主机位为4位,则地址数为2°=6。5、DWi-Fi保护接入(Wi-FiProtectedAccess,WPA)是作为通向802・lli道路的不可缺失的一环而出现,并成为在TEEE802.Hi标准确定Z前代替WEP的无线安全标准协议,屈丁7EEE802.Hi标准的子集。6、A入侵检测系统是一种对网络传输进行即时监视,在发现可疑传输时发岀警报或者采取主动反应措施的网络安全设备。入侵检测系统可以分为基丁•主机的入侵检测系统和基于网络的入侵检测系统。基丁•主机的入侵检测系统对于特定主机给予了定制性的保护,对于发生在本地的、用户级的、特征性比较明显的入侵行为有防范作用,它可以精确地判断入侵事件,但会占用系统主机宝贵的资源。基于网络的入侵检测系统需要监视整个网络的流量,匹配可疑行为特征。它的技术实现通常必须从网络和系统的底层入手,而且它同时保护的是网络上的一批主机,无论它们使用的什么系统。入侵检测系统具有一定的局限性,主要表现在。(1)入侵检测系统无法弥补安全防御系统的漏洞和缺陷。(2)对于高负载的网络或主机,很难实现对网络或系统的实吋检测和报警。(3)很难检测到未知的攻击行为。(4)系统木身的特点可能被利用来作为网络或系统攻击的对象。(5)它不能修正信息资源的安全问题。7、D在一条UTP的链路上,NEXT损耗的测试需要在每一-对线之间进行。也就是说对于典型的4对UTP来说要有6对线关系的组合,即测试6次。8、C计算机综合布线过程屮,在敷设金屈线管时应尽量减少弯头,每根金屈管的弯头不宜超过3个,直角弯头不应超过2个,并不应有S弯出现,对于截面较大的电缆不允许有弯头,可采用内径较大的管子或增设拉线盒。其屮弯曲半径应符合下列要求:(丄)明配管时,一般不小于管外径的6倍;只冇一个弯时,可不小于管外径的4倍;整排钢管在转弯处,宜弯成同心圆形状。(2)明配管时,一般不小于管外径的6倍,敷设于地下或混凝土楼板内时,应不小于管外径的10倍O(3)电线管的弯曲处不应有折皱、陷和裂缝,且弯扁程度不应大于管外径的10%。订购电缆时,必须考虑:•确定介质彳|j线方法和电缆走向。•确认到管理间的接线距离。•留有端接容差。9、B防火墙是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屠障和协助确保信息安全的设备。它会依照特定的规则,允许或是限制传输的数据通过。防火墙具冇很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。防火墙最基本的功能就是在计算机网络中控制不同信任程度区域间传送的数据流。例如与互联网是不可信任的区域,而内部网络是高度信任的区域。典型的区域包括互联网(一个没有信任的区域)\n和一个内部网络(一个高信任的区域)。最终目标是根据最少特权原则,通过安全政策的运行和连通性模型,提供受控连通性给不同水平的信任区域。防火墙的优点主要有:•防火墙能强化安全策略。•防火墙能有效地记录Internet上的活动。•防火墙限制暴露用户点。防火墙能够用来隔开网络屮一个网段与另一个网段。这样,能够防止影响一个网段的问题通过整个网络传播。•防火墙是一个安全策略的检查站。所有进出的信息都必须通过防火墙,防火墙便成为安全问题的检查点,使可疑的访问被拒绝于门外。10>C隐蔽工程在管道安装过程中,要求管道明敷时必须弹线,以保证管路横平竖直;喑管的转弯角度应大于90度,在路径上每根暗管的转弯角不得多于两个,并不应有S、、'Z"弯出现。在管内穿线时,线管进入箱体宜采用下进线或者设置防水弯的方式避免箱体进水,且穿线宜在建筑物的抹灰、装修及地面工程结朿后进行,在穿入导线前,应将管子屮的积水及杂物清除干净。11>A模式是一种问题的解决思路,它已经适用于一个实践环境,并且可以适用于其他环境。设计模式通常是对于某一类软件设计问题的可重用的解决方案,将设计模式引入软件设计和开发过程,其目的就在于要重用成功的软件开发经验。12>B常见的信息系统开发方法有结构化法、原型法、面向对象方法。其中原型法也称原型化法,原型法的基木思想与结构化方法不同,原型法认为在很难一下了全面准确地提出用户需求的情况卜首先不耍求一定耍对系统做全而、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。系统分析、设计与实现都是随着对一个工作模型的不断修改而同吋完成的,相互之间并无明显界限,也没有明确分工。C中的''面向对象的开发方法〃既适合于需求明确的情况,也适合于需求不明确的场合,A太笼统,''瀑布式〃是一种软件开发模型,而非开发方法。丄3、C耦合度是指模块间关联的紧密程度,从强至弱依次分为7种:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。14>C通俗地说,概要设计是设计模块Z间的关系,而详细设计是设计模块内部的细节。因此模块内部的算法设计屈于详细设计的范畴。15>B需求分析是软件系统生命周期屮较早期的一个阶段,其口的主要是确定软件系统应该具备哪些功能,即明确''做什么〃的问题。16、B数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库设计具体分为三个阶段:(1)概念设计阶段:形成独立于机器特:点,独立于齐个DBMS产品的概念模式(E・R图)。(2)逻辑设计阶段:首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式(3)物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。17>D\n黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能」I•:常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主耍针对软件界面和软件功能进行测试。黑盒测试通常可以细分为边界值测试、等价类划分、错误推测与因果图这四种小类。状态测试可以理解为等价类划分测试法的一个分支。18>A软件测试应由独立于软件设计开发的人员进行,根据软件项目的规模等级和安全性关键等级,软件测试可由不同机构组织实施。(1)软件单元测试由承建单位自行组织,一般由软件开发组实施测试。(2)软件集成测试由承建单位自行组织,软件开发组和软件测试组联合实施测试。(3)软件确认测试由承建单位自行组织,软件测试组实施测试。(4)系统测试应由业主单位组织,成立联合测试组(一般由专家组、业主单位、软件评测单位、承建单位等联合组成测试组)实施测试。19、C1999年,软件''产品评价〃国际标准:ISO14598给出的''软件质量〃的定义是:软件特性的总合,软件满足规定或潜在用户需求的能力。也就是说,质量就是遵从用户需求,达到用户满意。从而可判断''④选项〃的描述错误。2001年,软件''产品质量〃国际标准工SO9126定义的软件质量包括''内部质量〃、''外部质量〃和''使用质量〃三部分。也就是说,''软件满足规定或潜在用户需求的能力〃要从软件在内部、外部和使用中的表现來衡量。20>B软件配置项不论大小都必须实施软件配置管理。每个计算机系统均应制定软件配置管理规程,至少应明确规定:(1)各级、各库屮所管的软件实体的清单。(2)保证安全性、可靠性、保密性、正确性、完备性、一致性和可追踪性的具体措施。(3)入库控制办法和审批手续。(4)出库条件及其必备的手续。(5)变更控制办法和审批手续。21>A任何软件配置管理项都必须做到''文实相符、文文一致〃,以满足''冇效性〃、''可见性〃和''可控性〃要求。22、B本题主要考查我们对各开发模型的理解。瀑布模型具有可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审等优点。但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。原型模型一般是基于需求不容易明确这一事实:并非所冇的需求在系统开发Z前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。快速原型法适用于需求不够明确的项口。V模型一种典型的测试模型,该模型强调开发过程中测试贯穿始终。螺旋模型综合了瀑布模型和演化模型的优点,并在此基础上还增加了风险分析。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。本题描述的是一个大型项目,那么对文档的要求应该相应较高,而且具备了相关领域及类似规模系统的开发经验,那么系统的需求应该较明确,综合考虑,应该采用瀑布模型。23、B软件复杂性主要表现在程序的复杂性。程序的复朵性主耍指模块内程序的复朵性。它直接关联到软件\n开发费用的多少、开发周期长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。软件复杂性度量的参数很多,主要有:(1)规模,即总共的指令数,或源程序行数。(2)难度,通常由程序中出现的操作数的数目所决定的量来表示。(3)结构,通常用于程序结构有关的度量来表示。(4)智能度,即算法的难易程度。24、C软件系统文档既包括有一定格式要求的规范文档,又包括系统建设过程屮的各种来往文件、会议纪要、会计单据等资料形成的不规范文档,通过它可以捉高软件开发的可见度,捉高软件开发的效率以及便于用户理解软件的功能、性能等各项指标。25、C软件测试的口的就是在软件投入生产性运行之前,尽可能多地发现软件产甜(主要是指程序)屮的错误和缺陷。软件测试是软件质量保证的主要手段之一。一个好的测试用例是极有可能发现至今为止尚未发现的错误的测试用例。一次成功的测试是发现了至今为止尚未发现的错误的测试。一个高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。软件测试不能说明软件中不存在错误。26、B黑盒测试又称功能测试。它把软件看做一个不透明的黑盒子,完全不考虑(或不了解)软件的内部结构和处理算法,它只检查软件功能是否能按照软件需求说明书的耍求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程屮能否保持外部信息(例如文件和数据库)的完整性等。常用的黑盒测试技术包括等价类划分、边界值分析、错误推测和因果图等。27、A软件的可靠性是指一个系统在给定时间间隔内和给定条件下无失效运行的概率。软件的可用性是指软件在特定使用环境下为特定用户用丁•特定用途时所具有的有效性。软件的可维护性是指与软件维护的难易程度相关的一组软件属性。软件的可伸缩性是指是否可以通过运行更多的实例或者采用分布式处理来支持更多的用户。28>C软件维护占整个软件生命周期的60%〜80%,维护的类型主要有以下4种。(1)改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。(3)完善性维护:在软件的使用过程屮,用户往往会对软件捉出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。(4)预防性维护:这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为''把今天的方法学用于昨天的系统以满足明天的需要〃。也就是说,采用先进的软件工程方法对需耍维护的软件或软件屮的某一部分(重新)进行设计、编制和测试。而本题所描述的为软件的运行增加监控设施属于完善性维护。29、C面向对象分析的任务是了解问题域所涉及的对象、对象间的关系和操作,然后构造问题的对象模型。问题域是指一个包含现实世界事物与概念的领域,这些事物和概念与所设计的系统要解决的问题有关。因此而向对彖分析的第一步是要确定问题威。30、BOOA是软件需求分析的一种方法,而需求分析所关心的是软件要做什么,不需要考虑技术和实现层面的细节问题。OOA的结果是分析模型及说明文档,同时OOA的结果是OOD的输入。\n31、B数据流图主耍由实体、数据存储、处理过程和数据流四部分组成。在顶层数据流图屮,将系统描述成一个处理过程,而其他的是与该处理过程相关的输入输出流,因此顶层数据流图描述了系统的输入与输出。32、B增量模型是一种非整体开发的模型,该模型具有较大的灵活性,适合于软件需求不明确的一种模型。使用该模型开发产品,一般是尽快构造出可运行的产品,然后在该产品的基础上再增加需要的新的构建,使产品更趋于完善。33、A瀑布模型严格遵循软件生命周期各阶段的同定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入到下一阶段。瀑布模型的优点是:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程屮逐渐明确用户难以确切表达或一吋难以想到的需求。该模型比较适合于需求明确,对交付时间有严格要求的开发。原型模型基于这样一种客观事实:并非所有的需求在系统开发Z丽都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。它适用于需求不明确的开发环境。螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。螺旋模型包含了四个方面的活动:制订计划、风险分析、实施工程、客户评估。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。螺旋模型比较适合大规模的开发,它对风险控制冇很高的要求。综上所述,要满足题目描述的要求,应该采用瀑布模型开发最适宜。34^A封装是面向对象技术的三大特点之一,封装的目的是使对象的定义和实现分离,这样,就能减少耦合。封装可以使得其他开发人员不需要知道一个软件组件内部是如何工作的,只需耍使用该组件提供的接口来完成交互即可,如果在另外一个地方需要完成同样的功能,我们就可以将该组件使用在另外一个地方,这样提供了软件的复用性。35、B数据流图是结构化分析中的重要方法和工具,是表达系统内数据的流动并通过数据流描述系统功能的一种方法。数据流图还可被认为是一个系统模型,在信息系统开发中,一般将它作为需求说明书的组成部分。数据流图的作用主要有以下儿个方面:(1)数据流图是理解和表达用户需求的工具,是系统分析的手段。由于数据流图简明易懂,理解它不需要任何计算机专业知识,便于通过它同客户交流。(2)数据流图概括地描述了系统的内部逻辑过程,是系统分析结杲的表达工貝。因而是系统设计的重要参考资料,是系统设计的起点。(3)数据流图作为一个存档的文字材料,是进一步修改和充实开发计划的依据。数据流图从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,來说明系统所完成的功能。36、D软件需求规格说明书的编制是为了使用户和开发人员对软件耍做什么冇共同的理解,使Z成为整个软件设计和软件验收工作的基础。需求分析在可行性研究之后,当然不能成为可行性研究的依据。37、D软件的复朵性与源程序的代码行数、程序的结构、算法的难易程度有关,与程序中注释的多少无关。程序屮注释的多少与程序的可阅读性和可理解性冇关。38、A\n盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接II进行测试,它只检杳程序功能是否按照需求规格说明书的规定止常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并R保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。''黑盒〃法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。''黑盒〃法是穷举输入测试,只冇把所冇可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅耍测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。39、D静态分析屮进行人工测试的主要方法有桌前检查(DeskChecking).代码审查和代码走查。经验表明,使用这种方法能够冇效地发现30%〜70%的逻辑设计和编码错误。1.桌前检查由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析,检验,并补充相关的文档,口的是发现程序屮的错误。检查项口有:(丄)检查变量的交叉引用表:重点是检查未说明的变量和违反了类型规定的变量;还要对照源程序,逐个检查变量的引用、变量的使用序列;临时变量在某条路径上的重写情况;局部变量、全局变量与特权变量的使用;(2)检查标号的交叉引用表:验证所有标号的正确性:检查所有标号的命名是否正确;转向指定位置的标号是否正确。(3)检查子程序、宏、函数:验证每次调用与被调用位置是否正确;确认每次被调用的子程序、宏、函数是否存在;检验调用序列中调用方式与参数顺序、个数、类型上的一致性。(4)等值性检查:检查全部等价变量的类型的一致性,解释所包含的类型差异。(5)常量检查:确认每个常量的取值和数制、数拯类型;检查常量每次引用同它的取值、数制和类型的一致性;(6)标准检查:用标准检查程序或手工检查程序中违反标准的问题。(7)风格检杳:检杳在程序设计风格方面发现的问题。(8)比较控制流:比较由程序员设计的控制流图和由实际程序生成的控制流图,寻找和解释每个差异,修改文档和校正错误。(9)选择、激活路径:在程序员设计的控制流图上选择路径,再到实际的控制流图上激活这条路径。如果选择的路径在实际控制流图上不能激活,则源程序口J能冇错。用这种方法激活的路径集合应保证源程序模块的每行代码都被检杳,即桌前检杳应至少是语句覆盖。(10)对照程序的规格说明,详细阅读源代码:程序员对照程序的规格说明书、规定的算法和程序设计语言的语法规则,仔细地阅读源代码,逐字逐句进行分析和思考,比较实际的代码和期望的代码,从它们的差异屮发现程序的问题和错误。(丄1)补充文档:桌前检查的文档是一种过渡性的文档,不是公开的正式文档。通过编写文档,也是对程序的一种下意识的检杳和测试,可以帮助程序员发现和抓住更多的错误。这种桌前检查,由于程序员熟悉自己的程序和自身的程序设计风格,可以节省很多的检查时间,但应避免主观片面性。2代码审查代码审查是由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审杳分两步:(1)小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。小组成员在充分阅读这些材料之后,进入审查的第二步。(2)召开程序审查会。在会上,首先由程序员逐句讲解程序的逻辑。在此过程屮,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。实践表明,程序员在讲解过程中能发现许多原来自己没有发现的错误,而讨论和争议则促进了问题的暴露。在会前,应当给会审小组每个成员准备一份常见错误的清单,把以往所有可能发生的常见错误\n罗列岀来,供与会者对照检查,以提高会审的实效。这个常见错误清单也叫做检查表,它把程序中可能发生的各种错误进行分类,对每一类列举出尽可能多的典型错误,然后把它们制成表格,供在会审时使用。这种检查表类似于本章单元测试中给出的检查表。3.代码走查代码走查与代码审查基本相同,其过程也分为两步。(1)把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。(2)开会的程序与代码会审不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者''充当〃计算机。即首先由测试组成员为被测程序准备一•批有代表性的测试用例,提交给走查小组。走杳小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。由此可见,与代码审查相比,代码审查是一种正式的评审活动,而代码走查的讨论过程是非正式的。40>A软件经过测试,交付给用户后,在使用和运行过程中可能在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。软件维护占整个软件生命周期的60%〜80%,维护的类型主要有三种:(1)改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施屮的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输岀方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。(3)完善性维护:在软件的使用过程屮,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。除了以上三类维护Z外,述冇一类维护活动,叫做预防性维护。这是为了捉高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护定义为:''把今天的方法学用于昨天的系统以满足明天的需要〃。也就是说,采用先进的软件工程方法对需要维护的软件或软件屮的某一部分(重新)进行设计、编制和测试。以上各种维护过程占整个软件维护工作量比例如图所示。各种维护所占的比例有形的软件维护成本是花费了多少钱,而其他非直接的维护成本有更大的影响。例如,无形的成本可以是:(D-些看起来是合理的修复或修改请求不能及时安排,使得客户不满意;(2)变更的结果把一些潜在的错误引入止在维护的软件,使得软件整体质量下降;(3)当必须把软件人员抽调到维护工作中去吋,就使得软件开发工作受到干扰。软件维护的代价是在生产率方面的惊人下降。有报告说,生产率将降到原来的1/40。维护工作量可以分成生产性活动(如分析和评价、设计修改和实现)和''轮转〃活动(如力图理解代码在做什么、\n试图判明数据结构、接口特性、性能界限等)。下面的公式给出了一个维护工作量的模型:M=p+kec_d其中,M是维护中消耗的总工作量,p是生产性工作量,k是一个经验常数,c是因缺乏好的设计和文档而导致复杂性的度量,d是对软件熟悉程度的度量。这个模型指明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。在软件开发过程中,错误纠正成本在逐步放大。也就是说,错误发现得越早,纠正错误所花费的成木就会越低,反Z则越高。例如,如果在软件设计阶段有个错误未被发现,而待编码阶段时才发现,这吋,纠正这个设计错误比纠正源代码错误需要更大的成木。