软件架构的种类

作者&投稿:始邓 (若有异议请与网页底部的电邮联系)
软件架构模式基本概念及三者区别~

在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(Architectural Pattern)、设计模式(Design Pattern)、代码模式(Coding Pattern)。

架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质和力学。架构模式的好坏可以影响到总体布局和框架性结构。

设计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。

代码模式(或成例)是特定的范例和与特定语言有关的编程技巧。代码模式的好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总体布局和大尺度框架。

架构模式(Architectural Pattern)

一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。称之为系统模式。

•MVC模式,一个架构模式常常可以分解成很多个设计模式的联合使用。MVC模式常常包括调停者(Mediator)模式、策略(Strategy)模式、合成(Composite)模式、观察者(Observer)模式等。

•Layers(分层)模式,有时也称Tiers模式

•Blackboard(黑板)模式

•Broker(中介)模式

•Distributed Process(分散过程)模式

•Microkernel(微核)模式



架构模式常常划分成如下的几种:

一、 模块结构(From Mud to Structure)型。帮助架构师将系统合理划分,避免形成一个对象的海洋。包括Layers(分层)模式、Blackboard(黑板)模式、Pipes/Filters(管道/过滤器)模式等。

二、分散系统(Distributed Systems)型。为分散式系统提供完整的架构设计,包括像Broker(中介)模式等。

三、人机互动(Interactive Systems)型,支持包含有人机互动介面的系统的架构设计,例子包括MVC(Model-View-Controller)模式、PAC(Presentation-Abstraction-Control)模式等。

四、Adaptable Systems型,支持应用系统适应技术的变化、软件功能需求的变化。如Reflection(反射)模式、Microkernel(微核)模式等。

设计模式(Design Pattern)

一个设计模式提供一种提炼子系统或软件系统中的组件的,或者它们之间的关系的纲要设计。设计模式描述普遍存在的在相互通讯的组件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。

设计模式常常划分成不同的种类,常见的种类有:

创建型设计模式,如工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式等

结构型设计模式,如合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式等

行为型模式,如模版方法(Template Method)模式、观察者(Observer)模式、迭代子(Iterator)模式、责任链(Chain of Responsibility)模式、备忘录(Memento)模式、命令(Command)模式、状态(State)模式、访问者(Visitor)模式等等。

以上是三种经典类型,实际上还有很多其他的类型,比如Fundamental型、Partition型,Relation型等等。设计模式在特定的编程语言中实现的时候,常常会用到代码模式。比如单例(Singleton)模式的实现常常涉及到双检锁(Double-Check Locking)模式等。

代码模式(Coding Pattern)

代码模式(或成例)是较低层次的模式,并与编程语言密切相关。代码模式描述怎样利用一个特定的编程语言的特点来实现一个组件的某些特定的方面或关系。

较为著名的代码模式的例子包括双检锁(Double-Check Locking)模式等

1简单的轮询结构
2带中断的轮询结构
3监控式操作系统+应用软件
4通用嵌入式操作系统+应用软件

根据我们关注的角度不同,可以将架构分成三种: 软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。
比如下面就是笔者亲身经历过的一个软件系统的逻辑架构图
图2、一个逻辑架构的例子
从上面这张图中可以看出,此系统被划分成三个逻辑层次,即表象层次,商业层次和数据持久层次。每一个层次都含有多个逻辑元件。比如WEB服务器层次中有HTML服务元件、Session服务元件、安全服务元件、系统管理元件等。 软件元件是怎样放到硬件上的。
比如下面这张物理架构图描述了一个分布于北京和上海的分布式系统的物理架构,图中所有的元件都是物理设备,包括网络分流器、代理服务器、WEB服务器、应用服务器、报表服务器、整合服务器、存储服务器、主机等等。 系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。
系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。
此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。
首先,一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息。
其次,进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出,就很难更改的。
根据作者的经验,一个基于数据库的系统架构,有多少个数据表,就会有多少页的架构设计文档。比如一个中等的数据库应用系统通常含有一百个左右的数据表,这样的一个系统设计通常需要有一百页左右的架构设计文档。




嵌入式技术发展历程
随着物联网的快速发展,应用环境的复杂化,特别是嵌入式AI的需求,随着微电子技术的飞速发展,嵌入式系统内核架构种类繁多,如MCS-51架构、MIPS架构、PowerPC架构、ARM架构以及现在比较火的RISC-V架构,随着用户对产品功能多元化的追求,对更低功耗、更人性化的人机交互界面以及多任务等需求的增加,传统的...

什么是软件架构?有没有具体解释?
架构的种类 根据我们关注的角度不同,可以将架构分成三种: ·逻辑架构、软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。 比如下面就是笔者亲身经历过的一个软件系统的逻辑架构图图2、一个逻辑架构的例子 从上面这张图中可以看出,此系统被划分成三个逻辑层次,即表象层次,商业层次和数...

.net 框架的基本层次结构及框架特点
方法;基于XML的可编辑复合信息架构——通用画布;个性化的信息代理服务;使机器能够更好地进行自动处理的智能标记 等技术。参考资料:http:\/\/bbs.acnow.net\/dispbbs.asp?boardID=71&ID=5025

