软件工程习题及答案解析

软件工程习题及答案解析

导言:

软件工程作为一门与计算机科学紧密相关的学科,旨在研究和应用

一系列工程原则、方法和过程来开发和维护高质量的软件系统。对于

软件工程的学习和理解,习题练习是巩固知识和提高技能的重要手段。本文将针对软件工程领域的一些习题,提供详细的答案解析,帮助读

者更好地掌握软件工程的各个方面。

一、软件需求工程

1. 什么是软件需求?请举例说明。

答案解析:软件需求是对即将开发的软件系统或软件改进的功能、

性能、可靠性、约束等方面的描述和规范。例如,一个在线购物系统

的需求可以包括用户注册、商品浏览、购买结算等功能,以及响应时间、并发用户数等性能要求。

2. 软件需求工程的主要任务是什么?

答案解析:软件需求工程的主要任务包括需求获取、需求分析、需

求规格、需求验证和需求管理。其中,需求获取是通过与用户、领域

专家的交流和文档的分析,了解用户需求的过程;需求分析则是对获

取到的需求进行识别、分类和理解,以明确软件系统的功能特性;需

求规格是将需求以规范化的方式进行表达,通常使用需求文档或者

UML建模工具;需求验证是通过测试、模拟等方式验证需求的正确性

和可行性;需求管理是对需求进行变更控制、版本管理和追踪反馈。

二、软件设计与实现

1. 请介绍一种常用的软件开发模型,并分别说明各个阶段的任务。

答案解析:常用的软件开发模型之一是瀑布模型。它包含需求分析、系统设计、详细设计、编码、测试和维护等阶段。需求分析阶段的任

务是明确软件系统的功能需求以及性能需求;系统设计阶段则是定义

软件系统的整体框架和架构设计;详细设计阶段是对系统设计进行进

一步的细化,明确具体的模块、类和接口设计;编码阶段是将设计好

的模块或类转化为实际的编程代码;测试阶段是对编码后的软件进行

各个功能的单元测试、集成测试和系统测试,以验证软件的正确性和

性能;维护阶段则是对软件进行错误修复、性能优化和功能升级等活动。

2. 什么是软件设计模式?请举例说明一种常用的软件设计模式。

答案解析:软件设计模式是一套被广泛接受的、被证明有效的设计

方法和思想。它通过提供描述问题和解决方案的通用模式,帮助开发

者在软件设计过程中遵循良好的设计原则。例如,工厂模式是一种常

用的软件设计模式,它通过定义一个创建对象的接口,但将具体的对

象创建延迟到子类中。这样可以使得程序在需要根据不同的条件创建

不同对象时,可以灵活地进行扩展和变更。

三、软件测试与质量保证

1. 请介绍一种常用的软件测试方法,并说明其主要特点。

答案解析:白盒测试是一种常用的软件测试方法,它基于对软件源代码的了解,设计测试用例来覆盖不同的路径和条件,并通过对程序执行结果的检验来验证程序的正确性。白盒测试的主要特点是能够充分利用源代码的结构信息,对程序的不同分支和条件进行测试,以达到更高的覆盖率和错误发现率。

2. 请说明软件质量保证的主要活动,并说明其重要性。

答案解析:软件质量保证的主要活动包括质量计划、质量控制和质量评估。质量计划是在软件项目初期制定项目质量目标和计划,明确质量保证的方法和策略;质量控制则是在软件开发过程中进行过程监控和错误预防,以确保开发符合质量标准;质量评估则是通过对软件进行测试和审核,评估软件质量是否满足要求。软件质量保证的重要性在于可以帮助预防和解决软件开发过程中的问题,提高软件产品的质量和可靠性,减少后期的维护成本和风险。

结论:

软件工程是一门需要理论知识和实践经验相结合的学科, 本文通过对软件工程中的习题进行全面的答案解析,帮助读者更好地理解和应用软件工程的概念、原理和方法。通过不断练习和实践,读者将能够提升软件开发和维护的能力,为业务和用户提供更好的软件产品和服务。

