《软件工程各章习题集16527.pdf》由会员分享,可在线阅读,更多相关《软件工程各章习题集16527.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 即时练习 第 1 讲 一、填空题 软件危机是指在计算机软件的_开发和维护_过程中所遇到的一系列严重问题。软件危机包含下述两个方面的问题:一是 _如何开发软件,以满足对软件日益增长的需求;二是 _如何维护数量不断膨胀的已有软件_。软件不同于硬件,它是计算机系统中的 _逻辑部件_ 而不是物理部件。一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为 _生命周期_。软件配置主要包括 _程序、文档_和_数据_ 等成分。软件工程学的一个重要目标就是提高软件的 _可维护性、减少 _软件维护_ 的代价。软件工程是指导计算机软件 _软件开发_ 和 _维护_ 的一门
2、工程学科。软件工程包括 _技术_ 和 _管理_ 两方面的容,是技术与管理紧密结合所形成的工程学科。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 _方法学_,也称为型。软件工程方法学包含_方法、工具 和_过程_ 三个要素。目前使用最广泛的软件工程方法学,分别是 _传统方法学 和 面向对象方法学_。概括地说,软件生命周期由 _软件定义_、_软件开发_ 和 _运行维护(软件维护)_ 个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期通常进一步划分为个阶段,即 _问题定义_、_可行性研究_ 和需求分析。、螺旋模型将 _瀑布、_ 模型和 _快速原型_ 模型结合起来,加入了两种模型均
3、忽略了的风险分析,弥补了这两种模型的不足。瀑布模型 _不能_ 适应需求可变的软件开发,只有到 _开发结束_ 才能见到整个软件系统。二、选择题:软件是一种()产品。、有形 、逻辑 、物质 、消耗 与计算机科学的理论研究不同,软件工程是一门()学科。、理论性、工程性 、原理性、心理性 软件工程学科出现的主要原因是()。、计算机的发展 、其他工程学科的影响 、软件危机的出现、程序设计方法学的影响 由于软件生产的复杂性和高成本性,使大型软件 的生存出现危机,软件危机的主要表现包括了下述()方面。生产成本过高 需求增长难以满足 进度难以控制 质量难以保证 、B、C、D、全部 有关计算机程序功能、设计、编
4、制、使用的文字或图形资料称为()。、软件 B、文档 C、程序 D、数据 ()是计算机程序及期说明程序的各种文档。、软件 B、文档 C、程序 D、数据 问题定义阶段必须回答的关键问题是()。、要解决的问题是什么 B、确定目标系统必须具备哪些功能、怎样实现目标系统、如何具体实现系统 三、问答题 简述软件危机的典型表现。答:()对软件开发成本和进度的估计常常很不准确;()用户对“已完成的”软件系统不满意的现象经常发生;()软件产品的质量往往靠不住;()软件常常是不可维护的;()软件通常没有适当的文档资料;()软件成本在计算机系统总成本中所占的比例逐渐上升;()软件开发生产率提高的速度,远远跟不上计算
5、机应用迅速普及深入的趋势。什么是软件过程?它与软件工程方法学有何关系?答:软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的个重要组成部分之一。假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你作出选择的理由。答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,
6、因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助开提高软件可维护性的增量模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。瀑布模型有什么优缺点?答:瀑布模型的优点:可强迫开发人员采用规的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:“瀑布模型是由文档驱动的”这个事实也是它的 一个主要缺点,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。5、什么是
7、软件危机?软件危机包含哪些问题?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。6、产生软件危机的原因主要有哪些?答:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。7、简述软件工程的条基本原理的主要容 答:1)用分阶段的生命周期计划严格管理;2)坚持进行阶段评审;3)实行严格的产品控制;4)采用现代程序设计技术;5)结果应能清楚地审查;6)开发小组的人员应该少而精;7)承认不断改进软件工程实践的必要性。四、计算题 美国一家公司在 1982 年计划用
8、FORTRAN 语言开发一个在 VAX750 计算机上运行的应用程序,估计这个程序的长度为 10000 条 FORTRAN 指令。如果平均每人每天可以开发出 10 条 FORTRAN 指令,请问:()开发这个应用程序将用到多少人日?()假设程序员的平均工资为 4000 美元,每月按 20 个工作日计算,这个软件的成本是多少美元?()1982 年 VAX750 计算机硬件价格约为 125000 美元,在那一年这个软件的成本在总成本中占多大比例?答:()1000010=1000(人日)开发这个应用程序大约需要用 1000 个人日。()每月平均工作 20 天,故开发这个软件需要用 100020=5(
9、人月)每人每月的平均工资为 4000 美元,因此这个软件的成本大约为 504000200000(美元)()软件成本与硬件成本之和为计算机系统的总成本。这个软件的成本在总成本中所占的比例为:200000(200000+125000)=61.5%第 2 讲 一、填空题 可行性研究阶段当从系统逻辑模型出发,探索若干种可供选择的主要解法,对每种解法都应该从 _技术可行性、经济可行性_和 _操作可行性_ 这三个方面研究每种解法的可行性。_可行性研究_ 的目的就是用最小的代价在尽可能短的时间确定问题是否能够解决。可行性研究的目的不是解决问题,而是确定问题是否 _值得去解决_。_数据流图_ 和 _数据字典_
10、 定义了软件系统的逻辑模型,以后可以从这个逻辑模型出发设计新系统。_系统流程图_是概括地描绘物理系统的传统工具。系统流程图表达的是 _数据_ 在系统各部件之间流动的情况。数据流图是一种图形化技术,它描绘 _信息流_ 和 _数据_ 从输入移动到输入的过程中所经爱的变换。数据流图中的圆角矩形或圆形代表着对变换数据的 _处理_。数据流图有种成分:源点或终点、_处理_、_数据存储_ 和 _数据流_。_数据字典_ 是对数据流图中包含的所有元素的定义的集合。成本效益分析的目的正是要从 _经济_ 角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。软件开发成
11、本主要表现为 _人力消耗_。二、选择题:关于数据流图下列说法中不正确的是()。、在数据流图中应描绘所有可能的数据流向及数据流的条件、数据流图的基本要点是描绘“做什么”而不考虑“怎么做”、数据流图是系统的逻辑模型、数据流图的一个主要用途是作为分析和设计的工具 下列方式中,不是由数据元素组成数据方式的是()。、顺序 、层次 、选择 、重复 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是()。、经济可性性 、技术可行性、操作可行性 、法律可行性 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。、经济可性性 、技术可行
12、性、操作可行性 、法律可行性 可行性分析中,系统流程图用于描述()。、当前运行系统 B、当前逻辑模型 C、目标系统 D、新系统 在程序的描述和分析中,用以指明数据来源、数据流向和数据处理的辅助图形是()。、瀑布模型图 B、数据流图 C、数据结构图 D、业务图 数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘图方法中,()是常采用的。自顶向下 自底向上 分层绘制 逐步求精、全是 B、三、问答题 简述可行性研究过程的步骤。答:()复查系统规模和目标;()研究目前正在使用的系统;()导出新系统的高层逻辑模型;()进一步定义问题;()导出和评价供选择的解法;()推荐行动方针;()草拟开发计划
13、;()书写文档提交审查。目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心患者监护系统,请分层次地画出描述本系统功能的数据流图。医院对患者监护系统的基本要随时接收每个病人的生理信号(脉搏、体温、血压和心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统输出某个指定病人的病情报告。答:从问题述可知,本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题述,从系统应该“定时记录病
14、人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。从问题述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。为了分析病人生理信号是否超出了医生规定的安全围,应该存储“患者安全围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。本系统的基本系统模型如下图所示,是本系统的功能级数据流图。某高校可用的有以下几类:校为位数字组成,第位数字不是;校外又分为本市和外地两
15、类,拨校外需先拨,如果是本地再接着拨位(第位不是),如果是外地则先拨位区码,再拨位(第位不是)。请用本章所述的符号,定义上述的。答:校校外 校非零数字位数字 校外本市外地 本市数字零位数字 外地数字零位数字位数字 非零数字 数字零 位数字数字 位数字非零数字位数字 位数字数字 数字 第 3 讲 一、填空题 接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:_用户接口需求、硬件接口需求、软件接口需求和通信接口需求。_逆向_ 需求说明软件系统不应该做什么。访谈是最早开始使用的获取 的技术,它有两种基本形式,分别是 _用户需求、的_正式、非正式_的访谈。_情景分析技术_ 就是对用户将来使用
16、目标系统解决某个具体问题的方法和结果进行分析,系统分析员利用这种技术,往往能获知用户的具体需求。_结构化分析方法_ 是面向数据流自顶向下逐步求精进行需求分析的方法。使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位,为了解决这个问题,人们研究出一种面向团队的需求收集法,称为简易的 _应用规格说明技术_。快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。快速原型应具备的第一个特性是 _快速_、第二个特性是 _容易修改_。需求分析阶段得出的最主要文档是_软件需求规格说明书_。数据对象彼此之间相互连接的方式称为_联系_,也称为关系。它分为一对一联系、_一对多_ 联
17、系和 _多对多_ 联系。ER 图中包含了 _实体_、_关系_ 和 _属性_ 等3 种基本成分。二、选择题:需求分析()。、要回答“软件必须做什么?”、要求编写软件需求说明书、系统分析员可以采用访谈、简易的应用规格说明技术获取用户需求 、以上都对 需求分析阶段研究的对象是软件项目的()。、用户需求 、合理要求 、模糊要求 在数据流图中,有名字及方向的成分是()。、控制流、信息流、数据流、信号流 结构化分析方法使用的描述工具()定义了数据流图中每一个图形元素。、数据流图、数据字典、判定表、判定树 在结构化分析方法()中,与数据流图配合使用的是()。、数据流图、数据字典、实体联系图、程序流程图 通过
18、()可以完成数据流图的细化。、结构分解 B、功能分解 C、数据分解 D、系统分解 需求分析过程中,对算法的简单描述记录在()。、层次图 B、数据字典 C、数据流图 D、IPO 图 需求分析最终结果是产生()。、项目开发计划 、可行性分析报告 、需求规格说明书 、设计说明书 结构化分析()最为常见的图形工具是()。、程序流程图 、实体联系图 、数据流图 、结构图 下面说法错误的是()。、每个数据流必须用名词或名词短语命名 、每个加工必须有名字,通常是动词短语 、每个数据存储必须用名词或名词短语 、每个数据源点或终点必须有名字 三、问答题 简述可行性研究过程的步骤。答:()复查系统规模和目标;()
19、研究目前正在使用的系统;()导出新系统的高层逻辑模型;()进一步定义问题;()导出和评价供选择的解法;()推荐行动方针;()草拟开发计划;()书写文档提交审查。应该从哪些方面验证软件需求的正确性。答:对软件需求应从下述个方面进行验证:()一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾;()完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能;()现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的;()有效性:必须证明需正确有效的,确实能解决用户面对的问题。什么是需求分析?需求分析阶段的基本任务是什么?答:需求分析是指开发人员要准确理解用户的需
20、求,进行细致的调查分析,将用户非形式的需求述转化为完整的需求定义,再由需求转换到相应的需求规格说明的过程。需求分析阶段的基本任务是:()确定对系统的综合要求;()分析系统的数据要求;()导出系统的逻辑模型;()修正系统开发计划。什么是层次方框图?答:层次方框图是用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。5、什么是快速软件原型,它有什么特点 答:快速软件原型是快速建立起来的旨在演示目标系统的主要功能的可行性的程序。特点:1)快速;
21、2)容易修改。第 4 讲 一、填空题 按照形式化的程度,可以把软件工程使用的方法划分成 _非形式化_、_半形式化_ 和 _形式化_ 类。有穷 _状态机_ 可以准确地描述一个系统,因此它是表达规格说明的一种形式化方法。Petri 网_可以有效地描述并发活动。它包含种元素:一组位置、一组转换、输入函数以及输出函数。Petri 网的标记是在 Petri 网中_权标_的分配。在 Petri 网中,当每个输入线上至少有一个权标,而 _禁止_线上没有权标的时候,相应的转换才是允许的。6、Petri 网包含 4 种元素:一组位置 P、一组转换 T、输入函数 I 以及输出函数 O 二、问答题:对比形式化方法和
22、欠形式化方法的优缺点。答:形式化与欠形式化方法相比,其优点在于:形式化的规格说明可以用数学方法研究验证,此外形式化的规格说明消除了二义性,而且它鼓励软件开发者在软件工程过程的早期阶段使用更严格的方法,从而可以减少差错。形式化方法的缺点:大多数形式化规格说明主要关注于系统的功能和数据,而问题的时序、控制和行为等方面却更难于表示。此外,形式化方法比欠形式化方法更难学习,不仅在培训阶段要花大量的投资,而且对某些软件工程师来说,它代表了一种“文化冲击”。第 5 讲 一、填空题 总体设计过程通常由两个主要阶段组成,分别是 _系统设计_ 阶段和 _结构设计_ 阶段。需求分析阶段得出的数据流图是 _总体设计
23、_ 的极好的出发点。对总体设计的结果在通过技术审查后还需由使用部门的负责人从 _管理_ 角度进行复审。_模块化_是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能。_抽象_ 就是抽出事物的本质特征而暂时不考虑它们的细节。_逐步求精_是为了集中精力解决主要问题而尽量推迟对问题细节的考虑。定性度量模块独立程序的标准是_聚_和_耦合_。耦合是对一个软件结构不同模块之间 _互连程度_ 程度的度量。_功能聚_是最高程度的聚。_深度_表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。_层次_图用于描绘软件的层次结构,图中的每一个矩形框代表一个 _模块_,方框间的连线表示调
24、用关系,而不像层次方框图那样表示组成关系。通常所说的结构化设计方法,也是基于_数据流的设计方法。信息流有两种类型,分别是_变换流_和_事务流_。模块间还经常用带注释的短箭头表示调用过程中来回传递的信息。有时箭头尾部带空心圆表示传递的是_数据_,带实心圆的表示传递的是_控制信息_。模块之间联系越紧密,其耦合性就越_强_、模块的独立性就越_差_。二、选择题:软件设计一般分为总体设计和详细设计,它们之间的关系是()。、全局和局部 、抽象和具体 、总体和层次 、功能和结构 属于软件设计的基本原理的是()。、数据流分析设计 、变换流分析设计 、事务流分析设计 、模块化 将几个逻辑上相似的成分放在一个模块
25、中,该模块的聚度是()。、逻辑性、瞬时性、功能性、通信性 模块的某成分的输出是另一成分的输入,该模块的聚度是()的。、功能性、顺序性、逻辑性、瞬时性 软件设计阶段一般可分为()。、逻辑设计与功能设计 、概要设计与详细设计 、概念设计与物理设计、模型设计与程序设计 模块中所有成分引用共同的数据,该模块的聚度是 ()的。、逻辑性、瞬时性、功能性、通信性 好的软件结构应该是()。、高耦合,高聚、低耦合,高聚 、高耦合,低聚、低耦合,低聚 结构分析方法就是面向()自顶向下逐步求精进行需求分析的方法。、目标、数据流、功能、对象 下列耦合中,()的耦合性最强。、公共耦合、数据耦合、控制耦合、容耦合 一个模
26、块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。、外部耦合、数据耦合、控制耦合、容耦合 块联系中,()块联系最强。、偶然性、功能性、通信性、顺序性 在面向数据流的软件设计方法中,一般将信息流分为()。、变换流和事务流、变换流和控制流 、事务流和控制流、数据流和控制流 在多层次的结构图中,其模块的层次数称为结构图的()。、深度、跨度、控制域、广度 ()着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。、程序流程图、数据流图、图、结构图 模块(),则说明模块的独立性越强。、耦合越强、扇入数越高 、耦合越强、扇入数越低 在对数据流的分析中,主要是找到中心变换,这是从()导出结
27、构图的关键。、数据结构、实体关系、数据流图、图 模块的独立性是由聚性和耦合性来度量的,其中聚性是()。、模块间的联系程度 、模块的功能强度 、信息隐蔽程度 、接口的复杂程度 在软件结构中,如果两个矩形之间有直接相连,表示它们存在()关系。、调用、并列、顺序执行 为了提高模块的独立性,模块部最好是()。、逻辑聚、时间聚、功能聚、通信聚 概要设计与详细设计衔接的图形工具是()。、数据流图、结构图、程序流程图、图 三、问答题 衡量模块独立的两个标准是什么?它们各表示什么含义?答:模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。模块的独立程度可以由两个定性标准度量,这两个标准分别称为聚和
28、耦合。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;聚衡量一个模块部各个元素彼此结合的紧密程度。什么是面向数据流的设计方法?它有哪些策略。答:面向数据流的设计方法也称为结构化设计方法(SD),它与结构化分析(SA)相衔接,它按一定的设计策略将数据流图转换成软件的模块层次结构。有两种设计策略:()事务形分析设计:一个大的复杂的系统分解成较小的,相对简单的子系统,这些子系统彼此之间相对独立一些,而高层数据流图的数据处理往往反映这些子系统的功能,有平行分别处理的特点,因此高层数据流图的转换通常可作为事务型处理,把一个加工逻辑看成是一类特定的事务,把它们分别映射成一个模块,最高层模块为系统模块,通
29、过对输入初始命令的判断决定调用哪个模块。这种事务型分析设计的策略也用于较低层数据流图向软件结构图的转换。()变换型分析设计:变换型数据流图具有主要的处理功能及实现这项处理功能所需要的输入数据流和经过处理后产生的输出数据流。确定了第三部分,高层模块就可分解出三个从属于它的新模块,分别执行输入、变换、输出功能。变换分析设计一般用于对较低层数据流图向软件结构图的转换。软件结构图设计好后,还需要为每个模块提供必要的说明,如功能说明、接口说明等。IPO 图是常采用的图形工具,软件结构图和各个模块的 IPO 图结合在一起才能较完整地描绘软件系统在总体上对需求功能的实现。什么是“事务流”?答:数据沿输入通路
30、到达一个处理,这个处理根据输入数据的类型在若干动作序列中选出一个来执行,这类数据流称为事务流。第 6 讲 一、填空题 详细设计阶段的根本目标是确定应该怎样 _具体地实现_ 所要求的系统。详细设计的结果基本上决定了最终的_程度代码_ 的质量。结构程序设计语言的重复结构有:_顺序_ 结构、_选择 结构、_循环_ 结构三种。系统响应时间有两个重要属性,分别是 _长度_和_易变_。常见的帮助设施可分为_集成的_ 和_附加的_ 两类。描述程序处理过程的工具称为过程设计的工具,它们可以分图形、表格和_语言_ 三类。程序流程图又称为_程序框图_。PAD 是_问题分析图_ 的英文缩写。McCabe 方法根据程
31、序控制流的复杂程度,这样度量出的结果称为程序的_环形复杂度_。在流图中用圆表示_结点_,流图中的箭头线称为_边_,它和程序流程图中的箭头线类似,代表_控制流_,由边和结点围成的面积称为_区域_。Halstead 方法是根据程序中的_运算符_ 和_操作数_ 的总数来度量程序的复杂程度。Jackson 图不仅可表示程序结构,还可表示操作和条件。二、选择题:软件开发过程中,以下说确的是()。、程序流程图是逐步求精的好工具、图不可能任意转移控制,符合结构化原则、判定表是一种通用的设计工具、判定流程图和图不易表达模块的层次结构 Jackson 方法是一种面向()的方法。、对象、数据结构、数据流、控制流
32、一个程序如果把它他为一个整体,它也是只有一个入口,一个出口的单个顺序结构,这是一种()。、结构程序、组合的过程、自顶向下设计、分解过程 程序控制一般分为()、分支、循环三种基本结构。、分块、顺序、跳转、控制 PDL 是下列()语言。、高级程序设计语言、伪码 、中级程序设计语言、低级程序设计语言 数据元素组成设计的方式有()类型。、顺序、选择、重复、以上全是 详细设计规格说明通常使用()手段。、IPO 图与层次图、HIPO、IPO 或 PDL、HIPO或 PDL 面向数据结构的设计方法(Jackson 方法)是进行()的形式化的方法。、系统设计、详细设计、软件设计、编码 Jackson 方法根据
33、()来导出程序结构 、数据结构、数据间的控制结构 、数据流图、IPO 图 程序控制的三种基本结构中,()结构可提供多条路径选择。、反序、顺序、循环、分支 程序的三种基本控制结构是()。、过程、子程序和分程序、顺序、选择和重复 、递归、堆栈和队列 、调用、返回和转移 Jackson 图上下层之间的关系是()。、调用关系、组成关系、继承关系、嵌套关系 三、简答题 Jackson 结构程序设计方法包括哪些步骤?答:Jackson 结构程序设计方法基本上由下述个步骤组成:()分析并确定输入数据结构和输出数据的逻辑结构,并用 Jackson 图描绘这些数据结构。()找出输入数据结构和输出数据结构中有对应
34、关系的数据单元。()用下述条规则从描绘数据结构的 Jackson 图导出描绘程序结构的 Jackson 图:为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框;根据输入数据结构中乖余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。()列出所有操作和条件,并且把它们分配到程序结构图的适当位置。()有伪码表示程序。PDL 作为一种设计工具,其优点是什么?答:PDL 作为一种设计工具有如下一些优点:()可以作为注释直接插在源程序中间。(
35、)可以使用普通的正文编辑程序或文字处理系统,很方便地完成 PDL 的书写和编辑工作。()已经有自动处理程序存在,而且可以自动由 PDL生成程序代码。四、综合题 一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的总个数。要求输出数据格式是每复制一行字符串之后,另起一行打印出这个字符串中的空格数,最后打印出文件空格的总个数,请用 Jackson 方法设计该程序结构。答:图为输入数据的 Jackson 图:图为输出数据的 Jackson 图。图为程序结构的 Jackson 图 第 7 讲 一、填空题 通常把 _编码_ 和 _测试_ 统称为实现。所谓 _编码_ 就是把软件设
36、计结果翻译成用某种程序设计语言书写的程序。测试的目的就是在软件投入生产性运行之彰,尽可能多地发现软件中的_错误_。通过测试发现错误之后还必须诊断并改正错误,这就是 _调试_ 的目的。程序部的文档包括恰当的 _标识符_、适当的_注解_ 和程序的_视觉组织_ 等等。测试是为了发现程序中的错误而_执行程序_ 的过程。应该从“小规模”测试开始,并逐步进行“_规模_”测试。为了达到最佳的测试效果,应该由独立的 _第三方_ 从事测试工作。_黑盒_ 测试法把程序看成一个黑盒子,完全不考虑程序的部结构和处理过程。_模块测试_ 的目的是保证每个模块作为一个单元能正确运行,通常又称为单元测试。子系统测试,兼有检测
37、和组装两重含义通常称为 _集成测试_。_验收测试_ 测试是在用户积极参与下进行的,而且可能主要使用实际数据进行测试,也称为_确认测试_ 测试。单元测试主要使用_白盒_ 测试技术。审查小组的任务是发现错误而不是 _改正_ 错误。人工测试源程序如果由审查小组正式地进行,则称为 _代码审查_。在测试过程中,由于模块并不是一个独立的程序,因此必须为每个单元测试开_驱动程序_ 和(或)_存根程序_。由模块组装成程序时有两种方式,分别是 _非渐增式_ 测试和 _渐增式_ 测试。目前在进行集成测试时普遍采用_渐增式_ 测试方法。当使用渐增方式把模块结合到程序中去,有 _自顶向下_ 和 _自底向上_ 两种集成
38、策略。自顶向下集成方法中,将模块组装到程序结构中时可使用的策略有深度优先和 _宽度优先_。确认测试的目标是验证软件的_有效性_。确认测试通常使用 _黑盒_ 测试法。_软件可靠性_ 是程序在给定的时间间隔,按照规格说明书的规定成功地运行的概率。估计错误总数的方法有_植入错误法_ 和分别测试法。二、选择题:Alpha 测试是()。、由用户在开发者的场所进行、由软件的最终用户在开发者的一个或多个客户场所进行 、是在不受开发者控制的环境中进行的 、是软件在开发者不能控制的环境中的“真实应用 在逻辑覆盖中,每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果,这种覆盖称为()。、语句覆
39、盖、判定覆盖、条件覆盖、条件覆盖 ()着重测试软件功能。、黑盒测试、白盒测试、功能测试、循环测试 下列属于黑盒测试的是()。、基本路径测试、条件测试、循环测试、等价划分 关于测试下列说法错误的是()。、调试也称为纠错、调试作为成功测试的后果出现、调节器试是在测试发现错误之后排除错误的过程、调试的目标是发现错误 三、综合题 航空公司向软件公司订购了一个规划飞行路线的程序。假设你是软件公司的软件工程师。公司已雇佣你所在的公司对上述程序进行验收测试。你的任务是,根据下述事实设计验收测试的输入数据。领航员向程序输入出发地点和目的地,以及根据天气和飞机型号而初步确定的飞行高度。程序读入途中的风向风力等数
40、据,并且制定出三套飞行计划(高度,速度,方向及途中的五个位置校核点)。所制定的飞行计划应该做到燃料消耗和飞行时间都最少。答:应该分别使用正常的输入数据和异常的输入数据,作为验收测试数据 ()用正常的输入数据作为测试数据 输入常规的出发点、目的地、个位置校核点、高度、速度及飞机型号。针对对不同的出发点、目的地,重复执行测试。固定出发点、目的地位置、位置校核点、高度、速度,分别输入种不同的飞机型号,重复执行测试。固定出发点、目的地位置、位置校核点、高度、飞机型号,分别输入种不同的速度,重复执行测试。固定出发点、目的地位置、位置校核点、速度、飞机型号,分别输入种不同的高度,重复执行测试。固定出发点、
41、目的地位置、高度、速度、飞机型号,分别输入种不同的位置校核点,重复执行测试。固定出发点、高度、位置校核点、速度、飞机型号,分别输入种不同的目的地位置,重复执行测试。固定高度、目的地位置、位置校核点、速度、飞机型号,分别输入种不同的出发点,重复执行测试。同时改变一对参数的值,其他参数的值固定,重复执行测试。同时改变个参数的值,其他参数的值固定,重复执行测试。以适当的方式改变描述天气状况的数据,重复执行测试。()用边界数据值作为测试数据 分别使用距离非常近和距离非常远的两个地点作为出发点和目的地。输入位置校核点的非常规组合。分别输入非常高和非常低的高度值。分别输入非常高和非常低的速度值。输入极其少
42、见的飞机型号。()用无效的数据作为测试数 用由字母数字字符和控制字符混合在一起组成的字符串作为出发点或目的地。用数字作为所有参数的值。用负数作为高度和速度的值。第 8 讲 一、填空题 软件工程的主要目的就是提高软件的_可维护性_,减少软件维护所需要的_工作量_,降低软件系统的_总成本_。_软件维护_ 就是在软件交付使用后,为了改正错误或满足新的需要而修改软件的过程。维护过程本质上是修改和压缩了的_软件定义_ 和_开发过程。决定软件可维护性的因素主要有可理解性、可测试性、可修改性、可移植性和可重用性 5 个。软件系统的文档可以分为_用户文档_和_系统文档_ 两类。_代码重构_是最常见的再工程活动
43、。软件维护通常包括 4 类活动,分别是改正性、适应性、完善性和_预防性_ 维护。_文档_ 是影响软件可维护性的决定因素。二、简答题:代码重构与正向工程有何相同之处?有何不同之处?答:代码重构和正向工程都需要重新设计数据结构和算法,并且需要重新编写程序代码,这些是代码重构和正向工程相同的地方。通常,代码重构并不修改程序的体系结构,它只修改某些模块的设计细节和模块中使用的局部数据结构,并重新编写这些模块的代码。如果修改的围扩展到模块边界之外涉及到程序的体系结构,则代码重构变成了正向工程。三、论述题:假设你的任务是对一个已有的软件作重大修改,而且只允许你从下述文档中选取两份:(a)程序的规格说明;(
44、b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适量的注解)?你将选取哪两份文档?为什么这样选取?答:通常,“对一个已有的软件做重大修改”意味着对软件功能做较大变理可增加较多新功能,这往往需要修改软件的体系结构。因此,了解原有软件的总体情况是很重要的。程序的规格说明书准确地描述了对软件系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求及将来可能提出的需求,对了解已有软件的总体情况有很大帮助。在对已有软件做重大修改之前仔细阅读、认真研究这份文档,可以避免许多修改错误。因此,应该选取这份文档。有经验的软件工程师通过阅读
45、含有适当注解的源程序,不难搞清程序的实现算法,没有描述详细设计结果的文档并不会给维护工作带来太大困难。此外,为了修改程序代码,原有程序的清单是必不可少的。因此,为了对这个软件做重大修改,应该选取的第二份文档是源程序清单。第 13 讲 一、填空题 为了估算项目的工作量和完成期限,目前常采用 _代码行技术_ 和 _功能点技术_ 两种技术估算软件规模。当用代码行技术估算软件规模时,当程序较小时,常采用的单位是 _代码行数_(LOC),当程序较大时,常用的单位是 _千行代码数(KLOC)。功能点技术定义了信息域的个特性,分别是输入项数、输出项数、查询数、主文件数和外部接口数。软件项目的开发时间最多可以
46、减少到正常开发时间的_75%_。在工程网络中用箭头_表示作业,用_圆圈_ 表示事件。Gantt 图与工程网络相比,工程网络_ 能显示地定义事件及作业之间的依赖关系 Gantt 图_只能隐含地表示这种关系。三种典型的软件项目开发人员组织方式是制程序员组、主程序员组、现代程序员组。甘特图中用 _水平横线_ 代表任务,它的长度代表任务 _持续时间_。软件质量保证的措施主要有:基于 _非执行_ 的测试,基于 _执行_的测试和程序正确性证明。主程序员组有两个重要特征:专业化_和 层次性_。基线就是通过了正式复审的软件 _配置项_。软件配置管理主要有项任务:标识、版本控制、变化控制、配置审计和报告。二、选
47、择题:软件项目管理是()一切活动的管理。、需求分析、软件设计过程 、模块控制、软件生命周期 ()是软件开发人员为用户准备的有关该软件使用、操作、维护的资料。、开发文档、管理文档、用户文档、软件文档 一个项目是否开发,从经济上来说是否可行,归根结底是取决于()。、成本的估算、项目计划、工程管理、工程网络 按照软件配置管理的原始指导思想,受控制的对象应是()。、软件元素、软件配置项、软件项目、软件过程 软件配置项是软件配置管理的对象,指的是软件工程过程中所产生的()。、接口、软件环境、信息项、版本 三、问答题 为什么推迟关键路径上的任务会延迟整个项目?答:关键路径定义为一组任务(称为关键任务),这
48、组任务决定了完成项目所需要的最短时间。如果位于关键路径上的一个关键任务的完成时间被推迟了,则关键路径上的下一个任务的开始时间和结束时间也要相应地延迟。这样依次传递会波及关键路径上的最后一个任务,从而延迟整个项目。机动时间有何重要性?答:虽然不在关键路径上的任务并不决定完成项目所需要的最短时间,可以适当延迟一些时间,但是,如果这些任务延迟过久,则整个项目的完成时间也会被推迟。机动时间给出了完成这类任务的时间围。此外,在制定进度计划时仔细研究并充分利用工程网络中的机动时间,往往能够安排出既节省资源又不影响最终竣工时间的进度表。假设有一项工程任务被分解成了 a,b,i 等个子任务,下表给出了完成每个子任务所需要的时间以及子任务彼此之间的依赖关系。请用工程网络描述下表中给出的信息,并且计算每个事件的最早时刻和最迟时刻。答:根据该表给出的信息,可以画出下图所示的工程网络。由于子任务 a 和 b 都不依赖于其他子任务,所以都可以从时刻零开始。根据最早时刻和最迟时刻的算法,可以算出每个事件的最早时刻和最迟时刻,算出的值已经标在工程网络中。为了便对将工程网络图与题目中所给的表相对照,在图中标注的完成任务时间后面的括弧中写出了该任务的标识。