论文导读:软件体系结构概念的提出和应用,表明软件工程走向新的发展阶段。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。在软件设计中,软件体系结构设计是一种较新的说法,实际包括面向对象等设计方法和分析方法。
关键词:软件体系结构,方法,分析
0.引言
软件体系结构概念的提出和应用,表明软件工程走向新的发展阶段。未来的软件工程设计会逐步发展成为如同机械和建筑设计的机械组装过程一样,从而摆脱艰难的脑力劳动和无可靠质量保证的手工劳动,这其中软件体系结构将起主导作用。新一代的软件工程将是体系结构的工程。
软件体系结构设计包括早期的设计决定,体现了系统的全局结构,对于整个系统的质量有着决定性的影响。为了确保各种质量因素,正确地对体系结构进行抽象很有必要。论文参考网。为了获取对软件体系结构设计的抽象,人们已经提出了许多方法,我们把这些设计方法分类为工件驱动的方法、用例驱动的方法、模式驱动的方法、领域驱动的方法、需求驱动的方法
1.软件体系结构的定义
虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,较为典型的定义有:
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
软件体系结构为设计决策提供了基本原理。
2.软件体系结构的设计过程
在软件设计中,软件体系结构设计是一种较新的说法,实际包括面向对象等设计方法和分析方法。软件体系结构设计的概念实现上将分析和设计活动包含在一个较大的、更紧密的设计框架内。
在软件结构的设计过程中由下面的步骤组成:
理解问题:在软件体系结构的设计前,必须对问题有一个清晰的理解,建立有效的解决方案。
确定设计元素及其关系:确定设计元素以及他们的相互依赖关系。在设计项目的早期,我们应该对应用进行一种自然的功能分解,为后续的设计任务和设计转换建立一个基线。
评价体系结构设计:本步骤对体系结构是否符合体系结构质量属性需求进行评估。许多质量属性可以通过对设计的观察来评价。
转换体系结构设计;设计操作将体系结构转换为满足质量属性需求、比以前设计更好的新设计。本阶段可以重复多次甚至可以递归执行。
3.软件体系结构的设计方法
为了获取对体系结构设计的抽象,人们己经提出了许多方法。我们把这些体系结构设计方法分类为:工件驱动(artifact-driver)的方法;用例驱动(use-case-driven)的方法;模式驱动(patten-driven)的方法;域驱动(domain-driven)的方法。
3.1 工件驱动的方法
工件驱动的体系结构设计方法从方法的工件描述中提取体系结构描述。工件驱动的体系结构设计方法的例子包括广为流行的面向对象分析和设计方法OMT和OAD。
在体系结构开发方面,该方法存在着以下问题:
文本形式的系统需求含混不清,不够精确、不够完整,因此它作为到处体系结构抽象的来源作用不够;子系统的语义过于简单,难以作为体系结构构件;对子系统的组合支持不足。
3.2 用例驱动的方法
用例驱动的体系结构设计方法主要从用例导出体系结构抽象。一个用例,是指系统进行的一个活动系列,它为参与者提供一些结果值。参与者通过用例使用系统。参与者和用例共同构成了用例模型。用例模型的目的是作为系统系统预期功能及其环境的模型,并在客户和开发者之间起到合约的作用。
用例驱动的体系结构设计方法中也存在的一些问题:
难以适度把握域模型和商业模型的细节;对于如何选择与体系结构相关的用例没有提供系统的支持;用例没有为体系结构抽象提供坚实的基础;包的语义过于简单,难以作为体系结构构件。
3.3 需求驱动的方法
需求驱动是指软件体系结构设计基于需求分析的结果,因此需求驱动下软件体系结构设计主要是描述所解决问题和解决方案之间的动态关系。
需求分析首先在于问题的描述,可并行建立目标模型和场景模型。体系结构设计是根据组件或子系统之间的数据、控制及其它依赖关系描述的系统全局结构设计,该结构描述系统如何分解为组件,并且各组件如何相互交互。论文参考网。通过描述组件和连接的抽象属性,得到软件体系结构的抽象模型,再从需求分析模型确定的解决空间中发现体系结构设计方案,从而得到具体的体系结构实例。
需求驱动的软件体系结构设计的不足:
很难对非功能需求进行建模;很难确定最佳求;解问题与求解空间;需要设计分析与设计工具的原型系统。
4.结束语
在对软件体系结构的上述方法的分析过程中,我们了解到每一种设计方法都有其自身的优点和不足。论文参考网。据估计,使用基于体系结构的设计,整个生命周期的代价可以减少约10%,并且可以通过严格的体系结构分析大大减少设计错误和风险,提高产品的可变性和可维护性。
由于软件体系结构研究刚刚起步,现有的研究成果尚不能满足工程需要,尤其需要进一步对基于软件体系结构在软件开发中的应用进行研究,使得软件体系结构在软件开发中发挥重要的作用。
【参考文献】
[1] 王晓鹏. 基于模式的软件体系结构设计. 软件导刊 2007
[2] 曹敢,王莉莉. 基于目标和模式的软件体系结构设计. 江苏:江苏科技大学学报,2007
[3] 张友生. 软件体系结构北京:清华大学出版社,2008
|