软件工程习题

合集下载

软件工程《软件工程》习题集

软件工程《软件工程》习题集

软件工程习题集第一章概述一、选择题1.“软件危机”产生的主要原因是( B )。

A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、( 需求分析)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(概要设计)和(详细设计)两步。

①需求分析②需求调查③可行性分析④问题定义⑤方案设计⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(程序、数据、文档)。

A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.在软件工程时期,决定软件质量的主要因素是( )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展5.下列哪个模型没有采用迭代的思想(A )A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型6.下列关于瀑布模型的描述正确的是( D )A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开7.瀑布模型的关键不足在于(B )(A)过于简单(B)不能适应需求的动态变更(C)过于灵活(D)各个阶段需要进行评审8.瀑布模型把软件生存周期划分为软件定义、软件开发与(D )三个阶段,而每一阶段又可分为若干更小的阶段。

A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错二、判断题1.软件工程是指导计算机软件开发和维护的工程学科。

( )2.在软件工程时期,决定软件质量的主要因素是管理水平. ( )3.软件生存期是从软件项目需求定义直至软件开始使用为止。

()4.常用的软件生存周期模型有瀑布模型和结构化模型。

()5.瀑布模型是一种线形的、顺序的软件开发模型( )6.瀑布模型的关键不足在于不能适应需求的动态变更.( )7.快速原型模型是为了克服瀑布模型的缺点而提出来的。

(完整word版)软件工程习题及答案解析

(完整word版)软件工程习题及答案解析

软件工程习题及答案一、选择题:1。

为了提高测试的效率,应该。

A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是。

A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。

A、数据流B、数据流图C、数据库D、数据结构4。

概要设计的结果是提供一份。

A、模块说明书B、框图C、程序D、数据结构5。

需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。

A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6。

注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。

A、1/6B、1/5C、1/4D、1/37. 变换型和事务型是程序结构的标准形式.从某处获得数据,再对这些数据作处理,然后将结果送出是属于。

A、变换型B、事务型8。

PAD(Problem Analysis Diagram)图是一种工具.A、系统描述B、详细设计C、测试D、编程辅助9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。

A、总貌B、细节C、抽象D、软件的作者10。

数据流图中,当数据流向或流自文件时,。

A、数据流要命名,文件不必命名B、数据流不必命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不同的D、数据流和文件均不要命名,通过加工可自然反映出11. 分析员是.A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导12. 在软件开发中,有利于发挥集体智慧的一种做法是.A、设计评审B、模块化C、主程序员制D、进度控制13. 在开发软件时, 可用来提高程序员的工作效率.A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机14. 结构化程序设计主要强调程序的。

软件工程习题(附答案)

软件工程习题(附答案)

一、选择题1、软件是一种( 2 )性工业产品。

(1)理论(2)知识(或逻辑)(3)消耗(4)体力2、需求分析是在( 2 )进行的。

(1)用户(2)用户和分析人员之间(3)开发人员内部(4)使用和维护人员之间3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于( 2 )的研究。

(1)经济可行性(2)技术可行性(3)操作可行性(4)法律可行性4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是( 4 )。

(1)工作阶段的等待时间(2)生产原型的复杂性(3)参与人员所需的工作站数(4)参与人员之间的沟通困难5、需求分析阶段的研究对象是( 1 )。

(1)用户需求(2)分析员要求(3)系统需求(4)软硬件需求6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行( 4 )。

