随着系统的复杂程序增大,系统软件架构师已经成为一个流行的职业,其重要性慢慢高于算法和数据结构,它主要解决需求的技术实现,好比一个建筑的设计师。
架构三要素
构件
构件在软件领域是指可复用的模块,它可以是被封装的对象类、类树、一些功能模块、软件框架(framework) 、软件构架(或体系结构Architectural)、文档、分析件、设计模式(Pattern)。但是,操作集合、过程、函数即使可以复用也不能成为一个构件。
构件的属性:
有用性(Usefulness):构件必须提供有用的功能,黑客代码也是有用滴。
可用性(Usability):构件必须易于理解和使用,可以正确运行,理解有点要求高了。
质量(Quality):构件及其变形必须能正确工作,质量好坏与可用性相互补充,
适应性(Adaptability):构件应该易于通过参数化等方式在不同语境中进行配置,比较高端一点的复用性,接收外界各种入参,产生不同的结果,健壮性比较高。
可移植性(Portability):构件应能在不同的硬件运行平台和软件环境中工作,可移植性比较好,跨平台,Java的架构明显说明了这一点。
我们都是站在巨人肩膀上的屌丝。如果没有那些造轮子的,我们现在软件开发速度就不会有那么快,更不会有后续发展的Agile迭代等软件思想。
模式
模式(Pattern)其实就是解决某一类问题的方法论,是生产经验和生活经验中经过抽象和升华提炼出来的核心知识体系。例如:DOTA 常用的有allpick
模式,randomdraft
模式,captainmode
模式;游戏难度也有简单模式,困难模式;编程中JAVA也有GOF 23种设计模式
;在商业上也有商业运作模式
,比较典型的是最近很火的乞巧节
;经济上也有经济运作模式,资本主义经济模式
,社会主义经济模式
,市场经济模式
,计划经济模式
;在互联网上有典型的P2P
,P2C
,O2O
,B2C
,B2B
,C2C
等。其实模式就是一个完整的流程闭环,而且还很成功,能够解决一些问题的通用方法(比如资本运作,高内聚,玩家不同需求等),软件中的模式大多来源于生活,是人类智慧的结晶。
规划
规划是系统架构中最重要的组成部分,是个人或者组织制定的比较全面长远的发展计划,是对未来整体性,长期性,基本性问题的思考和考量,设计未来整套行动的方案。很早就有规划这个概念了,例如:国家的十一五规划,土地征用规划,园林规划,职业规划,城市规划等。当然软件开发也和生活紧密联系,一个大型的系统也是需要良好的规划的,规划可以说是基石,是系统架构的前提。
系统架构虽然是软件系统的结构,行为,属性的高级抽象,但其根本就是在需求分析师的基础行为下,制定技术框架,对需求的技术实现。
感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,你的鼓励是作者写作最大的动力,
如果您认为本文质量不错,读后觉得收获很大,不妨小额赞助我一下,让我更有动力继续写出高质量的文章。
支付宝
微信
作 者 : @mousycoder
原文出处 : http://mousycoder.com/2015/10/14/the-pragmatic-sa-2/
创作时间:2015-9-1
更新时间:2015-10-16
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。