论文导读:软件体系结构概念的提出和应用,表明软件工程走向新的发展阶段。为了获取对软件体系结构设计的抽象,人们已经提出了许多方法,我们把这些设计方法分类为工件驱动的方法、用例驱动的方法、模式驱动的方法、领域驱动的方法、需求驱动的方法。
关键词:软件体系结构,设计方法
0.引言
软件体系结构概念的提出和应用,表明软件工程走向新的发展阶段。未来的软件工程设计会逐步发展成为如同机械和建筑设计的机械组装过程一样,从而摆脱艰难的脑力劳动和无可靠质量保证的手工劳动,这其中软件体系结构将起主导作用。论文检测。新一代的软件工程将是体系结构的工程。软件体系结构设计包括早期的设计决定,体现了系统的全局结构,对于整个系统的质量有着决定性的影响。为了确保各种质量因素,正确地对体系结构进行抽象很有必要。为了获取对软件体系结构设计的抽象,人们已经提出了许多方法,我们把这些设计方法分类为工件驱动的方法、用例驱动的方法、模式驱动的方法、领域驱动的方法、需求驱动的方法。
1.软件体系结构的定义
虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。论文检测。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,较为典型的定义有:
(1)DewaynePerry和Alex Wolf:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。
(2)MaryShaw和David Garden认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。
(3)Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。
2.软件体系结构的设计过程
在软件设计中,软件体系结构设计是一种较新的说法,实际包括面向对象等设计方法和分析方法。软件体系结构设计的概念实现上将分析和设计活动包含在一个较大的、更紧密的设计框架内。
在软件结构的设计过程中由下面的步骤组成:
2.1 理解问题
在软件体系结构的设计前,必须对问题有一个清晰的理解,建立有效的解决方案。
2.2 确定设计元素及其关系
确定设计元素以及他们的相互依赖关系。在设计项目的早期,我们应该对应用进行一种自然的功能分解,为后续的设计任务和设计转换建立一个基线。
2.3 评价体系结构设计
本步骤对体系结构是否符合体系结构质量属性需求进行评估。许多质量属性可以通过对设计的观察来评价。
2.4 转换体系结构设计
设计操作将体系结构转换为满足质量属性需求、比以前设计更好的新设计。本阶段可以重复多次甚至可以递归执行。
3.软件体系结构的设计原理
体系结构设计的好坏将直接影响到软件系统开发的成功与否,为了能够设计出更合理的体系结构,我们在体系结构设计的时候要紧密联系这些技术,如:抽象、封装、模块化、信息隐藏、耦合与内聚以及层次化。
3.1 抽象
人们在实践中认识到在现实世界中一定事物、状态或过程之间总存在着某些相似的方面。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异就是抽象。对象的抽象把具有相同基类的导出类看作是同类,实现了动态约束。
3.2 封装
封装为不同抽象之间提供了明确的界限,有利于非功能特性实现。
3.3 模块化
模块化主要关心的是如何将一个软件系统分解成子系统和部件,其主要任务就是决定怎样将构成应用的逻辑结构物理的分割成代码实体。
3.4 信息隐藏
信息隐藏对用户隐藏了部件的实现细节,用来更好地处理系统的复杂性和减少各部件之间的耦合。
3.5 耦合与内聚
耦合强调模块之间的特征,而内聚强调模块内部的特性。耦合是用来衡量一个模块和另一个模块的联系的紧密程度的。内聚用来衡量单一模块内功能和元素间联系性的程度。
3.6 层次化
层次化把问题分解建立在基础概念和思想上多层次的、从底向上逐步抽象的分析和表达的结构,每一层处理该层次的问题、服务于该层次的要求。
4.软件体系结构的设计方法
为了获取对体系结构设计的抽象,人们己经提出了许多方法。我们把这些体系结构设计方法分类为:工件驱动(artifact-driver)的方法;用例驱动(use-case-driven)的方法;模 式驱动(patten-driven)的方法;域驱动(domain-driven)的方法。
4.1 工件驱动的方法
工件驱动的体系结构设计方法从方法的工件描述中提取体系结构描述。工件驱动的体系结构设计方法的例子包括广为流行的面向对象分析和设计方法 OMT和 OAD。
4.2 用例驱动的方法
用例驱动的体系结构设计方法主要从用例导出体系结构抽象。一个用例,是指系统进行的一个活动系列,它为参与者提供一些结果值。参与者通过用例使用系统。参与者和用例共同构成了用例模型。用例模型的目的是作为系统系统预期功能及其环境的模型,并在客户和开发者之间起到合约的作用。
4.3 模式驱动的方法
软件设计模式的目的在于编制一套可重用的基本原则,用于开发高质量的软件系统。体系结构设计模式是体系结构层次的一种抽象表示。
4.4 域驱动的方法
在领域驱动的体系结构设计方法中,体系结构抽象是从领域模型导出的。可以把领域驱动的软件体系结构(DSSA)看成是多系统范围内的体系结构,即它是从一组系统中导出的,而不是某一单独的系统。
4.5 需求驱动的方法
需求驱动是指软件体系结构设计基于需求分析的结果,因此需求驱动下软件体系结构设计主要是描述所解决问题和解决方案之间的动态关系。需求分析首先在于问题的描述,可并行建立目标模型和场景模型。体系结构设计是根据组件或子系统之间的数据、控制及其它依赖关系描述的系统全局结构设计,该结构描述系统如何分解为组件,并且各组件如何相互交互。通过描述组件和连接的抽象属性,得到软件体系结构的抽象模型,再从需求分析模型确定的解决空间中发现体系结构设计方案,从而得到具体的体系结构实例。论文检测。
5.结束语
由于软件体系结构研究刚刚起步,现有的研究成果尚不能满足工程需要,尤其需要进一步对基于软件体系结构在软件开发中的应用进行研究,使得软件体系结构在软件开发中发挥重要的作用。
【参考文献】
[1]王一宾、李心科 软件体系结构设计方法的研究 计算机工程与设计,2005 年 3 月
[2]王晓鹏基于模式的软件体系结构设计 软件导刊,2007
[3]刘志军、金蓓弘 软件体系结构设计技术及其应用 计算机工程与设计,2002年2月
[4]朱建浩软件体系结构设计方法的研究与应用 武汉大学,2004
[5]赵晓宇 基于图书馆管理系统软件体系结构的设计与研究 天津大学,2006
|