(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、系统分析员应当( 4 )。

(1)善于使用户接受自已的观点(2)善于使自已获得成就(3)是用户与计算机技术人员的有效协调与组织者(4)满足上述所有条件8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统( 1 )的过程。

(1)逻辑模型(2)物理模型(3)总体方案(4)可行性报告9、系统测试的目的是( 4 )。

(1)找出编码错误(2)找出数据错误(3)要证明程序无错(4)发现软件错误10、一个模块内部各程序段都在同一张表上操作,这个操作的内聚性称为( 3 )。

(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚11、在结构化方法中全面指导模块划分的最重要的原则是( 4 )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性12、最高程度也是最差的耦合是( 2 )。

(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合13、概要设计阶段产生的文档不包括( 4 )。

(1)概要设计说明书(2)数据库设计说明书(3)用户手册(4)开发进度报告14、汽车有一个发动机,汽车和发动机之间的关系是( 2 )。

《软件工程》练习题

《软件工程》练习题

《软件工程》练习题一一、单选题1.可行性研究要进行一次()需求分析。

A.详细的B.全面的C.简化的、压缩的D.彻底的2.系统流程图用于可行性分析中的()的描述。

A.当前运行系统B.当前逻辑模型C.目标系统D.新系统3.系统流程图是描述()的工具。

A.逻辑系统B.程序系统C.体系结构D.物理系统4.软件的发展经历了()个发展阶段。

A .一B.二C.三D.四5.需求分析的任务不包括()。

A.问题分析B.系统设计C.需求描述 D .需求评审6.一个软件的宽度是指其控制的()。

A.模块数B.层数C.跨度D.厚度7.可行性研究的步骤中不包括()的内容。

A.复查初步分析结果B.研究现有系统C.导出新系统高层逻辑模型D.建立新系统的物理逻辑模型解法8.技术可行性是可行性研究的关键,其主要内容一般不包括()。

A.风险分析B.资源分析C.人员分析D.技术分析9.提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要()。

A.消除错误B.检测错误C.避开错误D.容错10.()是以提高软件质量为目的的技术活动。

A.技术创新B.创新C.技术创造D.技术评审11.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫()。

A.软件生存期B.面向对象设计C.面向对象程序设计D.面向对象分析12.软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的()阶段。

A.各个B.前期C.中期D.后期13.从事物的属性侧面来描述事物的方法就是()的方法。

A.面向对象B.面向过程C.面向数据D.面向属性14.Jackson方法在需求分析阶段的主要步骤不包括()。

A.了解实体行为B.标识实体与行为C.生成实体结构图D.创建软件系统模型15.原型化方法是用户和设计者之间执行的一种交互构成,适用于()系统。

A.需求不确定性高的B.需求确定的C.管理信息D.实时16.原型化方法是一种()型的设计过程。

软件工程习题

软件工程习题

第一章1.填空(1)软件是计算机系统中的___程序(指令)__、数据及其__文档(+服务)___的总称。

(2)软件的类型按功能可以分为___系统软件___、__支撑软件___和___应用软件__3中类型。

(3)国家标准GB/T 1147—1995《软件工程术语》对软件工程的定义是软件开发、运行、维护和引退________系统方法_______。

(4)软件工程是指导计算机______软件开发和维护____的工程学科。

(5)软件工程采用_____工程的概念、原理、技术和方法_____来开发与维护软件。

(6)软件工程的目标是____实现软件的优质高产______。

(7)软件工程的主要内容是_____软件开发技术和软件工程管理_____。

2.选择。

(1)下面(B)不是软件的特征。

A系统性与复制性B有形性与可控性C抽象性与智能性D依附性与泛域性(2)下面(D)不是系统软件。

A.BIOS B.Windows C.设备驱动程序 D.办公软件(3)软件危机的主要原因(A)A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后(4)下面(C)不属于软件工程学科所要研究的基本内容。

A软件工程原理B软件工程目标C软件工程材料D软件工程过程(5)下面(B)是正确的说法。

A.20世纪50年代提出了软件工程的概念B. 20世纪60年代提出了软件工程概念C. 20世纪70年代出现了客户机/服务器技术D. 20世纪80年代软件工程学科达到成熟.第二章1.填空(1)___软件可行性分析____的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否得去开发。

(2)可行性分析的目的不是去开发一个软件项目,而是研究这个软件项目内容是否____值得去开发、其中的问题能否解决___。

(3)可行性分析实质上是要进行一次简化,压缩了的___ 需求分析____和___设计____过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。

《软件工程》练习题

《软件工程》练习题
第 3 页 共 11 页
18.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 19.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A.调用关系 B.组成关系 C.链接关系 D.顺序执行关系 20. “软件危机”是指( C ) 。 A. 计算机病毒的出现 B.利用计算机进行经济犯罪活动 C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统 21.具有风险分析的软件生命周期模型是( C ) 。 A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 22.数据流图(DFD)中的每个数据处理至少需要( D ) 。 A.一个输入数据流 B.一个输出数据流 C.一个输入或者输出数据流 D.一个输入数据流和一个输出流 二.判断题(每小题 2 分,共 24 分) 1.文档是软件产品的一部分,没有文档的软件就不称其为软件。 ( Y ) 2.需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。 ( N ) 3.数据流图建立系统的功能模型,它由数据流、数据处理和数据存贮组成。 (N ) 4.在结构化分析建模中要建立的是对象模型、功能模型和行为模型,它们以数据字典为核心。 ( N ) 5.好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。 (Y ) 6.边界值分析方法是取输入/输出等价类的边界值来构成测试用例的测试方法。 (Y ) 7.在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。 ( N ) 8.在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。 ( Y ) 9.软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。 ( N ) 10.面向对象方法学的四要素是对象、类、继承和消息通信。 ( Y ) 11.详细设计的结果基本最终决定了软件的质量。 ( Y ) 12.在详细设计中常采用的工具有层次图、PAD(问题分析图) 、程序流程图、盒图等。 ( N ) 三.填空题(每空 2 分,共 24 分) 1.为了便于对照检查,测试用例应由输入数据和预期的 输出结果 两部分组成。 2.软件结构是以 模块 为基础而组成的一种控制层次结构。 3.如果知道软件的规格说明书描述的程序功能,那么就可以采用 进行测试。 4.当 A 模块调用 B 模块时若两个模块之间传递的是数值型参数,则这两个模块的耦合方式是 数值耦合。 5.软件概要设计关键的一步是 确定软件体系结构 __,它直接影响下一阶段详细设计和编码的工作。 6. 数据流图中的箭头表示 数据流 , 椭圆或圆形表示 数据处理 , 矩形表示 数据源点或终点 。 7.软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个___自底向上或相反____集成的过程。 8.按数据流的类型,面向数据流的设计方法有两种设计策略,它们是变换分析设计和 事务分析设计。 9.数据流图仅反映系统必须完成的逻辑功能,所以它是一种 功能 模型。 10.软件结构中的 深度 表示的软件的控制层数,它往往能够粗略地标志一个系统的大小和复杂程度。 四.简答题(每小题 5 分,共 10 分) 1.衡量模块独立性的两个定性标准是什么(2 分)?这两个标准的定义分别是什么(2 分)?在我们的软件设计 中,关于模块独立性我们追求的目标是什么 答:衡量模块独立性的两个定性标准是内聚和耦合(2 分) 。 耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元 素彼此结合的紧密程度。在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合(。 2.简述结构化程序设计方法的基本特点。 (5 分) 答: 1) .是尽可能少用 goto 语句的程序设计方法; 2) .每个代码块都单入单出; 3) .使用控制结构:顺序、选择和循环+Do_UNTIL 和 Do_CASE; 4) .自顶向下逐步求精。

