正在加载图片...
中国科学:信息科学第50卷第11期 性和效率的科学评估和保障,如以服务一致性,对服务干扰程度、停顿时间和性能损失评估质量,以构 件级一致性维护、代码级更新错误恢复和系统级更新测试保障质量:以及基于模型的持续演化策略构 造及验证,如以层次化自适应和在线学习规划解决不确定性和不可预见性问题.这方面的几项技术协 作实现评估和保障环境质量和软件一致性演化的目标. 我们把支撑软件可成长性的关键技术分为赋能关键技术和外围关键支撑两部分,前者直接负责软 件开放环境感知与自适应、无缝演化和过程演进,以及演化质量评估方法和保障机制3个重要方面, 后者从静态分析、动态检测和安全分析3方面辅助支撑软件的可成长性.接下来我们分析和总结这些 关键技术的当前研究进展. 4.2赋能关键技术的研究进展 针对软件开放环境感知与自适应、无缝演化和过程演进,以及演化质量评估方法和保障机制3个 重要方面的赋能关键技术.我们先分析其解决思路,这大致可分为可成长软件内化自主适应能力与质 量保障,以及可成长软件内化过程演进能力与质量保障这两部分 可成长软件内化自主适应能力与质量保障.软件要准确、高效地理解环境和资源的变化,就必须 应对其从环境和资源处获得不精确、不完整,甚至相互冲突上下文数据的技术挑战,这要求有高效的 环境上下文一致性处理技术.“一致性处理”意味“看得透”,即要确保上下文数据的质量;“高效”意 味“做得快”,要能在软件运行时高性能地检测和修复上下文数据的错误.我们的目标是实现环境上下 文处理效率的数量级提升,解决思路是细粒度多维度优化.具体而言,对每次约束检测的调度,如果上 下文数据前后关联,我们可采用强耦合增量式约束检测,达成“单步更高效”,如果数据前后无关,我们 可采用弱耦合并行式约束检测,达成“多步能并行”,以双管齐下,实现单次调度加速的效果:对多次约 束检测的调度,我们可识别其中的无效调度(即不检测也无漏报错误),采用跨跃式检测调度,达成“跨 越批处理”,以实现多次调度加速的效果.两方面综合起来,我们在约束检测调度内和调度间分别进行 细粒度和多维度的优化.可期望实现环境上下文处理效率的数量级提升 可成长软件内化过程演进能力与质量保障.软件要支持在线更新并挖掘用户需求的变化,就必须 解决“怎么变”的技术问题和“变什么”的需求问题.对前者,要求有高一致、低干扰的软件在线更新 和版本热部署技术,对后者,要求有面向开发生态的运维推荐和用户需求分析技术.在软件在线更新 方面(即“怎么变”),我们的目标是实现更新过程的服务一致性,并降低对服务的干扰程度、停顿时间 和性能损失,解决思路是在线式多层面更新.具体而言,在架构层,我们可利用依赖分析支持过程的动 态迁移:在构件层,我们可基于动态依赖降低对服务的干扰;在代码层,我们可使用延时更新缩短服务 的中断时间.而在用户需求挖掘方面(即“变什么”),我们既可从社交活动中分析用户的需求,即通过 软件使用行为和评价信息分析用户潜在需求并辅助以用户具体评论文本构建用户显式需求,也可从日 常行为中推断用户的需求,即在感知层收集用户可观测行为、心理和生理数据,在融合层分析多源异 构数据,解决其中冗余、噪声和数据缺失等问题,在理解层建立用户行为、思维和社会关系模型.此外 既与“怎么变”又与“变什么”密切相关的一个技术问题是如何面向开发生态进行正确、合适的运维 推荐(即由谁来解决如何开发和维护问题),我们的解决思路是利用开发者能力建模和项目成员推荐, 即通过开发者的项目经历建模其个体能力和协作方式,之后在项目发生人员变动时可推荐最适合此项 目团队的成员」 以下我们结合这两部分的解决思路,分析和总结目前在开放环境感知与自适应方法和技术、软件 无缝演化和过程演进支撑技术,以及软件演化质量评估方法和保障机制这3方面赋能关键技术上的进 展.限于篇幅,我们在每个技术点上仅列举一至两项代表性工作 1603 https://engine.scichina.com/doi/10.1360/SSI-2020-0079中国科学 : 信息科学 第 50 卷 第 11 期 性和效率的科学评估和保障, 如以服务一致性, 对服务干扰程度、停顿时间和性能损失评估质量, 以构 件级一致性维护、代码级更新错误恢复和系统级更新测试保障质量; 以及基于模型的持续演化策略构 造及验证, 如以层次化自适应和在线学习规划解决不确定性和不可预见性问题. 这方面的几项技术协 作实现评估和保障环境质量和软件一致性演化的目标. 我们把支撑软件可成长性的关键技术分为赋能关键技术和外围关键支撑两部分, 前者直接负责软 件开放环境感知与自适应、无缝演化和过程演进, 以及演化质量评估方法和保障机制 3 个重要方面, 后者从静态分析、动态检测和安全分析 3 方面辅助支撑软件的可成长性. 接下来我们分析和总结这些 关键技术的当前研究进展. 4.2 赋能关键技术的研究进展 针对软件开放环境感知与自适应、无缝演化和过程演进, 以及演化质量评估方法和保障机制 3 个 重要方面的赋能关键技术, 我们先分析其解决思路, 这大致可分为可成长软件内化自主适应能力与质 量保障, 以及可成长软件内化过程演进能力与质量保障这两部分. 可成长软件内化自主适应能力与质量保障. 软件要准确、高效地理解环境和资源的变化, 就必须 应对其从环境和资源处获得不精确、不完整, 甚至相互冲突上下文数据的技术挑战, 这要求有高效的 环境上下文一致性处理技术. “一致性处理” 意味 “看得透”, 即要确保上下文数据的质量; “高效” 意 味 “做得快”, 要能在软件运行时高性能地检测和修复上下文数据的错误. 我们的目标是实现环境上下 文处理效率的数量级提升, 解决思路是细粒度多维度优化. 具体而言, 对每次约束检测的调度, 如果上 下文数据前后关联, 我们可采用强耦合增量式约束检测, 达成 “单步更高效”, 如果数据前后无关, 我们 可采用弱耦合并行式约束检测, 达成 “多步能并行”, 以双管齐下, 实现单次调度加速的效果; 对多次约 束检测的调度, 我们可识别其中的无效调度 (即不检测也无漏报错误), 采用跨跃式检测调度, 达成 “跨 越批处理”, 以实现多次调度加速的效果. 两方面综合起来, 我们在约束检测调度内和调度间分别进行 细粒度和多维度的优化, 可期望实现环境上下文处理效率的数量级提升. 可成长软件内化过程演进能力与质量保障. 软件要支持在线更新并挖掘用户需求的变化, 就必须 解决 “怎么变” 的技术问题和 “变什么” 的需求问题. 对前者, 要求有高一致、低干扰的软件在线更新 和版本热部署技术, 对后者, 要求有面向开发生态的运维推荐和用户需求分析技术. 在软件在线更新 方面 (即 “怎么变”), 我们的目标是实现更新过程的服务一致性, 并降低对服务的干扰程度、停顿时间 和性能损失, 解决思路是在线式多层面更新. 具体而言, 在架构层, 我们可利用依赖分析支持过程的动 态迁移; 在构件层, 我们可基于动态依赖降低对服务的干扰; 在代码层, 我们可使用延时更新缩短服务 的中断时间. 而在用户需求挖掘方面 (即 “变什么”), 我们既可从社交活动中分析用户的需求, 即通过 软件使用行为和评价信息分析用户潜在需求并辅助以用户具体评论文本构建用户显式需求, 也可从日 常行为中推断用户的需求, 即在感知层收集用户可观测行为、心理和生理数据, 在融合层分析多源异 构数据, 解决其中冗余、噪声和数据缺失等问题, 在理解层建立用户行为、思维和社会关系模型. 此外, 既与 “怎么变” 又与 “变什么” 密切相关的一个技术问题是如何面向开发生态进行正确、合适的运维 推荐 (即由谁来解决如何开发和维护问题), 我们的解决思路是利用开发者能力建模和项目成员推荐, 即通过开发者的项目经历建模其个体能力和协作方式, 之后在项目发生人员变动时可推荐最适合此项 目团队的成员. 以下我们结合这两部分的解决思路, 分析和总结目前在开放环境感知与自适应方法和技术、软件 无缝演化和过程演进支撑技术, 以及软件演化质量评估方法和保障机制这 3 方面赋能关键技术上的进 展. 限于篇幅, 我们在每个技术点上仅列举一至两项代表性工作. 1603 https://engine.scichina.com/doi/10.1360/SSI-2020-0079
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有