一种软件体系结构复杂性的评价方法摘要:为了满足软件体系结构复杂性的预测和评价需求,通过抽取构件之间的连接,提出了基于复合关系的分层式软件体系结构,从而能够清晰、准确地表达构件之间的关系。在该结构基础上,提出了基于加权图的复杂性评价模型,并结合实例分析了模型的使用效果。模型能够准确地刻画系统结构及构件关系,而且能够较为客观地定量评估系统结构复杂性。它具有实现过程简单、通用性强等特点。关键词:构件;软件体系结构;软件复杂性;评价模型:TP301文献标志码:A:1001-3695(2008)08-2377-03Approachtoevaluatingforcomplexityofsoftwarearchitecture激AOFeng??1,2??,WANGLi-ping??3,HOU激an-min??2(1.SchoolofInformationEngineering,UniversityofScienceTechnologyBei激ng,Bei激ng100083,China;2puterCenter,HebeiUniversityofEngineering,HandanHebei056038,China;3.Dept.ofInformationEngineering,HandanPolytechnicCollege,HandanHebei056002,China)Abstract:Inordertosatisfytherequirementsofpredictingandevaluatingcomplexityofsoftwarearchitecture,thispaperpresentedcompositerelationshipsbasedandlayeredsoftwarearchitecture,whichcouldexhibittherelationshipsbetweencomponentsexplicitlyandaccurately,throughtheseparatelinksbetweencomponents.Basedonthesoftwarearchitecture,proposedweightedgraphbasedevaluationmodelforcomplexity,withanexampletobeanalyzedandexplainedhowtousethemodel.Moreover,theexperimentindicatesthatthesoftwarearchitecturecanreflectrealstructureandtheevaluationmodelcanquantitatecomplexityofsoftwarearchitecture.Finally,itcanbeconcludedthatthemodelownedthecharacteristicssuchassimplicitytoprocess,stronguniversality.Keywords:component;softwarearchitecture(SA);softwarecomplexity;evaluationmodel基于构件的软件开发已经成为解决大规模复杂软件开发的有效方法和途径。除了构件之外,软件体系结构的作用功不可没。由于它体现了软件系统的基本思想和基本结构,不仅可以用于提高系统的开发效率和灵活性,也可以作为早期软件质量预测和控制的主要依据。近年来,预测和评价软件体系结构质量的研究已成为热点。这些研究多集中在SA的可靠性、安全性、可理解性、可维护性、效率等性能方面的分析和评价[1],而对结构本身复杂性的研究相对较少。但在实际应用中,体系结构复杂性对系统质量的影响却是不容忽视的,过于复杂的体系结构会带来较低的可理解性和可维护性;过于简洁的体系结构的又有可能造成可靠性和安全性的下降,所以各性能属性之间是相互影响、相辅相成的[2]。如何客观正确地度量系统的复杂性,如何找出它与其他属性之间的平衡关系都是SA评价研究的重要内容。与传统的结构化软件关注语句细节不同,基于构件的软件体系结构更多地关注构件及构件之间交互的关系,因此对于复杂性的分析和评价有其独特性。文献[2]定义并详细阐述了各种复杂性属性,但并未给出复杂性的度量方法或模型。文献[3]利用类联系图描述构件之间的交互关系,进而通过模块化程度分析构件的耦合性和内聚性,以此得出SA的质量。该方法理论性较强,结构较为严谨,主要用于对已实现系统的分析和评价。文献[4,5]则建立基于有向图的依赖模型,借以反映构件间的依赖关系,但每个依赖关系的耦合性可能有所不同,将有可能影响对SA评价结果,而且构件自身的复杂性也会对系统有影响。本文基于这些研究,提出了一种基于复合关系的复杂性评价模型。模型通过引入业务概念,将构件之间的复杂交互关系提取为一种分层的复合关系,并将这种复合关系抽象为一种逻辑复合构件。转换后的结构使得构件之间的交互关系层次分明、逻辑清晰,易于分析评价。不仅考虑到构件自身复杂性,还考虑了不同的交互关系对于系统结构的影响,其分层的结构使其更能适用于大规模复杂软件系统。1基于加权图的复杂性评价模型在面向领域的应用系统中,根据业务特性抽象出业务构件,不仅大大提高领域软件的重用粒度,缩短开发周期,提高开发效率,而且有利于生命...