摘要
随着信息网络技术的渗透性发展,复杂软件系统正在成为一种泛在的新型软件形态.此类软件系统通常由相当数量的局部自治的软件系统相互耦合关联而成,具有"系统之系统"、"信息—物理"融合系统和"社会—技术"交融系统的特点,表现出成员异质、边界开放、行为涌现、持续演化等一系列新的性质.这些特征打破了传统基于"还原论"思想的软件工程理论和技术所基于的基本假设,使其难以适用于复杂软件系统的构建.本文分析复杂软件系统的内涵、形成特征和基本性质,深入讨论复杂软件系统在构造和演化环节所面临的挑战,借鉴互联网以及生命系统、社会系统和经济系统等复杂系统的形成和演进模式,提出复杂软件系统的"成长性构造"和"适应性演化"法则,阐述这两条法则所涉及的主要科学问题和关键支撑技术.本文试图为复杂软件系统的构建和发展提供新的方法学和架构层面的支持.
With the pervasive development of information network technology, complex software system is emerging as a new ubiquitous software paradigm. This kind of software systems often consist of a large amount of autonomic software systems via coupling and interconnection. They exhibit the common characteristics of system of systems, cyber-physical systems and socio-technical systems, including member heterogeneity, open boundary, behavior emergence and constant evolution. These properties invalidate the fundamental assumption of conventional software engineering methodology based on reductionism, thus rendering it not suitable for the construction of complex software systems. In order to effectively support construction, deployment, running and maintenance of complex software systems, this paper studies the connotation, characteristics and basic properties of complex software systems and discusses the challenges about the construction and evolution of complex software systems. By observing the common patterns in current complex systems such as the Internet, life systems, social and economy systems, we propose two fundamental principles of complex software system development, namely the law of "growing construction" and the law of "adaptive evolution". On the basis of extensive elaboration on the major research problems and supporting technologies of those two laws, we further introduce new software methodology and architecture for construction and development of complex software systems.
出处
《中国科学:信息科学》
CSCD
2014年第6期743-761,共19页
Scientia Sinica(Informationis)
关键词
复杂软件系统
成长性构造
适应性演化
软件开发
软件演化
complex software system, growing construction, adaptive evolution, software development, softwareevolution