软件工程课后题
软件工程导论(第六版)部分课后习题-答案
软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。
解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。
软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。
代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。
解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。
它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。
在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。
解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。
它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。
敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。
解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。
其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。
通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。
希望本文对读者有所帮助,谢谢阅读。
软工课后习题
习题一一、填空题1.软件是计算机系统中与硬件相互依存的另一部分,是包括___程序____、___数据____及其相关文档的完整集合。
2.软件工程包括3个要素:__方法_____ 、__工具_____和___过程____ 。
3.软件开发的基本方法包括__结构化方法_____和___面向对象方法____ 。
二、选择题1.结构化程序设计主要强调程序的( C )。
A.效率B.速度C.可读性D.大小2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作( B )。
A.软件投机B.软件危机C.软件工程D.软件产生3.以下说法中错误的是( C )。
A.软件的质量保证工作不能等到编码阶段结束之后再进行B.在软件开发过程中需求是经常变化的C.软件产品的开发过程比一般产品的开发过程更容易评价和管理D.软件开发小组的组成人员的素质应该好,而人数则不宜过多三、简述题1.简述软件的特点。
2.简述软件危机的产生及表现。
3.试比较结构化方法和面向对象方法。
习题二一、填空题1.软件生存周期的各个过程可以分成三类,即________、________和________ ,开发机构可以根据具体的软件项目进行剪裁。
2.软件生存周期包括计划____需求分析____ 、__软件设计______ 、程序编码、__软件测试______ 、和运行维护6个阶段。
3. ___帮助软件企业对其软件过程的改变进行计划、制订以及实施。
二、选择题1.瀑布模型本质上是一种(A)。
A.线性顺序模型B.顺序迭代模型C.线性迭代模型D.及早见产品模型2.需求分析是由分析员了解用户的要求,认真细致地调研。
分析,最终应建立目标系统的逻辑模型并写出(B)。
A.模块说明书B.软件规格说明书C.项目开发计划D.合同文档三、判断题1.采用瀑布模型进行软件开发时,软件与用户见面的时间间隔较长,开发风险较大。
()2.软件设计阶段的任务是程序员选取一种适当的高级程序设计语言,编写每一个功能模块。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
《软件工程》课后习题答案
1、可行性研究的目的是用最小的代价,在尽可能短的时间,确定该项目是否能够开发。
2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。
3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。
4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。
5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。
6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。
7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。
可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。
8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。
重视用户界面的设计,不断的采用新理论和新技术。
软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。
9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。
10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。
11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。
13、详细描述处理过程常用三种描述工具:图形、表格和语言。
14、数据流图中,每个加工至少有一个输入流和一个输出流。
15、结构化设计以数据流为基础映射成软件结构。
16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。
17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。
18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。
软件工程课后习题答案
软件⼯程课后习题答案习题答案习题⼀答案⼀、选择题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 简述软件的开展过程。
共经历了四个阶段;第一阶段:〔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、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
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.法律名词及注释本文涉及的法律名词及注释:无。
软件工程习题及课后答案
第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. 〔〕是将系统化的、标准的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程课后题答案大全(详细)
软件工程习题解答第一章概述1.软件产品的特性是什么?a.软件产品是一种逻辑产品。
b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。
c.软件产品不会用坏,不存在磨损、消耗问题。
d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。
e.软件费用不断增加,成本相当昂贵。
2.软件产品有几个阶段?各有何特征?阶段 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) C.软件工程时代(1968-今)生产方式个体手工劳动作坊式小集团合作生产工程化的生产工具机器语言、汇编高级语言数据库、开发工具、开发环境、网络、分布式、面向对象技术开发方法追求编和技巧,追求程序运行效率个人技巧,开始提出结构化方法硬件特征价格贵、存储容量小、运行可靠性差速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长向超高速、大容量、微型化以及网络化方软件特征只有程序、程序设计概念,不重视程序设计方法程序员数量猛增,已意识到软件开发的重要性,开发技术没有新的突破,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技术不适应规模大、结构复杂的软件开发,产生了尖锐矛盾,导致软件危机的产生开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
软件工程课后习题及其答案
软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:费用、可靠性、可维护性、生产率和重用。
2、到目前为止,软件生产的发展经历了三个阶段,即程序设计、程序系统和软件工程。
3、计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于原理和理论,而软件工程侧重于软件系统构造。
4、软件工程有用管理科学的方法和原理进行软件生产的管理。
5、软件工程是用科学知识和技术原理来定义、开发、维护软件的一门科学。
6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。
在软件开发技术方面,主要研究开发方法、开发过程、开发工具。
在软件开发管理技术方面主要研究管理学、经济学、心理学。
7、作为一门交叉学科,软件工程具有很强的综合性,它涉及计算机科学、工程科学、管理科学、数学等领域。
8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。
9、开发软件工具的主要目的是为了提高软件生产效率和改善软件的质量。
10、描述软件开发过程中各种活动如何执行的模型称为周期模型。
11、从软件工程诞生以来,已经提出了多种软件开发方法,如结构化方法、面向数据的方法、面向对象的方法,它们对软件工程及软件产业的发展起到了不可估量的作用。
12、结构化方法由结构化分析、结构化设计和结构化程序设计构成。
它是一种面向数据流的开发方法。
13、增量模型是一种非整体开发方法的模型。
软件在该模型中是“逐渐”开发出来的,开发一部分向用户展示一部分,可让用户及早看到部分软件,及早发现问题。
或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
14、喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。
软件工程课后题答案
软件工程课后题答案1. 简答题1.1 软件过程模型软件过程模型是一种描述软件开发过程中活动、任务和工作产品之间关系的抽象模型。
常见的软件过程模型包括瀑布模型、迭代模型、增量模型和敏捷开发模型等。
每种模型都有其适用的场景和特点。
1.2 软件需求软件需求是指用户对软件系统的功能、性能等方面的要求和约束。
需求分析是软件开发过程中非常重要的一步,它包括需求获取、需求分析、需求规格说明等活动。
需求分析的目标是理解用户需求,为软件开发提供指导。
1.3 需求规格说明需求规格说明是对软件需求进行详细描述和说明的文档。
它包括功能需求、性能需求、界面需求以及其他约束条件等。
需求规格说明的编写要求准确、清晰、可验证,并且要与用户和开发人员达成一致。
1.4 软件设计原则软件设计原则是指在软件设计过程中应该遵循的一些基本原则,以提高软件系统的可维护性、可扩展性和可重用性。
常见的软件设计原则包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则和迪米特法则等。
2.1 敏捷开发方法敏捷开发是一种迭代、逐步开发软件的方法。
它强调快速响应用户需求的变化,通过频繁发布可用的软件版本来获得反馈,并根据反馈进行调整。
敏捷开发方法更加灵活,适用于需求变化频繁的项目。
2.2 结构化程序设计结构化程序设计是一种通过模块化和流程控制来组织程序的方法。
它强调程序应该具有清晰的结构,模块之间的耦合度应该尽量低。
结构化程序设计可以提高程序的可读性和可维护性,减少错误引入的可能性。
2.3 UML建模UML是一种用于面向对象系统开发的建模语言。
它提供了一套丰富的图形符号和建模工具,用于描述系统的结构、行为和交互。
UML建模可以帮助开发人员清晰地表达设计意图,提高沟通效率,并且可以生成可执行代码。
2.4 软件测试技术软件测试是评估软件质量的过程,旨在发现软件中的缺陷和错误。
常见的软件测试技术包括黑盒测试和白盒测试。
黑盒测试关注软件功能是否符合需求,白盒测试则关注程序内部的逻辑结构和代码覆盖率。
软件工程课后习题_第1,2,3章
第一章:一.判断题:1.软件就程序,编软件就是编写程序。
()2.软件危机的主要表现是软件需求增加,软件价格上升。
()3.软件工程科学出现的主要原因是软件危机的出现。
()4.与计算机科学的理论研究不同,软件工程是一门原理性学科()二.选择题1.在下列选项中,()不是软件的特征A系统性与复杂性 B 可靠性与一致性C 抽象性与智能性D 有形性与可控性2.软件危机的主要原因是:A软件工具落后 B 软件生产能力不足C 对软件的认识不够D 软件本身的特点及开发方法3.下列说法正确是的是A 20世纪50年代提出了软件工程的概念B 20世纪60年代提出了软件工程的概念C 20世纪70年代提出了客户机/服务器技术D 20世纪80年代软件工程学达到成熟4.( )是将系统化的规范的可定量的方法应用于软件的开发,运行和维护的过程。
它包括方法、工具和过程三个要素A 软件生命周期B 软件测试C 软件工程D 软件过程5.在下列选项中,()不属于软件工程学科索要研究的基本内容。
A 软件工程材料B 软件工程目标C 软件工程原理D 软件工程过程6.软件工程的三要素是()A技术,方法和工具 B 方法,对象和类 C 方法,工具和过程 D 过程,模型和方法7.用来辅助软件开发,运行,维护,管理,支持等过程中的活动的软件成为软件开发工具,通常也称为()工具A CADB CAIC CAMD CASE三简答题1.与计算机硬件相比,计算机软件有哪些特点?2.软件就是程序吗?如何定义软件?3.什么是软件危机?是什么原因导致了软件危机?4.为什么说软件工程的开发能在一定程度上解决软件危机的各种弊端?5.请简述软件工程的研究内容。
6.请简述软件工程的三要素。
7.请简述软件工程的目标,过程和原则。
8.请简述软件工程的基本原则。
9.请简述现代软件工程与传统软件工程显著的区别与改进。
第二章:一判断题1.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程课后习题参考答案
软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
P192.简述实施软件开发的基本途径。
答: 实施软件开发的基本途径是系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。
P193.简述何谓模型以及软件开发中所涉及的模型。
答: 模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
4.简述软件开发所涉及的两大类技术。
答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。
5、简述需求与需求规约的基本性质。
答:需求的基本性质:1) 必要的,该需求是用户所要求的。
2) 无歧义的,该需求只能用一种方式解释。
3) 可测的,该需求是可进行测试的。
4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。
5) 可测量的,该需求是可测量的。
需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。
2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。
3)完整的:没有被遗漏的需求。
4)一致的:不存在互斥的需求。
6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。
答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。
P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。
软件工程课后题答案
第1章2.为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端?软件工程的提出是为了解决软件危机所带来的各种弊端。
具体地讲,软件工程的目标主要包括以下几点:1)使软件开发的成本能够控制在预计的合理范围内。
2)使软件产品的各项功能额性能能够满足用户需求。
3)提高软件产品的质量。
4)提高软件产品的可靠性。
5)使生产出来的软件产品易于移植、维护、升级、和使用。
6)使软件产品的开发周期能够控制在预计的合理实践范围内。
3.简述软件工程的基本原则。
1)将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。
2)坚持阶段评审制度,以确保软件产品的质量。
3)实施严格的产品控制,以适应软件规格的变更。
在软件开发的过程中,用户需求可能不断发生变化。
4)采用现代程序设计技术。
5)开发出来的软件产品应该能够清楚地被审查。
6)合理地安排软件开发小组的人员,并且开发小组的人员少而精。
4.简述软件工程研究的内容。
软件工程研究的内容主要包括以下两部分:1)软件开发技术。
主要研究软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发过程管理。
主要研究软件工程经济学和软件管理学。
随着人们对软件系统研究的逐渐深入,软件工程研究的内容也在不断跟新和发展。
5.简述软件工程的三要素。
软件工程以关注质量为目标,其中过程、方法、工具是软件过程的3要素。
6.简述软件工程的目标。
软件工程的基本目标如下:1)达到要求的软件功能;2)取得较好的软件性能;3)开发出高质量的软件;4)付出较低的开发成本;5)需要较低的维护费用;6)能按时完成开发工作,及时交付使用。
7.通常有哪几种软件工程开发方法?通常有四种开发方法:1)结构化方法;2)面向数据结构方法;3)面向对象方法;4)形式化方法。
此外还有问题分析法,可视化开发方法。
第2章2.请对比瀑布模型、快速原型模型、增量模型和螺旋模型。
瀑布模型的优点:过程模型简单,执行容易。
缺点:无法适应变更。
软件工程课后题答案
软件工程课后题答案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什么是软件过程?他与软件工程方法学有何不一样样?软件过程:是指一个为获取高质量软件所需达成的任务的框架,它规定了软件产品开发时达成各项任务的一系列工作步骤,包含中间产品、资源、角色及过程中采纳的方法、工具等范围。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课后习题答案第一章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)需求分析阶段的工作可以分成4个方面:对问题的识别、分析与综合、制订需求规格说明书和()。
A.需求分析评审B.对问题的解决C.对过程的讨论D.功能描述(2)以下不是结构化分析方法描述系统功能模型的方法是( ).A.数据流图 B.数据字典 C.加工说明D.流程图(3)以下不是对象具有的特点是( ).A.数据的封装性B.并行性C.模块独立性好D.对象是被动的(4)对象模型技术是1991年由Jame Rumbaugh等5人提出来的,该方法把分析收集到的信息构造在对象模型、动态模型和功能模型中,将开发过程分为系统分析、系统设计()和实现4个阶段。
A.对象设计B.类的设计C.模块设计D.程序设计(5)。
按照层次来划分。
UML的基本构造块包含:视图、图和()A.功能模型B.模型元素C.示例D.视图元素2.填空题(1)需求分析可分为对问题识别、分析与综合、编制需求分析文档、需求评审四个阶段。
(2)需求分析的任务是理解和表达用户的需求,借助当前系统的物理模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。
(3)系统分析是对问题的识别和说明的过程,分析员要回答的问题是“系统必须做什么”的问题,而不是“系统应该怎么做”的问题。
(4)结构化分析方法是一种面向数据流的需求分析方法。
这种方法通常与设计阶段的结构化设计衔接起来使用。
(5)面向对角分析模型通常包括对象模型、功能模型、动态模型。
(6)类是某些对象的模板,抽象地描述属于该类的全部对象的属性和操作。
(7)UML是一种可视化的、用于绘制软件蓝图的标准建模语言。
可心用UML对软件系统的各种制品(包括程序、文档等)进行描述。
3.思考题(1)什么是需求分析?需求分析阶段的基本任务是什么?答;一个项目通过市场调研,进行深入细致的可行性分析,获准开发后,为了保证制定的软件开发计划详细可行,还需要对软件目标及范围求精和细化,从而解决软件系统必须要做的工作。
这就是本项目所阐述的需求分析需求分析的任务是理解和表达用户的需求,描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。
(2)什么是结构化分析方法?该方法使用什么描述工具?答:结构化分析方法是一种面向数据流的需求分析方法。
该方法主要是利用数据流图、数据字典和加工说明等来描述系统的功能模型。
(3)什么是面向对象技术?面向对象方法的特点是什么?答;面向对象技术是一整套实用的软件开发方法特点:数据的封装性。
以数据为中心。
对象是主动的。
模块独立性好。
并行性。
(4)什么是类?类与传统的数据类型有什么关系?答;具有相同特征和行为的对象归结在一起就形成类,也就是说,类是具有相同属性和服务的一组对象的集合。
在面向对象方法学中,类是某些对象的模板,抽象地描述属于该类的全部对象的属性和操作。
(5)建立分析和设计模型的一种重要方法是UML,试问UML是一种什么样的建模方法?它如何表示一个系统?UML是一种可视化的、用于绘制软件蓝图的标准建模语言。
可以用UML对软件系统的各种制品(包括程序、文档等)进行描述。
UML虽然不是一种具体的编程语言,但是用UML描述的各种模型可以与各种编程语言直接相连。
(6)UML中提供哪几种图?并说明每种图所描述的内容是什么?(1)用例视图(Use Case View)。
(2)逻辑视图(Logical View)(3)并发视图(Concurrent View)(4)组件视图(Component View)。
(5)部署视图(Deployment View)第三章选择项目的总体设计习题1.选择题(1)系统开发的命名规则是()A. 变量名只能由大小写英文字母、“_”以及阿拉伯数字组成B. 名称的第一个字符必须是英文字母或数字C. 全局变量、局部变量命名必须用英文字母简写来命名D. 数据库表名、字段名等命名应尽量体现数据库、字段的艺能(2)面向事务设计方法首先确定主要的( C ),然后逐层详细描述各个状态的( A )。
A. 转化过程B. 状态变化C. 状态分类D. 转化变化(3)使用面向对象的设计方法进行对象分析和设计时的步骤是( ABCED )。
A. 识别对象B. 确定操作C. 定义操作D. 确定对象之间的通信E. 完成对象定义(4)软件建模的三个模型是:( C )描述系统能什么,( F )描述系统在何时、何地由何角色、按什么业务规则去执行,以及执行的步骤或流程,( B )描述系统工作前的数据来自何处,工作中的数据暂存什么地方,工作后的数据放到何处,以及这些数据之间的关联。
A. 设计模型B. 数据模型C. 功能模型D. 性能模型E. 用例模型F. 业务模型2. 填空题(1)总体设计的主要任务是根据用户需求分析阶段得到的目标系统的物理模型确定一个合理的系统解决方案。
(2)面向数据流设计的目标是给出设计软件结构的一个系统化途径。
根据数据流,采用自顶向下逐步求精的设计方法,按照系统的层次结构进行逐步分解,并以分层数据流图这种结构关系。
(3)面向对象的设计将面向对象分析方法建立的需求分析模型转化为构造软件的设计模型。
(4)UML是统一建模语言的缩写,它是一种可视化的图形符号建模语言,利用它可以进行需求分析、概要设计、详细设计、编程实现、项目计划、测试、原型迭代、产品发布和产品维护。
模块间的耦合低——————————---耦合性-——————————————---高非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合强-------------------------模块独立性----------------------------弱内聚度低-------------------------内聚性--------------------------------高偶然内聚逻辑内聚时间内聚过程内聚通信内聚信息内聚功能内聚弱-------------------------模块独立性---------------------------强功能分散功能单一第四章软件项目详细设计习题1.选择题(1)下面关于详细设计的说法错误的是()A详细设计阶段的任务是将解决问题的办法进行具体化B.详细设计阶级是以比较抽象的方式提出了解决问题的方法C.详细设计阶段不用真正编写程序,而是设计出程序的详细规格说明D.详细设计是将概要设计的框架内容具体化、明细化(2)类图是静态图的一种,它包括的三个部分是()。
A.属性B.类C.用户接口D. 联系(3)下面关于数据库的描述正确的是()A.数据库是存储和处理数据用的B.数据库设计的目的是使信息系统在数据库服务器上建立一个好的数据模型C.数据库设计的主要工作是设计数据库的表D.数据库是用来确定对象之间通信的工具E.数据库设计的难易程度取决于数据关系的复杂程度和数据量的大小两个要素(4)传统的详细设计的工具主要包括()A.程序流程图B.数据结构设计C.模块和接口D.判定表E.程序设计语言2.填空题(1) RUP(统一开发过程)模式的最大优点是按照角色识别用例方法,该方法可以较为直观地建立起系统的架构,通过反复识别,避免需求中的露项。
(2) 类有属性、操作、结束以及其他成分等,属性描述类性质的实例所能具有的值,操作实现类的服务功能,用户接口就是用户和系统交互的界面,联系代表对象之间的关系.(3) 详细设计需要对系统的模块做概要性的说明,主要包括模块描述、算法描述,数据描述。
(4) 面向对象的详细设计从概要设计的对象和类开始。
算法是设计对象中每个方法的实现规格,数据结构的设计与算法是同时进行的,因为这个方法要对类的属性进行处理,主要包括三类对数据的维护操作,对数据进行计算,监控对象事件。
第五章软件项目的实现习题1.选择题(1)下列标识符中,不合法的用户标识符为()A.a#bB._intC.a_10D.Pad(2)每个类(C)构造函数。
A. 只能有一个B. 只可有共有的C. 可以有多个D.只可有缺省的(3)在私有继承的情况下,基类成员在派生类中的访问权限()。
A.受限制B.保持不变C. 受保护D.不受保护(4)对象的三要素是()。
A.窗口、时间、消息B.窗口、数据、动作C.属性、方法、事件D.数据、函数、动作(5)程序的三种基本控制结构是()。