论软件的静态演化和动态演化及其应用 软件演化(Software Evolution)是指软件在其生命周期内的更新行为和过程。演化是一系列贯穿软件生命周期始终的活动,系统需求改变、功能实现增强、新功能加入、软件架构改变、软件缺陷修复、运行环境改变均要求软件系统能够快速适应变化,具有较强的演化能力。软件静态演化(Static Evolution)和动态演化(Dynamic Evolution)是目前软件演化的两种重要类型。 请围绕"软件的静态演化和动态演化及其应用"论题,依次从以下3个方面进行论述: ①概要

题目

论软件的静态演化和动态演化及其应用 软件演化(Software Evolution)是指软件在其生命周期内的更新行为和过程。演化是一系列贯穿软件生命周期始终的活动,系统需求改变、功能实现增强、新功能加入、软件架构改变、软件缺陷修复、运行环境改变均要求软件系统能够快速适应变化,具有较强的演化能力。软件静态演化(Static Evolution)和动态演化(Dynamic Evolution)是目前软件演化的两种重要类型。 请围绕"软件的静态演化和动态演化及其应用"论题,依次从以下3个方面进行论述: ①概要叙述你参与管理和开发的软件项目及你在其中所担任的主要工作 ②请分别对软件静态演化和动态演化的特点进行论述,说明两种软件演化类型各自的优缺点及其应用场合,并举例说明各自的常见演化技术手段 ③具体阐述你参与管理和开发的项目中所进行的软件演化活动的特点、演化的类型,以及所采取的对应演化技术手段,说明具体实施过程及实际应用的效果。


