软件工程习题解析
软件工程导论(第六版)部分课后习题-答案
软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。
解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。
软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。
代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。
解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。
它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。
在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。
解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。
它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。
敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。
解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。
其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。
通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。
希望本文对读者有所帮助,谢谢阅读。
软件工程习题及解答
软件工程第一章习题一、选择题1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理二、简答题1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。
软件工程(第四版)习题及解答1-7
软件工程(第四版)习题及解答1-7软件工程(第四版)习题及解答1-7软件工程一直是信息技术领域中一门重要的学科,它涉及到软件设计、开发、测试和维护等多个方面。
对于学习软件工程的学生来说,练习和解答一些相关习题是非常重要的。
本文将为大家提供《软件工程(第四版)》中的习题1-7的解答和详细讨论。
1. 习题1题目描述:什么是软件工程?为什么软件工程如此重要?解答:软件工程是一门学科,涵盖了软件开发的所有阶段,包括需求分析、软件设计、编码、测试和维护等。
软件工程关注如何以系统化的、规范的方法来开发高质量的软件。
软件工程之所以如此重要,原因有以下几点:首先,软件工程能够提供一个结构化的方法来开发软件,保证开发流程可控、可预测。
通过规范的过程和方法,可以减少软件开发过程中的风险和错误。
其次,软件工程将软件开发过程分解为不同的阶段,并引入了各种工具和技术来支持这些阶段的开发工作。
这些工具和技术能够提高开发效率,减少开发成本。
此外,软件工程还注重软件质量管理,包括软件测试、验证和验证等方面,以确保最终交付给用户的软件是高质量可靠的。
最后,软件工程也关注软件的维护和更新。
由于软件在使用过程中会面临各种问题和需求变化,软件工程可以帮助开发人员及时响应和解决这些问题,提供更好的用户体验。
2. 习题2题目描述:简要解释软件需求分析的目标和过程。
解答:软件需求分析的目标是识别和规范用户对软件系统的需求,确保开发人员和用户对软件系统的期望一致,并将这些需求转化为可行的系统规格说明。
软件需求分析的过程包括以下几个步骤:1) 需求收集:通过与用户沟通、调研等方式,收集用户对软件系统的需求。
可以采用面谈、问卷调查、观察等方法。
2) 需求分析和整理:对收集到的需求进行分析和整理,将其转化为可理解的形式。
可以使用需求建模工具和技术,如用例图、数据流图等。
3) 需求规格说明:在此阶段,将需求转化为详细的规格说明,包括功能需求、性能需求、质量需求等。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。
1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。
1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。
2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。
软件工程习题及答案解析
软件工程习题及答案解析软件工程习题及答案解析1.介绍软件工程是一门研究如何以系统化、规范化、可定量的方法来开发和维护软件的学科。
本文档旨在提供一系列软件工程习题及答案解析,帮助读者深入理解软件工程的基本概念和方法。
2.软件生命周期2.1 什么是软件生命周期?软件生命周期是指软件从需求定义、设计、编码、测试、部署到维护的全过程。
2.2 软件生命周期模型2.2.1 瀑布模型瀑布模型是软件开发中最传统的生命周期模型,具有线性、顺序、阶段性的特点。
2.2.2 迭代模型迭代模型通过多次迭代开发,逐步完善软件产品。
2.2.3 增量模型增量模型将软件分为多个增量,按顺序逐步开发。
2.2.4 螺旋模型螺旋模型将风险管理与迭代模型相结合,通过不断迭代和风险分析调整开发计划。
2.2.5 敏捷开发敏捷开发强调开发团队的自组织和快速交付,采用迭代、增量和灵活的方式进行开发。
3.需求工程3.1 需求获取需求获取是指获取软件系统的功能、性能、约束等需求的过程。
3.2 需求分析需求分析是指对获取的需求进行分析和整理,确定需求的优先级、关联性等。
3.3 需求规格说明需求规格说明是对需求进行详细描述和规范化,通常使用用例、需求文档等形式进行说明。
4.软件设计4.1 结构化设计结构化设计是指按照模块化、层次化的原则,将软件系统划分为多个模块并规定模块之间的接口。
4.2 面向对象设计面向对象设计是将软件系统看作是一组对象的集合,每个对象具有属性和方法,并通过消息传递进行交互。
4.3 架构设计架构设计是指确定软件系统的整体结构和各个组件之间的关系,常用的架构模式有MVC、分层、客户端-服务器等。
5.软件测试5.1 测试基础5.1.1 测试概念测试是通过运行系统或部分系统,以发现系统的错误,验证系统是否满足需求。
5.1.2 测试层次分为单元测试、集成测试、系统测试和验收测试等层次。
5.2 测试方法5.2.1 黑盒测试黑盒测试是根据软件的功能需求对软件进行测试,不考虑内部实现细节。
软件工程课后参考答案解析
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程习题及答案解析
软件工程习题及答案解析导言:软件工程作为一门与计算机科学紧密相关的学科,旨在研究和应用一系列工程原则、方法和过程来开发和维护高质量的软件系统。
对于软件工程的学习和理解,习题练习是巩固知识和提高技能的重要手段。
本文将针对软件工程领域的一些习题,提供详细的答案解析,帮助读者更好地掌握软件工程的各个方面。
一、软件需求工程1. 什么是软件需求?请举例说明。
答案解析:软件需求是对即将开发的软件系统或软件改进的功能、性能、可靠性、约束等方面的描述和规范。
例如,一个在线购物系统的需求可以包括用户注册、商品浏览、购买结算等功能,以及响应时间、并发用户数等性能要求。
2. 软件需求工程的主要任务是什么?答案解析:软件需求工程的主要任务包括需求获取、需求分析、需求规格、需求验证和需求管理。
其中,需求获取是通过与用户、领域专家的交流和文档的分析,了解用户需求的过程;需求分析则是对获取到的需求进行识别、分类和理解,以明确软件系统的功能特性;需求规格是将需求以规范化的方式进行表达,通常使用需求文档或者UML建模工具;需求验证是通过测试、模拟等方式验证需求的正确性和可行性;需求管理是对需求进行变更控制、版本管理和追踪反馈。
二、软件设计与实现1. 请介绍一种常用的软件开发模型,并分别说明各个阶段的任务。
答案解析:常用的软件开发模型之一是瀑布模型。
它包含需求分析、系统设计、详细设计、编码、测试和维护等阶段。
需求分析阶段的任务是明确软件系统的功能需求以及性能需求;系统设计阶段则是定义软件系统的整体框架和架构设计;详细设计阶段是对系统设计进行进一步的细化,明确具体的模块、类和接口设计;编码阶段是将设计好的模块或类转化为实际的编程代码;测试阶段是对编码后的软件进行各个功能的单元测试、集成测试和系统测试,以验证软件的正确性和性能;维护阶段则是对软件进行错误修复、性能优化和功能升级等活动。
2. 什么是软件设计模式?请举例说明一种常用的软件设计模式。
软件工程习题(附答案)
软件工程习题(附答案)软件工程习题(附答案)1.概述1.1 介绍本文档是一份软件工程习题文档,包含了一系列关于软件工程的习题及其对应的答案。
这些习题涵盖了软件工程的各个方面,旨在帮助读者巩固和扩展自己的软件工程知识。
1.2 目的本文档的目的是提供一份全面而详细的习题文档,供软件工程学习者参考和学习。
每个习题都配有答案,以便读者可以自行对比答案和解答过程,提高自己的理解和运用能力。
2.软件需求工程2.1 需求获取2.1.1 什么是需求获取?为什么它在软件工程中非常重要?答案:需求获取是指在软件开发过程中,获取并理解用户对软件系统所需功能和约束的过程。
它在软件工程中非常重要,因为一个完整、清晰、准确的需求基础是成功软件开发的关键,它直接影响着软件系统的功能、性能和质量。
2.1.2 几种常见的需求获取方法。
答案:常见的需求获取方法包括面谈、问卷调查、观察、原型展示等。
2.2 需求分析与规格2.2.1 什么是需求分析?它的目标是什么?答案:需求分析是指对需求进行深入的分析和理解,以确定需求的准确性、完整性和一致性。
它的目标是明确系统需求,并将其规格化,为软件开发提供指导和依据。
2.2.2 需求分析的主要步骤有哪些?答案:需求分析的主要步骤包括需求获取与识别、需求验证与确认、需求排序与组织、需求规格化等。
3.软件设计3.1 结构化设计3.1.1 什么是结构化设计?答案:结构化设计是指将系统进行层次化和模块化分解,定义各个模块之间的接口和关系,从而使系统具有更好的可维护性、可扩展性和可重用性。
3.1.2 结构化设计的原则有哪些?答案:结构化设计的原则包括模块化原则、信息隐藏原则、高内聚低耦合原则等。
3.2 面向对象设计3.2.1 什么是面向对象设计?答案:面向对象设计是一种基于对象的思维方式,将系统分解为各个独立的对象,通过对象之间的交互和协作来实现系统的功能。
3.2.2 面向对象设计的主要特点是什么?答案:面向对象设计的主要特点包括封装、继承、多态等。
软件工程考试题卷含答案解析
---------------------考试---------------------------学资学习网---------------------押题------------------------------软件工程考试题简答题、什么叫软件?1软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?2、软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
(软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:1)软件是逻辑部件而不是物理部件。
()软件的规模越来越大,复杂性越来越大。
(2 )轻视需求分析的重要性,轻视软件维护的错误观点和方法。
(3 什么叫软件工程?3、“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上年在第一届NATO会议上的早期定义:1968 。
有效运行的可靠软件的一系列方法”“①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也年IEEE的定义:1993 就是把工程应用于软件;②进而研究①实现的途径”。
我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
、两种软件工程方法学开发软件时要建立哪些模型?4 软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)并加入了风险分析)螺旋模型(将瀑布模型与原型化模型结合起来, 喷泉模型(使开发过程具有迭代性和无间隙性)软件过程模型有哪些?简述它们的特点。
软件工程习题附答案
软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。
2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。
方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。
3、软件可行性研究实质上是要进行一次()需求分析和设计过程。
A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。
4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。
5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。
二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。
软件工程习题及答案解析
软件工程习题及答案解析软件工程习题及答案解析一、软件开发过程与方法1、瀑布模型1.1 定义瀑布模型是一种软件开发过程模型,它将软件开发过程分为一系列有序的阶段,每个阶段有明确的输入和输出,并按顺序进行。
1.2 阶段及其细化1.2.1 需求分析阶段在此阶段,团队与客户交流,获取需求,分析用户需求,并编写详细的需求规格说明书。
1.2.2 系统设计阶段在此阶段,根据需求规格说明书,进行系统的整体设计和模块的详细设计,并绘制相应的设计文档。
1.2.3 编码阶段在此阶段,根据设计文档,进行具体的编码工作,并完成相应的单元测试。
1.2.4 测试阶段在此阶段,对软件进行系统测试和集成测试,发现并修复潜在的问题。
1.2.5 部署阶段在此阶段,将软件部署到目标环境中,进行功能验证和用户验收。
1.2.6 运维阶段在此阶段,对软件进行日常维护、升级和优化。
2、敏捷开发2.1 定义敏捷开发是一种迭代和增量的软件开发方法,注重通过与客户的紧密合作、团队协作和快速反馈来满足需求和适应变化。
2.2 敏捷开发方法2.2.1 ScrumScrum是一种常用的敏捷开发方法,强调团队成员间的合作和沟通,根据用户需求和优先级进行迭代的软件开发。
2.2.2 XPXP(Extreme Programming)是一种极限编程的方法,强调持续集成、自动化测试、重构等实践,以快速交付高质量的软件。
2.2.3 LeanLean是一种以精益思想为基础的敏捷开发方法,注重减少浪费、持续改进和高效开发。
二、软件需求1、需求分析概述1.1 定义需求分析是软件开发过程中的一项关键任务,旨在确定用户对软件的需求,并将其转化为具体的需求规格说明。
1.2 主要任务1.2.1 需求获取通过与用户的沟通和访谈,收集用户需求并加以整理。
1.2.2 需求分析对收集到的需求进行分析,识别需求之间的依赖关系和冲突。
1.2.3 需求规格说明将需求转化为具体的需求规格说明,包括功能需求、性能需求、约束条件等。
软件工程 复习题解析
软件工程复习题一、单选题(20分)第一组: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.TURBO PASCAL是()软件。
A.系统软件 B.人工智能 C.事务软件 D.应用软件15、选择结构的复杂性比顺序结构的复杂性要()。
软件工程习题及答案解析
软件工程习题及答案一、选择题: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. 结构化程序设计主要强调程序的。
软件工程习题解答解析
期考试题题型构成:选择题20道40分填空题10道20分应用题5道40分软件工程习题解答一、软件生存周期各阶段的基本任务?1. 问题定义:(1)回答要解决的问题是什么。
(2)系统分析员应该提出关于问题性质、工程目标和规模的书面报告。
(3)经过和用户讨论,澄清含糊不清的地方,改正理解不正确的地方,得出一份双方都满意的文档。
(4)问题定义是软件生命周期中最简短的阶段。
2.可行性研究:(1)前一阶段定义的问题有可行的解决办法吗?(2)系统分析员要进行一次大大压缩和简化了的系统分析和设计。
导出高层逻辑模型(用数据流图表示)。
确定工程规模和目标,准确估计系统的成本和效益。
(3)使用部门的负责人根据可行性研究的结果决定是否继续进行该工程的开发工作。
3.需求分析:(1)主要确定目标系统必须具备哪些功能。
(2)系统分析员和用户密切配合,充分交流,得出经用户确认的系统逻辑模型(数据流图、数据字典、算法描述)。
4.总体设计:(1)回答如何解决问题。
(2)系统分析员应使用系统流程图或其他工具描述每种可能系统;估计每种方案的成本和效益。
推荐一较好的系统──有其详细计划。
设计软件的结构(用层次图或结构图描述)。
5.详细设计:(1)回答应该怎样具体地实现这个系统。
(2)设计出程序的详细规格说明(用HIPO层次图加输入/处理/输出图)或PDL语言(过程设计语言)。
6.编码和单元测试:(1)写出正确的容易理解,容易维护的程序模块。
(2)程序员:选取一种适当的用高级语言书写程序(或汇编语言)。
仔细测试编写出的每一个模块。
7.综合测试:(1)通过各种类型的测试,使软件达到预定的要求。
(2)最基本的测试是集成测试和验收测试方法。
集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的过程中对程序进行必要的测试。
验收测试是按照需求规格说明书的规定,由用户对目标系统进行验收。
(3)用正式文档将测试计划、详细测试方案以及实际测试结果保存。
软件工程(习题及参考答案)
第1章概述(习题与参考答案)[判定题]1. 由于今天个人运算机不断进展壮大,人们再也不采纳软件团队的开发方式。
(×)2. 由于软件是产品,因此能够应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数运算机系统所需的硬件比软件更昂贵。
(×)4. 大多数软件产品在其生命周期中不需要增强功能。
(×)5. 大多数软件系统是不容易转变的,除非它们在设计时考虑了转变。
(√)6. 一样来讲,软件只有在其行为与设计者的目标一致的情形下才能成功。
(×)[选择题]1. ()因素促使运算机系统愈来愈复杂。
(D)A. 运算机内存和存储容量上的庞大增加B. 外部输入/输出选项的加倍多样性C. 运算机体系结构方面的深刻转变D. 以上所有选项2. 下面的()再也不是现代软件工程师关注的问题。
(A)A. 什么缘故运算机硬件的本钱这么高?B. 什么缘故软件需要很长时刻才能完成?C. 什么缘故开发一个软件的本钱这么高?D. 什么缘故不能在产品发布前去除软件错误?3. 软件会慢慢退化而可不能磨损,其缘故在于()。
(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在利用以后C. 不断的变更使组件接口之间引发错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其缘故在于()。
(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法利用C. 软件在不利用其他组件的情形下很容易构造出来D. 商业组件在很多应用领域中能够取得5. 下面的()说法是正确的。
(C)A. 软件危机在20世纪70年代末期全面暴发B. 当前先进的软件工程方式已经解决了软件危机的问题C. 软件危机是指在运算机软件的开发和保护进程中碰到的一系列严峻问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的大体目标是()。
(B)A. 排除软件固有的复杂性B. 开发高质量的软件C. 尽力发挥开发人员的制造性潜能D. 更好地保护正在利用的软件产品7. ()是将系统化的、标准的、可定量的方式应用于软件的开发、运行和保护的进程,它包括方式、工具和进程三个要素。
2022年下半年《软件工程》全国自考试题含解析
2022年下半年《软件工程》全国自考试题一、单项选择题1、RUP设计阶段的主要活动不包含______。
A.程序设计B.体系结构设计C.用况设计D.类设计2、下列不属于需求规约的基本性质是______。
A.可重复的B.重要性和稳定性程度C.完整的D.一致的3、类的状态机一般有几种不同的运行状态,其中处于等待接收事件,接收处理完事件后又进入等待状态,通常采用______。
A.IdleB.InitializingC.CommandD.Active4、RUP的分析类包括边界类、实体类和______。
A.子类B.控制类C.父类D.活动类5、在教师科研方案中规定对教授、副教授和讲师分别计算分数,做相应的处理,则根据黑盒测试中的等价类划分技术,下列划分正确的是______。
A.3个有效等价类,3个无效等价类B.3个有效等价类,1个无效等价类C.1个有效等价类,1个无效等价类D.1个有效等价类,3个无效等价类6、《ISO/IEC软件生存周期过程12207-1995》标准按过程主体把软件生存周期过程分为基本过程、组织过程和______。
A.供应过程B.开发过程C.测试过程D.支持过程7、在常见的软件开发模型中,主要用于支持面向对象技术软件开发的是______。
A.喷泉模型B.螺旋模型C.增量模型D.瀑布模型8、面向对象方法源于面向对象______。
A.分析B.设计C.建模语言D.编程语言9、软件结构化设计中,支持“自顶向下逐步求精”的详细设计,并且能够以一种结构化方式严格地控制从一个处理到另一个处理的转移,这个详细设计工具是______。
A.PAD图B.程序流程图C.DFD图D.N-S图10、集成化能力成熟度模型(CMMI)针对每个过程域设定了能力等级,其中最高级为______。
A.3级B.4级C.5级D.6级11、软件测试中,白盒测试技术依据的是程序的______。
A.逻辑结构B.输入数据C.状态D.功能12、有效性测试的目标是发现软件实现的功能与下列哪个选项不一致,正确的是______。
软件工程习题及其答案
目录第1章习题 (2)第2章习题 (4)第3章习题 (5)第4章习题 (8)第5章习题 (13)第6章习题 (18)第7章习题 (25)第8章习题 (25)第9章习题 (33)第10章习题 (35)第1章1.对于硬件是有形的而软件是无形的观点,有人提出了不同的看法。
他认为软件也是有形的,例如,软件需要安装才能工作,软件安装之后会占据一定的磁盘空间。
对此,你是什么看法?解答:软件是抽象的、无形的。
软件之所以需要安装并占据一定的磁盘空间,正说明了软件对硬件的依赖,它不能独立存在。
2.软件按服务对象的不同可分为通用软件和定制软件。
试举例说明这两类软件的区别。
解答:通用软件一般由软件开发机构自主开发并通过市场推广、销售,如Microsoft Word,它是完全由Microsoft自主开发并通过市场推广、销售的文字处理软件。
定制软件则通常受特定客户委托并在合同的约束下开发。
例如,某专门设备的控制系统、某特定企业的业务管理系统、某智能大厦的监控与管理系统、某城市的交通监管系统等。
定制类软件通常由客户进行软件描述,并以此为基本依据确定软件规格。
3.程序系统时代出现的“软件作坊”有什么特点?解答:软件作坊虽然也生产具有工业化特征的软件产品,但软件作坊是一种比较松散的组织机构,缺少工业化企业应具有的标准、规范和制度,因此不能使软件生产过程工业化。
4.某软件公司抢时间为某单位开发了一个人事管理软件,但软件交付用户使用一段时间之后,用户有了抱怨,原因是单位里某个职工改了名字,但人事管理软件却不允许修改姓名,而只能删除整条记录以后重新输入。
试从软件危机角度对这个问题做一些评论。
解答:由于软件开发过程中软件开发人员和用户之间缺乏信息交流,以至用户的需求没有在软件规格定义中充分体现,从而导致开发出来的软件不能安全满足用户的实际应用需要。
5.什么是软件工程?解答:软件工程是一门关于软件开发与维护的工程学科,其涉及软件生产的各个方面,包括工程过程、工程原则、技术方法与工具以及工程项目管理等,能够为经济、高效地开发高质量的软件产品提供有效的支持。
计算机二级题库中的软件工程题解析
计算机二级题库中的软件工程题解析软件工程是计算机专业非常重要的一门学科,它涉及到软件开发的流程、方法和工具等方面的知识。
作为计算机二级考试的内容之一,软件工程题目是考察考生对软件工程基础知识的理解和应用能力的重要环节。
本文将对计算机二级题库中的软件工程题目进行解析和讲解。
一、需求分析与规约1.1 题目描述某软件公司接到一个项目,需要开发一款手机应用程序。
项目经理收集了一些初步的需求,并要求你进行需求分析和规约。
1.2 解析与讲解在这类题目中,需要考生能够通过分析需求文档,确定用户需求和系统需求,并根据规约的要求进行描述和解释。
在解决这类题目时,可按照以下步骤进行分析:- 阅读需求文档,确定用户需求和系统需求;- 根据需求文档中的信息,编写需求规约的描述,包括输入、输出、功能等要求;- 根据规约的要求,绘制系统结构图或流程图,以辅助进行描述。
二、项目管理与质量控制2.1 题目描述某软件项目进入了测试阶段,项目经理希望你能给出一个合理的质量控制方案,并解释该方案的作用。
2.2 解析与讲解这类题目考察的是考生对项目管理和质量控制知识的理解和应用。
在解答这类题目时,可以按照以下步骤进行:- 分析项目当前的测试情况,包括测试环境、项目成员等;- 根据质量控制的目标,制定相应的测试计划和测试用例;- 针对测试过程中的问题,提出相应的解决方案,并解释其作用。
三、软件开发方法论3.1 题目描述某软件开发团队正在使用敏捷软件开发方法进行项目开发。
项目经理希望你能解释敏捷开发方法的特点以及其在项目中的应用。
3.2 解析与讲解这类题目考察的是考生对敏捷软件开发方法的理解和应用能力。
在回答这类题目时,可以参考以下步骤:- 解释敏捷软件开发方法的特点,如迭代开发、自组织团队等;- 分析敏捷开发方法在项目开发中的应用,如需求变更管理、增量交付等;- 提供具体案例或实践经验,以支撑对敏捷软件开发方法的理解。
四、软件测试与调试4.1 题目描述某软件项目出现了客户反馈的问题,项目经理要求你对该问题进行排查和调试。
软件工程课后答案解析
《软件工程》作业及答案1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答: 软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3-7经典解析一、选择题1.在软件生命周期中,能准确确定软件系统必须做什么和必须具备的功能阶段是( )。
A)概要设计B)详细设计C)可行性分析D)需求分析【命题目的】考查需求分析的概念。
【解题要点】需求分析能确定软件系统必须做什么和必须具备哪些功能。
IEEE软件工程标准词汇表对需求分析定义如下:(1)用户解决问题或达到目标所需的条件或权能;(2)系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能;(3)一种反映(1)或(2)所描述的条件或权能的文档说明。
需求分析阶段的工作可概括为4个方面:(1)需求获取;(2)需求分析;(3)编写需求规格说明书;(4)需求审评。
【错解分析】概要设计的基本任务有4条:(1)设计软件系统结构;(2)数据结构和数据库设计;(3)编写概要设计文档;(4)评审。
详细设计主要确定每个模块具体执行过程,也称过程设计。
可行性分析是需求分析之前要做的工作。
【考点链接】结构化分析方法。
答案:D)2·软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及( )nA)阶段性报告C)总结B)需求审评D)都不正确【命题目的】考查软件需求分析阶段的工作。
【解题要点】需求分析阶段的工作可概括为4个方面:(1)需求获取;(2)需求分析;(3)编写需求规格说明书;(4)需求审评。
【错解分析】由需求分析阶段任务的定义知A)、c)和D)都不在其内。
【考点链接】需求分析方法。
答案:B)3.在原型法中称( )为用户/设计者,开发人员根据用户需求不断修改原型,直到满足用户要求为止。
A)用户B)开发人员C)系统分析员D)程序员【命题目的】考查软件开发模型的原型模型。
【解题要点】所谓“原型”是建立一个系统的可运行原型(功能不要求全,但要求快),由用户试用并提出改进或扩充(甚至可能抛弃),因此,在原型法中称用户为用户/设计者。
【错解分析】用户在使用原型的基础上不断提出(设计)自己的系统;开发人员称为系统/建造者,根据用户要求不断修改原型,直到满足用户要求为止。
所以,有时我们称为原型法为弱功能快速设计法。
【考点链接】软件生命周期及软件开发模型。
答案:A)4.下面不属于软件工程的3个要素的是( )。
A)工具B)过程c)方法D)环境【命题目的】考查软件工程的要素。
【解题分析】软件工程包括3个要素,即方法、工具和过程。
(1)方法是完成软件工程项目的技术手段;(2)工具支持软件的开发、管理及文档生成;(3)过程支持对软件开发的各个环节的控制、管理。
【错解分析】由软件工程3要素的定义知,环境不是软件工程3要素之一。
【考点链接】软件工程的定义。
答案:D)5.检查软件产品是否符合需求定义的过程称为( )。
A)确认测试B)集成测试C)验证测试D)验收测试【命题目的】考查确认测试。
【解题要点】确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中确定的各种需求,以及软件配置是否完全、正确。
【错解分析】集成测试是测试和组装软件的过程。
集成测试所涉及的内容包括:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等。
验收测试指系统测试通过后,用户根据合同进行验收测试,确定系统功能的可接受性。
【考点链接】软件的测试。
答案:A)6.数据存储和数据流都是( ),仅仅是所处的状态不同。
A)分析结果B)事件c)动作D)数据,【命题目的】考查数据存储和数据流的特点。
【解题要点】数据流图有4种成分:源点或终点、处理、数据存储和数据流。
数据存储是处于静止状态的数据,数据流是处于运动中的数据。
【错解分析】数据存储和数据流的实质都是数据,错误答案是显而易见的。
【考点链接】结构化分析方法。
答案:D)7.数据流图和( )共同组成系统的逻辑模型。
A)HIPO图B)PDI。
c)数据字典D)层次图【命题目的】考查系统逻辑模型的构成。
【解题要点】在结构化分析方法中,数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
然而没有数据流图,数据字典也难于发挥作用。
只有将数据流图和对数据流图中每个元素的精确定义放在一起,才共同构成系统的规格说明。
【错解分析】}HPO图和PDI。
是详细设计里采用的设计工具。
【考点链接】结构化分析、详细设计的重要工具。
答案:C)8.数据元素组成数据的方式的基本类型( )。
A)顺序B)选择C)循环D)以上全部【命题目的】考查数据元素组成数据的方式。
【解题要点】由数据元素组成数据的方式只有下述3种基本类型:(1)顺序,即以确定次序连接的两个或多个分量;(2)选择,即从两个或多个可能的元素中选择一个;(3)循环,即把指定的分量重复零次或多次。
【错解分析】顺序、选择和循环是数据元素组成的基本类型。
选择A)、B)或c)都是过于片面的。
【考点链接】结构化设计。
答案:D)9.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是( )。
A)控制流B)加工c)数据存储D)源和潭【命题目的】考查数据流图的元素。
【解题要点】在程序流程图中用箭头表示控制流。
所以A)不属于数据流程图。
【错解分析】力HI:输人数据经加工变换产生输出,用圆或椭圆表示。
数据存储:表示处理过程中存放各种数据文件,用双杠表示。
源和潭:表示系统和环境的接口,用方框表示。
【考点链接】结构化分析常用工具。
.答案:A)10.结构化分析方法就是面向( )的自顶l~-V i$步求精进行需求分析的方法。
A)目标B)数据流c)功能D)对象【命题目的】考查结构化分析方法的定义。
【解题要点】结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。
结构化分析方法,简称SA是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
【错解分析】由结构化分析方法的定义知A)、c)和D)都不符合。
【考点链接】结构化分析方法的概念。
答案:B)11.通过( )可以完成数据流图的细化。
A)结构分解B)功能分解c)数据分解D)系统分解【命题目的】考查数据流图细化的方法。
【解题要点】在数据流图中选择一个功能比较复杂的处理,并把它的功能分解成若干个子功能,这些较低层次的子功能成为一张新数据流图上的处理,在这张新数据流图上还应该包括自己的数据存储和数据流。
对数据流图细化之后得到一组新的数据流图,不同的系统元素之间的关系变得更清楚了。
【错解分析】数据流图的细化是通过功能分解来完成的,跟结构分解、数据分解和系统分解无关。
【考点链接】结构化分析方法。
答案:B)12.下面不属于软件工程原则的是( )。
A)抽象B)模块化c)自底向上D)信息隐蔽【命题目的】考查软件设计原则。
【解题要点】自底向上是软件测试的内容。
自底向上集成的过程与步骤如下:(1)底层的模块组成簇,以执行某个特定的软件子功能;(2)编写一个驱动模块作为测试的控制程序,和被测试的簇连在一起,负责安排测试用例的输入及输出;(3)对簇进行测试;(4)拆去各个小簇的驱动模块,把几个小簇合并成大簇,再重复做(2)、(3)以及(4)步。
【错解分析】软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
【考点链接】软件工程的目标与原则。
答案:C)13.( )是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可以通过名字来访问。
A)模块化B)抽象C)精化D)模块【命题目的】考查模块的定义。
【解题要点】模块是能够单独命名并独立地完成一定功能的程序语句的集合。
【错解分析】模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集组成一个整体,可以完成指定的功能并满足问题的要求;抽象是把事物中本质的共同的东西提取出来;精化是软件调试的一种方法。
【考点链接】结构化软件设计,模块与模块化。
答案:D)14.( )是指让一些关系密切的软件元素在物理上彼此靠近。
A)信息隐蔽B)内聚c)局部化D)模块独立【命题目的】考查局部化的定义。
【解题要点】在模块中使用局部数据元素是局部化的一个例子。
局部化有助于实现信息的隐蔽。
【错解分析】信息隐蔽意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
模块的独立程度可以由两个定性标准度量,这两个标准分别是内聚和耦合。
耦合是衡量不同模块彼此间相互依赖的紧密程度,内聚是衡量一个模块内部各个元素彼此结合的紧密程度。
【考点链接】软件工程原则。
答案:C)15.面向数据流的设计方法把( )映射成软件结构。
A)数据流B)系统结构c)控制结构D)信息流【命题目的】考查面向数据流的设计方法的作用。
.【解题要点】面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。
在软件工程的需求分析阶段,信息流是一个关键考虑,常用数据流图描绘信息在系统中加工和流动的情况。
面向数据流的设计方法定义了一些不同的映射,利用这些映射可以把信息流变成软件结构。
【错解分析】把数据流映射为程序结构是面向数据流设计方法的过程和步骤之一。
【考点链接】面向数据流设计方法的设计过程。
答案:D)16.程序流程图(PFD)中的箭头代表的是( )。
A)数据流B)控制流C)调用关系D)组成关系.【命题目的】考查程序流程图的符号含义。
【解题要点】程序流程图中用箭头表示控制流。
【错解分析】数据流在结构化分析中用箭头表示;调用关系是画结构图时的描述;组成关系与程序流程图中的箭头无关。
【考点链接】详细设计的工具。
答案:B)17.在进行软件结构设计时应该遵循的最主要的原理是( )。
A)抽象B)模块化c)模块独立D)信息隐蔽【命题目的】考查软件结构设计应该遵循的原则。
【解题要点】进行软件结构设计时,需要确定软件由哪些模块组成,以及这些模块之间的动态调用关系。
层次图和结构图是描绘软件结构的常用工具。
软件应该由一组相对独立的子功能模块组成,这些模块彼此之间的接口关系应该尽量简单。
模块的独立性是衡量一个软件好坏的重要度量标准。
【错解分析】抽象是把事物的本质的、共同的性质提取下来;模块是指把一个待开发的软件分解成若干小的简单的部分。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
信息隐蔽是指,在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
【考点链接】软件设计的基本原理。
答案:C)18.在结构化方法中,软件功能分解属于软件开发中的( )阶段。
A)详细设计B)需求分析c)总体设计D)编程调试【命题目的】考查总体设计任务。