首页 > 代码库 > 向架构师进军-->可重用架构资源
向架构师进军-->可重用架构资源
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭
软件架构有三个主要来源:拿取、方法以及直觉。拿取也就是可重用资源。对于一个标准的系统而言,可能包含80%的拿取、19%的方法和1%的直觉。而崭新的系统则包含30%的拿取、50%的方法和20%的直觉。由此可见,拿取在软件架构中的重要性,本节我来带领大家了解可重用架构资源。
一个可重用资源可以代表一个可重用需求(在不同系统里反复出现的需求)、可重用的解决方案元素(一个架构模式或者可重用代码)、可重用测试、可重用的方法等。可重用资源减少了架构师必须关注的事情的数量,使他们不必再做无用功,因此可重用资源会对项目的时间计划、成本和交付系统的质量产生重大的影响。一个成功的架构师通常是懂的可重用资源的人。
对于架构资源来说,它分为开发期资源和运行期资源。其中开发期资源包括开发方法、架构风格、架构机制、模式、参考模型和架构决策,而运行期资源则包括现有的应用程序、应用程序框架和组件库。开发期资源和运行期资源的元模型如下图所示。
开发方法
开发方法包括最佳实践和相关的指导、技术以及标准,还有与创建工作产品相关的可重用元素,如模板和样例。我们对开发方法的重用通常是指某些自动化的适当工具,如建模工具Rose、编译器Eclipse、调试器RestClient等。
架构风格
架构风格定义组件和连接器类型的词汇及它们如何进行组合的一组约束。架构风格整体应用于系统。架构风格可以指面向服务的架构(SOA),客户端-服务器模型,管道和过滤器模型等。
架构机制
架构机制代表经常遇到的问题的共同的具体解决方法。持续机制、错误记录机制、通信机制和购物车都属于架构机制。
模式
模式是在给定的上下文中针对一个常规问题的一个常规解决方法。模式的范围非常广,包括需求模式、架构模式、设计模式、编程模式、测试模式、项目管理模式、方法模式和组织模式等。
对架构模式的重用例子有基于电子商务的IBM模式,基于金融系统的IBM模式等。对与设计模式的重用主要是对经典的Gof设计模式的重用。
参考模型
参考模型是一个特定关注领域的实体、它们的关系和行为的一个抽象表示,它通常为更具体的元素的开发形成概念基础。
参考模型的例子有很多,比如业务模型、信息模型和术语表等。参考模型最典型的一个例子是IBM的保险应用架构(IIA,Insurance Application Architecture),这个模型提供了代表保险行业普遍使用的最佳实践的200多个业务流程和700个独立的业务活动。
架构决策
架构决策是关于一个软件系统整体或它的一个或多个核心组件的刻意设计决策。这些决策决定系统的非功能特性和质量指标。
把架构决策看作是可重用资源,是一个正在形成的领域,目前支持这类资源的方法和工具也相对不成熟。
现有的应用程序
任何现有的应用程序都是高可重用的资源。这些应用程序通常是指遗留应用程序,没有经验的架构师把遗留应用程序看作是要回避的东西而不是真正的有价值的资源。
当我们把现有应用程序集成到架构中时,这项工作的主要精力在集成而不是定制开发,重用的水平明显提高。这种集成有时候是指遗留集成或企业应用集成(EAI)。
封装的应用程序
封装的应用程序是提供很多能力(和重用)的一个粗粒度的商业化成熟产品,如一个客户关系管理(CRM)应用程序或企业资源计划(ERP)应用程序。Siebel和SAP是典型的封装应用程序的例子。
如果封装的应用程序占待开发系统的很大一部分,需要定制的开发量就会显著减少,精力会移动到封装应用程序的配置和集成上。
应用框架
应用框架代表一个应用程序的特定领域的部分实现。应用框架的范围非常广阔,它可以指完整的平台,如J2EE和.NET;也可以指一个特定的领域,如数据访问(Hibernate)或用户界面(JSF、ASP.NET)。
本节只是基于可重用架构资源的分类介绍,并对其中的关键概念做了简单介绍。稍后,我将在案例方面介绍可重用架构资源及其他方面的关于架构的设计。
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