正在加载图片...
许畅等:可成长软件理论方法和实现技术:从范型到跨越 3 可成长网构软件理论方法初探 本节探索以网构软件的思想来构建可成长软件的理论方法,分析实现可成长网构软件的可能途 径、其范型机理,以及技术挑战 3.1网构软件理论方法发展的新阶段 网构软件(Internetware)理论方法12,13到已经发展了十多年,从一开始其目标就设立为:让软件从 封闭、静态和可控的传统环境走向开放、动态和难控的互联网环境,这也暗示着软件规约从封闭走向 开放、包容环境的不确定性.由此,网构软件的目标在本质上己包括了当下复杂软件系统正不断承受 环境、资源和需求持续变迁的挑战,因而网构软件理论方法从一开始就有相当的预见性.基于这样的 预见.我们期望软件变得更智能.转变自身从“以不变应万变”的消极姿态变成具有“随机应变”的主 动能力,以应对当下环境、资源和需求不断变迁的挑战 网构软件理论方法的研究经历了前后三期科技部973项目,循序渐进,分别探索了软件协同与资 源共享、环境感知与自主适应,以及持续演进与质量保障3个方面.当前,随着软件的可成长性成为 研究的关注点,该系列的研究也开始探索可成长网构软件的理论、方法和技术,进入了新的阶段, 我们考虑可成长网构软件应该具有4个特征,将其总结为4个“明确”,即明确考虑业务逻辑和适 应逻辑、明确建模环境感知和异常处理、明确支持版本更替和无缝演化,以及明确管理感知效率和演 化质量.由此,可成长网构软件将显式关注并明确实现软件的适应变化、版本演化和开发者支持,呼应 我们先前表述的软件可成长性的内涵和范畴】 3.2实现可成长网构软件的可能途径 由以上分析可知,可成长网构软件是一种新的软件范型,它需要在设计机制上考虑适应变化、版 本演化和开发者支持.为了实现具备这样特征的可成长网构软件,我们考虑3条可能的途径,它们分 别需要回答如何为可成长软件构建提供体系支撑,如何使已有软件具备可成长能力,以及如何使上述 过程智能化和自动化这3个问题.实际上,对这3个问题的回答将解读可成长软件应该是什么样的形 态(即“为何形态”),如何让软件从不可成长变成可成长或增强其成长能力(即“如何转变”),以及实 现软件成长的自动化(即“智能支持”).通俗地说,这3个问题大致等价于:天生的可成长软件长什么 样,如何改造传统软件变成这样,以及怎样自动做到这点 为何形态.要回答如何为可成长软件构建提供体系支撑,我们需要研究可成长软件的范型、机理 和方法学.具体而言,这条途径从架构出发,研究可成长软件之架构模型、运行机理、构造方法和质量 保障,使软件具备自主适应和持续演化能力,实现其感知、适应和学习等智能化手段, 如何转变.要回答如何使已有软件具备可成长能力,我们需要研究软件可成长性的挖掘和增强技 术.具体而言,这条途径从资源出发,研究应用资源使用和资源依赖关系的挖掘和理解,以及增强软件 生存能力的自适应配置调整. 智能支持.要回答如何使上述过程智能化和自动化,我们需要研究数据驱动的软件构造和成长技 术.具体而言,这条途径从数据出发,实现数据驱动的软件构造和演化规律及模式获取,基于软件演化 历史数据,在新的演化任务中实现自动化 以上3条途径在逻辑上是连贯的,同时又是3种实现方式,分别考虑了如何重新设计可成长软件、 如何改造成为可成长软件,以及如何革命性地直接合成新软件.它们分别由南京大学、中国人民解放 军国防科技大学和北京大学团队主要研究,而我们南京大学团队主要关注第1条途径,以阐明可成长 1598 https://engine.scichina.com/doi/10.1360/SSI-2020-0079许畅等: 可成长软件理论方法和实现技术: 从范型到跨越 3 可成长网构软件理论方法初探 本节探索以网构软件的思想来构建可成长软件的理论方法, 分析实现可成长网构软件的可能途 径、其范型机理, 以及技术挑战. 3.1 网构软件理论方法发展的新阶段 网构软件 (Internetware) 理论方法 [12, 13] 已经发展了十多年, 从一开始其目标就设立为: 让软件从 封闭、静态和可控的传统环境走向开放、动态和难控的互联网环境, 这也暗示着软件规约从封闭走向 开放、包容环境的不确定性. 由此, 网构软件的目标在本质上已包括了当下复杂软件系统正不断承受 环境、资源和需求持续变迁的挑战, 因而网构软件理论方法从一开始就有相当的预见性. 基于这样的 预见, 我们期望软件变得更智能, 转变自身从 “以不变应万变” 的消极姿态变成具有 “随机应变” 的主 动能力, 以应对当下环境、资源和需求不断变迁的挑战. 网构软件理论方法的研究经历了前后三期科技部 973 项目, 循序渐进, 分别探索了软件协同与资 源共享、环境感知与自主适应, 以及持续演进与质量保障 3 个方面. 当前, 随着软件的可成长性成为 研究的关注点, 该系列的研究也开始探索可成长网构软件的理论、方法和技术, 进入了新的阶段. 我们考虑可成长网构软件应该具有 4 个特征, 将其总结为 4 个 “明确”, 即明确考虑业务逻辑和适 应逻辑、明确建模环境感知和异常处理、明确支持版本更替和无缝演化, 以及明确管理感知效率和演 化质量. 由此, 可成长网构软件将显式关注并明确实现软件的适应变化、版本演化和开发者支持, 呼应 我们先前表述的软件可成长性的内涵和范畴. 3.2 实现可成长网构软件的可能途径 由以上分析可知, 可成长网构软件是一种新的软件范型, 它需要在设计机制上考虑适应变化、版 本演化和开发者支持. 为了实现具备这样特征的可成长网构软件, 我们考虑 3 条可能的途径, 它们分 别需要回答如何为可成长软件构建提供体系支撑, 如何使已有软件具备可成长能力, 以及如何使上述 过程智能化和自动化这 3 个问题. 实际上, 对这 3 个问题的回答将解读可成长软件应该是什么样的形 态 (即 “为何形态”), 如何让软件从不可成长变成可成长或增强其成长能力 (即 “如何转变”), 以及实 现软件成长的自动化 (即 “智能支持”). 通俗地说, 这 3 个问题大致等价于: 天生的可成长软件长什么 样, 如何改造传统软件变成这样, 以及怎样自动做到这点. 为何形态. 要回答如何为可成长软件构建提供体系支撑, 我们需要研究可成长软件的范型、机理 和方法学. 具体而言, 这条途径从架构出发, 研究可成长软件之架构模型、运行机理、构造方法和质量 保障, 使软件具备自主适应和持续演化能力, 实现其感知、适应和学习等智能化手段. 如何转变. 要回答如何使已有软件具备可成长能力, 我们需要研究软件可成长性的挖掘和增强技 术. 具体而言, 这条途径从资源出发, 研究应用资源使用和资源依赖关系的挖掘和理解, 以及增强软件 生存能力的自适应配置调整. 智能支持. 要回答如何使上述过程智能化和自动化, 我们需要研究数据驱动的软件构造和成长技 术. 具体而言, 这条途径从数据出发, 实现数据驱动的软件构造和演化规律及模式获取, 基于软件演化 历史数据, 在新的演化任务中实现自动化. 以上 3 条途径在逻辑上是连贯的, 同时又是 3 种实现方式, 分别考虑了如何重新设计可成长软件、 如何改造成为可成长软件, 以及如何革命性地直接合成新软件. 它们分别由南京大学、中国人民解放 军国防科技大学和北京大学团队主要研究, 而我们南京大学团队主要关注第 1 条途径, 以阐明可成长 1598 https://engine.scichina.com/doi/10.1360/SSI-2020-0079
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有