复杂软件系统的成长性构造与适应性演化
摘要
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.