信息系统架构基本概念及发展_2.信息系统架构的定义

1.几种架构的定义

信息系统架构仍在不断发展中,还没有形成一个公认的定义,这里举出几个定义。

定义1:软件或计算机系统的信息系统架构是该系统的一个(或多个)结构,而结构由软件元素、元素的外部可见属性及它们之间的关系组成。

定义2:信息系统架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件系统元素的描述、这些元素的相互作用、指导元素集成的模式及这些模式的约束组成。

定义3:信息系统架构是指一个系统的基础组织,它具体体现在:系统的构件,构件之间、构件与环境之间的关系,以及指导其设计和演化的原则上。

前两个定义都是按"元素-结构-架构"这一抽象层次来描述的,它们的基本意义相同,其中定义1较通俗。该定义中的"软件元素"是指比"构件"更一般的抽象,元素的"外部可见属性"是指其他元素对该元素所做的假设,如它所提供的服务、性能特征等。

2.对定义的说明

为了更好地理解信息系统架构的定义,特作如下说明:

(1)架构是对系统的抽象,它通过描述元素、元素的外部可见属性及元素之间的关系来反映这种现象。因此,仅与内部具体实现有关的细节是不属于架构的,即定义强调元素的"外部可见"属性。因此,仅与内部具体实现有关的细节是不属于架构的,即定义强调元素的"外部可见"属性。

(2)架构由多个结构组成,结构是从功能角度来描述元素之间的关系的,具体的结构传达了架构某方面的信息,但是个别结构一般不能代表大型信息系统架构。

(3)任何软件都存在架构,但不一定有对该架构的具体表述文档。即架构可以独立于架构的描述而存在。如文档已过时,则该文档不能反映架构。

(4)元素及其行为的集合构成架构的内容。体现系统由哪些元素组成,这些元素各有哪些功能(外部可见),以及这些元素间如何连接与互动。即在两个方面进行抽象:在静态方面,关注系统的大粒度(宏观)总体结构(如分层);在动态方面,关注系统内关键行为的共同特征。

(5)架构具有"基础"性:它通常涉及解决各类重复问题的通用方案(复用性),以及系统设计中影响深远的各项重要决策。

(6)架构隐含有"决策",即架构是由架构设计师根据关键的功能和非功能性需求(质量属性及项目相关的约束)进行设计与决策的结果。不同的架构设计师自身的水平是一种约束,不断学习和积累经验才是摆脱这种约束走向优秀架构师的必经之路。

3.商业背景下的信息系统架构对企业的重要性

(1)影响架构的因素。软件系统的项目干系人(客户、用户、项目经理、程序员、测试人员、市场人员等)对软件系统有不同的要求、开发组织有不同的人员知识结构、架构设计师的素质与经验、当前的技术环境等方面都是影响架构的因素。这些因素通过功能性需求、非功能性需求、约束条件及相互冲突的要求,影响架构设计师的决策,从而影响架构。

(2)架构对上述诸因素具有反作用,例如,影响开发组织的结构。架构描述了系统的大粒度总体结构,因此可以按架构进行分工,将项目组分为几个工作组,从而是开发有序;影响开发组织的目标,即成功的架构为开发组织提供了新的商机,这归功于:系统的示范性、架构的可复用性及团队开发经验的提升,同时,成功的系统将影响客户对下一个i系统的要求等。这种反馈机制构成了架构的商业周期。

相关推荐
七灵微1 天前
进程与线程以及如何查看
linux·系统架构
oioihoii2 天前
桌面图形界面生成原理:从流水灯到电脑屏幕
系统架构
颯沓如流星2 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构
柔弱女子爱java2 天前
spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间
java·笔记·后端·spring·架构·系统架构
云空3 天前
《 QT 5.14.1 类库模块列表详述》
开发语言·qt·系统架构
星原飞火4 天前
2-2-18-16 QNX系统架构之自适应分区
车载系统·系统架构·qnx·blackberry
重生之我是数学王子4 天前
ARM原理
arm开发·系统架构
silver6875 天前
中间件介绍
系统架构
亭墨5 天前
linux0.11源码分析第二弹——setup.s内容
linux·驱动开发·学习·系统架构
田超凡6 天前
M4Pro内核MacOS brew安装docker爬坑
微服务·云原生·java-ee·系统架构