《软件工程》11套考试复习练习试题、作业题[含答案解析]

作业1: 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:①使用和维护②兼容性的确认③完整性的确认④设计 ⑤需求定义⑥图象处理 4. 软件工程过程有哪几个基本过程活动?试说明之。 5. 试说明“软件生存周期”的概念。 6. 试论述瀑布模型软件开发方法的基本过程。 7. 软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。 8. 软件工程学的基本原则有哪些?试说明之。 9. 有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。对否?请解释你的回答。

软件工程 课后习题答案

软件工程课后习题答案 软件工程课后习题答案 软件工程是一门关于设计、开发和维护软件系统的学科。在学习软件工程的过程中,课后习题是非常重要的一部分。通过解答习题,我们可以巩固所学的知识,加深对软件工程的理解。下面是一些常见的软件工程习题及其答案,供大家参考。 习题一:什么是软件生命周期?它包括哪些阶段? 答案:软件生命周期是指软件从开始开发到最终废弃的整个过程。它包括以下几个阶段: 1. 需求分析阶段:确定软件系统的需求,包括功能需求、性能需求、安全需求等。 2. 设计阶段:根据需求分析的结果,设计软件系统的结构和功能。 3. 编码阶段:根据设计阶段的结果,编写代码实现软件系统的功能。 4. 测试阶段:对编写的代码进行测试,确保软件系统的正确性和稳定性。 5. 部署阶段:将测试通过的软件系统部署到生产环境中,供用户使用。 6. 维护阶段:对已经部署的软件系统进行修复漏洞、更新功能等维护工作。习题二:什么是软件需求?软件需求可以分为哪几类? 答案:软件需求是指对软件系统功能和性能的描述。软件需求可以分为以下几类: 1. 功能需求:描述软件系统应该具备的功能,比如用户登录、数据查询等。 2. 性能需求:描述软件系统在运行过程中的性能要求,比如响应时间、并发处理能力等。

3. 安全需求:描述软件系统对数据和系统的安全保护要求,比如用户权限控制、数据加密等。 4. 可靠性需求:描述软件系统的可靠性要求,比如系统的可用性、容错性等。 习题三:什么是软件设计模式?列举几个常见的软件设计模式。 答案:软件设计模式是指在软件设计过程中经常出现的一些问题的解决方案。 常见的软件设计模式包括: 1. 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 2. 工厂模式:将对象的创建和使用分离,通过工厂类来创建对象。 3. 观察者模式:定义了一种一对多的依赖关系,当一个对象状态发生改变时, 所有依赖它的对象都会收到通知并自动更新。 4. 适配器模式:将一个类的接口转换成客户希望的另一个接口,使得原本由于 接口不兼容而不能在一起工作的类可以一起工作。 习题四:什么是软件测试?软件测试的目的是什么? 答案:软件测试是指对软件系统进行验证和验证的过程。软件测试的目的是发 现软件系统中的错误和缺陷,确保软件系统的质量和可靠性。 习题五:什么是敏捷开发?敏捷开发的核心原则是什么? 答案:敏捷开发是一种迭代和增量的软件开发方法。敏捷开发的核心原则是: 1. 个体和交互胜过过程和工具:强调团队成员之间的沟通和合作。 2. 可工作的软件胜过详尽的文档:强调软件的实际运行效果。 3. 客户合作胜过合同谈判:强调与客户的密切合作和沟通。 4. 响应变化胜过遵循计划:强调对需求变化的快速响应能力。 通过解答以上习题,我们可以更好地理解软件工程的概念和方法。同时,也能

