关于模块化软件体系结构描述语言的综合方法
关于模块化软件体系结构描述语言的综合方法
[摘要] 过去几十年的研究表明,在组件和连接器方面对软件进行模块化构建是用途广泛的,这导致了大量模块标记的产生。每种标记专注于系统模块化的不同方面,一般来说这些标记致力于利用已有的标记来发展新的标记而忽略了重用和扩展。为了解决这一问题,本文研究了一种新的办法——允许快速地构建新的描述性语言(ADLs ),该语言利用XML 和XML 的扩展机制来完成。本文定义了一组类别,重用ADL 模块称作XADL 2.0,它可以作为ADL 单独使用,也可以扩展支持新的应用和领域,实验验证了本文方法的有效性、可扩展性和灵活性。
[关键词] 软件架构; 模块化; ADL ; XADL ; XML
1 引 言
与对象或代码行相比,软件体系是对软件的更高层的抽象。在最低限度上,软件体系处理包含组件(计算点)、连接器(交流点)和配置(组件和连接器安排,性能的安排)的软件系统。在这个抽象层,可以对一个软件系统的许多方面进行建模,如拓扑、行为、使用情境、部署属性等。这些方面中每一个也可能在不同细节层以不同的方法进行建模。各个方式的建模都有其自身的优势,可能提供一个新方法去分析、模拟系统或向其他开发人员解释系统结构。
虽然有这些优点,但软件体系结构的研究仍没有在实践中对软件工程有重大影响。要使软件架构性价比合理需要符号、工具和在适当的细节层模拟系统重要方面的技术。十几年研究的结果已经形成许多标记软件体系的的符号,通常的形式是体系结构描述语言(ADLs)。一般来说,那些相互标记的的符号支持单一的研究目标。然而,要想在现实生活的语境中有效,软件架构的研究必须超出单个目标符号,架构必须同时获得软件系统的多个方面。此外,对模块化足够重要的各个方面的范围相互区别。例如,由于时耗和功耗需要,嵌入式系统项目可能需要更广泛更详细的建模能力,而分布式系统则可能在建模容错和带宽方面有所要求。例如,嵌入式和分布式系统的建构师都会通过发布产品来跟踪和管理他们的体系结构的进展;同一个领域内的项目通常会有许多共同关心的方面。
各领域建模优先考虑的事情和需求巨大的差异说明,一个令人满意的“适用于所有情况的”ADL是不太可能出现的。然而,即便是在截然不同的领域里也依然存在的重要共性表明,为每个域(或项目)开发新标记意味着始终如一地去做重复性的工作。因此,允许建构师从软件系统的共同架构层选择那些他们想的方面并很容易添加一些他们自己感兴趣的东西是十分必要的。
本文假定一个中间层以基础架构形式存在,这样ADLs可以很快地构造,兼容建模特点并允许集成一些必要的新特点。这些ADLs将模块化,而不是单一的,建模特点会在模块中封装,各单元组成ADLs。