软件工程课后题答案

合集下载

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。

解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。

软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。

代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。

解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。

它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。

在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。

解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。

它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。

敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。

解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。

其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。

通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。

希望本文对读者有所帮助,谢谢阅读。

《软件工程》课后习题答案

《软件工程》课后习题答案

1、可行性研究的目的是用最小的代价,在尽可能短的时间,确定该项目是否能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。

可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。

重视用户界面的设计,不断的采用新理论和新技术。

软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。

10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。

11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。

12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。

13、详细描述处理过程常用三种描述工具:图形、表格和语言。

14、数据流图中,每个加工至少有一个输入流和一个输出流。

15、结构化设计以数据流为基础映射成软件结构。

16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。

17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案1.简述软件开发的本质。

答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答:实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答:模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1)必要的,该需求是用户所要求的。

2)无歧义的,该需求只能用一种方式解释。

3)可测的,该需求是可进行测试的。

4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5)可测量的,该需求是可测量的。

需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。

2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、设计约束和质量属性需求。

P237、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求38、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

软件工程课后习题答案

软件工程课后习题答案

软件⼯程课后习题答案习题答案习题⼀答案⼀、选择题1. 软件的主要特性是(A B C)。

A) ⽆形 B) ⾼成本C) 包括程序和⽂档D) 可独⽴构成计算机系统2. 软件⼯程三要素是(C D)。

A) 技术、⽅法和⼯具B) ⽅法、⼯具和过程C) ⽅法、对象和类D) 过程、模型、⽅法3. 包含风险分析的软件⼯程模型是(A)。

A) 螺旋模型 B) 瀑布模型C) 增量模型 D) 喷泉模型4. 软件⼯程的主要⽬标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于⾯向对象开发⽅法的是(A B C D)。

A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太⾼B) 软件产品的质量低劣C) 软件开发⼈员明显不⾜D) 软件⽣产率低下7. 软件开发⽅法的主要⼯作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件⼯程的⽬标有(A B C)。

A) 易于维护B) 低的开发成本C) ⾼性能D) 短的开发期9. 软件⼯程学的⽬的和意义是( )。

A) 应⽤科学的⽅法和⼯程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训⼯作D) 以较低的成本开发出⾼质量的软件⼆、判断题1. 软件就是程序,编写软件就是编写程序。

(×)2. 瀑布模型的最⼤优点是将软件开发的各个阶段划分得⼗分清晰。

(×)3. 结构化⽅法的⼯作模型是使⽤螺旋模型进⾏开发。

(×)4. 结构化⽅法和JSP⽅法都不适合于⼤型软件的开发。

(√)5. 原型化开发⽅法包括⽣成原型和实现原型两个步骤。

(×)6. ⾯向对象的开发⽅法包括⾯向对象的分析、⾯向对象的设计和⾯向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件⼯具的作⽤是为了延长软件产品的寿命。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案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.法律名词及注释本文涉及的法律名词及注释:无。

软件工程习题及课后答案

软件工程习题及课后答案

第2章软件过程(习题与参考答案)[选择题]1. ()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。

()A. 软件过程B. 软件工具C. 软件产品D. 软件工程2. 软件过程的基本活动是()。

()A. 分析、设计、实现、测试、演化B. 沟通、计划、建模、构造、部署C. 计划、分析、设计、实现、调试D. 沟通、风险管理、度量、产品化、评审3. ()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。

()A. 真B. 假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. 下面的()不是RUP模型的阶段。

软件工程(习题与参考答案)

软件工程(习题与参考答案)

第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. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

软件工程课后习题及其答案

软件工程课后习题及其答案

软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:费用、可靠性、可维护性、生产率和重用。

2、到目前为止,软件生产的发展经历了三个阶段,即程序设计、程序系统和软件工程。

3、计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于原理和理论,而软件工程侧重于软件系统构造。

4、软件工程有用管理科学的方法和原理进行软件生产的管理。

