http://ea.zhoujingen.cn/110.html
做软件产品近二十多年了,“架构“真是一个重要而模糊的词,因范围太广,内容太深而不好理解。而要了解企业架构,那必然要先了解架构,所以今天我和大家来聊聊“架构”。
IT 这个行业中的词汇许多都来源于传统行业,例如“精益””架构“”。“架构”这个词也来源于建筑学。在建筑建造出来或者产品加工出来之前,设计人员用图纸来描述自己的设计意图。现在你要给软件画个图纸,这个图纸会有哪些要素组成?
在IEEE 1471中是这样描述架构元素及其关系的:
如果想要更多了解,大家可以自己上网查找一下这个图的讲解,在此我就不多说了。
架构经常和框架有点关联,容易混淆,所以在讲架构时一定得说说框架。
因为我之前做过好几年的管理软件以及开发平台,所以接着我说下在软件产品线工程方法中如何对架构进行说明的。
IEEE 1471是对通用架构的描述,FEF是一个产品线评估框架,里面有对架构的评估。Family Evaluation Framework (FEF) 是欧洲工业界和学术界经过六年时间从众多项目整理出来的一个评估框架,如下图,该评估框架有5个级别, 覆盖了软件工程的四个评估维度(商业、架构、流程和组织),每个维度有三到四个方面,本篇将介绍一下架构维度,这是我们业务和开发人员最应该关注的维度。
BAPO对架构着重从以下三个方面考虑:
总体说明:只有针对单个系统的架构。
总体说明:重用集中在第三方基础设施。没有正式的可重用领域资产。
总体说明:捕获了领域通用性并在平台中实现,所有应用可以共用一个参考架构,通过配置平台可以适用与多个不同的产品,但是对可变性管理还是没有很好的支持。
总体说明:在产品线中明确提出可变性管理,能够很好的进行进行领域共性和可变性管理
总体说明:参考架构占主导,只有少量的应用架构,更多的是使用建模、脚本、工具和配置从参考架构自动生成产品。
越来越多的人发现,表述一个系统架构的方法不只一种,一个系统中也可能有很多种不同的架构,而且对于什么在架构上意义重大的看法也会随着系统的生命周期而变化,所以会出现很多词汇:软件架构(softwarearchitectures)、系统架构(system architectures)、企业架构(enterprisearchitectures)、信息架构(Information)、应用架构(Application)、IT架构(ITarchitectures)、业务架构(Business architectures)、技术架构(Technologyarchitectures)、应用架构(Solution Architectures)、基础架构(InfrastructureArchitectures)、领域架构(DomainArchitectures)等。
其中对于从软件开发出身的人来说,要着重关注一下业务架构,所以我这里说下业务架构体系:业务架构体系是针对企事业信息管理系统中具有体系的、普遍性的问题而提供的通用解决方案,更确切的说,是基于业务导向和战略驱动的架构来理解、分析、设计、构建、集成、扩展、运行和管理信息系统,比如业务架构体系认为一个信息系统必须由组织机构、业务流程、业务信息、业务功能、和业务语义等层次构成。
这些架构有的还存在各自的社区力量,不同架构之间可能还存在一些争斗,所以想要统一很难,而我们需要做的就是先对对以上这些架构词汇所代表的知识进行学习,在掌握了基本概念之上再结合自己的实践和思考去逐步清晰架构的概念,整理出自己的理解。
虽然架构的定义难以统一,但作为架构师来说,我们还是希望能在某些角度上达成相对统一的理解。《企业应用架构模式》认为架构定义本身很难统一,但是能够统一的内容有两点:
以下为我认为对架构还不错的一些简单说明,可供参考:
架构是为软件产品服务的,而软件产品是由IT技术人员开发的,所以之前我们谈到的架构基本上是这样的:
IT 专家们已经习惯于在信息系统开发和维护项目中处理应用、数据、技术和其他解决方案架构形式。所有解决方案架构领域被看作是“技术性的”,因为它们的范围内包括各种技术元素,例如,软件、数据和 IT 基础架构。这些领域都是由技术人员来处理 —— 也就是那些具有系统工程、软件工程或 IT 管理背景的人。
随着IT技术的发展,以及信息化水平的提高,在 90 年代业务架构作为单独的领域出现了,当时许多组织接受了业务架构师角色,也对业务架构框架中应该包含的组件的内容有了一般的共识:过程及信息、组织和绩效是相关联的。
后来大家基本接受在企业范围内的架构包括业务架构和解决方案架构两部分:
这两部分上接战略,下接项目实施,从此企业架构成为了企业的重要组成部分。
IT架构还可以再细分为:应用架构、数据架构和技术架构
原文:https://www.cnblogs.com/dadadechengzi/p/10641561.html