相似考题
更多“论软件的静态演化和动态演化及其应用 软件演化(Software”相关问题
  • 第1题:

    常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。其中(15)模型适用于需求明确或很少变更的项目,(16)模型主要用来描述面向对象的软件开发过程。

    A.瀑布模型

    B.演化模型

    C.螺旋模型

    D.喷泉模型


    正确答案:A
    解析:本题考查的是常见的软件开发模型的基本概念。瀑布模型给出了软件生存周期中制定开发计划、需求分析、软件设计、编码、测试和维护等阶段以及各阶段的固定顺序,上一阶段完成后才能进入到下一阶段,整个过程如同瀑布流水。该模型为软件的开发和维护提供了一种有效的管理模式,但在大量的实践中暴露出其缺点,其中最为突出的是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。这些问题有可能造成开发出的软件并不是用户真正需要的,并且这一点只有在开发过程完成后才能发现。所以瀑布模型适用于需求明确,且很少发生较大变化的项目。为了克服瀑布模型的上述缺点,演化模型允许在获取了一组基本需求后,通过快速分析构造出软件的一个初始可运行版本(称作原型),然后根据用户在适用原型的过程中提出的意见对原型进行改进,从而获得原型的新版本。这一过程重复进行,直到得到令用户满意的软件。该模型和螺旋模型、喷泉模型等适用于对软件需求缺乏明确认识的项目。螺旋模型将瀑布模型和演化模型进行结合,在保持二者优点的同时,增加了风险分析,从而弥补了二者的不足。该模型沿着螺线旋转,并通过笛卡尔坐标的四个象限分别表示四个方面的活动:制定计划、风险分析、实施工程和客户评估。螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。喷泉模型是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型。该模型主要用于描述面向对象的开发过程,体现了面向对象开发过程的迭代和无间隙特性。迭代指模型中的活动通常需要重复多次,相关功能在每次迭代中被加入新的系统。无间隙是指在各开发活动(如分析、设计、编码)之间没有明显边界。

  • 第2题:

    传统的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。下图给出的软件开发过程属于(49)模型。

    A.瀑布

    B.演化

    C.螺旋

    D.喷泉


    正确答案:A
    解析:图中的模型是典型的瀑布模型,给出了软件开发过程中的各种活动,以及活动之间的相互衔接顺序:实线箭头表示上一活动完成后才能开始下一活动,虚线箭头表示在某一活动中发现错误时,需要向上一活动进行反馈,并返回上一活动,甚至更前面的活动进行返工。这种开发过程缺乏灵活性,无法很好地解决软件需求不明确的问题,也难以支持面向对象开发方法。

  • 第3题:

    传统的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。图7-1所示的软件开发过程属于______模型。

    A.瀑布

    B.演化

    C.螺旋

    D.喷泉


    正确答案:D
    解析:从图中可以看出,各个开发阶段间具有顺序性和依赖性。这个特点有两重含义:①必须等前一阶段的工作完成之后,才能开始后一阶段的工作。②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。但是,人在工作过程中不可能不犯错误。在设计阶段可能发现规格说明文档中的错误,而设计上的缺陷或错误可能在实现过程中显现出来,在综合测试阶段将发现需求分析、设计或编码阶段的许多错误。因此,实际的瀑布模型是带“反馈环”的,如图中所示的虚线(实线箭头表示开发过程,虚线箭头表示维护过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。这个图是典型的瀑布模型。本题正确答案为选项A。

  • 第4题:

    常见的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。其中(54)适用于需求明确或很少变更的项目。

    A.瀑布模型

    B.演化模型

    C.螺旋模型

    D.喷泉模型


    正确答案:A
    解析:瀑布模型是一种将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护6个基本活动,并且规定了它们自上而下、相互衔接的固定次序的系统开发方法。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证,它适用于需求明确或很少变更的项目。演化模型主要针对事先不能完整定义需求的软件开发项目。根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用并提出反馈。开发人员根据用户的反馈,实施开发的迭代过程。每一次迭代过程由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。也可将该模型看作是重复执行的多个“瀑布模型”。螺旋模型是指将瀑布模型和快速原型模型结合起来,强调风险分析的一种开发模型。喷泉模型基于对象驱动,主要用于描述面向对象的开发过程。其开发过程具有迭代性和无间隙性,“迭代”意味着模型中的开发活动常常需要多次重复,每次重复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动。“无间隙”是指在开发活动(如分析、设计、编程)之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。

  • 第5题:

    软件开发模型用于指导软件开发。演化模型是在快速开发一个 ( ) 的基础上,逐步演化成最终的软件。螺旋模型综合了(请作答此空)的优点,并增加了( )。喷泉模型描述的是面向( )的开发过程,反映了该开发过程的 ( ) 特征。

    A.瀑布模型和演化模型
    B.瀑布模型和喷泉模型
    C.演化模型和喷泉模型
    D.原型和喷泉模型

    答案:A
    解析:
    软件开发模型是指软件开发全部过程、活动和任务的结构框架。常用的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。瀑布模型给出了软件生存周期各阶段的固定顺序,上一阶段完成后才能进入下一阶段。演化模型是在快速开发一个原型的基础上,根据用户在试用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本。重复这一过程,直到演化成最终的软件产品。螺旋模型将瀑布模型和演化模型相结合,它综合了两者的优点,并增加了风险分析。它以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制订计划、风险分析、实施工程、客户评价等活动,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的软件。喷泉模型主要用来描述面向对象的开发过程。它体现了面向对象开发过程的迭代和无间隙特征。迭代意味着模型中的开发活动常常需要多次重复;无间隙是指开发活动(如分析、设计)之间不存在明显的边界,各项开发活动往往交叉迭代地进行。

  • 第6题:

    构件组装成软件系统的过程可以分为三个不同的层次: ( )。

    A. 初始化、互连和集成
    B. 连接、集成和演化
    C. 定制、集成和扩展
    D. 集成、扩展和演化

    答案:C
    解析:

  • 第7题:

    对软件风险分析给予高度重视的软件开发模型是()。

    • A、瀑布模型
    • B、渐增模型
    • C、演化模型
    • D、螺旋模型

    正确答案:D

  • 第8题:

    软件生存周期模型中,体现了软件创建所固有的迭代和无间隙特征的是()

    • A、瀑布模型
    • B、增量模型
    • C、演化模型
    • D、喷泉模型

    正确答案:D

  • 第9题:

    试说明演化模型软件开发方法的基本过程,比较它的优点和缺点。


    正确答案: 由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。因此,可以先做试验开发,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。通常把第一次得到的试验性产品称为“原型”。
    演化模型从需求分析开始。软件开发人员与用户一起定义待开发软件系统的总目标,定义需求,确定软件的工作范围。然后快速设计软件中对使用者可见部分的表示,进而建造原型,再让用户或客户评估原型,根据评估结果,修改和细化待开发软件系统的需求,使之满足用户的需求。这个过程是一个迭代的过程。
    演化模型的优点是:
    演化模型能够得到更好的软件需求,它不仅能够处理模糊的需求,而且开发人员与用户可通过原型充分进行交流;
    演化模型给用户提供了机会,以更改用户原来设想的不尽合理的最终系统;
    演化模型使得开发出来的最终系统更容易维护,对用户更友好;
    演化模型可以降低总的开发费用,缩短开发时间。
    演化模型的缺点是:
    对于开发人员不熟悉的领域,演化模型可能误导开发者把系统的次要部分当作主要框架,作出不切题的原型;
    原型过快地收敛于需求集合,使得某些基本方面被忽视;
    长期在原型环境下开发,只注意得到令人满意的原型,容易“遗忘”用户环境与实际客户环境之间的差别。

  • 第10题:

    单选题
    常见的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等,其中(1)适用于需求明确或很少变更的项目,(2)主要用来描述面向对象的软件开发过程。空白(1)处填()
    A

    瀑布模型

    B

    演化模型

    C

    螺旋模型

    D

    喷泉模型


    正确答案: A
    解析: 本题主要考查软件项目的技术开发过程4个模型的特点及使用情况。瀑布模型适用于需求明确或很少变更的项目,也可以用在已有类似项目开发经验的项目上。它是一种线性顺序模型,一般将软件开发分为可行性分析、需求分析、软件设计、编码、测试、运行维护等几个阶段。瀑布模型不灵活,特别是无法解决软件需求不明确的问题。为了解决瀑布模型的缺点,演化模型允许在获取了一组基本需求之后,通过快速分析构造待建系统的可运行版本(原型),然后再根据用户在使用原型的过程中提出的意见对原型进行修改。这一过程重复进行,直到得到用户满意的系统。该模型和螺旋模型、喷泉模型等适用于对软件需求缺乏明确描述的项目。螺旋模型将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。喷泉模型是以面向对象的软件开发方法为基础,以用户需求为导向,以对象来驱动的模型。该模型主要用于描述面向对象的开发过程,体现了面向对象开发过程的迭代和连续性。迭代模型中的活动需要重复多次,相关功能在每次迭代中被加入到新的系统,连续性是指在各开发活动之间没有明确的界限。

  • 第11题:

    填空题
    常见的软件配置演化模型()和()。

    正确答案: 有线性演化模型,树演化模型
    解析: 暂无解析

  • 第12题:

    问答题
    说明微观演化和宏观演化的区别?

    正确答案: 两者在时间尺度上有明显区别,微观演化发生在相对较短的时间内而宏观演化在地质时间内发生。
    解析: 暂无解析

  • 第13题:

    ● 传统的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。下图给出的软件开发过程属于 (49) 模型。

    (49)A. 瀑布 B. 演化 C. 螺旋 D. 喷泉


    正确答案:A

  • 第14题:

    (29)开发过程模型最不适用开发初期对软件需求缺乏准确全面认识的情况。A.瀑布B.演化S

    (29)开发过程模型最不适用开发初期对软件需求缺乏准确全面认识的情况。

    A.瀑布

    B.演化

    C.螺旋

    D.增量


    正确答案:A
    瀑布模型是一种经典的开发模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。瀑布模型的突出缺点是不适应用户需求的变化。

  • 第15题:

    常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。其中(15)适用于需求明确或很少变更的项目。

    A.瀑布模型

    B.演化模型

    C.螺旋模型

    D.喷泉模型


    正确答案:A
    解析:瀑布模型是一种将系统按软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序的系统开发方法。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证,它适用于需求明确或很少变更的项目。演化模型主要针对事先不能完整定义需求的软件开发项目。根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用并有效地提出反馈。开发人员根据用户的反馈,实施开发的迭代过程。每一次迭代过程由需求、设计、编码、测试和集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。也可将该模型看做是重复执行的多个“瀑布模型”。螺旋模型是指将瀑布模型和快速原型模型结合起来,强调风险分析的一种开发模型。喷泉模型基于对象驱动,主要用于描述面向对象的开发过程。其开发过程具有迭代性和无间隙性,“迭代”意味着模型中的开发活动常常需要多次重复,每次重复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动。“无间隙”是指在开发活动(如分析、设计、编程)之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。

  • 第16题:

    演化模型把首次试验性开发出的软件产品有几种处理形式:()。

    A.继续演化

    B.样品

    C.提交

    D.丢弃


    答案:ABCD

  • 第17题:

    常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。( )模型主要用来描述面向对象的软件开发过程。

    A.瀑布模型
    B.演化模型
    C.螺旋模型
    D.喷泉模型

    答案:D
    解析:
    本题考查的是常见的软件开发模型的基本概念。
    瀑布模型给出了软件生存周期中制订开发计划、需求分析、软件设计、编码、测试和维护等阶段以及各阶段的固定顺序,上一阶段完成后才能进入到下一阶段,整个过程如同瀑布流水。该模型为软件的开发和维护提供了一种有效的管理模式,但在大量的实践中暴露出其缺点,其中最为突出的是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。这些问题有可能导致开发出的软件并不是用户真正需要的,并且这一点只有在开发过程完成后才能发现。因此,瀑布模型适用于需求明确且很少发生较大变化的项目。
    为了克服瀑布模型的上述缺点,演化模型允许在获取了一组基本需求后,通过快速分析构造出软件的一个初始可运行版本(被称为原型),然后根据用户在适用原型的过程中提出的意见对原型进行改进,从而获得原型的新版本。这一过程重复进行,直到得到令用户满意的软件。该模型和螺旋模型、喷泉模型等适用于对软件需求缺乏明确认识的项目。
    螺旋模型将瀑布模型和演化模型进行结合,在保持二者优点的同时,增加了风险分析,从而弥补了二者的不足。该模型沿着螺线旋转,并通过笛卡尔坐标的四个象限分别表示四个方面的活动:制订计划、风险分析、实施工程、客户评估。螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。
    喷泉模型是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型。该模型主要用于描述面向对象的开发过程,体现了面向对象开发过程的迭代和无间隙特性。迭代指模型中的活动通常需要重复多次,相关功能在每次迭代中被加入新的系统。无间隙指在各开发活动(如分析、设计、编码)之间没有明显边界。
    参考答案:D

  • 第18题:

    ( )模型吸收了软件工程“演化”的概念,使用原型及其他方法来尽量降低风险,适合于大型复杂软件系统的开发。

    A.瀑布
    B.原型
    C.喷泉
    D.螺旋

    答案:D
    解析:
    喷泉模型适合于用面向对象技术进行开发。螺旋模型结合了瀑布模型和原型模型两类模型,并加入了风险分析,适合于大型复杂软件系统的开发。

  • 第19题:

    常见的软件配置演化模型()和()。


    正确答案:有线性演化模型;树演化模型

  • 第20题:

    常见的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等,其中(1)适用于需求明确或很少变更的项目,(2)主要用来描述面向对象的软件开发过程。空白(2)处填()

    • A、瀑布模型
    • B、演化模型
    • C、螺旋模型
    • D、喷泉模型

    正确答案:D

  • 第21题:

    单选题
    对软件风险分析给予高度重视的软件开发模型是()。
    A

    瀑布模型

    B

    渐增模型

    C

    演化模型

    D

    螺旋模型


    正确答案: C
    解析: 暂无解析

  • 第22题:

    单选题
    软件生存周期模型中,体现了软件创建所固有的迭代和无间隙特征的是()
    A

    瀑布模型

    B

    增量模型

    C

    演化模型

    D

    喷泉模型


    正确答案: D
    解析: 暂无解析

  • 第23题:

    问答题
    论软件的静态演化和动态演化及其应用 软件演化(Software Evolution)是指软件在其生命周期内的更新行为和过程。演化是一系列贯穿软件生命周期始终的活动,系统需求改变、功能实现增强、新功能加入、软件架构改变、软件缺陷修复、运行环境改变均要求软件系统能够快速适应变化,具有较强的演化能力。软件静态演化(Static Evolution)和动态演化(Dynamic Evolution)是目前软件演化的两种重要类型。 请围绕"软件的静态演化和动态演化及其应用"论题,依次从以下3个方面进行论述: ①概要叙述你参与管理和开发的软件项目及你在其中所担任的主要工作 ②请分别对软件静态演化和动态演化的特点进行论述,说明两种软件演化类型各自的优缺点及其应用场合,并举例说明各自的常见演化技术手段 ③具体阐述你参与管理和开发的项目中所进行的软件演化活动的特点、演化的类型,以及所采取的对应演化技术手段,说明具体实施过程及实际应用的效果。

    正确答案: 写作要点
    本题考查的知识点是软件演化。一个软件系统开发完毕正式投入使用之后,如果需求发生变化,或者要将该系统移植到另一个环境运行,且新环境的需求也有相应的变化时,就要对软件进行修改,这就是软件演化。软件演化是一个程序不断调节以满足新的软件需求的过程,也就是对一个已有软件不断进行修改、补充、完善以适用新需求和环境变化的过程。由于软件演化一词并不多见,所以难倒了很多考生。其实换一种讲法,可能大家就倍感亲切了--"软件升级",其实演化的本质就是在升级。既然是升级,静态演化与动态演化是怎么回事也就好理解了,即升级时是否停止系统的运行。所以如果有了上面的基础概念理解,写该论文的方向也就明晰了。
    文章共分3个部分组织内容。
    第一部分,简要叙述作者所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。
    第二部分,偏理论,需要介绍静态演化和动态演化的基本情况,写作时可参考以下材料。
    静态演化(Static Evolution),静态演化是指软件在停机状态下的演化。其优点是不用考虑运行状态的迁移,同时也没有活动的进程需要处理。然而停止一个应用程序就意味着中断它提供的服务,造成软件暂时失效。
    软件静态演化是指发生在应用程序停止时的软件修改和更新,即一般意义上的软件维护和升级。静态演化的优点是没有状态迁移或活动线程的问题要解决,缺陷是停止应用程序意味着停止它所提供的服务,也就是使软件系统暂时失效。在软件交付之后,静态演化(类似于一般意义上的软件维护)就成为软件变更的一个常规过程。变更可以是一种更正代码错误的简单变更,也可以是更正设计错误的较大范围的变更,还可以是对描述错误进行修正或提供新需求这样的重大改进。有3种不同的软件维护:改正性维护、适应性维护和完善性维护。维护过程一般包括变更分析、版本规划、系统实现和向客户交付系统等活动。
    在面向对象技术中,使用子类型方法来扩展程序,它适合于软件静态演化和代码重用。子类型化一个类意味着保留父类中的参数和方法,并尽可能地增加新的参数和方法。另外,使用重载和多态性作为主要的演化机制。实际上,建立类的新版本,最简单的机制是创建它的子类,然后重载需要变更的方法,最后,使用多态性调用新创建的方法。在基于构件的软件技术中,构件采取接口和实现相分离技术,构件之间只能通过接口进行通信,这使得具有兼容接口的不同构件实现可以相互取代,从而成为软件静态演化的一条途径。
    动态演化(Dynamic Evolution),动态演化是指软件在执行期间的软件演化。其优点是软件不会存在暂时的失效,有持续可用性的明显优点。但由于涉及状态迁移等问题,比静态演化从技术上更难处理。
    动态演化是最复杂也是最有实际意义的演化形式。动态演化使得软件在运行过程中,可以根据应用需求和环境变化,动态地进行软件的配置、维护和更新,其表现形式包括系统元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性。软件的动态演化特性对于适应未来软件发展的开放性、动态性具有重要意义。
    动态演化是指软件在运行期间的演化。在许多重要的应用领域中,如金融、电力、电信及空中交通管制等,系统的持续可用性是一个关键性的要求,运行时刻的系统演化可减少因关机和重新启动而带来的损失和风险。此外,越来越多的其他类型的应用软件也提出了运行时刻演化的要求,在不必对应用软件进行重新编译和加载的前提下,为最终用户提供系统定制和扩展的能力。
    动态演化可分为两种类型:预设的和非预设的。在Web环境中,软件应用常常需要处理多种类型的信息,因此它们常被设计为可以动态下载并安装插件以处理当前所面临的新类型的信息;而分布式Web应用也常常需要增减内部处理节点的数目以适应多变的负载。这些动态改变都是软件设计者能够预先设想到的,可实现为系统的固有功能。另有一些必须对系统配置进行修改和调整的情况是直到系统投入运行以后才发现的,这就要求系统能够处理在原始设计中没有完全预料到的新需求。这种情况下一般需要关闭整个系统,重新开发、重新装入并重新启动系统。然而,为了进行局部的修改而关闭整个系统在某些情况下是不允许的(如关键运行系统)或者代价太高。精心设计的动态演化技术可以在不关闭整个系统的前提下修改系统的结构配置,并尽量使未受影响的部分继续工作以提高系统的可用度。
    为支持软件的动态演化性,已在语言、机制和环境等方面做了大量工作。在程序语言的层次上,引进各种机制以支持软件动态演化,例如,动态装载技术允许增加代码到已运行的程序中,延迟绑定是在运行时而不是编译时决定类和对象的绑定。Javahotswap允许在运行时改变方法:当一个方法终止时这个方法的新版本可以有效地替换旧版本,在类层次上代码的二进制兼容被支持。Gilgul语言也允许更换运行时对象。但程序语言层次上的动态演化机制仅局限于函数、类方法和对象等小粒度的替换,只支持预设的有限变更,变更由事件触发。
    通过标准化运行级构件的规约,依靠构件运行平台(中间件平台)提供的基础设施,使软件在构件层次上的动态演化成为可能。中间件中具有的如命名服务、反射技术和动态适配等机制,为运行态构件的动态替换和升级提供支撑,从而推动了软件动态演化的发展。命名服务就是给构件实例提供一个名称,以便客户通过这些名称来获取构件实例。对工业标准构件EJB和CORBA构件的引用都可以通过中间件平台的命名服务进行。同一构件标识可以被映射到多个构件实例,从而根据具体情境对某一名字的构件引用导向到不同的构件实例。反射技术是系统的一种自描述(Self-Representation)和自推理的技术,它提供了关于自身行为的表示,这种表示可以被检查和调整,且与它所描述的系统行为是因果相联(Causally Connected)的。因果相联,意味着对自身表示的改动将立即反映在系统的实际状态和行为中,反之亦然。将反射性引入中间件能够以可控的方式开放平台内部的实现,从而提高中间件的定制能力和运行时的适应能力。动态适配机制中比较著名的是CORBA提供的动态接口服务:动态调用接口DII和动态骨架接口DSI。前者支持动态客户请求调用,而后者支持将请求动态指派(Dispatch)给构件。因此,软件构件化技术使得软件具有良好的构造性,软件演化的粒度更大。中间件技术则为基于构件的软件动态演化提供了坚实的基础设施和方便的操作界面。
    第三部分需要结合作者自身的项目情况进行描述,这部分应是详细描述的部分。
    解析: 暂无解析

  • 第24题:

    问答题
    试说明演化模型软件开发方法的基本过程,比较它的优点和缺点。

    正确答案: 由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。因此,可以先做试验开发,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。通常把第一次得到的试验性产品称为“原型”。
    演化模型从需求分析开始。软件开发人员与用户一起定义待开发软件系统的总目标,定义需求,确定软件的工作范围。然后快速设计软件中对使用者可见部分的表示,进而建造原型,再让用户或客户评估原型,根据评估结果,修改和细化待开发软件系统的需求,使之满足用户的需求。这个过程是一个迭代的过程。
    演化模型的优点是:
    演化模型能够得到更好的软件需求,它不仅能够处理模糊的需求,而且开发人员与用户可通过原型充分进行交流;
    演化模型给用户提供了机会,以更改用户原来设想的不尽合理的最终系统;
    演化模型使得开发出来的最终系统更容易维护,对用户更友好;
    演化模型可以降低总的开发费用,缩短开发时间。
    演化模型的缺点是:
    对于开发人员不熟悉的领域,演化模型可能误导开发者把系统的次要部分当作主要框架,作出不切题的原型;
    原型过快地收敛于需求集合,使得某些基本方面被忽视;
    长期在原型环境下开发,只注意得到令人满意的原型,容易“遗忘”用户环境与实际客户环境之间的差别。
    解析: 暂无解析