软件工程实用教程2版课后答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原型进化模型对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统让用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近并最终达到开发目标。跟快速原型不同的是,快速原型在完成需求定义后将被抛弃,而原型进化所要创建的原型则是一个今后要投入应用的系统,只是所创建的原型系统在功能、性能等方面还有许多不足,还没有达到最终的开发目标,需要不断改进。
2.简述软件和软件工程的定义以及软件工程的形成过程。
答案要点:
计算机软件是由计算机程序的发展而形成的一个概念。它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。
3.
4.用户需求调查主要有哪些方法?
答案要点:
用户需求调查主要有研究资料法、问卷调查法、用户访谈和实地观察法等。
5.为什么一个系统的数据流程图一般是一套分层的数据流图?
答案要点:
分层的数据流图体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。图中顶层抽象地描述了整个系统,底层具体地画出了软件的每一个细部,中间层则是从抽象到具体的逐步过渡。按照这样的方法,无论问题多么复杂,分析工作都可以有计划、有步骤、有条不紊地进行。
第三阶段:进入20世纪90年代以后,软件复用和软件构件技术正源自文库步成为主流软件技术,软件工程也由此进入了新的发展阶段——构件软件工程时代。
3.软件工程的目标是什么?如何解决多目标之间的矛盾?
答案要点:
软件工程的目标是基于软件项目目标的成功实现而提出的,主要体现在以下几方面。
软件开发成本较低。
软件功能能够满足用户的需求。
快速原型不能贯穿软件的整个生命周期,它需要和其他的过程模型相结合才能产生作用。例如,前面我们提到的在瀑布模型中应用快速原型,可以解决瀑布模型在需求分析时期存在的不足。
对于一个大型复杂的系统,如果不经过分析来进行整体性划分,想直接用屏幕来一个一个地模拟是很困难的;对于大量运算、逻辑性较强的程序模块,快速原型方法很难构造出模型来供人评价。因此,原型方法只适用于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程的系统。
4.在软件开发中软件工具有什么作用?
答案要点:
软件开发工具使软件在开发效率、工程质量、减少软件开发对人的依赖性等多方面得到改善。软件开发工具本身也是一个软件。软件开发工具与软件开发方法有着密切的关系,软件开发工具是软件方法在计算机上的具体实现
第2章软件生存周期及开发模型
1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?
9.某企业计划开发一个“综合信息管理系统”,该系统涉及销售、供应、财务、生产、人力资源等多个部门的信息管理。该企业的设想是按部门的优先级别逐个实现,边开发边应用。对此需要采用一种比较合适的过程模型,请对这个过程模型做出符合应用需求的选择,并说明选择理由。
答案要点:
可以采用增量模型。它是瀑布模型与原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则把软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构架创建完毕,并都被集成到系统之中交付用户使用。
快速原型方法具有以下一些特点。
快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。一旦需求或设计确定下来,原型就将被抛弃。因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。快速原型往往采用软件生成工具来创建,例如,4GL语言。
快速原型是暂时使用的,因此并不要求完整。它往往针对某个局部问题建立专门原型,如界面原型、工作流原型、查询原型等。
4.一般认为,只有大型项目才采用螺旋模型,其原因是什么?答案要点:
螺旋模型增加了软件项目的风险分析,因为项目规模越大、问题越复杂,资源、成本、进度等因素的不确定性就越大,承担项目所冒的风险也越大。人们进行风险分析与管理的目的就是在造成危害之前及时对风险进行识别、分析、采取对策,从而消除或减少风险所造成的损失。该模型适合于指导大型软件项目的开发,它将软件项目开发划分为制定计划、风险分析、实施开发以及客户评估4类活动。在对风险进行识别和分析时,如果开发风险过大,开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在于它吸收了“进化”的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详细风险分析的必要。因此这种模型比较适合大型的软件项目。
2.什么是用户需求?什么是系统需求?
答案要点:
用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、用户机构的业务范围、工作流程和用户对软件应用的展望等。因此,用户需求也就是关于软件的外界特征的规格表述。
系统需求是比用户需求更具有技术特性的需求陈述。它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统的功能、性能、数据等方面进行规格定义。
5.为什么说构件复用模型是一种有利于软件按工业流程生产的过程模型?答案要点:
构件复用模型最明显的优势是减少了需要开发的软件数量,缩短了软件交付周期,提高了软件的质量,降低了开发风险。由于构件具有一定的通用性,可以在不同的软件系统中被复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件装配汽车一样。构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业流程生产的需要。
2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?
答案要点:
瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。这为提高软件产品质量提供了有效保证。
瀑布模型的特点:
阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。
第1章软件工程引论
1.什么是软件危机?它和软件工程有什么关系?
答案要点:
由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。
答案要点:
软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。
人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。
传统的瀑布模型很难适应需求变化、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种线性的开发过程,缺乏灵活性。
原型模型的提出,可以较好的解决瀑布模型的局限性。
通过建立原型,可以更好的和客户进行沟通,解决对一些模糊需求的澄清,并且对需求的变化有较强的适应能力。原型模型可以减少技术、应用的风险,缩短开发时间,减少费用,提高生产率,通过实际运行原型,提供了用户直接评价系统的方法,促使用户主动参与开发活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能够适应需求的变化,最终有效提高软件系统的质量。
阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。
文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。
3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?
答案要点:
原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。
第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。
第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。20世纪80年代末逐步发展起来的面向对象的分析与设计方法,形成了完整的面向对象技术体系,使系统的生命周期更长,适应更大规模、更广泛的应用。这时,进一步提高软件生产率、保证软件质量就成为软件工程追求的更高目标。软件生产开始进入以过程为中心的第二阶段。软件开发过程从目标管理转向过程管理,形成了软件工程的第二代——过程软件工程时代。
软件性能较好。
软件可靠性高。
软件易于使用、维护和移植。
能按时完成开发任务,并及时交付使用。
软件工程的首要问题是软件质量。软件工程的目的就是在以上目标的冲突之间取得一定程度的平衡。因此,在涉及平衡软件工程目标这个问题的时候,软件的质量应该摆在最重要的位置加以考虑。软件质量可用功能性、可靠性、可用性、效率、可维护性和可移植性等6个特性来评价。

1.如何理解需求分析的任务是确定软件系统“做什么”,而不是“怎么做”?
答案要点:
需求分析的任务是借助当前系统的逻辑模型导出目标系统的逻辑模型。在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在去掉非本质的因素后,根据用户提出的对目标系统的需求,分析当前系统与目标系统的差别,明确目标系统的范围、功能、处理步骤和数据结构,建立目标系统的逻辑模型。需求分析阶段研究的对象是软件项目的用户要求,正确地理解需求和准确地表达需求是需求分析的关键,只有经过确切描述的软件需求才能成为软件设计的基础。
8.具有原型化的瀑布模型具有什么特点?它与瀑布模型最大的不同是什么?答案要点:
特点:
·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中交替或并行运作。因此.在获得了软件需求框架以后,如软件的基本功能被确定以后,就可以直接进入到对软件的开发中。
·原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此.这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。不同是:
·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中交替或并行运作。因此,在获得了软件需求框架以后,例如,软件的基本功能被确定以后,就可以直接进入到对软件的开发中。
原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此,这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。
相关文档
最新文档