理解“软件架构师”的工作

理解“软件架构师”的工作 Jack zhai     软件架构师是开发软件时在用户需求分析与系统设计阶段的灵魂人物,与传统的系统分析员相比,软件架构师的工作能为接下来的代码设计,以及将来的运行都提供更好的指导。有人把架构师的工作定义为分解系统模块以及定义相互之间的关系,也有人认为架构师就是对软件设计核心环节设计的一系列决策;之所以架构师在现代软件开发体系中越来越重要,还与目前流行的软件开发组织结构有一定的关系。

 

一、           “软件人”面临的困惑:

 

二、新方法带来的新问题:

极限编程是一种软件开发的组织模式,需要管理者对软件系统整体架构有清晰的认识,否则软件的开发过程就会随着用户的需求任意“漫游”,成为永远不能最终交付的“大尾巴”工程。其原因有下面两点: 1 、软件提供的功能不仅与用户的需求有关,还与其服务质量、约束条件有关。约束一般为计算机硬件、系统软件、 络等;服务质量一般为用户对软件的质量要求,如并发支持量、持续性服务等。 极限编程者非常好地关注了用户的需求变化,但适应这些变化要在软件系统整体架构范围内,在约束条件的许可下、服务质量可接受范围内才可以,否则发布的软件是用户就无法接受的,后者也达不到需要的效果。 2 、因为要“敏捷”,很多开发组织者就“缩小”的前期架构设计的时间,在“够用原则”的支持下,简单搭建,甚至对采用的开发工具、中间件、对象的抽象等工作随手捻来,等到了开发的后期,成了烫手的“山芋”,难缠的“鸡肋”,继续保留则用户新需求无法满足,彻底更换则很多工作需要重来,还顾得上什么“敏捷”呢。

 

因此,采用“敏捷”的开发方法的软件团队,对软件架构的设计应该比传统的方式更加关注,这也是目前软件架构师的职业比从前系统分析员还受欢迎的原因。我很佩服 Cisco 65 系列交换机,那个机箱结构经历了几代引擎,兼容性让很多厂家非常羡慕。而有些厂家自己的产品,前后判若两人,相似的产品也很难相互配合,每个产品一个新面孔,真是“麻雀随小,五脏具新”。 如何较为完整地进行软件架构设计,温昱在《软件架构设计》中给出了“五视图法”比较全面。

 

三、五视图架构法:

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

上一篇 2016年2月6日
下一篇 2016年2月6日

相关推荐