平板选X86架构和ARM架构有啥区别
X86结构的电脑采用“桥”的方式与扩展设备(如:硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。 ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般...

买车前必看!这些知识让你更懂电机
在发烧友和技术控眼中,新能源车更像一件艺术品,每一个核心部件都是其精髓所在。聊到纯电动车,他们会问你电池厂商或是电芯的供应商,这可以视作车辆的第二品牌;聊到混合动力汽车,他们会问你是“P几”,这些黑话究竟代表什么意思呢?今天就跟大家科普下混合动力汽车不同类型的电机架构。 目前行业内对于电机架构的...

java架构师需要掌握哪些
架构师的种类:1、应用架构师。应用架构师是行业中数量最多的架构师,主要负责公司产品的技术架构。产品架构师需要对业务有足够的理解,根据产品需求设计架构,在运营团队的协助下评估量级,并管理项目的整个生命周期。2、中间件架构师。中间件架构师主要负责基础框架、公共组件,通用服务的搭建。比如分布式...

手机处理器有什么种类
手机处理器有什么种类?手机处理器是手机最核心的部件之一,它直接影响着手机的性能和流畅度。随着科技的发展,手机处理器也在不断地升级和更新,同时也出现了许多不同种类的手机处理器。那么,手机处理器有哪些种类呢?目前常用的手机处理器主要有ARM架构和x86架构两种。ARM架构的处理器广泛应用于智能手机...

什么是单一品牌架构?企业采用单一品牌架构的优势和劣势是什么?_百度...
单一品牌架构,又称统一品牌架构,即企业生产经营的所有产品(包括不同种类的产品)都统一使用同一品牌。企业采用单一品牌架构,能够减少品牌设计推广方面的费用,企业品牌良好的市场信誉更有利于新产品的推出,并且企业产品的统一形象能给消费者留下更深刻的印象,提高企业的信誉和知名度。但是企业要承担很大的...

计算机组成原理结构
现代计算机的硬件基础架构都是依赖于冯诺依曼提出的冯诺依曼体系结构,现代计算机的核心架构可以抽象为五个基础组件:运算器、控制器、存储器、输入设备和输出设备。具体到现代计算机,运算器和控制器组成了现代计算机的CPU,存储器对应着内存和硬盘,主板控制着CPU、内存、硬盘、输出\/输出设备之间的通讯。冯...

CPU的架构是指什么?
形成一座楼房,X86架构是楼房的地基,是桌面CPU这座楼房的基础,而其他分支架构就如同楼房的种类一样,普通民房、别墅、摩天大楼等等,因为采用了不同的建筑材料和建筑方式所以各有侧重。这样说就好理解了,拿我们熟知的英特尔酷睿架构的CPU举例来说,新架构的应用就相当于建筑材料的品质提升,如采用了更坚固...

延安市19678101912: 软件架构(指导软件系统各个方面的设计) - 搜狗百科
欧恒四环: 根据我们关注的角度不同,可以将架构分成三种: 软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等.比如下面就是笔者亲身经历过的一个软件系统的逻辑架构图 图2、一个逻辑架构的例子 从上面这张...

延安市19678101912: 常用的软件架构有那些? -
欧恒四环: 1.模块视图类型 1)分解风格 2)使用风格 3)分层风格 4)泛化风格 2.组件连接器类型(C&C) 1)管道过滤器风格 2)共享数据风格 3)客户端服务器风格 4)发布订阅风格 5)进程通信风格 6)对等通信风格 3.分配视图类型 1)部署风格 2)实现风格 3)工作任务风格 不知道是不是你想要的结果

延安市19678101912: 软件架构种类有什么呢?
欧恒四环: 软件架构种类编辑根据我们关注的角度不同,可以将架构分成三种:软件架构逻辑架构软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等

延安市19678101912: 谁能介绍下软件架构的种类呢?
欧恒四环: 比如WEB服务器层次中有HTML服务元件、Session服务元件、安全服务元件、系统管理元件等

延安市19678101912: 软件架构模式基本概念及三者区别 -
欧恒四环: 在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(Architectural Pattern)、设计模式(Design Pattern)、代码模式(Coding Pattern). 架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质...

延安市19678101912: 软件平台系统开发架构方式有哪些? -
欧恒四环: 上海景物科技发展有限公司:C/S架构主要用于学校VR实验室,学生可在实验室中登陆系统,进行教学和自主学习,并按照教师要求进行上机考试; B/S架构主要可以让学生在宿舍或者在家进行自主预习,学习,复习,也可用于对外培训和对外宣传,用户只要通过网站获取学校授权的用户名和密码即可登录系统进行操作.

延安市19678101912: 系统构架的架构分类 -
欧恒四环: 第一种是基础架构的设计规划,例如:OS,硬件,网络,各种应用服务器等等. 第二种是软件开发设计的架构师,他们负责规划程序的运行模式,层次结构,调用关系,规划具体的实现技术类型,甚至配合整个团队做好软件开发中的项目管理.

延安市19678101912: 管家婆软件架构方式一共分几种? -
欧恒四环: 楼主您好、架构方式分为CS和BS两种、若有帮助望采纳

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网