软件工程习题及解答.doc_第1页
软件工程习题及解答.doc_第2页
软件工程习题及解答.doc_第3页
软件工程习题及解答.doc_第4页
软件工程习题及解答.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程第一章习题一、选择题 1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。其中,( A )是按事先设计的功能和性能要求执行的指令序列。( B )是使程序能够正确操纵信息的数据结构。( C )是与程序开发、维护和使用有关的图文材料。供选择的答案:AC. 软件 程序 代码 硬件 文档 外设 数据 图表2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。供选择的答案:A 程序开发环境 操作系统的资源管理功能 程序人员数量 计算机的并行处理能力B 需求分析 需求调查 可行性分析 问题定义C、D 方案设计 代码设计 概要设计 数据设计 运行设计 详细设计 故障处理设计 软件体系结构设计3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。有人将软件的发展过程划分为4个阶段:第一阶段(19501950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。第二阶段(1950年代末1960年代末)称为“基本软件期”。出现了( A ),并逐渐普及。随着( B )的发展,编译技术也有较大的发展。第三阶段(1960年代末1970年代中期)称为“程序设计方法时代”。这一时期,与硬件费用下降相反,软件开发费急剧上升。人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。第四阶段(1970年代中期现在)称为“软件工程时期”。软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。供选择的答案:A D: 汇编语言 操作系统 虚拟存储器概念 高级语言 结构式程序设计 数据库概念 固件 模块化程序设计E G: 使用和维护 兼容性的确认 完整性的确认 设计 需求定义 图象处理二、简答题 1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。如果平均每人每天可以开发出10条FORTRAN指令,请问:(1)开发这个应用程序将用多少人日?(2)假设程序员的月平均工资为4000美元,每月按20个工作日计算,这个软件的成本是多少美元?(3)1982年VAX750计算机硬件价格约为125000美元,在那一年这个软件的成本在总成本中占多大比例?(4)20年后,一台性能远远优于VAX750的微型计算机的价格约为2000美元,这时软件开发生产率已提高到平均每人每天可以开发出40条指令,而程序员的月平均工资也已涨到8000美元。如果在2002年开发上述FORTRAN应用程序,则该软件的成本在总成本中占多大比例?2、根据历史数据可以作出如下的假设。(1)对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960)(2)存储器的价格按下面公式描述的趋势逐年下降:P1=0.3*0.72Y-1974 (美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048*0.72 Y-1974 (美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。基于上述假设可以比较计算机硬件和软件成本的变化趋势。(1)在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2)假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。(3)假设在1985年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)(2)题所问。3、美国某科幻电影中有一个描写计算机软件错误的故事,很富于戏剧性。故事情节如下:由计算机HAL控制的宇宙飞船在飞往木星的旅途中,飞机指挥员鲍曼和HAL之间有一段对话。鲍曼命令道:“HAL,请对备用舱进行故障预报测试。”10秒钟后HAL报告:“一切正常。”但是,地面上的飞行指挥中心在重复做了故障预测报告后,却得出了相反的结论:“鲍曼,我是飞行指挥中心,你的计算机在预报故障时可能犯了错误,我们的两台HAL计算机都得出了和你的计算机相反的结论。”鲍曼用手指敲着控制台说:“HAL,是不是有什么东西干扰了你,以致出了这个差错?”“听着,鲍曼,我知道你很想帮助我,但是我的信息处理是正常的。不信就查看我的记录吧,你会看到它是完全正确的。”“我看过你的服务记录,但是谁都可能犯错误啊。”“我并不固执己见,但是,我是不可能犯错误的。”“喂,我是飞行指挥中心,我们已经彻底分析了你所遇到的麻烦,我们的两台计算机得出了完全一致的结论。问题出在故障预报系统中,我们确信是程序设计有错误。你必须断开你的计算机并改为地面控制模式,我们才能改正这个错误.”当鲍曼断开计算机时,HAL立即又把自己接了上去。最后,鲍曼只好拆下计算机的存储器,才得以控制他的宇宙飞船。请问:(1)为什么鲍曼拆下存储器就能摆脱计算机的干扰而独自控制宇宙飞船?我们现在遇到的软件问题有这么严重吗?(2)如果不依靠飞行指挥中心,鲍曼怎样才知道HAL的故障预报有问题?(3)应该怎样设计计算机系统,才能避免出现故事中描述的这类问题?4、什么是软件工程?它与软件工程方法学有何关系?5、为什么说分阶段的生命周期模型有助于软件项目管理?6、什么是里程碑?它应该有哪些特征?7、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪些软件生命周期模型?请说明你作出选择的理由。8、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?第一章习题解答 一、选择题1、答案:A. , B. , C. 分析:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列。数据是使程序能够正确操纵信息的数据结构。文档是与程序开发、维护和使用有关的图文材料。需要注意的是,程序与算法在含义上有不同:算法的每一条指令必须是最基本的、必须通过有限步做完,而程序没有这个要求。2、答案:A. , B. , C. , D. 分析:有合适的程序开发环境可以提供有用的工具,大大提高开发人员的工作效率。软件工程中描述软件生存周期的瀑布模型一般包括计划、需求分析、设计、编码、测试和运行维护等六个阶段。需求分析完成对软件产品在功能、性能、用户接口、运行环境、可靠性、安全性、开发资源、开发进度、开发成本等方面的需求定义。问题定义、可行性分析、需求调查都可能是需求分析中要做的一部分工作。软件设计在管理上划分为概要设计与详细设计两个步骤。概要设计的目标是建立软件的体系结构,完成全局数据结构设计,同时进行处理方式设计、运行配置设计、出错处理设计、故障恢复设计等。详细设计是对每一个模块的操作的控制流程和局部数据结构进行设计。3、答案:A. , B. , C. , D. , E. , F. , G. 。注意,C与D的答案顺序可互换。分析:在软件发展的早期,汇编语言和高级语言尚未出现,人们只能用机器指令来编写程序。为了好读,有的指令系统可以用八进制代码书写。其后,由于汇编语言的出现,人们摆脱了繁重的地址分配等工作,可以用符号编程。随着高级语言的出现和普及,人们用近似于自然语言的语句编写程序,大大减轻了程序员的负担。高级语言的处理,从解释执行到编译执行,处理效率和存储利用率不断提高。结构化程序设计和模块化程序设计是科学家为解决软件危机,借用其它领域的技术改进程序设计方法而提出来的。由于这些技术的使用,提高了程序的可读性、局部性、抽象性、清晰性、简单性、确定性、一致性等,降低了程序开发的费用。后来发展到软件工程阶段,明确地划分了软件开发阶段,规范了软件开发过程,明确了各个阶段的任务以及应交付的成果和里程碑,使得软件开发逐步达到工程化和标准化。、二、简答题1.答:(1) 10000/10=1000(人日)开发这个应用程序大约需用1000个人日。需要指出的是,上述工作量包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试等各个开发阶段的工作量,而不仅仅是编写程序所需的工作量。(2)每月平均工作20天,故开发这个软件需要用1000/20=50(人月)每人每月的平均工资为4000美元,因此这个软件的成本大约为50*4000=200000(美元)(3)软件成本与硬件成本之和为计算机系统的总成本。这个软件的成本在总成本中所占的比例为200000/(200000+125000)=61.5%(4)在2002年开发这个应用程序所需的工作量约为10000/(40*20)=12.5(人月)这个软件的成本大约为12.5*8000=100000(美元)该软件的成本在总成本中所占的比例为100000/(100000+2000)=98%2.答:(1)在1985年对计算机存储容量的需求,估计是M=4080e0.28(1985-1960)=4080e7=4474263(字)如果字长为16位,这个存储器的价格是P=0.048*0.721985-1974*4474263=5789(美元)(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10*20=200条指令。为了开发出4474263条指令以装满存储器,需要的工作量是4474263/20022371(人月)程序员的月平均工资是4000美元,开发出4474263条指令的成本为22371*4000=89484000(美元)(3)在1985年对存储容量的需求,估计为M=4080e0.28(1995-1960)=4080e9.8=73577679(字)如果字长为32位,这个存储器的价格是P=0.003*32*0.721995-1974*73577679=7127(美元)如果一条指令为一个字长,则为使存储器装满程序共需73577679条指令。在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需用的工作量为73577679/600=122629(人月)开发上述程序的成本为122629*6000=735776790(美元)3.答:(1)计算机通过运行程序来控制宇宙飞船,而程序指令存放在存储器中。拆下存储器之后,计算机因取不来指令而无法运行程序,因此也就无法控制宇宙飞船了。我们现在遇到的软件问题没有这么严重,还没有出现计算机不服从人的命令的情况。(2)除非鲍曼能亲自分析有故障的部件,或者在计算机上还安装有另外一套故障检测系统,否则不依靠飞行指挥中心他很难知道HAL的故障预报有问题。(3)应该把HAL设计成具有若干个储存的问题,供周期性测试之用。通过把应有的测试结果和HAL实际测试结果加以比较的方法,有可能发现HAL的故障预报问题。此外,不论怎样具体设计HAL系统,都应该设置一种人工操作模式,并把人工操作模式设置为最高等级的控制模式,在任何情况下计算机控制都不能取消人工操作命令。4.答:软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。5.答:软件是计算机系统的逻辑部件而不是物理部件,其固有的特点是缺乏可见性,因此,管理和控制软件开发过程相当困难。分阶段的生命周期模型提高了软件项目的可见性。管理者可以把各个阶段任务的完成作为里程碑来对软件开发过程进行管理。把阶段划分得更细就能够更密切地监控软件项目的进展情况。6.答:里程碑是用来说明项目进展情况的事件。通常,把一个开发活动的结束或一项开发任务的完成定义为一个里程碑。里程碑必须与软件开发工作的进展情况密切相关,而且里程碑的完成必须非常明显(也就是说,里程碑应该有很高的可见性)。7.答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。8.答:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪些模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论