5、软件工程是用科学知识和技术原理来定义、开发、维护软件的一门科学。

6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。

在软件开发技术方面,主要研究开发方法、开发过程、开发工具。

在软件开发管理技术方面主要研究管理学、经济学、心理学。

7、作为一门交叉学科,软件工程具有很强的综合性,它涉及计算机科学、工程科学、管理科学、数学等领域。

8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。

通常包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。

9、开发软件工具的主要目的是为了提高软件生产效率和改善软件的质量。

10、描述软件开发过程中各种活动如何执行的模型称为周期模型。

11、从软件工程诞生以来,已经提出了多种软件开发方法,如结构化方法、面向数据的方法、面向对象的方法,它们对软件工程及软件产业的发展起到了不可估量的作用。

12、结构化方法由结构化分析、结构化设计和结构化程序设计构成。

它是一种面向数据流的开发方法。

13、增量模型是一种非整体开发方法的模型。

软件在该模型中是“逐渐”开发出来的,开发一部分向用户展示一部分,可让用户及早看到部分软件,及早发现问题。

或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。

14、喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。

它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。

软件工程(殷锋)答案有问答题

软件工程(殷锋)答案有问答题

软件工程课后习题答案——殷锋主编注:有些可能错误,读者自己注意第一章一、填空题:1、软件是计算机系统中与硬件彼此依存的另一部份,是包括程序、数据、及相关文档的的完整集合2、软件工程包括三要素:方式、工具和进程。

3、软件开发的大体方式包括结构化方式和面向对象方式二、选择题:C 2、B 3、C1软件的特点:(1)逻辑实体(2)与硬件生产方式不同(3)与硬件的保护不同(4)复杂的5 本钱相当昂贵2软件危机的产生及其表现:1开发进度难以预测2本钱难以控3功能不能能知足用户的需求4质量难以保证5难以保护6缺少适当的文本资料3比较结构化方式和面向对象方式:结构化方式:自顶向下,慢慢分解模块易于控制和处置模块相对独立、接口简单、利用保护超级方便面向对象方式:提高软件系统的稳定性可修改和可重用性产生的具有特点:客观世界任何事物对象都是对象每各类概念一种方式若干对象组成参次结构系统对象通过传递消息彼此联系第二章一、填空题:1、软件生存周期的各个进程可以分成三类,及主要生存周期进程、支持生存周期进程和组织的生存周期进程。

2、软件生存周期包括计划、需求分析、设计、程序编码、软件测试和运行保护6个阶段。

3、软件进程改良(SPI)帮忙软件企业对其软件进程的改变进行计划,制定和实施。

二、填空题1、A2、B三、判断题1、√2、X4什么是软件进程?软件生存周期进程或软件进程组,是指软件生存周期中的一系类相关进程。

5软件的生存周期:计划需求分析设计程序编码软件测试运行保护6可行性研究的任务是什么?进行一次大大紧缩简化的系统分析和设计的进程,在高参差上以抽象的方式进行系统分析和设计。

任务:以最小的代缴在最短的时间内肯定问题可否解决,也就是判定原定的目标和规模可否实现第三章三、填空题:1、可行性研究的目的是用最小的代价,在尽可能短的时间内,肯定问题是不是能够解决2、可行性研究在进行简要需求分析和设计时,要在高层次上以较抽象的方式进行3、需求分析阶段产生的最重要的文档是软件需求规格说明书。

软件工程第十版课后习题答案(中文版)

软件工程第十版课后习题答案(中文版)

第一章概述1.2 通用的软件产品开发和定制化软件开发之间最重要的区别是什么?这在实践中对于通用软件产品的用户意味着什么?根本区别在于,在通用软件产品开发中,规范由产品开发者拥有。

对于定制产品开发,规范由客户拥有和控制。

这一点的影响是重大的——开发者可以根据一些外部变化(例如竞争产品)迅速决定更改规范,但当客户拥有规范时,更改必须在客户和开发者之间进行协商,并且可能会产生合同影响。

