版权归原作者所有,如有侵权,请联系我们

[科普中国]-软件架构

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。

概述软件架构所指的就是说相应的系列性的抽象模式,可以为设计大型软件系统的各个方面提供相应的指导。从本质上来看,软件架构是属于一种系统草图。在软件架构所描述的对象就是直接的进行系统抽象组件构成。连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。处于相应的系统实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。从面向对象领域进行分析,那么各个组件之前实施的连接实现往往是接口。1

软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用、指导构件集成的模式以及这些模式的约束组成。软件架构不仅显示了软件需求和软件结构之间的对应关系,而且指定了整个软件系统的组织和拓扑结构,提供了一些设计决策的基本原理。2

种类按照当前我国的各种不同的关注角度,能够将软件架构划分成为三种类型。

1、逻辑架构

软件系统系统当中的各个元件之间所存在的关系,比如外部系统接口、用户界面、商业逻辑元件、数据库等。

2、物理架构

究竟是怎样做到在硬件当中放置软件元件。例如处于上海与北京进行分布的分布式系统的物理架构,这也就是说全部的元件都是属于物理设备,主要的有主机、整合服务器、应用服务器、代理服务器、存储服务器、报表服务器、Web服务器、网络分流器等。

3、系统架构

相应的系统存在着性能、强壮性、可扩展性、灵活性、可靠性等这些非功能性特征。设计系统的架构比要让系统架构设计人员存在着过硬的软件与硬件的性能与功能,往往从事这样的工作这是属于设计系统架构环节最为困难的工作。除了以上所提到的之外,基于各个不同的角度进行分析,都能够了解到划分元件、决定设计这两个架构的要素。一个软件系统的元件首先就是属于一种逻辑元件。那么究竟怎样做到在硬件中有效的放置以上所提到的逻辑元件,还有的就是这些元件怎样发挥作用在整个系统的性能、强壮性、可扩展性、灵活性、可靠性等。这也是属于特别重要的信息。比如在一个中等规模的数据库应用系统往往大致存在一百个左右数据表,那么这也就使得设计一个系统往往必须依托一百页规模架构进行文档设计。1

表现形式往往表示软件架构则是借助于多种架构视图实施。基于本质上进行分析,那么这样的多种架构视图则是选取相应的图形方式将处于架构领域存在着十分重要意义的模型元素予以摘要性的说明。

(1)实施视图:

这主要包含的内容为包含这实施模型及其从模块到包、层的组织形式实施的概览;而且在这一过程中,还存在着把相应的逻辑视图中的包与类往实施视图中的包与分配模块的状况实施描述。

(2)逻辑视图:

这主要的是最为关键的设计类、从这些设计类到包与子系统的组织形式,另外还有的就是这些包与子系统到层的组织形式。

(3)配置视图:

这主要的是描述最为典型的配置平台的各种物理节点,还有的就是往物理节点分配来自于进程视图的任务的情况,往往这一视图仅仅只是在分布式系统。

(4)用例视图:

这主要的是场景与用例。

(5)进程视图:

这主要的是描述进程与线程的涉及的任务,这些任务的配置与交互,还有的就是把设计分配对象与类向任务,往往这一视图仅仅只是出于系统存在着特别高程度并行过中才使用。1

具体作用1、开发新产品过程中软件架构所具备的作用分析

所谓的软件架构则是属于在现实的世界与计算机领域所搭建起来的一座沟通的桥梁,具体来说,其作用主要为以下几点。第一点就是进行业务目标的上乘。从本质上来看,软件架构往往存在着出于将业务目标完成而必须开展相应的大局规划的责任;第二点所指的就是进行技术决策的下接。凭借着把面向业务的相关需求往面向技术方向转向的软件架构设计方案,这可以将行之有效的限制与指导提供给后续的技术开发工作;第三点就是有效的将新产品的质量提升;第四点所指的就是进相应的新产品开发过程的组织;第五点所指的就是借助于相应的迭代实施相应新产品开展与增量的交付;第六点则是说控制所具备的复杂性,立足于相应的分而治之的思想,从而能够为金星秀问题所具备的复杂性实施相应的控制。

2、开发软件产品过程中系统架构所具备的作用分析

第一就是将所具备的相应的核心知识予以固话;第二就是可以提供相应的可重用资产;第三就是将产品推出的周期进行有效的缩短;第四就是使得产品开发与维护的总成本得以最大限度的降低;第五就是将产品的质量有效的提升;第六就是为批量控制提供有效的支持。

3、软件产品线架构所具备的特点分析

软件产品线架构就是说根据一个公司或者是某一个组织内部那些一系列的产品所进行设计的相应的通用架构。那么就能够了解到这样的一系列产品存在着特别多的相似之处那么这些能够借助同一个架构或者部分共享来实施具体实现,使得生产率得到最大限度的提升。软件产品线架构主要存在着以下的作用:

第一个作用就是应该将一系列的明确许可的变化进行考虑;第二个作用所指的就是必须做到文档化;第三个作用就是说应该可以存在着相应的产品创建者指南,将实例化架构的整个过程进行描述。

4、维护软件过程中软件架构的作用分析

从本质上来看,相应的软件维护工作主要的来源是Bug与需求变更。往往修复一个Bug与增加一个新的功能,那么通常都会涉及到架构环节的一条模块协作链,针对这样的情况,软件架构比有利于维护工作的开展;反之,如果对于架构并不能了解,相应的进行程序的盲目修改,这也就会存在着可能性对架构设计的思路造成未必,从而导致整个系统所存在的架构逐步显得比较混乱,这也就会存在着可能性导致出现不可思议的Bug与问题。

5、软件升级过程中软件架构的作用分析

相应的软件架构则是通过对软件系统实施持续性的修改,还应该必须做好重构,往往对其实施重构主要是两种状况:第一种状况就是特别混乱的架构,从而导致实施一个比较小的改动就会出现牵动全身;第二种状况所指的就是即将实施的升级软件存在着比较大的力度,之前的软件架构与新的需求根本就不能适应。相应的软件架构予以重构则是属于再工程的一种情况,往往必须实施的步骤为逆向工程、重新规划、正向工程这样的三个步骤。1

本词条内容贡献者为:

徐恒山 - 讲师 - 西北农林科技大学