计算机科学与探索 ›› 2016, Vol. 10 ›› Issue (3): 301-310.DOI: 10.3778/j.issn.1673-9418.1506070

• 学术研究 • 上一篇    下一篇

自适应软件的环境模型及实现

江海挺1,2,刘  洋1,2,林华山1,2,王茂光3,焦文品1,2+   

  1. 1. 北京大学 信息科学技术学院 软件研究所,北京 100871
    2. 北京大学 高可信软件技术教育部重点实验室,北京 100871
    3. 中央财经大学 信息学院,北京 100081
  • 出版日期:2016-03-01 发布日期:2016-03-11

Environment Model of Self-Adaptive Software and Its Implementation

JIANG Haiting1,2, LIU Yang1,2, LIN Huashan1,2, WANG Maoguang3, JIAO Wenpin1,2+   

  1. 1. Institute of Software, School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China
    2. Key Lab of High Confidence of Software Technologies (Peking University), Ministry of Education, Beijing 100871, China
    3. School of Information, Central University of Finance and Economics, Beijing 100081, China
  • Online:2016-03-01 Published:2016-03-11

摘要: 随着软件及其运行环境的复杂性和不确定性的上升,软件要求能够及时地感知环境的变化,并做出相应的反应。由于环境具有开放、动态、不可控、不可预测等特点,为了实现软件对不同环境的自动感知和适应,环境被独立建模,并定义为能够自维护和自演化的一级实体。为了简化软件与环境之间的交互,环境被实现为一个层次结构,为软件提供面向应用的抽象资源到环境资源之间的自动映射和配置机制,从而提高了环境和软件的复用性,同时也减轻了软件开发人员的负担。

关键词: 自适应, 软件环境, 软件建模, 软件复用

Abstract: With the increment of complexity and uncertainty in the software runtime environment, software requires the ability to perceive and react to the changes in the environment in time. Since the environment is open, dynamic, uncontrollable and unpredictable, for facilitating software's automatic perception and adaptation to different environments, environments are defined as first-class entities, which are self-maintainable and self-evolvable, and modelled independently. For simplifying the interaction between software and runtime environments, environments are implemented in a hierarchical structure and provide an automatic mapping and configuration mechanism for software systems to sense and effect environmental resources from the perspectives of applications. The approach presented in this paper improves the reusability of environments and software, and reduces the burden on software developers.

Key words: self-adaptive, software environment, software modeling, software reuse