● 摘要
随着软件规模和复杂度的不断增加,软件构架在软件开发和演化过程中发挥的作用越来越不容忽视和替代。软件构架体现了关于系统整体结构的早期决策,其设计通常难以一蹴而就地完成,而需要经历一个由抽象到具体、由模糊到清晰逐渐完善的过程。既然软件构架设计是一个过程,就必然包含一系列的实施步骤和准则。如果能够对这些步骤和准则作出明确的定义,软件构架的设计经验就能更容易被学习和掌握,软件构架设计过程也就能被更好地重用并获得持续不断的改进,从而有利于软件构架设计质量的进一步提高。然而,目前关于这一过程具体实施步骤的定义仍然比较模糊。工程实践中,软件构架设计主要由设计师依靠自身的经验和直觉进行,随机性较大。为了改善这种状况,本文对软件构架由抽象到具体、由模糊到清晰的演变过程进行了研究,并定义了相应的建模语言和设计支持工具。本文的主要研究工作和成果如下:1. 提出了软件构架渐进设计过程GADesign (A Gradual Process for Software Architecture Design)根据软件构架设计需要经历若干抽象层次这样一个事实,本文提出将软件构架设计划分为若干阶段逐步实施的思想,以降低软件构架设计的难度和复杂度。根据这一思想定义了软件构架渐进设计过程GADesign。GADesign将软件构架设计划分为软件构架概略设计、软件构架细化以及软件构架向实现过渡三个阶段,并在实现机制上允许对各阶段进行适应性调整。为了提高软件构架设计过程的可操作性,GADesign明确阐述了每一阶段所应侧重解决的问题,定义了每一阶段的具体实施步骤和结束准则。为了便于及早发现和解决设计中存在的问题和风险,提出在每个阶段结束之前对软件构架进行分阶段评审的思想。为了使不同阶段的设计结果能够平滑、一致地相互衔接,对不同阶段设计结果的描述采用了基本相似的核心概念,并定义了不同层次模型之间的映射关系。2. 分析和评价了UML2.0的软件构架建模能力作为一种标准建模语言,UML的软件构架建模潜力一直倍受关注。UML2.0版本对软件构架建模机制进行了改进。但其改进之后是否具备对软件构架设计过程的充分支持一直存有疑问。本文从构件、连接件、端口/接口、构架配置、行为、模式等几个方面对UML2.0的软件构架建模能力进行了分析。这一分析结果有助于了解UML2.0在软件构架建模方面做了哪些改进、改进后对软件构架建模的支持程度、以及有哪些问题仍然没有解决。不仅可帮助设计人员有效应用UML2.0中的软件构架建模机制,而且为UML2.0建模机制的扩展和完善提供了有益的参考信息。3. 基于UML2.0定义了可视化软件构架建模语言VAML(Visual Architecture Modeling Language)针对UML2.0在软件构架建模方面表现的不足,在UML2.0 Profile扩展机制的基础上,定义了可视化软件构架建模语言VAML。VAML针对不同层次的建模需求分别定义了几组不同的建模符号。不同层次的建模符号基于一组基本相似的核心概念,但是在不同层次对这些概念描述的详细程度和施加的约束强度不尽相同。VAML不仅可在不同层次对软件构架进行描述,而且能够保证各层次的设计结果以平滑的方式进行过渡。VAML提供了模式描述语言PDL (Pattern Description Language),为在设计过程中收集、定义和重用模式提供了更为有效的表达手段。VAML还提供了对不同层次模型间映射关系进行定义的机制。由此,VAML不仅可以对不同层次的设计结果进行描述,而且可以对软件构架的细化决策进行记录。4. 设计了软件构架可视化建模环境ArchME (Architecture Modeling Environment)ArchME首先强调为软件构架渐进设计过程提供支持,以GADesign和VAML为基础,提供了在不同层次以不同细节程度对软件构架进行描述的能力,并可根据上层模型自动映射生成下层模型的初始结构。通过与过程建模工具进行集成,ArchME为渐进设计过程的管理提供了辅助决策的手段。除此之外,ArchME还在模型排版和美化、模型组织和管理、模型检查和分析、模式定义和应用、模型导入/导出等方面为软件构架设计提供了较综合的支持能力。5. 完成了舰载指控系统TLC5I的软件构架设计TLC5I系统以GADesign作为软件构架设计过程规范,推动了本文研究成果在实际开发中的应用和验证。
相关内容
相关标签