博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从建筑角度来看软件体系结构
阅读量:2496 次
发布时间:2019-05-11

本文共 1275 字,大约阅读时间需要 4 分钟。

在业界, 和建筑学的设计 可以 比。如果把 类比做建筑学的蓝图,那 就可以比作一砖一瓦,或者更大概念如:庭院,花园等。 
  软件体系结构之所以可以独立于软件的数据结构和软件的算法,是因为业界把软件的数据结构和算法看做了烧砖的方法,或设计庭院的思想。但没有扩展到整个 。一个软件系统是庞杂的。但是分治之后的东西仍然用到了最基本的软件算法和数据结构思想。之所以也有些人说 可以不用,是因为算法和数据结构的扩张有代替现在的SA的可能。
  完美的构件是可以进行黑箱复用的。不太完美的复用构件就是白盒复用,要在原来代码的基础上做些必要的改动。 的思想正是体现在软件流程、软件模块和软件文档的复用之上。否则也就没有工程的说法。但是又有人提出软件体系结构复用的思想。这应该被认为是迄今为止最大粒度的复用。
  如果建筑师可以把自己以前的建筑蓝图拿来稍作修改就可以进行多次施工,那么 们为什么不能拿过去的系统设计方案稍作修改并实施到新的项目中去?但是很可惜,没有一个企业的业务流程和另一个企业是完全相同的。所以软件体系结构的复用起来比建筑蓝图的复用要复杂的多。
  软件体系结构直接决定了软件系统的运行框架,其优劣不但决定了软件系统是否可以满足针对此软件的功能 ,而且还决定了这些功能需求是否能被合理、高效地实现,即也决定了软件系统基本的非功能属性。
  [1]、每个用户的非功能属性多多少少的有所不同,也就决定着软件体系结构的复用的复杂性。
  软件体系结构是描述软件单元(element)、软件单元的属性(property)以及这些单元之间关系(relationship)的结构
  [2]、这里的软件单元应该就是构件。
  软件体系结构是构建 实践的基础,与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样。没有蓝图就不能构建出雄伟的大厦。没有好的体系结构也就不能构造出庞大的系统。但是对于小型的系统,体系结构的思想似乎是一种多余。对于大厦,我们应该有建筑蓝图,但是对于建造小茅屋,似乎再画草图就是一种多余。软件体系结构表示了一个软件系统的高层结构,主要特点有:
  ◆ 软件体系结构是一个高层次上的抽象,它并不涉及具体的系统结构(比如 还是 ),也不关心具体的实现。
  ◆ 软件体系结构必须支持系统所要求的功能,在设计软件体系结构的时候,必须考虑系统的动态行为。
  ◆ 在设计软件体系结构的时候,必须考虑有现有系统的兼容性、安全性和可靠性。同时还要考虑系统以后的扩展性和伸缩性。所以有时候必须在多个不同方向的目标中进行决策。
  [3]、抽象的东西之所以对我们有指导的意义。是因为我们可以运用这个抽象的东西对具体问题做具体分析。法无定法,也就是这个道理。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639375/viewspace-150458/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639375/viewspace-150458/

你可能感兴趣的文章
不吹不黑 | 聊聊为什么要用99%精度的数据回测
查看>>
高频交易的几种策略
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>
量化策略回测DualThrust
查看>>
量化策略回测BoolC
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>
通知机制 (Notifications)
查看>>
10 Things You Need To Know About Cocoa Auto Layout
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>
iOS 如何放大按钮点击热区
查看>>
ios设备唯一标识获取策略
查看>>
获取推送通知的DeviceToken
查看>>