(完整版)软件工程第六章答案
- 格式:doc
- 大小:462.01 KB
- 文档页数:5
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程导论第六版课后习题答案完整版首先,感谢您对软件工程导论课后习题答案的需求。
以下是软件工程导论第六版课后习题的完整答案。
第一章:软件工程概述1.1 问题1. 什么是软件工程?答:软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的学科。
1.2 问题1. 什么是软件?答:软件是一系列按照特定顺序组织的计算机数据和指令。
第二章:软件过程模型2.1 问题1. 软件过程模型有哪些类型?答:常见的软件过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发模型等。
2.2 问题1. 瀑布模型的特点是什么?答:瀑布模型是一种线性顺序模型,以阶段划分为基础,每个阶段的任务在进入下一个阶段前必须完成。
第三章:需求分析与规格说明3.1 问题1. 软件需求描述包括哪些方面的内容?答:软件需求描述需要包括功能性需求、非功能性需求、用户需求和系统需求等。
3.2 问题1. 什么是需求跟踪?答:需求跟踪是指在软件开发过程中,通过建立需求和软件项目中其他相关工件之间的关联,确保需求的准确实现和变更的有效管理。
第四章:软件设计4.1 问题1. 软件设计的目标是什么?答:软件设计的目标是通过确定软件的整体结构和组成部分,确保软件满足需求并具有良好的可维护性和可重用性。
第五章:软件测试与维护5.1 问题1. 什么是软件测试?答:软件测试是一种评估和改进软件质量的过程,目的是发现错误并提高软件的可靠性和可用性。
5.2 问题1. 什么是软件维护?答:软件维护是指在软件交付后的整个生命周期中对软件进行修改和改进,以满足用户需求和修复错误。
第六章:软件配置管理6.1 问题1. 软件配置管理的目标是什么?答:软件配置管理的目标是确保软件在开发和维护过程中的可控性和可追踪性,以及保持软件配置的稳定性和一致性。
6.2 问题1. 软件版本控制是什么?答:软件版本控制是指对软件的不同版本进行管理,包括版本的创建、检出、合并和更新等操作。
至此,我们完成了软件工程导论第六版课后习题的完整答案。
《本科自考02333软件工程课后习题答案-2011版王立福》第1章绪论1、解释术语(1)软件:软件是指计算机系统中的程序及其文档。
P16(2)软件工程:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。
P15(3)软件危机:软件生产率、软件质量远远满足不了社会发展的需求,成为社会,经济发展的制约因素,人们通常把这一现象称为“软件危机”。
P152、简答题(1)简述软件开发的本质。
答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
P19(2)简述实施软件开发的基本途径。
答:实施软件开发的基本途径是系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。
P19(3)简述何谓模型以及软件开发中所涉及的模型。
答:模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
P19(4).简述软件开发所涉及的两大类技术。
答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。
P17第2章软件需求与软件需求规约1、解释术语(1)软件需求软件需求以一种技术形式,描述了一个产品/系统应该具有的功能、性能和其它性质。
P23(2)功能需求功能需求规约了系统或系统构件必须执行的功能。
P24(3)非公能需求非公能需求是性能、外部接口、设计约束和质量属性这4类需求的统称。
P23 (4)需求规约需求规约是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。
P282、简述需求与需求规约的基本性质。
答:需求的基本性质:1)必要的,该需求是用户所要求的。
软件工程实用教程第三版-郭宁主编-课后习题及答案第一章软件工程引论1.在下列选项中,(D)不是软件的特征。
A.系统性与复制性 B. 可靠性与一致性 C.抽象性与智能型 D.有形性与可控性2.软件是一种(B)产品。
A.有形 B. 逻辑 C. 物质 D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。
A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。
A.理论性 B. 工程性 C. 原理性 D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。
A.原理探讨 B. 理论研究 C. 建造软件系统D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。
A.应用 B. 测试 C. 检测 D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。
A.螺旋模型 B. 增量模型 C. 功能模型 D.瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学 D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段 D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D.较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C.用于验证设计方案的原型 D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。
第六章测验一、单选题(共40.00分)1. 对象之间通过()互相通信。
A. 访问全局变量B. 调用函数C. 使用信号量D. 传递消息正确答案:D2. 使用面向对象方法学开发软件时,工作重点应该放在生命周期中的()阶段。
A. 需求捕获B. 分析C. 设计D. 编码正确答案:B3. 在面向对象的软件技术中,()可以像父类对象那样使用。
A. 子类B. 子类对象C. 子类数据D. 子类接口正确答案:B4. 类图描述类及类与类之间的()。
A. 静态关系B. 动态关系C. 运行时关系D. 请求-响应关系正确答案:A二、多选题(共33.00分)1. 面向对象模型的三种形式包括()。
A. 对象模型B. 动态模型C. 功能模型D. 数据模型正确答案:A B C2. 类图的3个抽象层次包括()。
A. 概念层B. 说明层C. 实现层D. 主题层正确答案:A B C3. 类的图形符号包括()。
A. 类名B. 属性列表C. 操作列表D. 属性、操作的可见性正确答案:A B C D三、判断题(共27.00分)1. 类是对象的实例,对象是生成类的模板。
()A. 正确B. 错误正确答案:B2. 复合关系是一种特殊的类间实现关系。
()A. 正确B. 错误正确答案:B3. “多重继承”可简写为“多继承”。
()A. 正确B. 错误正确答案:B。
软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程(山东科技大学)知到章节测试答案智慧树2023年最新第一章测试1.软件是一种( )参考答案:逻辑产品2.产生软件危机的原因主要与两个方面的问题有关,它们是()参考答案:软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确3.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为( )参考答案:软件危机4.在软件研究过程中,CASE是()参考答案:指计算机辅助软件工程第二章测试1.以下软件生命周期模型中不属于演化模型的是()参考答案:瀑布模型2.下列关于原型模型的说法,错误的是()参考答案:原型必须是可以运行的,原型做得越复杂,说明开发团队的水平越高3.CMM提供了一个成熟度等级框架,下面哪一级不属于CMM成熟度等级()参考答案:优先级4.基于构件的开发模型利用预先包装好的软件构件(包括组织内部开发的构件和现存商品化构件COTS)来构造应用系统。
参考答案:对5.喷泉模型认为软件生命周期的各个阶段是相互重叠和多次反复的。
主要用于面向对象方法中。
参考答案:对第三章测试1.可行性分析的结论主要由以下几类()参考答案:其他都对2.需求分析中开发人员要从用户那里了解()。
参考答案:软件做什么3.需求分析是()。
参考答案:软件开发工作的基础4.在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。
()参考答案:对5.软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。
()参考答案:错第四章测试1.为了提高模块的独立性,模块内部最好是()。
参考答案:功能内聚2.一个模块的()太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。
参考答案:扇出3.模块的内聚性最高的是()。
参考答案:功能内聚4.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序()。
参考答案:无直接耦合,数据耦合,控制耦合,内容耦合5.模块划分的最重要的原则是模块独立性原则()参考答案:对第五章测试1.SA法的主要描述手段有( )参考答案:DFD图、数据词典、加工说明2.数据流图是常用的进行软件需求分析的图形工具,其基本符号是()参考答案:加工、数据流、数据存储和外部实体3.某系统软件结构如下图所示,该软件结构的宽度为( )参考答案:34.变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图。
软件工程(第五版)-习题及答案---第六章-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII一、选择题1、UML的主要特点不正确的是(C)。
A、面对对象,表达能力强B、可视化建模C、面对过程,表达能力强D、统一标准2、静态建模图不包括(B)。
A、用例图B、协作图C、类图D、对象图3、用例图的模型元素不包括(D)。
A、用例B、系统C、行为者D、软件开发者4、类图的要素不包括(D)。
A、类名称B、操作C、属性D、对象5、时序图中的要素不包括(A)。
A、执行者B、对象C、对象生命线D、消息6、对象模型的描述工具是(C)。
A、状态图B、数据流图C、对象图D、结构图7、协作图的要素不包括(A)。
A、用例B、对象C、链D、消息8、类图反映了系统中对象之间的抽象关系,不包括(D)。
A、关联B、聚合C、泛化D、内聚9、下面(D)不是状态图的图符。
A、圆角的矩形B、实心圆点C、实心圆环D、椭圆10、描述类中某个对象的行为,反映了状态与事件关系的是(A)。
A、状态图B、数据流图C、对象图D、结构图11、动态模型的描述工具(C)。
A、对象图B、设计图C、状态图D、结构图12、表示对象的相互行为的模型是(A)模型。
A、对象B、动态C、结构D、静态13、有关类和对象的描述中,错误的是(A)。
A、一个类只能有一个对象B、对象是类的具体实例C、类是某一类对象的抽象D、类和对象的关系是一种数据类型和变量的关系14、用例图中用例之间的关系通常有关联关系、依赖关系和(C)关系。
A、协作B、聚合C、泛化D、内聚15、动态模型图包括:时序图、协作图、状态图和(C)图。
A、对象图B、设计图C、活动图D、结构图二、简答题1.简要介绍用例图的三个要素。
答:用例图主要包括以下三个元素:①用例(Use Case):用例是系统的使用过程或要执行的动作序列,用来描述某个参与者使用系统所完成的功能。
在图中用椭圆来表示,用例名称可写在椭圆中或椭圆下面。
第一章测试1.“软件危机”是指()。
A:利用计算机系统进行经济犯罪活动B:软件开发和软件维护中出现的一系列问题C:人们过分迷恋计算机系统D:计算机病毒的出现答案:B2.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。
A:开发人员的素质B:软件开发的环境C:硬件环境D:软件开发工具和软件开发的环境答案:D3.软件危机可以表现为()。
A:软件产品的质量差B:软件的价格昂贵C:产品不符合用户的需要D:软件的可维护性差答案:ABCD4.下面的()说法是错误的。
A:一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功B:购买大多数计算机系统所需的硬件比软件更昂贵C:由于软件是产品,因此可以应用其他工程制品所用的技术进行生产D:大多数软件系统是不容易修改的,除非它们在设计时考虑了变更答案:ABC5.软件工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。
A:错B:对答案:A第二章测试1.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出()的回答。
A:确定B:行或不行C:正确D:无二义答案:B2.数据流图是描述数据在软件中流动和变换的过程,而对数据流图中所包含的元素的定义则是()。
A:数据定义B:数据加工C:数据字典D:数据存储答案:C3.在软件的可能性研究中经常从不同的角度对系统进行可行性研究,其中从功能角度对系统进行研究属于()的研究。
A:法律可行性B:技术可行性C:经济可行性D:操作可行性答案:B4.关于数据字典正确的描述是()。
A:数据字典最重要的用途是作为分析阶段的工具B:数据字典应该容易更新和修改C:可以采用卡片形式书写数据字典D:实现数据字典三种常见的方法有全人工过程、全自动过程、混合过程答案:ABCD5.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
A:错B:对答案:A第三章测试1.需求分析阶段的任务是确定()。
第一章软件工程概述软件工程的基本原则是什么?1,抽象:采用分层次抽象,自顶向下逐层细化的办法控制软件开发过程的复杂性。
2,模块化:模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。
3,信息隐蔽:将模块化设计成“黑箱”,实现的细节隐蔽在模块内部,不让模块的使用直接访问,这就是信息封装。
4,局部化:保证模块之间具有松散的耦合,模块内部具有较强的内聚,这有助于控制模块的复杂性5,一致性:整个软件系统使用一致的概念符号和术语。
6,完整性:软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。
7,不可验证性:易于检查、测试、评审,确保系统的正确性。
第二章可行性研究选择题1,研究开发所需要的成本和资源属于可行性研究中(经济可行性)研究的一方面。
2,可行性分析研究的目的是(项目值得开发与否)。
3,软件分析的第一步要做的工作在于(分析系统开发的可行性)。
4,可行性研究目的主要在于(用最小的代价确定问题定义阶段所确定的目标和规模是否可实现,可解决)。
5,软件可行性分析是着重确定系统的目标和规模。
对功能,性能及约束条件的分析应属于下列(技术可行性分析)。
简答题简述可行性研究的步骤?1,复查系统规模和目标2,研究目前正在使用的系统3,导出新系统的高层逻辑模型4,重新定义问题5,导出和评价供选择方案6,推荐一个方案并说明理由7,推荐行动方针8,书写计划任务书9,提交审查应用题设计一个软件的开发成本为5万元,寿命为3年。
未来3年的每年收益预计为22000元,24000元,26620元,银行年利率为10%。
试对此项目进行成本效益分析,以决定其经济可行性。
答:设银行的年利率是10%,则下列出每年的收益第一年:22000/1.1=20000第二年:24000/1.21=19834.71第三年:26620/1.331=20000因此:现有值收益为20000+19834.71+20000=59834.71投资回收期2+10165/20000=2.51纯收入59835-50000=9834.71第三章需求分析需求分析的原则有哪些?1.需求分析方法应该容易被用户理解。
软件工程方法与实践知到章节测试答案智慧树2023年最新昆明理工大学第一章测试1.软件产品与物质产品有很大区别,软件产品是一种()产品。
参考答案:逻辑2.软件会逐渐退化而不会磨损,其原因在于()。
参考答案:不断的变更使组件接口之间引起错误3.软件工程要解决的问题是()。
参考答案:以上都是4.软件工程的基本要素包括方法、工具和()。
参考答案:过程5.软件一般包括以下()部分。
参考答案:文档;数据;程序;规程第二章测试1.基于计算机系统的元素包括软件、硬件、人员、数据库、文档和()。
参考答案:规程2.基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个()。
参考答案:元素3.经济可行性分析中的效益包括经济效益和()效益。
参考答案:社会4.在基于计算机系统的元素中,硬件包括()。
参考答案:提供外部世界功能的电子机械设备(如传感器、马达等);提供计算能力的电子设备;支持数据流的互连设备(如网络交换器、电信设备)5.系统工程的任务包括()。
参考答案:可行性分析;识别用户的要求;系统建模和模拟;成本估算及进度安排第三章测试1.在软件生存周期中,()阶段主要任务是“弄清楚要做什么?”。
参考答案:需求分析2.通常将软件生命周期划分为系统工程、需求分析、软件设计、编码实现、软件测试、运行维护等阶段,每个阶段都有各自侧重的任务和目标,以下不属于需求分析阶段的任务是()。
参考答案:弄清楚怎么做,规划系统体系结构3.需求规格说明描述了()。
参考答案:计算机系统的功能、性能及其约束4.常用的需求分析方法包括()。
参考答案:面向对象的分析方法;面向数据结构的分析方法;面向数据流的结构化分析方法5.软件需求规格说明SRS的作用包括()。
参考答案:用于规划和控制系统的开发过程;成为用户、分析人员和设计人员之间进行理解和交流的手段;支持系统测试活动第四章测试1.软件设计是将软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息,传送给设计阶段,产生数据/类设计、体系结构设计、()、部件级设计。
第一章 (2)第二章 (3)第三章 (4)第四章 (5)第五章 (6)第六章 (8)第七章 (10)第八章 (10)第九章 (11)课后习题答案第一章项目的市场调研习题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. 条文形式2.填空题(1)软件工程是开发、运行、维护和修复软件的系统方法,这里所说的系统方法,是把系统化的、规范化的、可度量化的途径应用于软件生存周期中,也就是把工程化应用于软件中。
(2)可行性研究的任务不是具体解决系统中的问题,而是确定问题是否值得解决、是否能够解决。
(3)软件的开发计划也称项目实施计划,是一个综合的计划,是软件开发工作的指导性文档,阅读对象是软件开发的主管部门、软件技术人员和普通用户。
3.思考题(1)软件危机产生的原因是什么?为何要引入软件工程的概念?答:①忽视了软件开发前期的需求分析的需求分析;②开发过程没有统一、规范的方法论的指导,文档资料不齐全,忽视了人与人之间的交流。
③忽视测试阶段的工作,提交给用户的软件质量差。
④请示软件的维护。
(2)可行性研究的主要任务有哪些?答:①经济可行性②技术可行性③时机可行性④管理上的可行性⑤法律可行性⑥运行可行性(3)制定项目开发计划的主要任务是什么?答:①项目资源计划软件开发中的资源包括用于支持软件开发的硬件,软件工具以及人力资源。
软件工程简答题答案第五版软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
作业4参考答案
1.假设只有SEQUENCE和DO_WHILE两种控制结构,怎样利用它们完成IF_THEN_ELSE操作?
答:转化如下:
K = 1
DO WHILE (条件.AND. K.EQ.1)
程序块1
K=K+1
END DO
DO WHILE ((.NOT. 条件) .AND. K.EQ.1)
程序块2
K=K+1
END DO
2.假设允许使用SEQUENCE和IF_THEN_ELSE两种控制结构,怎样利用它们完成DO_WHILE操作?
答:转化如下;
label: IF (条件) THEN
程序块
GOTO label
ELSE
程序块
END IF
3.画出下列伪码程序的程序流程图和盒图:
START
IF p THEN
WHILE q DO
f
END DO
ELSE
BLOCK
g
n
END BLOCK
END IF
STOP
答:(1)流程图如图4-1所示:
图4-1 从伪码变成的程序流程图
(2)该程序的盒图如图4-2所示:
图4-2 从伪码变成的程序盒图
4.下图给出的程序流程图代表一个非结构化的程序,请问:
(1)为什么说它是非结构化的?
(2)设计一个等价的结构化程序。
(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag 的程序;若用了,再设计一个不用flag的程序。
答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图4-3描绘了等价的结构化程序的盒图。
(a)解法1
(b)解法2
图4-3 与该图等价的结构化程序(用flag)
(3)不使用flag把该程序改造为等价的结构化程序的方法如图4-4所示。
图4-4 与该图等价的结构化程序(不用flag)
5.研究下面的伪代码程序:
LOOP: Set I to (START+FINISH)/2
If TABLE(I)=ITEM goto FOUND
If TABLE(I)<ITEM Set START to (I+1)
If TABLE(I)>ITEM Set FINISH to (I-1)
If (FINISH-START )>1 goto LOOP
If TABLE(START)=ITEM goto FOUND
If TABLE(FINISH)=ITEM goto FOUND
Set FLAG to 0
Goto DONE
FOUND: Set FLAG to 1
DONE:Exit
(1)画出程序流程图。
(2)程序是结构化吗?说明理由。
(3)若程序是非结构化的,设计一个等价的结构化程序并且画出流程图。
(4)此程序的功能是什么?它完成预定功能有什么隐含的前提条件。
答:(1)该程序流程图如下:
(2)该程序不是结构化的,结构化的程序只有一个入口和一个出口,而该程序的流程途中有两个出口。
(3)等价的结构化程序的流程图如下:
F
(4)此程序有二分查找的功能,它完成预定功能的隐含前提条件是现有序列为从小到大顺序排好的有序序列。
6.用Ashcroft_Manna 技术可以将非结构化的程序转化为结构化程序,图6.19是一个转换的例子。
(1)能否从这个例子总结出Ashcroft_Manna 技术的一些基本方法? (2)进一步简化6.19(b)给出的结构化设计。
答:(1)从这个例子中看出,Ashcroft_Manna 技术的基本方法是,当待改造的序含有嵌套的非结构化的IF 语句时,改造后的程序中增加DO-CASE 语句和DO-UNTIL 语句,并增加一个辅助变量I ,I 的初始值为1。
最外层的IF 语句在I=1时执行,执行完这个IF 语句后把I 赋值为随后应该执行的内层IF 语句所对应的CASE 标号值。
DO-CASE 语句的最大分支数(可执行的最大标号值)等于IF 语句的个数。
当执行完最内层的IF 语句之后,把I 赋值为可执行的最大标号值加1,而DO-UNTIL 循环的结束条件就是
I 等于这个值。
(2)进一步简化后的结构化程序的流程图如下所示。