软件工程练习题

软件工程练习题

"软件工程"练习题一、填空题1.软件主要包括程序、数据和文档三局部容。

2. 目前使用最广泛的软件工程方法学是传统〔构造化方法〕方法和面向对象方法。

3.软件可行性研究的任务是从技术、经济和社会可行性三个方面分析软件工程的可行性。

4.软件测试的目的是找出软件潜在的错误和缺陷;通常把软件测试方法分为黑盒测试〔功能测试〕和白盒测试〔构造测试〕两大类。

5.软件测试中,测试用例由输入数据和预期的输出结果两局部组成。

6.典型的软件生命周期模型〔软件过程模型〕包括瀑布模型、快速原型模型和增量模型、螺旋模型、喷泉模型等。

7.模块 A 调用模块 B 以查询学生成绩,模块A 通过参数向模块 B 传送所查询学生的**,模块 B通过参数向模块 A 返回学生的考试成绩。

模块A 和模块 B 之间的耦合类型属于数据耦合。

8.在类的继承构造中,不同层次的类共享同一个行为名称,但各个类可以按照自己的需要为同名行为设计不同的算法,此性质称为类的重写。

9.测试软件中的模块时,通常需要为被测模块设计辅助模块,辅助模块的名称分别是驱动模块和桩模块。

10.软件生存期中时间最长的是_软件维护阶段。

11.构造化分析方法中,功能模型用 DFD 描述;数据模型用 E-R 描述。

12.过程设计〔详细设计〕中,常用的描述工具有图形、表格和语言三类。

13.在模块构造图中,直接调用*一模块的其他模块数称为该模块的扇入数。

14.面向对象分析〔OOA〕方法中,必须定义对象间的通信机制,对象间通信是通过消息传递机制来实现的。

15.面向对象方法用对象分解取代了构造化方法的功能分解。

16.写出以下各对事物之间的关系〔继承、会萃、普通关联〕:交通工具——汽车的关系是:继承;书——读者的关系是:普通关联;班级——学生的关系是:会萃;多边型——线段的关系是:会萃。

