浅谈软件体系结构思想及其应用
摘要
关键词:软件体系结构,传统软件开发,软件工程,体系结构风格,设计模式
Abstract
Recently, Software architecture has become a more and more widely applied technique in huge software development, it has also grown into a hot point of software engineering, the software development based on software architecture has conspicuous advantage compared with the traditional software development model. After generalizing the definition, the developing background, the description and the significance of software architecture, this passage concentrates on the design method of software architecture, it will also explain and analyze the design pattern, modeling method , software architecture style as well as decomposition thinking applied in the developing process, and ultimately manifest the software development process based on software architecture.
Keywords: software architecture, traditional software development, software engineering, software architecture style, design pattern
前言
伴随着软件工程领域的发展,软件体系结构的发展也由无体系结构阶段逐步跨越到以描述系统的高级抽象结构为中心的高级阶段,在此期间确立了一系列软件体系结构描述方法,体系结构风格以及基于软件体系结构的软件开发方法,这些技术被广泛地应用在软件生命周期中,方便了员工和客户交流,明确了员工间的分工,提高了软件的质量属性,增强了软件的复用性和可扩展性,软件体系结构理论也将伴随着软件工程的发展而不断进行自我完善。
1 软件体系结构综述
软件体系结构是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。下面分别从其定义,存在价值,发展史,描述方法,核心模型角度来阐述软件体系结构。
1.1 软件体系结构的定义
软件体系结构至今还没有被大家所公认的定义,专家们从不同角度对其进行刻画,在总结并理解专家们观点的基础上,根据笔者的理解归纳为下:在软件产品线的开发中,由于需求的复杂性和可变性,需要在一个较高的层次上考虑系统的各部分构件,构件之间的交互以及形成的拓扑结构,这些构件及其交互所形成的功能模块需要满足一定的约束,遵循一定的设计规则,并能够在一定环境下重构和扩展。且能够反映出系统开发中有重要影响的决策以便设计人员,开发人员,客户,用户的交流,使开发的系统据此能够完成系统既定的功能和非功能性需求。
1.2 软件体系结构的存在价值
软件体系结构的产生有着多重价值。首先,体系结构式软件开发过程中不同角色的交流手段,体系结构代表了系统的公共的高层次抽象,一方面这种抽象易于让客户和用户理解,这样可以更准确地表达出对系统的可用性和可靠性及进度需求。另一方管理者可以更清晰地把握项目进度,开发者之间的交互遵循统一的规范。其次,体系结构明确了对系统的约束条件,决定了开发和维护组织的组织机构,好的体系结构将系统模块化,并使得每个模块实现了不同的功能,模块间的耦合度降到最低,这样管理者对系统的把握更加清晰,同时方便了开发者之间的任务分配。再次,软件体系结构体现并制约着系统的质量属性,在大型软件系统中,质量属性更多由软件的功能划分来实现。最后,软件体系结构为后面的开发提供了可重用的模型,软件体系结构的重用与代码重用相比能更大地降低软件的复杂度,好的体系结构经过稍稍抽象就可以应用到其他系统中去。
1.3 软件体系结构的发展史
随着软件系统的应用领域与规模不断扩大,软件体系结构也由最初模糊的概念发展到日趋成熟的技术。纵观软件体系结构技术的发展过程,一共经历了四个阶段。(1)无体系结构阶段,此阶段主要运用汇编语言。(2)萌芽阶段:此阶段出现了以控制流图和数据流图表述软件结构特征的程序设计主题。(3)初期阶段:出现了各种表达结构模型的方式uml为一典型代表示(4)高级阶段:以描述系统的高级抽象结构为中心,不关系具体的建模细节,以Kruchten提出的”4+1”模型为标志。
1.4 软件体系结构的描述方法
在软件体系结构的描述方面,Kruchten提出的”4+1”视图模型为当今体系结构描述的经典构造。即逻辑视图,开发视图,进程视图,物理视图和场景,”4+1”模型法,和基于场景迭代的方法作为基于过程驱动的体系结构的两种方法通用性很强,下面一一解释。
(1) 逻辑视图:主要支持系统的功能需求,在面向对象技术中逻辑视图通过抽象,封装和继承来表示,用类图来描述。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!