对于通用产品的用户,这意味着他们无法控制软件规范,因此无法控制产品的演变。

开发者可能会决定包含/排除功能并更改用户界面。

这可能会对用户的业务流程产生影响,并在安装新版本的系统时增加额外的培训成本。

这也可能会限制客户改变自己业务流程的灵活性。

1.3 软件产品应该具有的4个重要属性是什么?另外举出4个可能有意义的属性。

四个重要的属性是可维护性、可靠性和安全性、效率和可接受性。

其他可能重要的属性可能是可重用性(它是否可以在其他应用程序中重用)、可分布性(它是否可以分布在处理器网络上)、可移植性(它是否可以在多个平台上运行,例如笔记本电脑和移动平台)和互操作性(它是否可以与广泛的其他软件系统一起工作)。

对 4 个关键属性的分解,例如可靠性分解为安全性、安全性、可用性等,也是这个问题的有效答案。

1.4 除了异构性、企业和社会的变革、可信和信息安全之外,说一说软件工程在21世纪有可能面对的其他问题和挑战(提示:想一想环境)。

软件工程面临的问题与挑战众多,主要包括:1.开发节能系统,以提升其在低功耗移动设备上的适用性,并减少IT设备的整体碳排放。

2.开发模拟系统的验证技术,这对于预测和应对气候变化的程度至关重要。

3.开发适合多文化背景用户使用的系统。

4.开发能够迅速适应新商业需求的灵活系统。

5.设计便于外包开发的系统架构。

6.开发具有高安全性的系统,能够抵御各种攻击。

7.开发易于最终用户调整和配置的系统。

8.探索测试、验证和维护最终用户开发系统的有效方法。

软件工程课后参考题答案

软件工程课后参考题答案

软件⼯程课后参考题答案第⼀章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的⼀系列“严重问题”。

这些问题决不仅仅是不能正常运⾏的软件才具有的,实际上,⼏乎“所有软件”都不同程度地存在这些问题。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)⽤户对“已完成的”软件系统不满意的现象经常发⽣;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的⽂档资料;(6)软件成本在计算机系统总成本中所占的⽐例逐年上升;(7)软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤普及深⼊的趋势。

出现软件危机的主要原因(1)与软件本⾝的特点有关(2)与软件开发和维护过程中使⽤的⽅法不正确有关2.假设⾃⼰是⼀家软件公司的总⼯程师,当把图1.1给⼿下的软件⼯程师们观看,告诉他们及时发现并改正错误的重要性时,有⼈不同意这个观点,认为要求在错误进⼊软件之前就清楚它们是不现实的,并举例说:“如果⼀个故障是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进⾏修改付出的代价是很不相同的,在早期引⼊变动,涉及的⾯较少,因⽽代价也⽐较低;在开发的中期,软件配置的许多成分已经完成,引⼊⼀个变动要对所有已完成的配置成分都做相应的修改,不仅⼯作量⼤,⽽且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引⼊变动,当然付出的代价更⾼。

⼀个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很⼩的,因为这不是整体构架的错误。

3.什么是软件⼯程?它有哪些本质特征?怎么⽤软件⼯程消除软件危机?软件⼯程是指导知道计算机软件开发和维护的⼀门⼯程学科。

采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,把经过时间考验⽽证明正确的管理技术和当前能够得到的最好技术⽅法结合起来,以经济地开发出⾼质量的软件并有效地维护它,这就是软件⼯程。

软件工程课后题答案

软件工程课后题答案

第一章1 简述软件的发展过程。

