欢迎来到天天文库
浏览记录
ID:18731711
大小:2.11 MB
页数:16页
时间:2018-09-20
《软件工程导论简答题参考资料——课后习题答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现:(1)对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。(2)用户对已完成的软件不满意的现象时有
2、发生。(3)软件产品的质量往往是靠不住的。(4)软件常常是不可维护的。(5)软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。(6)软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。(7)开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因:(1)来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。(2)软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。(3)供求矛盾将是一个永恒的主题
3、:面对日益增长的软件需求,人们显得力不从心。二、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机?1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。软件工程的本质特征:(1)软件工程关注于大型程序(软件系统)的构造(2)软件工程的中心课题是分解问题,控制复杂性(3)软件是经常变化的,开发过程中必须考虑软件将来可能的变化(4)开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法
4、和工具(5)和谐地合作是开发软件的关键(6)软件必须有效地支持它的用户(7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径:(1)对计算机软件有一个正确的认识(软件≠程序)(2)必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目(3)推广使用在实践中总结出来的开发软件的成功技术和方法(4)开发和使用更好的软件工具三、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。七、什么是软件生命周期模型?试比较瀑
5、布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的使用范围。软件生命周期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。l瀑布模型优点:它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。虽然有不少缺陷但比在软件开发中随意的状态要好得多。缺点:(1)实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。(2)经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不
6、欢迎具有二义性问题存在的。(3)客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。(4)会经常在过程的开始和结束时碰到等待其他成员完成其所依赖的任务才能进行下去,有可能花在等待的时间比开发的时间要长。称之为“堵塞状态”。它是软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。l快速原型模型在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析
7、、设计和编程,最终开发出令客户满意的产品。优点:使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。缺点:产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。l增量模型优点:(1)人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。(2)当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。缺点:(1)至始至终开发者和客户纠缠在一起,直到
8、完全版本出来。(2)适合于软件需求不明确、设计方案有一定风险的软件项目。该模型具有一定的市场。l螺旋模型优点:对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。缺点:(1)需要相当的风险分析评估的专门技术,且成功依赖于这种技术。(2
此文档下载收益归作者所有