欢迎来到天天文库
浏览记录
ID:42845687
大小:465.50 KB
页数:37页
时间:2019-09-23
《软件习题课new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件工程习题课1.什么是软件危机?为什么会产生?怎样消除?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。产生软件危机的原因:一、与软件本身的特点有关;二、和软件开发与维护的方法不正确有关。我们可以通过了解产生软件危机的原因,澄清错误认识,建立起关于软件开发和维护的正确概念,及采取一系列综合措施来达到消除的目的。这些措施包括技术措施(方法和工具),组织管理措施,以及运用软件工程理论和实践。2.下列观点是否正确,如果正确的话,请说明理由;如果不正确的话,事实应该怎样?观点1:一旦
2、我们写出了程序并使其正常运行,我们的工作就结束了。观点2:程序真正运行之前,没有办法评估其质量。观点3:一个成功项目唯一应该提交的是运行程序。观点一事实:实践证明:“越早开始写程序,就要花越长的时间才能完”,产业界的数据[Lientz,B.,andE.Swanson,SoftwareMaintenanceManagement,Addison-Wesley,1980]表明在一个程序上所投入的50%到70%的努力是花费在第一次将程序交给用户之后。观点二事实:从项目一开始就可以应用的最有效的软件质量管理保证机制是正式的技术复审。软件质量复审是“质量的过滤器”,比起通过测试找到某类软件的错误要有
3、效得多。观点三事实:运行程序仅是软件配制的一部分,软件配置包括:程序、文档和数据。文档是成功开发的基础,更重要的是,文档为软件维护提供了指导。3.软件工程过程有哪几个基本过程活动?试说明之。软件工程过程的基本过程活动有4步:·P(Plan):软件规格说明。规定软件的功能及其运行的限制;·D(Do):软件开发。产生满足规格说明的软件;·C(Check):软件确认。确认软件能够完成客户提出的要求;·A(Action):软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。4.什么是软件过程?它与软件工程方法学有何关系?软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完
4、成各项任务的工作步骤。软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。5.试论述瀑布模型软件开发方法的基本过程。瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。然而软件开发的实践表明,上述各项活动之间并非完全是自上而下,呈线性图式。实际情况是,每项开发活动均应具有以下特征:(1)从上一项活动接受本项活动的工作对象,做为输入
5、;(2)利用这一输入实施本项活动应完成的内容;(3)给出本项活动的工作成果,做为输出传给下一项活动;(4)对本项活动实施的工作进行评审。若其工作得到确认,则继续进行下一项活动,否则返回前项,甚至更前项的活动进行返工。2-4软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。软件工程方法为软件开发提供了“如何做”的技术。软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。2-5为什么说分阶段的生命周期模型有助于软件项目的管理?软件是计算机系统的逻辑部件而不是物理部件,其
6、固有的特点是缺乏可见性,因此管理和控制软件开发过程相当困难。分阶段的生命周期模型提高了软件项目的可见性。管理者可以把各个阶段任务的完成作为里程碑来对软件开发过程进行管理。把阶段分得越细就越能够密切地监控软件项目的进展情况。2-6假定你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本的开发。由于市场竞争激烈,公司规定了严格的完成期限并且已经对外公布。你打算采取哪种软件生命周期模型?为什么?对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此选择生命周期模型时应该着重考虑哪种模型有助于加快产品的开发进度。使用增量模型开发软件时开以
7、并行完成开发工作,因此能加快开发进度。(具体说明:从陈述事实可以得到3个结论:1,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;2,该公司软件工程师对字处理软件很熟悉,有丰富的开发经验,具有增量模型开发新版字处理软件所需要的技术水平;3,该软件受到广大用户的喜爱,今后很可能还需要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩
此文档下载收益归作者所有