软件架构的艺术

关于软件架构的定义,一直没有一个统一的说法,这里摘录一些比较主流的定义:

软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作

本书中对软件架构师的主要职责做出了定义:

平衡:持续不断的在各个维度和不同的需求之间进行平衡。平衡各个 Trade-Off

一致: 人月神话中提到为了保证系统概念的一致性,需要一定的专制。我想架构师就是这个专制者。

分解:将大规模系统的复杂性分解,最常规的办法是将大系统分解成许多子系统,从而降低复杂度。

软件设计的根本问题就是分解复杂性。

集成:纵览:纵观整个系统及其存在的商业背景以便于制定出重要的设计指导规则和控制规则。委负责具体部分的设计人员提供全方位的视角和商业情节。

简洁和优美:尽量保持整个设计的见解和优美,这是架构的最大艺术。

保持完整:保持系统的要求能够平衡均匀的、有侧重的、逐步的、完整的得到实施。

吻合:在产品或项目启动、设计、开发、运行维护、服务等完整的生命周期内,架构师的工作要吻合各个stakeholder

我觉得把上面的工作概括起来,可以分为四大类的事情:确认需求、系统分解、技术选型、制定技术规格说明书。



在这一步也有一些模式可以利用,如:方法抽取、方法上移(方法上移至父类)以及使用有语义的变量名等。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年8月18日
下一篇 2012年8月18日

相关推荐