软件工程课后习题答案

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 三、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机? 1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工程的本质特征: (1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经常变化的,开发过程中必须考虑软件将来可能的变化 (4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户 (7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径: (1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具

软件工程试题及答案

软件工程试题及答案 第一篇:软件工程试题及答案 1、瀑布模型把软件生命周期划分为8个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和(运行阶段)。 2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,(需求分析阶段)出错,对软件的影响最大。 3、在结构化的瀑布模型中,(需求分析阶段)定义的标准将成为软件测试中的系统测试阶段的目标。 4、软件工程的出现主要是由于(软件危机的出现)。 5软件工程方法学的目的:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发的环境。 6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为相互补充。 7、UML是软件开发中的一个重要工具,它主要应用于基于对象的(面向对象)的方法。 8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(原型化方法)。 9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(数据流)。 10、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(编码阶段)。 11、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。螺旋模型将瀑布模型和演化模型相结合,并增加了(风险分析),它建立在()的基础上,沿着螺线自内向外每旋转一圈,就得到(原型)的一个新版本。喷泉模型描述了(面向对象)的开发模型,它体现

软件工程考试试题含答案

软件工程考试试题含答案 一、题目类型为单选题 1.软件需求分析的目的是什么? A、确定系统需求 B、建立软件架构 C、编写用户手册 D、进行系统集成 答案:A 2.在软件项目开发中,以下哪个阶段是与需求分析同时进行的? A、需求规格说明 B、软件设计 C、程序编写 D、系统维护 答案:B 3.软件项目管理中,以下哪个是关键路径? A、最长时间路径 B、最短时间路径

C、资源紧张路径 D、资源充足路径 答案:A 4.软件系统测试是为了检查什么? A、代码质量 B、功能实现是否符合需求 C、项目进度 D、硬件设备是否正常 答案:B 5.以下哪个是软件配置管理的主要目标? A、保证软件的质量 B、控制软件的开发成本 C、跟踪软件的版本 D、优化软件的性能 答案:C 二、题目类型为多选题 1.软件开发过程中,以下哪些是敏捷开发的原则?(多选)

A、个人和交互胜过过程和工具 B、软件和协商合约胜过合同文档 C、持续交付胜过完整的计划 D、需求协商胜过客户合作 答案:A、B、C 2.以下哪些是软件工程中的软件生命周期模型?(多选) A、瀑布模型 B、原型模型 C、敏捷模型 D、螺旋模型 答案:A、B、C、D 3.在软件项目中,以下哪些因素可能导致项目失败?(多选) A、需求不明确 B、软件工程师技术水平不高 C、项目计划不合理 D、项目成本过高 答案:A、B、C、D

4.以下哪些是软件维护的类型?(多选) A、适应性维护 B、完善性维护 C、阻碍性维护 D、紧急性维护 答案:A、B、D 5.在软件项目管理过程中,以下哪些风险可以考虑采取风险规避策略?(多选) A、需求变更频繁 B、开发团队沟通效率低 C、软件质量无法满足需求 D、开发进度超过预期 答案:A、C 三、题目类型为填空题 1.软件需求分析的主要输出是______。 答案:需求规格说明 2.软件开发过程中,以下步骤是软件测试的基本流程:需求分析、______、测试执行、缺陷跟踪。

软件工程考试试题 含答案

软件工程考试试题含答案软件工程考试试题含答案 一. 选择题 1. 下列不属于软件工程方法论的是: A. 瀑布模型 B. 敏捷开发 C. 融合开发 D. 增量开发 答案:C. 融合开发 2. 哪个不是软件需求工程的阶段? A. 需求收集和分析 B. 需求规格说明书编写 C. 需求确认和验证 D. 需求修复和更新 答案:D. 需求修复和更新 3. 软件开发生命周期中不包含以下哪个阶段? A. 需求分析

B. 软件设计 C. 软件测试 D. 软件维护 答案:C. 软件测试 4. 下列哪个是软件开发项目管理的基本约束? A. 时间 B. 人员 C. 质量 D. 成本 答案:D. 成本 5. 使用UML建模时,哪个图标不属于结构图? A. 类图 B. 对象图 C. 时序图 D. 包图 答案:C. 时序图 二. 填空题

1. 软件工程的目标是提高软件的质量和________。 答案:生产效率 2. 软件需求可以分为________和________两类。 答案:功能需求,非功能需求 3. 软件设计的核心目标是________。 答案:满足需求 4. 软件测试的目的是发现________。 答案:缺陷和错误 5. 软件维护分为________和________两个主要类别。 答案:正确性维护,适应性维护 三. 简答题 1. 请简要介绍敏捷开发方法。 答案:敏捷开发方法强调迭代与循序渐进的开发方式,注重团队合作和快速响应需求变化。其核心原则包括迭代开发、自组织团队、人与沟通优先、持续集成和及时反馈等。敏捷开发方法通过不断反馈和迭代,提高软件开发的灵活性和适应性。 2. 什么是软件需求工程?为什么软件需求工程是软件开发的关键环节?

软件工程习题及答案解析

软件工程习题及答案解析 导言: 软件工程作为一门与计算机科学紧密相关的学科,旨在研究和应用 一系列工程原则、方法和过程来开发和维护高质量的软件系统。对于 软件工程的学习和理解,习题练习是巩固知识和提高技能的重要手段。本文将针对软件工程领域的一些习题,提供详细的答案解析,帮助读 者更好地掌握软件工程的各个方面。 一、软件需求工程 1. 什么是软件需求?请举例说明。 答案解析:软件需求是对即将开发的软件系统或软件改进的功能、 性能、可靠性、约束等方面的描述和规范。例如,一个在线购物系统 的需求可以包括用户注册、商品浏览、购买结算等功能,以及响应时间、并发用户数等性能要求。 2. 软件需求工程的主要任务是什么? 答案解析:软件需求工程的主要任务包括需求获取、需求分析、需 求规格、需求验证和需求管理。其中,需求获取是通过与用户、领域 专家的交流和文档的分析,了解用户需求的过程;需求分析则是对获 取到的需求进行识别、分类和理解,以明确软件系统的功能特性;需 求规格是将需求以规范化的方式进行表达,通常使用需求文档或者 UML建模工具;需求验证是通过测试、模拟等方式验证需求的正确性 和可行性;需求管理是对需求进行变更控制、版本管理和追踪反馈。

二、软件设计与实现 1. 请介绍一种常用的软件开发模型,并分别说明各个阶段的任务。 答案解析:常用的软件开发模型之一是瀑布模型。它包含需求分析、系统设计、详细设计、编码、测试和维护等阶段。需求分析阶段的任 务是明确软件系统的功能需求以及性能需求;系统设计阶段则是定义 软件系统的整体框架和架构设计;详细设计阶段是对系统设计进行进 一步的细化,明确具体的模块、类和接口设计;编码阶段是将设计好 的模块或类转化为实际的编程代码;测试阶段是对编码后的软件进行 各个功能的单元测试、集成测试和系统测试,以验证软件的正确性和 性能;维护阶段则是对软件进行错误修复、性能优化和功能升级等活动。 2. 什么是软件设计模式?请举例说明一种常用的软件设计模式。 答案解析:软件设计模式是一套被广泛接受的、被证明有效的设计 方法和思想。它通过提供描述问题和解决方案的通用模式,帮助开发 者在软件设计过程中遵循良好的设计原则。例如,工厂模式是一种常 用的软件设计模式,它通过定义一个创建对象的接口,但将具体的对 象创建延迟到子类中。这样可以使得程序在需要根据不同的条件创建 不同对象时,可以灵活地进行扩展和变更。 三、软件测试与质量保证 1. 请介绍一种常用的软件测试方法,并说明其主要特点。

软件工程习题及答案解析

软件工程习题及答案 一、选择题: 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/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程题库(含答案)

软件工程题库(含答案) 一、单选题(共60题,每题1分,共60分) 1、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A、可用性 B、正确性 C、完整性 D、可靠性 正确答案:D 2、软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是( ). A、可移植性 B、可理解性 C、可重用性 D、可修改性 正确答案:A 3、在软件质量要素的评价准则中,操作该软件的难易程度指的是( )。 A、容错性 B、检测性 C、可操作性 D、安全性 正确答案:C 4、下列属于维护阶段的文档是( ) A、软件问题报告 B、用户操作手册 C、软件测试分析报告 D、软件规格说明 正确答案:B 5、快速原型模型的主要特点之一是( ) A、及早提供工作软件 B、开发完毕才见到产品 C、及早提供全部完整的软件产品 D、开发完毕后才见到工作软件 正确答案:C

6、可维护性通常包括( )。 A、可用性和可理解性 B、可修改性、数据独立性和数据一致性 C、可理解性、可修改性和可测试性 D、可测试性和稳定性 正确答案:C 7、软件的可修改性支持软件的( )。 A、可互操作性 B、可维护性 C、可追踪性 D、有效性 正确答案:B 8、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( ) A、数据通信 B、数据定义 C、数据维护 D、数据库设计 正确答案:B 9、软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是( )。 A、可追踪性 B、可理解性 C、可互操作性 D、可维护性 正确答案:C 10、可维护性的特性中相互促进的是( ) A、效率和可移植性 B、可理解性和可测试性 C、效率和结构好 D、效率和可修改性 正确答案:B 11、在软件质量特性中,( )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。

软件工程习题及答案解析

一、选择题: 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/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD (Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或者流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程课后习题集答案解析

软件工程课后习题答案 习题1 略。 习题2 略。 习题3 略。 习题4 2.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准那么? 人们在理解用自然语言描述的规格说明时,容易产生二义性。为了克制非形式化方法的缺点,人们把数学引入软件开发工程,创造了基于数学的形式化说明技术。 应用形式化方法的准那么: 〔1〕应该选用释放的表示方法; 〔2〕应该形式化,但不要过分形式化; 〔3〕应该估算本钱; 〔4〕应该有形式化方法参谋随时提供咨询; 〔5〕不应该放弃传统的开发方法; 〔6〕应该建立详尽的文档; 〔7〕不应该放弃质量标准; 〔8〕不应该盲目依赖形式化方法; 〔9〕应该测试、测试再测试; 〔10〕应该重用。 4.用有穷状态机说明自动化图书馆流通系统

习题5 略。 习题6 略。 习题7 略。 习题8 略。 习题9 1.什么是面向对象方法学?它有哪些优点? 面向对象方法学,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法和过程,从而使得实现解法的解空间〔也称为求解域〕与描述问题的问题空间〔也称为问题域〕在构造上尽可能一致。 优点: 1.与人类习惯的思维方法一致; 2.稳定性好; 3.可重用性好; 4.较易开发大型软件产品; 5.可维护性好 10.建立订货系统的用例模型。 分析如下:从对这个订货系统的需求可以知道,仓库管理员通过放在仓库中的终端把零件入库/出库市事务报告给订货系统,系统承受到事务信息之后应该处理事务;采购员需要使用订货系统提供的产生报表功能,以获取订货报表。综上所述,用例如下:

习题10 1.用面向对象方法分析研究本书习题2第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。 对象模型参考: 以上还需将关联关系说明补全。 动态模型参考: (1)脚本 正常情况脚本: ●储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型; ●业务员查收存款,审核存款与存款单存款金额吻合; ●存款单生效; ●储户有取款要求,填写取款单,包含个人账号、密码〔待定〕和存款金额; ●业务员审核存款,验证储户身份,确定储户存款金额 > = 取款金额; ●审核通过,取款单生效; ●系统打印利息清单,业务员把本金和利息返回储户。 异常情况脚本: ●储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型; ●业务员查收存款,审核存款与存款单存款金额不符; ●存款单作废; ●储户有取款要求,填写取款单,包含个人账号、密码〔待定〕和存款金额; ●业务员审核存款,验证储户身份,发现储户存款金额 < = 取款金额; ●取款单作废;

软件工程自考真题及答案解析

软件工程自考真题及答案解析 自考是很多人追求学历提升的一种方式,软件工程也是当前热门 的专业之一。为了帮助大家更好地备考自考软件工程,本文将介绍一 些常见的软件工程自考真题及其答案解析,希望对大家有所帮助。 一、选择题 1. 软件测试是软件开发过程中的哪个阶段? A. 需求分析阶段 B. 设计阶段 C. 开发阶段 D. 维护阶段 正确答案:C 解析:软件测试是在软件开发的过程中,开发阶段之后的一个重 要阶段。其主要目的是通过测试用例的执行来发现软件的错误与缺陷,确保软件的质量。 2. 在软件工程中,下列哪个不属于需求建模的技术? A. 数据流图 B. 状态图

C. 时序图 D. 数据库设计 正确答案:D 解析:需求建模是软件工程中的一项重要任务,用于对需求进行规范化和可视化的表示。数据流图、状态图和时序图都是常用的需求建模技术,而数据库设计则是数据库开发的内容。 3. 下列哪个不属于软件工程的基本原则? A. 需求驱动 B. 分阶段开发 C. 统一建模语言 D. 以人为中心 正确答案:C 解析:软件工程的基本原则包括需求驱动、分阶段开发、以人为中心等,但统一建模语言不属于基本原则,而是一种标准化的建模语言。 二、判断题 1. 软件工程是一门较为年轻的学科,它在软件开发过程中起到了至关重要的作用。

正确答案:正确 解析:软件工程是一门对软件开发过程进行科学化管理的学科, 并在实践中不断推动软件开发的进步,因此在软件开发中起到了至关 重要的作用。 2. 软件测试的主要目的是为了保证软件开发过程的顺利进行, 而不关注软件质量。 正确答案:错误 解析:软件测试的主要目的是为了发现软件的错误与缺陷,保证 软件的质量。通过测试用例的执行,可以发现潜在的问题并及时修复,从而提高软件的可靠性。 三、简答题 1. 请简要介绍软件配置管理的概念及其作用。 软件配置管理是一种用于控制和管理软件开发过程中各种配置项 的方法,其主要作用包括: - 确定需求:通过对配置项的分析和管理,可以确保所开发的软 件满足用户的需求。 - 提高可追溯性:通过配置项的详细记录和版本控制,可以方便 地对开发过程进行追溯和复盘,帮助发现问题和改进方法。 - 管理变更:配置管理可以帮助识别和管理软件开发过程中的变更,保证变更的合理性和可控性。

软件工程习题答案参考

软件工程习题答案参考 软件工程习题一:软件开发过程及其特点 软件开发过程是指通过一系列的活动和任务,将软件需求转化为可 运行的软件系统的过程。软件工程师通过在这个过程中使用不同的方 法和技术来确保软件系统的质量和可靠性。下面是对软件开发过程中 常见的几种模型及其特点的详细解答: 1. 瀑布模型: 瀑布模型是最早提出的软件开发过程模型之一。它将软件开发过程 划分为几个连续的阶段,包括需求分析、系统设计、编码、测试和维护。这种模型的特点是每个阶段必须按序完成,并且每个阶段的输出 成果是下一个阶段的输入。瀑布模型适用于需求比较稳定且项目规模 较小的软件开发。 2. 增量模型: 增量模型是一种迭代的软件开发过程模型,它将软件开发过程分为 多个增量,每个增量都可以独立开发、测试和交付。每个增量都会增 加软件系统的功能或性能。增量模型适用于需求不明确或需求变化频 繁的软件开发。 3. 原型模型: 原型模型是通过与用户密切合作,迅速开发出一个初步的软件原型,然后根据用户的反馈和需求修改和改进原型,最终得到满足用户需求

的软件系统。原型模型适用于用户需求不确定或需要快速验证软件功 能的情况。 4. 敏捷模型: 敏捷模型是一种注重实践和团队合作的软件开发过程模型。它强调 通过频繁的迭代和交付来满足用户需求,并鼓励团队成员之间的沟通 和合作。敏捷开发适用于需求变化频繁或项目时间紧迫的软件开发。 总结来说,不同的软件开发过程模型适用于不同的项目和需求情况。软件工程师在实际工作中需要根据项目的具体情况选择合适的开发过 程模型,并结合各种软件开发方法和技术来确保软件系统的质量和可 靠性。 软件工程习题二:软件需求分析与规格说明 软件需求分析是软件开发过程中至关重要的一步,它涉及到对用户 需求进行详细的调查和分析,以确定软件系统的功能和性能需求,并 将其形式化为规格说明。下面是对软件需求分析及规格说明的常见问 题的解答: 1. 需求获取: 需求获取是指获取用户需求的过程。常用的需求获取技术包括面谈、问卷调查、原型演示等。软件工程师需要与用户密切合作,确保准确 理解用户需求,并将其记录下来。 2. 需求分析:

软件工程习题及参考答案

软件工程习题及参考答案 一、选择题 1. 软件生命周期中,下列哪个阶段是用于定义软件系统的需求和规划开发工作的? A. 需求分析阶段 B. 设计阶段 C. 实施阶段 D. 维护阶段 答案:A 2. 在敏捷软件开发方法中,以下哪个原则强调团队成员之间的密切合作和面对面沟通? A. 满足客户 B. 可工作的软件 C. 另一种需求 D. 相互合作 答案:D 3. 下列哪个是迭代软件开发过程的特征之一? A. 完全可预测

B. 单次交付 C. 线性顺序 D. 重复迭代 答案:D 4. 在软件工程中,以下哪个测试方法是通过检查软件源代码是否符合预定编码规范和标准来识别潜在问题? A. 单元测试 B. 集成测试 C. 静态代码分析 D. 动态测试 答案:C 5. 以下哪种软件开发方法更加适合于大型复杂项目,其中需求和规范可能会发生变化的情况? A. 瀑布模型 B. 增量模型 C. 原型模型 D. 敏捷模型 答案:D

二、填空题 1. 软件需求工程关注软件的_____________。 答案:需求 2. 敏捷开发方法注重_____________与_____________的灵活性。 答案:响应,变化 3. 需求分析阶段的主要目的是准确地定义_____________。 答案:软件系统需求 4. 软件测试是一种_____________过程,用于评估软件系统的质量和响应性。 答案:验证 5. 配置管理的目标是确保软件系统的_____________和 _____________。 答案:完整性,一致性 三、简答题 1. 请简要解释软件生命周期模型,并列举两个具体的软件生命周期模型。 答:软件生命周期模型是一种用于规划、开发和维护软件的框架,它描述了软件开发从需求分析到交付并进入维护阶段的全过程。两个常见的软件生命周期模型包括:

软件工程课后题答案大全(详细)

一、什么是软件危机?软件危机表现在哪几个方面? 答:由于软件具有上述这些特点,长期以来一直没有发明一种高效的开发方法,从而导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。这种现象早在20世纪60年代被定义为“软件危机”。它的具体表现如下: 1.“已完成”的软件不满足用户的需求。 2.开发进度不能保障,交付时间一再拖延。 3.软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。 4.软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。 5.软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。 二、试述产生软件危机的主要原因? 答:软件的特点是导致软件危机的客观因素,而软件开发和软件维护过程中使用的不正确方法是主观因素,主要表现为:忽视软件开发前期的调研和分析工作,没有统一的、规范的方法论指导,文档资料不齐全,忽视人员之间的交流,忽视测试工作,轻视软件的维护。 三、什么是软件工程?软件工程的目标是什么? 答:软件工程是:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于

软件开发和管理之中;②对①中所选方法的研究”。 软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下: a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。 b)增强软件过程的可见性和可控性,保证软件的质量。 c)提高所开发软件的可维护性,降低维护费用。 d)提高软件开发生产率,及时交付使用。 e)合理预算开发成本,付出较低的开发费用。 四、软件工程为什么要强调规范化和文档化? 答:软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。2.文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,3.在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。 五、软件工程层次是如何划分的? 答:软件工程的研究内容具有层次化结构,它的最底层是质量保证层,中间是过程层和方法层,最上层是工具层。

2023年自学考试软件工程模拟试题及答案和解析

一,单项选择题(本大题共20小题,每题1分,共20分) 在每题列出旳四个选项中只有一种选项是符合题目规定旳,请将对旳选项前旳字母填在题后旳横线上。 1.可行性研究要进行一次_____需求分析。参照答案为:C A.详细旳 B.全面旳 C.简化旳、压缩旳 D.彻底旳 [解析]软件旳可行性研究旳目旳就是用最小旳代价在尽量短旳时间内确定该软件项目与否可以开发,与否值得去开发。其实质是要进行一次简化、压缩了旳需求分析、设计过程,要在较高层次上以较抽象旳方式进行需求分析和设计过程。因此答案为C。 2.系统流程图用于可行性分析中旳_____旳描述。参照答案为:A A.目前运行系统 B.目前逻辑模型 C.目旳系统 D.新系统 [解析]可行性研究首先要确定项目旳规模和目旳,然后就需要对目前运行旳系统进行研究了,在考察系统旳基础上,通过描绘既有系统旳高层系统流程图,与有关人员一起审查该系统流程图与否对旳。描述旳对象是目前正在运行旳系统,因此选择A。 3.系统流程图是描述_____旳工具。参照答案为:C A.逻辑系统 B.程序系统

C.体系构造 D.物理系统 [解析]系统流程图是用图形符号来表达系统中旳各个元素,例如人工处理、数据库、设备等,流程图体现了系统中各个元素之间旳信息流动状况。是描绘物理系统旳老式工具。 4._______工具在软件详细设计过程中不采用。参照答案为:D A.鉴定表 B.IPO图 C.PDL D.DFD图 [解析]详细描述处理过程常用三种工具:图形、表格和语言。其中图形工具有构造化流程图、盒图和问题分析图三种,答案中旳鉴定表是用来表达复杂旳条件组合与应做旳动作之间旳对应关系。IPO图用来描述每个模块输入/输出数据、处理功能及模块调用旳详细状况。PDL是过程设计语言旳缩写,也称程序描述语言,用于描述模块算法设计和处理细节旳语言,这三种都可以在软件详细设计过程中使用,而DFD图则是数据流图,是以图形旳方式描绘数据在系统中流动和处理旳过程,只反应系统必须完毕旳逻辑功能,因此它只是一种功能模型,不能在详细设计过程中使用。 5.程序旳三种基本控制构造是参照答案为:B A.过程、子程序和分程序 B.次序、选择和反复 C.递归、堆栈和队列 D.调用、返回和转移

软件工程 课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词〔术语解释: 1、可靠性---是指在给定的时间间隔,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:〔1将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 〔2以数据为中心,而不是基于对功能的分解, 使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:〔1简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 〔2软件开发简单,易学、易上手。 〔3专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程 活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规、项目规。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发 现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。 3、原型模型适应什么场合? 答:原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员〔包括分析员、设计员、程序员和用户不能很好交流或通信有困难的情况。

软件工程习题及参考答案

软件工程习题及参考答案 判断题 软件也会磨损和老化。(某) 完善性维护是提高或完善软件的性能。(√) 数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (某) 软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实 际上就是编写程序代码。(某) 软件模块之间的耦合性越弱越好。(√) 如果通过软件测试没有发现错误,则说明软件是正确的。(某)快速原型模型可以有效地适应用户需求的动态变化。(√) 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软 件产品。(√) 集成测试主要由用户来完成。(某) 确认测试计划应该在可行性研究阶段制定(某)

白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的 功能即可。(某)软件概要设计包括软件系统结构设计以及数据结构和数 据库设计。(√) 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这 个复杂问题进行 分解,将软件生存的时期分为若干阶段。(√)系统流程图表达的是 部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)模块越多,开发成本越小。(╳)软件测试的目的就是证明软件没有错。(╳)PAD图在设置了五种基本的控制结构后,还允许递归使用。(√)在 进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(某) SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√)HIPO 法既是需求分析方法,又是软件设计方法。(√) 在面向对象的需求分析方法中,建立动态模型是最主要的任务。(某) 加工小说明是对系统流程图中的加工进行说明。(某) 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(某)需求分析的主要方法有SD法、OOA法及HIPO法等。(某) 分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。(某)信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息 模型的方法是 E-R图。(√) 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求 的一致性、完整

相关文档
最新文档