互联网给软件带来了革命性的转变——软件网络化,这种趋势使软件作为全局性的资源,以网络为媒介向大众用户提供各种信息资源的应用服务.软件的计算模式、应用模式、产品形态以及盈利模式都会发生很大的变化,例如今后软件的应用方式就像打电话一样,通过网络租用软件来实现.网络化软件正会成为联接各种网络资源、数据资源、计算资源的核心,成为数据和数据交换的基础.同时,网络化软件系统也将成为复杂系统,而复杂性也是软件开发困难、质量难以保证的关键.软件工程是将系统化、规范化、可度量的方法应用于软件的开发、运行和维护.复杂网络理论的最新研究成果,为复杂系统的软件工程提供了新的数学基础和方法.分析了软件的复杂性,介绍了复杂网络与软件复杂性结合的研究工作,包括软件系统的拓扑特性、形成机理、演化规律以及软件复杂性度量和评估,对软件网络的研究现状进行了小结,并列举了需要进一步研究的问题.提出软件网络观(软件在网络中生长、可以用网络来刻画软件)将有助于我们深入理解和认识软件的复杂性本质.
Software is networked, which is a fundamentally change brought by Internet. Carried by Internet,software as global resources provides plenty of information services to the masses for every kind of applications. Software will be changed in many parts such as computation model, application pattern, products style and delivery model. For example, we need not purchase the total software but just pay the rent for the usage over the Internet in the future just like telephone service in our homes and offices. Networked software becomes the core for connecting communication, data and computational resources. However, networked software systems are also complex systems, and thus software development and software quality are troubled with software complexity. Software engineering is a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. Recent research achievements in complex networks introduce new mathematical foundations and software engineering methods for software complex systems. Based on the discussion of software complexity, the research efforts on complex networks of software systems are summarized, including topology properties, occurrence mechanism, evolution rule, complexity metrics and evaluation. A conception is proposed in the present paper that software should be considered in the context of network, in other words, software grows in networks and network is a good method for characterizing software. We hope this conception will help deepen our understanding of the essential of software complexity.