如果你对项目管理、系统架构有兴趣,请加微信订阅号“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、架构师的大家庭

向架构师进军-->可重用架构资源的更多相关文章

  1. 向架构师进军--->系统架构设计基础知识

    假设你对项目管理.系统架构有兴趣,请加微信订阅号“softjg”,增加这个PM.架构师的大家庭 在解说系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师和架构设计等相关的概 ...

  2. 向架构师进军--->系统架构设计基础知识

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师 ...

  3. WEB架构师成长之路-架构师都要懂哪些知识 转

    Web架构师究竟都要学些什么?具备哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求. 总结起来大概有下面几点技能要求: 一. 架构师有 ...

  4. 阿里P8架构师深度概述分布式架构

    简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术 ...

  5. Java程序员如何从码农晋升为架构师,你跟架构师的差别在哪里?

    一.如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量. ...

  6. 最新咕咆+鲁班+图灵+享学+蚂蚁+硅谷+源码 Java架构师资料《Java架构师VIP课程》

    最新的Java架构师完整资料,完整视频+源码+文档. 每一套都是一百多个G的资料,无密. JAVA架构师全套课程 咕泡学院互联网架构师第一期 咕泡学院互联网架构师第二期 咕泡学院互联网架构师第三期 博 ...

  7. 向架构师进军--->如何编写软件架构文档

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 问:为什么要编写软件架构文档,它的好处是什么? 答: 有文档的架构有助于不同利益相关 ...

  8. 向架构师进军--->怎样编写软件架构文档

    假设你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",增加这个PM.架构师的大家庭 问:为什么要编写软件架构文档,它的优点是什么? 答: 有文档的架构有助于不同利益相关 ...

  9. 架构师之路--应用架构的选型和dubbo

    这个选型主要决定于系统复杂度.先回顾一下. 1>单一应用架构:对于一个流量很小的网站来说,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.之前在上家公司做过一个微信公众号的开发就是基 ...

随机推荐

  1. C的文件操作2

    [转] C语言文件操作  概述 所谓文件(file)一般指存储在外部介质上数据的集合,比如我们经常使用的mp3.mp4.txt.bmp.jpg.exe.rmvb等等.这些文件各有各的用途,我们通常将它 ...

  2. wince5代码整理

    BAT文件语法: @REM 这是注释标识与REM的区别就是在echo on时REM的注释也会显示出来 @REM 设置变量BSP_SMDK2416为2 set BSP_SMDK2416=2 @REM 设 ...

  3. 副本限制修改-M端

    魔兽的副本很多,也有很多副本都有进入的限制,比方说最普遍的,有些副本有级别限制,没达到要求的级别是不能进入对应副本的还有些副本是有任务需求限制,比方说黑翼副本,需要做完一个任务之后才可以进入副本当然, ...

  4. 详细解说Java Spring的JavaConfig注解 【抄】

    抄自: http://www.techweb.com.cn/network/system/2016-01-05/2252188.shtml @RestController spring4为了更方便的支 ...

  5. 【转】无法将notepad++添加到打开方式列表中的解决办法

    问题:想要设置notepad++为默认打开方式,却发现在点击browse找到notepad++.exe点击打开后没有在打开方式列表中找到notepad++. 原因:更新程序版本后程序的路径发生了变动. ...

  6. requests高级用法

    会话对象 当你向同一主机发送多个请求时,session会重用底层的tcp连接,从而提升性能,同时session也会为所有请求保持 cookie. # _*_ coding: utf-8 _*_ imp ...

  7. acm之poj题库1019方法

    认识了几个师弟,一直总想把自己的经验表达出来一些,让后面的人在更年轻的时候,认识到方向.努力. 昨天忽然想起自己在大学时候做了几天的acm,终于也没能坚持.然后就感觉带师弟们做下acm题目还是很不错. ...

  8. Shell编程菜鸟基础入门笔记

    Shell编程基础入门     1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...

  9. 64位weblogic11g安装

    oracle官网上下载的weblogic就是全功能版本,下面是下载 64bit  weblogic 等待下载中…… 下载完成后运行 jar 文件(不会运行jar 的请自己百度) 运行时出现如下 原因是 ...

  10. android的一些关键词