2022年软件工程第一二三章习题参考答案.docx
《2022年软件工程第一二三章习题参考答案.docx》由会员分享,可在线阅读,更多相关《2022年软件工程第一二三章习题参考答案.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 第一章 软件工程概述软件是运算机程序及其有关的数据和文档的结合;软件危机是指在运算机软件开发和保护时所遇到的一系列问题;软件危机主要包含两方面的问题:一是如何开发软件以满意对软件日益增长的需求;二是如何 保护数量不断增长的已有软件;软件工程是软件开发、运行、保护和引退的系统方法;软件工程是指导运算机软件开发和保护的工程学科;软件工程采纳工程的概念、原理、技术和 方法来开发与保护软件;软件工程的目标是实现软件的优质高产;软件工程学的主要内容是软件开发技术和软件工程治理;软件开发方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每一阶段的活
2、动、产品、验收的步骤和完成准就;常用的软件开发方法有结构化方法、面对数据结构方法和面对对象 方法等;习题参考答案:1什么是软件危机?为什么会显现软件危机?答:软件危机是指在运算机的开发和保护过程中所遇到的一系列严峻问题;这些问题决不仅仅是不 能正常运行的软件才具有的,实际上,几乎全部软件都不同程度地存在这些问题;显现软件危机的缘由:一方面与软件本身的特点有关,另一方面也和软件开发与保护的方法不 正确有关;软件不同于硬件,它是运算机系统中规律件而不是物理部件;治理和掌握软件开发过程 相当困难;软件是规模巨大,而且程序复杂性将随着程序规模的增加而呈指数上升;目前相当多的 软件专业人员对软件开发和保
3、护仍有不少糊涂观念,在实践过程中或多或少地采纳了错误的方法和 技术,这是使软件问题进展成软件危机的主要缘由;总结如下:1 取得正确的用户需求和正确地描述需求很困难 2 开发人员对需求的正确懂得也有困难 3 常常在没有正确懂得之前就仓促开头编程 4 软件项目缺乏有效的组织、治理和内部沟通 5 缺乏软件开发方法、模型和工具的支持 6 软件保护的困难性2假设你是一家软件公司的总工程师,当你把图1.1 给手下的软件工程师们观看,告知他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现 实的,并举例说: “ 假如一个故障是编码错误造成的,那么,一个人怎么能在设
4、计阶段清除它呢?”你怎么反对他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的很多成分已经完成,引入一个变动要对全部已完成 的配置成分都做相应的修改,不仅工作量大,而且规律上也更复杂,因此付出的代价剧增;在软件 已经完成时再引入变动,当然付出的代价更高;一个故障是代码错误造成的,有时这种错误是不行 防止的,但要修改的成本是很小的,由于这不是整体构架的错误;3什么是软件工程?它有哪些本质特性?怎样用软件工程排除(至少是缓解)软件危机?答:软件工程是指导运算机软件开发和保护的一门工程学科;采纳工程的概念、原理、技术和
5、方法 来开发和保护软件,把经过时间考查而证明正确的治理技术和当前能够得到的最好的技术方法结合 起来,以经济地开发出高质量的软件并有效地保护它;名师归纳总结 - - - - - - -第 1 页,共 8 页精选学习资料 - - - - - - - - - 软件工程本质特性:1)软件工程关注于大型程序的构造;2)软件工程的中心课题是掌握复杂性; 3)软件常常变化;4)开发软件的效率特别重要;5)和谐地合作是开发软件的关键;6)软件必需有效地支持它的用户;7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人制造产品;排除软件危机的途径:为了排除软件危机,第一应当对运算机软件有一个正确
6、的熟识;必需充分熟识到软件开发不是某种个体劳动的神奇技巧,而应当是一种组织良好、治理严密、各类人员协同协作、共同完成的工程项目;应当推广使用在实践中总结出来的开发软件的胜利的技术和方法,并且讨论探究更好更有效的技术和方法,尽快排除在运算机系统早期进展阶段形成的一些错误概念和做法;应当开发和使用更好的软件工具;为明白决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施;6美国某科幻电影中有一个描写运算机软件错误的故事,很富于戏剧性;故事情节如下:由运算机 HAL 掌握的宇宙飞船在飞往木星的旅途中,飞机指挥员鲍曼和HAL 之间有一段对话;鲍曼命令道: “ HAL ,请对备用舱进行故障
7、预报测试;” 10 秒钟后 HAL 报告:“ 一切正常; ”但是,地面上的飞行指挥中心在重复做了故障猜测报告后,却得出了相反的结论:“ 鲍曼,我是飞行指挥中心,你的运算机在预报故障时可能犯了错误,我们的两台 HAL 运算机都得出了和你的运算机相反的结论; ”鲍曼用手指敲着掌握台说:“ HAL ,是不是有什么东西干扰了你,以致出了这个差错?”“ 听着,鲍曼,我知道你很想帮忙我,但是我的信息处理是正常的;不信就查看我的记录吧,你会看到它是完全正确的;”“ 我看过你的服务记录,但是 谁都可能犯错误啊;”“ 我并不顽固己见,但是,我是不行能犯错误的 ;”“ 喂,我是飞行指挥中心,我们已经完全分析了你所
8、遇到的麻烦,我们的两台运算机得出了完 全一样的结论;问题出在故障预报系统中,我们确信是程序设计有错误;你必需断开你的运算机并 改为地面掌握模式,我们才能改正这个错误;”当鲍曼断开运算机时,HAL 立刻又把自己接了上去;最终,鲍曼只好拆下运算机的储备器,才 得以掌握他的宇宙飞船;请问:( 1)为什么鲍曼拆下储备器就能摆脱运算机的干扰而独自掌握宇宙飞船?我们现在遇到的软件 问题有这么严峻吗?( 2)假如不依靠飞行指挥中心,鲍曼怎样才知道HAL 的故障预报有问题?( 3)应当怎样设计运算机系统,才能防止显现故事中描述的这类问题?答:(1)运算机通过运行程序来掌握宇宙飞船,而程序指令存放在储备器中;拆
9、下储备器之后,计 算机因取不来指令而无法运行程序,因此也就无法掌握宇宙飞船了;我们现在遇到的软件问题没有这么严峻,仍没有显现运算机不听从人的命令的情形;( 2)除非鲍曼能亲自分析有故障的部件,或者在运算机上仍安装有另外一套故障检测系统,否 就不依靠飞行指挥中心他很难知道 HAL 的故障预报有问题;( 3)应当把 HAL 设计成具有如干个储存的问题,供周期性测试之用;通过把应有的测试结果和 HAL 实际测试结果加以比较的方法,有可能发觉HAL 的故障预报问题;此外, 不论怎样详细设计HAL 系统, 都应当设置一种人工操作模式,并把人工操作模式设置为最高等级的掌握模式,在任何情形下运算机掌握都不能
10、取消人工操作命令;名师归纳总结 - - - - - - -第 2 页,共 8 页精选学习资料 - - - - - - - - - 其次章 软件过程软件过程定义了运用方法的次序、应当交付的文档、开发软件的治理措施、各阶段任务完成的 标志;软件过程必需科学、合理,才能获得高质量的软件产品;软件产品从问题定义开头,经过开发、使用和保护,直到最终被剔除的整个过程称为软件生命 周期;依据软件生产工程化的需要,生存周期的划分有所不同,从而形成了不同的软件生命周期模型(SW life cycle model ),或称软件开发模型;软件开发模型有以下几种;. 瀑布模型:规范的、文档驱动的方法;开发阶段按次序进
11、行,适用于需求分析较明确、开发 技术较成熟的情形;. 快速原型模型:构建原型系统让用户试用并收集用户看法,猎取用户真实需求;. 增量模型:优点是能在早期向用户提交部分产品和易于保护,缺点是软件的体系结构必需是 开放的;. 喷泉模型:适用于面对对象方法;. 螺旋模型:适用于大规模内部开发项目,有利于分析风险和排除风险;. 统一过程: 适用于面对对象方法,使用统一建模语言UML ,实行用例驱动和架构优先的策略,采纳迭代增量的建造方法;进行软件开发时可把各种模型的特点结合起来,充分利用优点,削减缺点;习题参考答案:1什么是软件过程?它与软件工程方法学有何关系?软件过程是为了开发出高质量的软件产品所需
12、完成的一系列任务的框架,它规定了完成各项任 务的工作步骤;软件过程定义了运用技术方法的次序、应当交付的文档资料、为保证软件质量和和谐软件变化 必需实行的治理措施,以及标志完成了相应开发活动的里程碑;软件过程是软件工程方法学的 3 个重要组成部分之一;该软件的功能是把读入的浮点数开平方,所得到的结果应当精确到小 2假设要求你开发一个软件,数点后 4 位;一旦实现并测试完之后,该产品将被抛弃;你准备选用哪些软件生命周期模型?请说 明你作出挑选的理由;答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需 求也无须用原型来验证设计方案;此外,一旦实现并测试完之后,该产
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 软件工程 第一 二三章 习题 参考答案
限制150内