17.面向对象设计〔OOD〕阶段,可以将面向对象的设计容划分为四局部,分别是:人机界面部分、问题域局部、任务管理局部和数据管理局部。

软件工程练习题&答案

软件工程练习题&答案

软件工程练习题一. 选择题(单选或多选)(1)需求分析阶段最重要的技术文档是( C )。

A)项目开发计划B) 设计说明书C)需求规格说明书D) 可行性分析报告(2)在软件工程中,白盒测试法可用于测试程序的内部结构。

此方法将程序看作是(A )A) 路径的集合B) 循环的集合C) 目标的集合 D) 地址的集合(3)在以下模块耦合性类型中,模块之间独立性最差的类型是( D )A) 非直接耦合B) 标记耦合C)控制耦合D)内容耦合(4)软件详细设计的主要任务是对(A)进行的详细设计。

A) 算法和数据结构B) 外部接口C)软件编码D)功能(5)Jackson方法是一种面向(C)的结构化方法。

A) 数据流B) 对象C)数据结构D)控制流(6)一个成功的测试可以( D )。

A) 表明程序没有错误B) 发现所有错误C)提高软件可靠性D)发现尚未发现的错误(7)下述陈述中,哪一个不是软件健壮性的度量指标?(C )。

A)失败后重新启动所需的时间B)引起失败的时间所占的百分比C)失败前的平均工作时间D)在一次失败中数据恶化的概率(8)黑盒技术设计测试用例的方法之一为( A )。

A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试(9)CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是(D )。

A)工作无序,项目进行过程中经常放弃当初的计划B)建立了项目级的管理制度C)建立了企业级的管理制度D)软件过程中活动的生产率和质量是可度量的(10)在面向数据流的软件设计方法中,一般将信息流分为( A )。

A)变换流和事务流B)变换流和控制流C)事务流和控制流D)数据流和控制流(11)软件设计中一般将用到图形工具,下述哪种工具可用作设计的图形工具。

( ABCDEF )A)结构图B)实体关系图C)IPO图D)流程图E) N-S图F) 判定树(12)软件需求分析阶段建立原型的主要目地是( C )。

A)确定系统的性能要求B)确定系统的运行要求C)确定系统是否满足用户需要D)确定系统是否满足开发人员需要(13)要显示描绘软件开发项目各作业的依赖关系,应选择(B )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题三答案
一、选择题
1.SD方法的设计总则是( )。

A) 程序简洁、操作方便B) 结构清晰、合理
C) 模块内聚性强D) 模块之间耦合度低
2.软件设计的主要任务是( )。

A)将分析阶段获得的需求说明转换为计算机中可实现的系统
B)完成系统的数据结构和程序结构设计
C)完成模块的编码和测试
D)对模块内部的过程进行设计
3.设计阶段应达到的目标有( )。

A) 提高可靠性和可维护性B) 提高应用范围
C) 结构清晰D) 提高可理解性和效率
4.从工程管理的角度来看,软件设计分两步完成( )。

A) ①系统分析②模块设计B) ①详细设计②总体设计
C) ①模块设计②详细设计D) ①总体设计②详细设计
5.模块独立性准则由以下定性指标来衡量( )。

A) 分解度B) 耦合度C) 屏蔽性D) 内聚性
6.用户界面设计的任务包括( )。

A) 确定用户界面类型B) 建立任务模型
C) 建立用户模型D) 建立功能模型
7.SP方法中的基本控制结构有( )。

A) 顺序结构B) 选择结构C) 重复结构D) GOTO结构
8.为使程序中数据说明更易于理解和维护,必须遵循以下原则( ) 。

A)数据说明的次序应当规范化
B)一个语句说明多个变量时,各变量名按字母顺序排列
C)对于复杂的数据结构,要加注释,说明在程序实现时的特点
D)定义变量名应按字母顺序排列
9.在详细设计翻译转换成源程序代码后,算法效率反映为对程序的哪几个方面的要
求( )。

A) 读写速度B) 代码长度C) 存储容量D) 执行速度
二、判断题
1.划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。

( )
2.在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中
常常被使用。

( )
3.信息隐蔽原则有利于提高模块的内聚性。

( )
4.中心变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因
此可以使用事务分析技术得到初始的模块结构图。

