摘要
随着计算机硬件能力的快速增长和软件应用规模的不断扩大,软件的复杂性也在持续增长,并始终制约着软件开发效率和质量的有效提升.软件的结构复杂性,尤其是高层结构的复杂性,是软件复杂性的一种重要表现.如何实现对软件高层结构复杂性的有效控制,是当前开放、动态、难控的网络环境下大规模软件系统开发与演化所面临的主要问题.针对这个问题,我们将设计阶段高层结构复杂性的控制模型―软件体系结构模型―扩展到整个软件生命周期,提出了一种以体系结构为中心的软件开发方法―ABC.该方法将软件生命周期各阶段的核心制品与活动,统一到软件体系结构模型及对其连续迭代的细化、映射和转换,实现对软件高层结构复杂性的一致、灵活、系统化的建模和管理.本文旨在系统性地总结ABC方法在软件体系结构建模方面的成果,并重点介绍近几年在协同式特征建模、运行时体系结构生成、体系结构逆向恢复与建模等方面取得的新进展.
With the continually-increasing capability of computer hardware and scale of computer software, the complexity of software is also continually increasing, and has manifest itself as one of the key factors that limit the significant improvement of software quality and productivity. The structural complexity, especially the high-level structural complexity, is considered as the most important complexity of a software system. How to control the high-level structural complexity in efficient and effective ways has become a critical issue for large-scale software development in the Internet To resolve this problem, this article computing environment, which is extends the software architecture open (SA) dynamic and constantly changing. models-a kind of model aiming to control the high-level structural complexity on software designing-into the whole software lifecycle, and proposes an SA centric software development method, called ABC. The ABC method unifies the core artifacts in different software lifecycle phases into different kinds of SA models, and then the core activities of software development, deployment, maintenance and evolution are performed as the continual refinement, mapping, and transformation to these different kinds of SA models. In particular, this article aims to give a systematic introduction to the ABC method, and present some latest research outputs in collaborative feature modeling, runtime SA generation, and SA recovering.
出处
《中国科学:信息科学》
CSCD
2014年第5期564-587,共24页
Scientia Sinica(Informationis)
基金
国家973计划
863计划
国家自然科学基金
教育部重大研究计划等各类国家和省部级课题
欧盟第7框架计划
IBM大学合作项目
微软大学合作项目等国际合作项目的支持
关键词
软件复杂性
软件体系结构
特征模型
运行时模型
程序分析
网构软件
software complexity, software architecture, feature model, runtime model, program analysis, Inter-netware