谨防OO被夸大——4+1视图剖析系列(五)
 

2010-01-19 作者:温昱 来源:网络

 

所有多视图方法,【分而治之】和【水平思考】是思维关键,我将专文论述。

作为一种著名多视图方法,RUP 4+1视图区别于其他多视图方法的特点有三:倚重OO、倚重用例、倚重建模。

本次谈谈OO与4+1视图的关系。

4+1视图倚重OO

80年代到90年代OO技术是大有作为,例如许多人都知道C++是1985年横空出世的。4+1视图方法根植于Philippe Kruchten的一线架构设计实践,所以4+1视图方法倚重OO并不令人奇怪。

另一方面,几个问题很有价值:

  • 4+1视图方法,是OO方法的分支吗?
  • OO高手,就想当然的是架构师了吗?
  • 难道大量采用C语言编程的嵌入式领域不需要多视图?
  • ……

于是,在每个人的心里留下了一个大大的问号:OO方法 与 多视图的架构设计方法到底什么关系?

观察:网上如是说

  当你发现越来越灵活的使用接口时,那么你就从程序员升级为架构师了。……

 

采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于公司来说,意义更大。……

 

言外之意,架构师只需要OO技能?

放眼业界,还有人认为OO涵盖了需求工程、甚至业务工程……

不一而足。

反思:OO的作用被夸大了

提问:F r a m e w o r k技术是OO的分支,对吗?

回答:不对。

F r a m e w o r k本质上和面向对象无关,用C语言也可编写F r a m e w o r k。更切近本质的F r a m e w o r k的定义是:可以通过某种回调机制进行扩展的软件系统或子系统的半成品。

……的确,OO方法太流行了,以至于很多技术都“变成”了OO的分支。

回归主题:OO与4+1视图

认为OO方法已完整涵盖了架构设计的所有方法和技巧,这种看法是相当片面的。

若OO方法已涵盖架构设计的全部,那么多视图方法所涉及的逻辑架构、物理架构、开发架构、运行架构、数据架构,都应全面受到OO方法的指导,然而实际上并不是这样。

因为,物理架构、开发架构、运行架构和数据架构这4个架构视图,分别是面向节点、面向文件、面向控制流和面向Table(或文件)的——也就是说,一般认为这4个架构视图主要的思维并非OO思维。

另一方面,即使是逻辑架构的设计,也未必都是以OO方法为指导的。例如,大量嵌入式软件和系统软件还是以C语言为主要开发语言,其逻辑架构设计还会以结构化方法为指导。如此看来,倒是将逻辑架构设计总结为“面向职责”更切近本质。

一图总结:多“面”手

  • 多视图方法,不是OO方法的分支。
  • 无论是OO方法,还是结构化方法,都远未涵盖架构设计的全部。
  • 只具有OO技能对架构师而言是不够的。

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织