( )
5.当模块的控制范围是其作用范围的子集时,模块之间的耦合度较低。

( )
6.项目应用领域是选择语言的关键因素。

( )
7.良好的程序设计风格简单说就是高的编程技巧。

( )
三、简答题
1. 模块内联系和模块间联系有哪些种类?
答:
(1)块间联系的类型,按照耦合度由大到小分为:
内容型:直接引用另一模块的内部信息;
公共型:两个模块引用共同的全程数据区;
控制型:模块间传送的信息用于控制模块的内部逻辑;
复合型:模块间传送复合的数据结构;
数据型:模块间传送单个数据项。

(2)块内联系的类型,按照内聚性从小到大分为:
偶然型:模块内部没有必然联系;
逻辑型:逻辑上相似的功能放进一个模块;
瞬时型:将同时执行的语句放在一个模块;
通信型:模块中的各部分引用共同的数据;
顺序型:模块中一部分的输出是另一部分的收入;
功能型:模块中刚好包含了完成一个基本任务所必需的成分。

2. 下图是修改文件记录的DFD图,请确定其主加工。

解:主加工为:账号、修改、写记录。

4.按照“降低块间联系,提高块内联系”的设计总则对模块进行修改,具体从哪些
方面进行改进?
解:
(1)尽可能建立功能模块;
(2)消除重复功能;
(3)模块的作用范围与控制范围,即当作用范围为控制范围的子集时,才能获
得较低的块间联系;
(4)模块的大小适当;
(5)模块的扇入扇出数不宜太多。

5. 根据模块的作用范围与控制范围的原则,判定a、b两图的正确性。

解:显然,图a不满足作用范围应与控制范围的原则,模块F的作用范围不在控制范围之内。

图b的模块设计合理。

6. 编码阶段的主要任务是什么,应交付的结果是什么?
答:编码阶段的主要任务是为每个模块编写程序。

即是:将详细设计的结果转换为用某种计算机语言写的程序——源程序代码。

编码阶段应交付的结果是带有“程序内部文档”的、不再含有语法错误的程序。

7.SP法的自顶向下,逐步求精方法的优点有哪些?
答:此法符合人们解决复杂问题的普遍规律,可提高软件开发的成功率和生产率;
而且用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程,开发出来的程序具有清晰的层次结构,因此程序容易阅读和理解。

这样,程序自顶向下,逐步细化,分解成一个树型结构。

因此,在同一层次的节点上做细化工作,相互之间没有联系,它们之间的细化工作相互独立;在任何一步发生错误,一般只影响它下层的节点,同一层其他节点不受影响;在以后的测试中,也可以先独立地一个节点一个节点地做,最后再集成。

这样,程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码量最大。

8.为了使程序具有良好的设计风格,应注意哪些方面的问题?
答:(1) 标识符应按意取名。

标识符即符号名,包括:模块名、常量名、标号名、子程序名、数据区名、缓冲区名等。

这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能够见名知意,有助于对程序功能的理解。

(2) 程序应加注释,它分为两类:序言性注释和功能性注释。

序言性注释应置于每个模块的起始部分,主要内容有:①说明每个模块的用途,功能;②说明模块的接口即调用格式、参数描述及从属模块的清单;③数据描述;
④开发历史。

功能性注释是嵌在源程序体中的,用于说明其后的程序段或语句的功能以及数据的状态;也就是解释下面要“做什么”,或是执行下面的语句会发生什么情况;而不是解释下面“怎么做”,因为怎么做常常是与程序重复的,且对读者理解程序没有什么帮助。

9.怎样评价程序的执行效率?它与程序清晰性的关系是怎样的?
答:许多程序员往往片面追求效率,其实程序系统的成本不仅包括运行所需的机时,同时还应把程序员及操作员所花费的人力考虑进去。

在编程时为追求效率而损害可读性或可靠性,会给以后的维护工作带来困难,所以从整体上看来是不值得的。

此外,还应该认识到,提高程序效率的根本途径在于:选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句进行调整。

(1)追求建立在不损害程序可读性或可靠性基础上,要先使程序正确、清晰,
再提高程序效率。

(2)不能因为贪图效率上的小利,而破坏程序的清晰性。

(3)让编译程序去作简单的优化。

(4)提高程序效率的根本途径在于:选择良好的设计方法和良好的数据结构
与算法,而不是靠编程时对程序语句做调整。

相关文档
最新文档