
软件工程导论课后fu习题答案 - 图文.docx
44页软件工程导论课后fu习题答案 - 图文 《软件工程导论》课后习题答案第一章 软件工程概论1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“紧要问题”这些问题决不仅仅是不能正常运行的软件才具有的,事实上,几乎“全部软件”都不同程度地存在这些问题 “软件危机”包含两方面的问题: 〔1〕如何开发软件,以满意对软件日益增长的需求; 〔2〕如何维护数量不断膨胀的已有软件 它们有以下表现:〔1〕对软件开发本钱和进度的估计时时很不精确;〔2〕用户对“已完成的”软件系统不满足的现象经常发生; 〔3〕软件产品的质量往往靠不住; 〔4〕软件时时是不行维护的;〔5〕软件通常没有适当的文档资料;〔6〕软件本钱在计算机系统总本钱中所占的比例逐年上升;〔7〕软件开发生产率提高的速度,远远跟不上计算机应用普及深化的趋势 出现软件危机的缘由〔1〕开发人员与客户相识之间的冲突〔2〕开发人员实力与开发目标之间的冲突 〔3〕预估与实际工作量之间的冲突〔4〕客户相识的提高与软件维护之间的冲突 〔5〕遗产系统与实施软件之间的冲突2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告知他们刚好发觉并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清晰它们是不现实的,并举例说:“假如一个故障是编码错误造成的,那么,一个人怎么能在设计阶段去除它呢?”应当怎么反对他?答:在软件开发的不同阶段进展修改付出的代价是很不一样的,在早期引入变动,涉及的面较少,因而代价也比拟低;在开发的中期,软件配置的很多成分已经完成,引入一个变动要对全部已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更困难,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种 错误是不行幸免的,但要修改的本钱是很小的,因为这不是 整体构架的错误3.什么是软件工程?它有哪些本质特征?怎么用软件工程消退软件危机?软件工程是知道计算机软件开发和维护的一门工程学科采纳工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程 本质特征:〔1〕 软件工程关注于大型软件的构造 〔2〕 软件工程的中心课题是限制困难性 〔3〕 软件经常改变 〔4〕 开发软件的效率特别重要 〔5〕 和谐地合作是开发软件的关键 〔6〕 软件必需有效支持它的用户 〔7〕 在软件工程领域通常由一种文化背景的人替代具有另一种文化背景的人创造产品消退软件危机的原理:〔1〕 用分阶段的生命周期打算严格管理 〔2〕 坚持进展阶段评审 〔3〕 实行严格的产品限制 〔4〕 采纳现代程序设计技术 〔5〕 结果应能清晰地审查 〔6〕 开发小组的人员应当少而精 〔7〕 成认不断改良软件工程实践的必要性5. 依据历史数据可以做出如下的假设 :对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960)存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.73Y-1974(美分/位) 假如计算机字长为16位,那么存储器价格下降的趋势为:P2=0.048×0.73Y-1974(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比拟计算机硬件和软件本钱的改变趋势要求计算:1) 在11015年对计算机存储容量的需求估计是多少?假如字长为16位,这个存储器的价格是多少? (2) 假设在11015年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元假如一条指令为一个字长,计算使存储器装满程序所需用的本钱 (3) 假设在11015年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题 ? 1-6 什么是软件过程?它与软件工程方法学有何关系?? 软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤 软件过程定义了运用技术方法的依次、应当交付的文档资料、为保证软件质量和协调软件改变必需采纳的管理措施,以及标记完成了相应开发活动的里程碑 软件过程是软件工程方法学的3个重要组成局部之一 7.什么是软件生命周期模型?试比拟瀑布模型、快速模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围通俗的说,简洁地描述软件过程的模型叫做软件生命周期模型,生命周期模型规定了把生命周期花费成哪些阶段及各个阶段执行的依次。
模型名称 比拟特点 方法学角度 面对结面型对象 构 瀑布模型 根底模型、广是 泛运用、标准模式 快速模型 根本需求、原是 形系统、可行演练 增量模型 需求分解、增 量构件、并行设计面对对象 螺旋模型 原形系统、风是 险分析、大规模 附带风险分析的快速原形模型 是 是 是 是 是 适用范围 应用角度 外部工程 内部产品 8.为什么说喷泉模型较好地表达了面对对象软件开发过程无缝和迭代的特性? 由于在整个开发过程中都运用统一的软件概念“对象”,全部其他概念〔例如功能、关系、事务等〕都是围绕对象组成的,目的是保证分析工作中得到的信息不会丧失或变更,因此,对生命周期各个阶段的区分自然也就不重要了,不明显了分析阶段的得到的对象模型也适用于设计阶段和实现阶段由于各阶段都运用统一的概念 和表示符号,因此,整个开发过程都是吻合相同的,或者说是“无缝”连接的,这自然也就很简单实现各个开发步骤的屡次反复迭代,到达相识的逐步深化所以说喷泉模型较好的表达了面对对象软件开发过程无缝和迭代的特性4.构成软件工程的最终产品: 应用程序、系统程序、面对用户的文档资料和面对开发者的文档资料。
5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、运用、维护到淘汰的全过程 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的详细任务不仅独立,而且简洁,便于不同人员分工协作,从而降低整个软件开发工作的困难程度 (2) 可以降低每个阶段任务的困难程度,简化不同阶段的联系,有利于工程的组织管理,也便于采纳良好的技术方法 (3) 使软件开发的全过程以一种有条不紊的方式进展,保证软件的质量,特殊是提高了软件的可维护性 7.应当怎样来划分阶段? (1)每一个阶段的任务尽可能独立; (2)同一阶段内的任务性质尽可能一样; (3)每一个阶段任务的起先和完毕有严格的标准 8.软件开发模型有几种?它们的开发方法有可特点? 软件开发模型有瀑布型、渐增型和变换型 瀑布型开发方法是遵照软件生存周期的划分依次实施,每一个阶段有明确规定的任务它的特点: (1)各个阶段的依次性和依靠性; (2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现; (3)每个阶段必需完成规定的文档,对其中问题通过复审及早发觉,及早解决 渐增型开发方法及特点: (1) 从局部需求启程,先建立一个不完全的系统,通过测试运行该系统取得经历和信息反应,加深对软件需求的理解,进一步使系统扩大和完善。
如此反复,直至软件人员和用户对所设计完成的软件系统满足为止 (2) 在渐增型开发下的软件是随软件开发的过程而渐渐形成的 (3) 渐增型开发方法适合于学问型软件的开发,设计系统时对用户需求的相识起先不是很清晰的,须要在开发过程中不断相识、不断获得新的学问去丰富和完善系统多数探究性质的试验软件,一般采纳此方法 变换型开发方法及特点: (1)从软件需求的形式化规格说明启程,经过一系列的程序变换,得到最终的程序系统 (2)该方法必需有严格的数学理论和形式化技术的支持 9.什么是软件工程? 软件工程是指导计算机软件开发和维护的工程学科 (1) 它采纳工程的概念、原理、技术和方法来开发和维护软件; (2) 它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来; (3) 它强调运用生存周期方法学和构造分析和构造技术; (4) 经过人们长期的努力和探究,围围着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,渐渐形成了\软件工程学\这一新的学科 10.什么是软件工程环境:方法与工具的结合,加上配套的软、硬件支持称为软件工程环境。
它能支持开发者遵照软件工程的方法,全面完成生存周期中的各项任务 其次章 可行性探究 习题答案1. 问题定义的任务和主要工作? 问题定义的任务:将用户提出的要求详细化、定量化;确定研制系统的范围,明确研制的边界 问题定义阶段的工作: (1) 通过调查探究,了解系统需求; (2) 确定系统的功能需求、性能需求、牢靠性需求、平安及保密性、资源、开发费用及开发进度等的需求; (3) 问题定义阶段的产品--系统目标与范围说明书 2.可行性探究目的? 确定在问题定义中所提出的问题是否值得去解,在限制条件下,问题能否解决 3.可行性探究的任务? (1) 进一步分析和澄清问题的定义,在澄清问题的根底上,导出系统的逻辑模型; (2) 从系统逻辑模型中,选择问题的假设干种主要解法,探究每一种解法的可行性,为以后的行动提出建议; (3) 假如问题没有可行的解,建议停顿系统开发;假如问题有可行的解,应当引荐一个较好的解决方案,并为工程制定一个初步的打算 4.可行性探究包括哪几方面的内容? (1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满意; (2)经济可行性:经济效益是否超出开发本钱; (3)操作可行性:系统操作在用户内部行得通吗? (4)法律可行性:新系统开发是否会侵扰他人、集体或国家利益,是否违反国家法律。
5.可行性探究的步骤? (1)复查系统的规模和目标; (2)探究目前正在运用的系统,总结现有系统的优劣,提出新系统的雏形; (3)导出新系统的高层逻辑模型; (4)引荐建议方案; (5)引荐行动方针; (6)书写打算任务书(可行性报告); (7)提交审查 6. 可行性探究报告的主要内容? 可行性分析的结果是可行性探究报告,内容包括: (1) 系统概述:说明开发的系统名称,提出单位和开发单位 (2) 可行性探究的前提:系统目标;要求;约束和限制;可行性探究的根本准那么等 (3) 对现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题 (4) 系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求 (5) 建议系统:系统目标;处理流程;系统构造,功能,性能;系统技术可行性;投资和效益分析;操作可行性;法律可行性 (6) 其它可选方案:与国内外同类型方案的比拟;提出一两个可行性方案供论证和探讨 (7) 制定下一阶段的预算 (8) 结论性看法:由用户方、设计方和投资方共同签署看法。
2-4 目前住院病人主要。












