理解“软件架构师”的工作
一、 “软件人”面临的困惑:
二、新方法带来的新问题:
极限编程是一种软件开发的组织模式,需要管理者对软件系统整体架构有清晰的认识,否则软件的开发过程就会随着用户的需求任意“漫游”,成为永远不能最终交付的“大尾巴”工程。其原因有下面两点: 1 、软件提供的功能不仅与用户的需求有关,还与其服务质量、约束条件有关。约束一般为计算机硬件、系统软件、 络等;服务质量一般为用户对软件的质量要求,如并发支持量、持续性服务等。 极限编程者非常好地关注了用户的需求变化,但适应这些变化要在软件系统整体架构范围内,在约束条件的许可下、服务质量可接受范围内才可以,否则发布的软件是用户就无法接受的,后者也达不到需要的效果。 2 、因为要“敏捷”,很多开发组织者就“缩小”的前期架构设计的时间,在“够用原则”的支持下,简单搭建,甚至对采用的开发工具、中间件、对象的抽象等工作随手捻来,等到了开发的后期,成了烫手的“山芋”,难缠的“鸡肋”,继续保留则用户新需求无法满足,彻底更换则很多工作需要重来,还顾得上什么“敏捷”呢。
因此,采用“敏捷”的开发方法的软件团队,对软件架构的设计应该比传统的方式更加关注,这也是目前软件架构师的职业比从前系统分析员还受欢迎的原因。我很佩服 Cisco 的 65 系列交换机,那个机箱结构经历了几代引擎,兼容性让很多厂家非常羡慕。而有些厂家自己的产品,前后判若两人,相似的产品也很难相互配合,每个产品一个新面孔,真是“麻雀随小,五脏具新”。 如何较为完整地进行软件架构设计,温昱在《软件架构设计》中给出了“五视图法”比较全面。
三、五视图架构法:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!