共经历了四个阶段;第一阶段:(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。

第二阶段:(20世纪60年代中期到70年代中期的十余年)软件产品和“软件作坊”的概念开始出现。

软件开发人员不再像早期阶段那样只因个人工作需要而开发,而是为了用户更好地使用计算机。

第三阶段:(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。

第四阶段:(20世纪80年代末期开始)强大的桌面系统和计算机网络迅速发展。

2 简述软件的定义和特点。

定义:软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。

特点:(1)是一种逻辑实体,具有抽象性;(2)软件的生产不存在明显的制造过程;(3)在软件的运行和使用的过程中,不会存在像硬件那样的机械磨损及老化问题;(4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响;(5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发;(6)作为提高工作效率的逻辑产品,本身具有复杂性;(7)成本相当昂贵;(8)相当多的软件工作设计社会因素。

3 软件有哪些种类1. 按功能特征进行划分(1)系统软件。

(2)支撑软件。

(3)应用软件2. 按规模大小进行划分微型、小型、中型、大型、甚大型、、极大型4 什么是软件危机?答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

5 什么是软件工程?有哪些本质特性?怎样用软件工程消除软件危机?答:是指导计算机软件开发和维护的一门工程学科。

特性略。

技术措施和管理措施消除软件危机。

6 软件工程的三要素;方法、工具和过程。

7. 结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。

使软件开发更加模式化,工程化,从而提高软件开发的效率和封装性。

8. CASE 的研究和CASE 产品的开发是近年来软件工程领域的特点之一。

软件工程课后题答案

软件工程课后题答案

软件工程课后题答案1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。

可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。

重视用户界面的设计,不断的采用新理论和新技术。

软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。

10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。

11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。

12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。

13、详细描述处理过程常用三种描述工具:图形、表格和语言。

14、数据流图中,每个加工至少有一个输入流和一个输出流。

15、结构化设计以数据流为基础映射成软件结构。

16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。

17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。

软件工程课后题答案

软件工程课后题答案

1什么是软件危机?软件危机产生的原因是什么?软件危机就是指人们在开发软件和维护软件过程中遇到的一系列问题。

产生的原因:<1>忽视软件开发前期的需求分析。

<2>开发过程缺乏统一的、规范化的方法论的指导。

<3>文档资料不齐全或不准确。

<4>忽视与用户之间、开发组成员之间的交流<5>忽视测试的重要性。

<6>不重视维护或由于上诉原因造成维护工作的困难。

<7>从事软件开发的专业人员对这个产业认识不充分,缺乏经验。

<8>没有完善的质量保证体系。

2请简述软件工程的三要素三要素是指过程、方法和工具软件工程的基础是过程层,它定义了一组关键过程区域的框架,使软件能过被合理和及时的开发;软件工程的方法提供了建造在在技术上需要“做什么”,它覆盖了一系列的任务,包括需求分析、设计编程、测试和支持等;软件工程的工具对过程和方法提供了自动的或半自动的支持。

3请对比瀑布模型、快速模型、增量模型和螺旋模型。

瀑布模型的优点是:过程模型简单,执行容易;缺点是无法适应变更。

快速模型的优点是:软件产品的开发基本上是按线性顺序进行的(它所完成的功能往往是最终产品能完成的功能的一个子集)增量模型的最大特点是将待开发的软件系统模块化和组件化,优点是:将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解项目的进展;以组件为单位进行开发降低了软件开发的风险;开发顺序灵活。

它的缺点是要求待开发的软件系统可以被模块化螺旋模型的优点是对可选方案和约束条件的强调有利于已有的软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质的区别,它的主要优势在于风险驱动但是这也可能是他的一个弱点。

4什么是软件过程?他与软件工程方法学有何不同?软件过程:是指一个为获得高质量软件所需完成的任务的框架,它规定了软件产品开发时完成各项任务的一系列工作步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴。

软件工程课后作业软件工程第4版课后答案

软件工程课后作业软件工程第4版课后答案

软件工程课后作业软件工程第4版课后答案软件工程第4版课后答案第一题:1. 什么是软件工程?软件工程的目标是什么?软件工程是一种应用工程原理和方法来开发和维护高质量软件的学科。

它涵盖了软件开发生命周期的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。

软件工程的目标是以系统化、规范化和可控的方式来开发软件,使得软件能够满足用户的需求,具有高质量、高可靠性和高效率。

第二题:2. 软件工程的关键特性是什么?软件工程的关键特性包括可靠性、可维护性、可复用性和可管理性。

可靠性指的是软件在预期情况下能够正确运行的能力;可维护性指的是容易对软件进行修改和更新;可复用性指的是能够将软件组件应用于不同的项目中;可管理性指的是有效地管理和控制软件开发过程和项目资源。

第三题:3. 软件开发生命周期中的阶段有哪些?软件开发生命周期包括需求分析、设计、编码、测试、部署和维护等阶段。

需求分析阶段是确定软件系统需求的过程,包括收集、分析和规划需求;设计阶段是定义软件系统的结构和组织,确定软件的架构和模块划分;编码阶段是根据设计产生的规范和文档来实现软件系统;测试阶段是验证软件系统是否满足需求和质量标准;部署阶段是将软件系统转移到用户环境并进行正式使用;维护阶段是对软件进行修改和改进,以保持其可用性和稳定性。

第四题:4. 什么是质量保证?软件开发中的质量保证活动有哪些?质量保证指的是通过有效的管理和控制手段,确保软件开发过程和软件产品的质量。

软件开发中的质量保证活动包括需求评审、设计评审、代码审查、单元测试、功能测试、性能测试、用户验收测试等。

通过这些活动,可以及早发现和解决开发中的问题,确保软件的质量。

第五题:5. 软件项目管理的关键活动有哪些?软件项目管理的关键活动包括项目规划、项目组织、项目估计、进度控制和风险管理等。

项目规划是确定项目目标、任务和资源分配计划等;项目组织是建立和管理项目团队;项目估计是对项目工作量、成本、资源等进行估计和计划;进度控制是监控和调整项目进度;风险管理是识别和应对项目中的风险。

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

第一章1 简述软件的发展过程。

共经历了四个阶段;第一阶段:(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。

第二阶段:(20世纪60年代中期到70年代中期的十余年)软件产品与“软件作坊”的概念开始出现。

软件开发人员不再像早期阶段那样只因个人工作需要而开发,而就是为了用户更好地使用计算机。

第三阶段:(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。

第四阶段:(20世纪80年代末期开始)强大的桌面系统与计算机网络迅速发展。

2 简述软件的定义与特点。

定义:软件就是计算机程序、规程以及运行计算机系统可能需要的相关文档与数据。

特点:(1)就是一种逻辑实体,具有抽象性;(2)软件的生产不存在明显的制造过程;(3)在软件的运行与使用的过程中,不会存在像硬件那样的机械磨损及老化问题;(4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响;(5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发;(6)作为提高工作效率的逻辑产品,本身具有复杂性;(7)成本相当昂贵;(8)相当多的软件工作设计社会因素。

3 软件有哪些种类1、按功能特征进行划分(1)系统软件。

(2)支撑软件。

(3)应用软件2、按规模大小进行划分微型、小型、中型、大型、甚大型、、极大型4 什么就是软件危机?答:就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。

5 什么就是软件工程?有哪些本质特性?怎样用软件工程消除软件危机?答:就是指导计算机软件开发与维护的一门工程学科。

特性略。

技术措施与管理措施消除软件危机。

6 软件工程的三要素;方法、工具与过程。

7、结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。

使软件开发更加模式化,工程化,从而提高软件开发的效率与封装性。

8、CASE 的研究与CASE 产品的开发就是近年来软件工程领域的特点之一。

请列举数种您所熟悉的CASE 工具或环境,综述它们的概念与优缺点,并分析其实现方法。

rose、“数据字典”(工具)第二章1、什么就是软件生命周期?它有哪些活动?软件生命周期就是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程。

软件生存周期可以划分为软件定义、软件开发与运行维护3 个时期2、每一种过程模型的优点与缺点分别就是什么?瀑布模型:优点:它在软件发展的早期,为开发人员提供了一种开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件的开发方法与工具的研究与使用,从而提高了大型软件项目开发的质量与效率。

缺点:(1)在软件开发的初始阶段指明全部需求就是非常困难的,有时甚至就是不现实的(2)需求一旦确定,用户与软件项目负责人要等一段时间(经过设计、实现、测试、运行个阶段)才能得到一份软件的最初版本。

(3)瀑布模型中的软件活动就是文档驱动的,当阶段之间规定过多的文档时,会大大增加软件开发的工作量;而且当管理人员以文档的完成情况来评估项目完成进度时,往往会产生错误的结论,因为后期测试阶段发现的问题会导致返工,前期完成的文档只不过就是一个未经返工修改的初稿而已。

原型模型:优点:原型系统能够逐步明确用户需求,可以适应需求的变化性,而且由于用户参与到软件开发过程,能够及早发现问题、降低软件开发的风险,加快软件产品的形成,降低软件开发的成本。

缺点:(1)对于大型软件项目,如果不经过系统分析并对系统进行整体划分,直接用原型来模拟系统功能就是十分困难的。

(2)对于计算量大、逻辑性较强的程序模块,原型法很难真正构造出来供用户评价。

(3)对于批处理系统,其大部分处理就是内部进行的,应用原型方法有一定的困难。

(4) 原型的快速构造特点导致项目文档容易被忽略,给原型的后期改进与维护造成困难。

(5)在原型建立中的许多工作进展会被浪费掉,特别就是对于丢弃型原型策略。

在一定程度上,增加了系统的开发成本,降低系统的开发效率。

螺旋模型:喷泉模型:优点:可以提高软件项目开发效率,节省开发时间。

缺点:由于各个开发阶段的重叠性,开发人员的管理与阶段生成的文件管理存在困难。

增量模型:优点:(1)就是能在较短时间内,向用户提交可完成部分工作的产品。

(2)逐步增加产品功能,可以使用户有较充裕的时间学习与适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

缺点:增量的力度选择也很难把握,有时候很难将客户的需求映射到适当规模的增量上。

构件组装模型:优点:这大大提高了软件开发的效率,而且构件模型允许多个项目同时开发,降低了费用,提高了可维护性。

缺点:由于存在多种构件标准,缺乏通用的构件组装结构标准,如果自行定义标准的话,会引入较大的风险;构件可重用性与软件系统高效性之间不易协调,需要权衡;RUP:RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板与工具指导,并确保全体成员共享相同的知识基础。

它建立了简洁与清晰的过程结构,为开发过程提供较大的通用性。

但同时它也存在一些不足:RUP只就是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行与支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

可以说RUP就是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN与OOSP等其她软件过程的相关内容对RUP进行补充与完善。

3、软件瀑布模型为什么要划分阶段?各个阶段的任务就是什么?在软件开发早期,开发只就是被简单地分成编写代码与修改代码两个阶段。

往往在拿到项目后立刻编写程序,然后调试通过后直接交付给用户使用。

如果应用中出现错误,或者有新的要求,都需要重新修改代码。

这种小作坊式的软件开发方法有明显的弊端,如缺乏统一的项目规划、不太重视需求的获取与分析、对软件的测试与维护考虑不周等,这些都会导致软件项目的失败。

概念阶段:计划、需求分析开发阶段:设计、编码、测试维护阶段:运行维护4、什么就是原型?试述原型模型在软件生命周期中的应用。

原型一般就是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。

由于软件规模与复杂性越来越大,软件开发在需求获取、技术实现手段选择、应用环境适应等方面面临巨大考验。

为了应对早期需求获取的不易以及后期需求的变化,人们选用原型方法构造软件系统。

5、为什么说喷泉模型较好地体现了面向对象软件开发过程无缝与迭代的特性?6.RUP 模型的思想就是什么?RUP 模型融合了哪些传统生命周期模型的特点?迭代增量开发思想;(1)面向对象:从技术角度,RUP开发就是基于面向对象技术,即它使用与支持面向对象技术的概念与方法。

RUP要求建立的设计模型、实现模型都就是对象模型。

(2)USE CASE驱动(3)以架构为中心;(4)螺旋上升式的开发过程;(5)以质量控制与风险管理为目标;(6)与UML配置;(7)适用性强;7、举例说明哪些项目的开发适用于原型模型或螺旋模型,哪些不适于采用这两种模型。

螺旋模型适合于大型软件的开发,应该说它就是最为实际的方法,它吸收了软件工程“演化”的概念,使得开发人员与客户对每个演化层出现的风险有所了解,继而做出应有的反应。

不适用:小型软件。

原型一般就是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。

不适用:大型软件项目;含有对于计算量大、逻辑性较强的程序模块;第三章1、可行性研究的任务就是什么?可行性研究的任务就是以最小的代价在尽可能短的时间内确定问题就是否能够解决。

简单地说,可行性研究的最终结果就是决定项目“做还就是不做”而不就是“如何做”。

2、可行性研究有哪些步骤?1、确定系统规模与目标2、研究目前正在使用的系统3、导出新系统的高层逻辑模型4、重新定义问题5、导出与评价选择的解法6、推荐行动方针7、草拟开发计划8、书写计划任务书文档并提交审查3、成本-效益分析可用哪些指标进行度量?如果用比率分析法,有以下几种指标:1,相关指标分析法。

产值成本率=成本/产值*100%;销售收入成本率=成本/销售收入*100%;成本利润率=利润/成本*100%2,构成比率分析法,直接材料费用比率=直接材料成本/产品成本*100%直接人工费用比率=直接人工费用/产品成本*100%制造费用比率=制造费用/产品成本*100%4、项目开发计划有哪些内容?引言(目的、背景、参考文献、术语);项目概述(功能、条件、运行环境、产品、程序、文档、服务、验收标准、实施计划、工作任务分解、进度、预算、人员) 5、按照题意设计如下流程图:计算机房产管理系统:要求系统有分房、退房、调房、咨询与统计功能。

房产科把住户申请表输入系统后,系统首先检查申请表的合法性,不合法的拒绝接受,合法的申请表根据申请表类型(分、调、退房)分别进行处理。

分房申请处理:根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数;当分数高于给定值时,按分数高低将申请单插到分房队列的适当位置,输出核准后的分房单。

分房处理:每月月底进行分房。

从分房文件中读出空房信息,然后根据住户的实际情况,从住房标准文件中读出住房标准进行校核,如果符合,则分配住房给该住户,打印出住房分配通知单,并登记相应的住户信息。

退房,调房处理类似。

咨询、查询:对空房、住房、房租情况进行查询与统计。

6、为方便储户,某银行拟开发计算机储蓄系统。

储户填写的存款单或取款单由业务员输入系统,如果就是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果就是取款,系统计算利息并印出利息清单给储户。

写出问题定义并分析此系统的可行性,画出系统流程图。

7、为方便旅客,某航空公司拟开发一个机票预订系统。

旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,印出取票通知与账单,旅客在飞机起飞的前一天凭取票通知单与账单交款取票,系统校对无误即打印出机票给旅客。

写出问题定义并分析此系统的可行性,画出系统流程图。

这个系统的可行性就是在一个理想的环境下,比如:乘客不满意安排的座位需要调换,或者需要改机票;这些种种因素都没考虑进去。

技术上可行:使用现有的技术能实现这个系统;经济上可行:这个系统的经济效益可以超过她的开发成本;操作上可行:操作方式简单,但就是有缺陷;社会、政策允许的可行性:可行。

8、某计算机系统投入使用后,5 年内每年可节省人民币2 000 元。

假设系统的投资额为5 000 元,年利率为12%。

相关文档
最新文档