架构师手册
OO
方法分支提问:Framework
技术是OO
的分支吗?不是,Framework
本质上和面向对象无关,用C语言也可以编写Framework
。更切切近本质的Framework
的定义是:可以通过某种回调机制进行扩展的软件系统或子系统的半成品。
的确,OO
方法太流行了,以至于很多技术都“变成”了OO
的分支。
有同行也常常将多视图方法误认为是OO
方法的分支。其实,无论是OO
方法,还是结构化方法,都远未涵盖架构设计的全部。所以,只具有OO
技能对架构师而言是不够的。
对架构设计方法而言,区分阶段和视图的概念是非常重要和必要的。
“左边”的观点–概念架构、逻辑架构、物理架构是3个不同的层次。其实这种观点不完全正确,因为逻辑架构和物理架构是架构设计同一阶段中须要同时考虑的两个方面–即二者是两个视图,而非两个阶段。
在软件架构发展史上,4+1视图方法具有重大贡献。
1995年,Philippe Kruchten发表了题为《The4+1 View Model of Architecture》的论文,标志着4+1
视图方法的诞生。后来,Philippe Kruchten加入Rational
公司,4+1
视图演化为下图所示的模样。
RUP4+1
视图方法有几个重要特点:
OO
方法Use Case
驱动对应于上述3个特点,架构师在实践中应注意:
OO
可以指导逻辑架构视图的设计,但是OO
方法对物理视图等的设计指导很弱。另一方面,即使逻辑架构的设计,也未必都是以OO
方法为指导的。例如,大量嵌入式软件系统和系统软件仍以C
语言为主要开发语言,其逻辑架构设计还会以结构化方法为指导。4+1
视图中的“4”是架构设计,“+1”是驱动因素。SEI
的Len Bass等专家在《软件架构实践(第2版)》中阐述了“3视图”的观点,他们认为架构设计的工作应该包含3类视图:
总的来说,SEI 3视图
方法没有RUP 4+1视图
方法影响大,但也值得架构师研究和体会的。
例如: