下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

软件开发架构的本质是什么

作者:课课家教育     来源: http://www.kokojia.com点击数:1191发布时间: 2019-03-14 18:59:50

标签: 软件开发软件架构软件工程架构本质

  要成为一名软件架构师,绝非一夜之间或一次晋升那么简单。这是一个角色,而不是一个级别。这是一个循序渐进的过程,你会逐渐获得这个角色所需的经验和信心。“软件开发者”这个词很容易理解,而“软件架构师”则不然。

  世界上的万事万物都具有某种特定的结构。不仅如此,在组成结构的元素间通常还存在着一定的动态关系。在软件领域中,有一个词被用来描述这种静态的结构以及结构元素间的动态关系,那就是架构。

  与自然产物不同,架构,作为人类的创造物,一定是在有意识地规划和控制下完成的。对于一个软件系统来说,没有什么比架构更重要。因此,如何设计软件架构,是软件系统成功与否的关键。

  科学家们一直在尝试解释宇宙:他们从红移现象,推断宇宙正处在膨胀之中;从微波背景辐射,推断宇宙起源于百亿年前的一次大爆炸;从光的弯曲实验,推断四维空间模型。他们尝试用周期性爆炸理论,来打破宇宙只有150亿年历史的限制;用黑洞理论,来解释时空模型。凡此种种,尽管科学家们做了很大的努力,但是直到今天,我们对宇宙的认识仍然非常有限。

  科学家们也在尝试解释生命:他们推断,生命起源于非生命物质的化学反应,可是无法重现这个过程;他们发现了DNA分子双螺旋结构,把生命的解释推向了非生命层次,可是仍然无法创造生命;他们已经了解了大脑的物质组成,可是不能解释智慧。总之,人类对生命的认识仍然非常有限。

  中医对人体的解释,使用了一种特殊的方式。它不是直接解释人体的结构,而是通过长期积累的经验知识,建立了另外一套理论模型。中医在验证和调整理论模型的过程中,注重的是外部现象,而不是内部结构。用软件术语来说,是关注接口,不关注内部实现。在人类对生命认识不足的今天,这无疑也是解决问题的一种方式。

  有趣的是,当代生命科学已经开始解释中医中的部分内容。例如针灸,针灸对人体特定神经单元的刺激,会引起人脑分泌化学物质。而这些化学物质可以阻碍某些神经元细胞的传递,从而达到镇痛的作用。

  自然产物的特征就是这样。它们的结构是固有的,但是,人类对于它们的认识却永无止境。与此相反,人造产物的结构,是由人类自己规划的,在实际创造之前,它的结构形式已经在人的头脑中产生了,即设计。这样的人造产物,复杂性非常有限,应该完全在控制之中。在软件中,架构就是这样的人造产物。

  软件架构是什么样子的呢?

  包括了组成软件系统的元素、元素的结构,以及这些元素之间的动态关系。随着理解的不断深入,将会进一步调整和丰富,并逐渐演进到可以充分地指导各元素的使用或设计。

  这样构架软件系统的想法来自哪里?有什么依据吗?

  答案:想法来自软件架构师的大脑。依据的是软件架构师的知识背景、经验积累以及软件系统涉众(软件系统投资人、提供商、开发者、使用者等)的要求。

  软件系统最好的架构是唯一的吗?

  答案:不。每个软件架构师都有自己的设计风格。没有唯一的架构。

  为什么没有看到页面的结构?

  答案:业务规则引擎有自己的架构。从构架软件系统的层面来看,业务规则引擎是个黑盒元素。

  仅凭这张架构图就可以开始工作吗?

  答案:你指的工作是指编码吗?不,软件系统层面的架构图并不能指导编码。你需要更小粒度元素的架构图(或者别的叫法,例如类图、活动图等)。软件系统架构就像一道防线,你可以在元素内部任意行动,但是不可能越雷池一步。

  我知道怎么画架构图了。这很简单,我可以开始了吗?

  答案:NO,你不能。构架软件的能力,来自实践和智慧。所有介绍软件构架方法的书籍,对于没有大量实践经验的人来说,是没有意义的。要知道,软件架构的失败往往源于细节。例如,只有当你遭受过软件系统性能问题的困扰后,才能真正体会与数据库交互的正确方式,进而去规划正确的元素。

  答案:会有另一张架构图,来描述软件系统。每一张架构图,都只是观察软件系统的一个视图。不同的视角,看到的内容是不同的。

  关于业务规则引擎的信息很少,怎样才能知道它如何工作呢?

赞(13)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程