架构,又名软件架构,是有关软件整体结构与组件的抽象描述,架构是对存储在ActiveDirectory中的对象类别和属性的描述,对于每一个对象类别来说,该架构定义了对象类必须具有的属性,它也可以有附加的属性,并且该对象可以是它的父对象,它用于指导大型软件系统各个方面的设计,架构描述语言即ADL,是用于描述软件的体系架构,现在已有多种架构描述语言,如由卡内基梅隆大学开发的Wright语言,由卡内基梅隆大学开发的Acme语言,由UCI开发的C2语言,由伦敦帝国学院开发的Darwin语言,ADL的基本构成包
架构是什么意思
构架的解释
[airframe (of a rocket)]
结构材木。指建筑 详细解释 亦作“ 构驾 ”。 1.结架材木。指建筑。 《淮南子·本经训》 :“大构驾,兴宫室。” 高诱 注:“构,连也;驾,材木相乘驾也。” (2).引申为 运筹决策 ,构思 设计 。 三国 魏 刘劭 《人物志·材理》 :“思能造端,谓之构架之材;明能见机,谓之达识之材。” 鲁迅 《坟· 文化 偏至论》 :“此非操觚之士,独凭神思构架而然也。” 搆架 :捏造;弄虚作假。 唐 陈子昂 《申宗人冤狱书》 :“今乃遭诬罔之罪,被搆架之词。” 唐 拾得 《诗》 之一 :“不唯贤与愚,箇箇心搆架。”
词语分解
构的解释 构 (构) ò 结成,组合,造:构造。构思。构图。虚构。构筑。构想。 作品:佳构。 落叶 乔木 ,叶卵形,花淡 绿色 。木材可制器具,皮为造纸原料。 部首 :木; 架的解释 架 à 用做支承的 东西 :书架。衣架。绞架。 支承,搀扶:架桥。架 不住 。架空。 互相 殴打 ,争吵:打架。劝架。 量词,多指有支柱或 有机 械的东西:五架飞机。 捏造,虚构:架词诬控。 古同“驾”, 凌驾 。 笔
什么是架构?
第66篇
极客时间《从0开始学架构》课程笔记。
要理解什么是架构,需要先搞明白系统、子系统、组件、模块的定义,再区分出框架,然后才能真的理解什么是架构(设计)。
系统无处不在。
地球是系统,太阳系也是系统;手机是系统,运行在手机里的APP是系统;电脑是系统,运行在电脑里的软件程序也是系统;浏览器是系统,打开某个网站也是系统。
似乎明白系统是什么,又似乎无法准确定义它。
维基百科上定义如下:
关键词: 个体关联、运作规则、群体工作
关联代表多个个体,不是一个。规则代表有指定要求和顺序,不是随意组合。群体工作则突出能力的变化,不是个体的能力累加,而是形成新能力:『系统能力』。
子系统定义与系统一样,只是突出表达是一个大系统的组成部分,大系统由多个子系统组成。
系统=子系统A+子系统B……+子系统N
在平时工作中,这两个概念一直没区分,仅仅是哪个用着顺手就用哪个,基本认为是一个相同的概念了。
但实际上,两个概念是有区别的,但不是正确与错误的那种区别,而是描述角度的差异而已。
1、模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。
2、从逻辑的角度来拆分系统后,得到的单元就是“模块”;划分模块的主要目的是职责分离;模块偏业务。
3、从物理的角度来拆分系统后,得到的单元就是“组件”;划分组件的主要目的是单元复用;组件偏技术。
4、模块是对系统进行横向拆分,为了便于分工协作;而组件是纵向切分,站在成本角度,目的是为了复用,具备独立可替换特点。
1、框架是一套规范或者规则(思想),或者提供基础功能的产品。
2、架构是结构与组件的抽象描述,是系统整体的顶层设计,用来处理软件高层次结构的设计和实施。
3、框架关注『规范』,架构关注『结构』。
4、同一个框架可以用在不同系统的软件架构中。
5、同一个系统的架构可以通过不同角度进行描述,如『4+1视图』
1、个体=子系统或模块或组件;系统 = 一群关联个体根据规则运行
2、架构需要明确:个体包含哪些『个体』、个体运作和协作的规则
3、顶层结构突出『顶层』,区分系统和子系统,关注整体而不是个体
软件框架
软件架构
软件架构 "4+1" 视图模型
运用RUP 4+1视图方法进行软件架构设计
什么是构架
1、什么是架构和架构本质
架构一个系统在其所处环境中所具备的各种基本概念和属性,具体体现为其所包含的各个元素、他们之间的关系以及架构的设计和演进原则之中。
架构的本质就是对系统进行有序化地重构以致符合当前业务的发展,并可以快速扩展。
2、企业架构和系统架构
架构从应用上可以分为企业架构和系统架构。
企业架构(Enterprise Architecture)是记录企业内所有信息系统、它们的相互关系以及它们如何完成企业使命的蓝图,是企业关注点。
系统构架是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务,是系统关注点。
3、架构的作用
复杂的软件项目通常有两个明显的特征:需求不确定和技术复杂。需求不确定来自于客户,而技术的复杂性主要体现在需求让技术变复杂、技术本身也是复杂的、要让软件稳定运行是复杂的。这些技术的复杂性,会导致软件开发变得复杂,开发成本很高,架构设计恰恰可以很好解决技术复杂的问题。首先,架构可以降低满足需求和需求变化的开发成本。其次,架构可以帮助组织人员一起高效协作。再次,架构可以帮助组织好各种技术。最后,架构可以保障服务稳定运行。
4、什么是视角和视图
视角(Viewpoint):一个针对某视图所采用的观察角度的定义,是构建和使用某视图的规约的描述(通常采用一个适当的模式或模版的形式)。通俗的说,视图描述了所看到的内容;而视角则描述了站在何处进行观察——一个能够决定你所能看到的事物的制高点或角度。
视图(View):针对一系列相互关联的关注点的表达。一个视图描述了采用某个视角后所看到的事物。架构视图可以通过模型来进行表述,从而为不同的干系人根据各自针对架构的关注点而分别提供描述。一个视图从本质上讲不一定以可视化或图形化的方式进行展示。
什么是组织架构
组织结构(OrganizationalStructure)是指,对于工作任务如何进行分工、分组和协调合作。
常见的组织结构形式包括中央集权制、分权制、直线式以及矩阵式等这三种。
组织结构
组织结构(organizationalstructure)是表明组织各部分排列顺序、空间位置、聚散状态、联系方式以及各要素之间相互关系的一种模式,是整个管理系统的“框架”。
组织结构是组织的全体成员为实现组织目标,在管理工作中进行分工协作,在职务范围、责任、权利方面所形成的结构体系。组织结构是组织在职、责、权方面的动态结构体系,其本质是为实现组织战略目标而采取的一种分工协作体系,组织结构必须随着组织的重大战略调整而调整。
四大结构
组织结构一般分为职能结构、层次结构、部门结构、职权结构四个方面。
1、职能结构:是指实现组织目标所需的各项业务工作以及比例和关系。其考量维度包括职能交叉(重叠)、职能冗余、职能缺失、职能割裂(或衔接不足)、职能分散、职能分工过细、职能错位、职能弱化等方面。
2、层次结构:是指管理层次的构成及管理者所管理的人数(纵向结构)。其考量维度包括管理人员分管职能的相似性、管理幅度、授权范围、决策复杂性、指导与控制的工作量、下属专业分工的相近性。
3、部门结构:是指各管理部门的构成(横向结构)。其考量维度主要是一些关键部门是否缺失或优化。
从组织总体型态,各部门一、二级结构进行分析。
4、职权结构:是指各层次、各部门在权力和责任方面的分工及相互关系。主要考量部门、岗位之间权责关系是否对等。
构架与架构的区别是什么?
区别如下所示:
1、含义不同。
架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。构架,汉语词语,意思是结架材木。指建筑。
2、性质不同。
架构是对存储在Active Directory中的对象类别和属性的描述。对于每一个对象类别来说,该架构定义了对象类必须具有的属性,它也可以有附加的属性,并且该对象可以是它的父对象。
而构架是一个成语。
3、词性不同。
构架是动词,像是要构建什么,结架材木。指建筑。架构是名词,比如说什么的架构。
参考资料来源:百度百科-架构
参考资料来源:百度百科构架
程序设计中的架构到底是指什么?
程序设计中的架构是指是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
软件架构所指的就是说相应的系列性的抽象模式,可以为设计大型软件系统的各个方面提供相应的指导。从本质上来看,软件架构是属于一种系统草图。
在软件架构所描述的对象就是直接的进行系统抽象组件构成。连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。
处于相应的系统实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。从面向对象领域进行分析,那么各个组件之前实施的连接实现往往是接口。
扩展资料:
程序设计中架构的三种分类:
1、逻辑架构:
软件系统系统当中的各个元件之间所存在的关系,比如外部系统接口、用户界面、商业逻辑元件、数据库等。
2、物理架构:
究竟是怎样做到在硬件当中放置软件元件。例如处于上海与北京进行分布的分布式系统的物理架构,这也就是说全部的元件都是属于物理设备,主要的有主机、整合服务器、应用服务器、代理服务器、存储服务器、报表服务器、Web服务器、网络分流器等。
3、系统架构:
相应的系统存在着性能、强壮性、可扩展性、灵活性、可靠性等这些非功能性特征。设计系统的架构比要让系统架构设计人员存在着过硬的软件与硬件的性能与功能,往往从事这样的工作这是属于设计系统架构环节最为困难的工作。
参考资料来源:百度百科-软件架构
什么是架构,SQL中的架构有哪些
架构(Schema)是一组数据库对象的集合,它被单个负责人(可以是用户或角色)所拥有并构成唯一命名空间。你可以将架构看成是对象的容器。
在 SQL Server 2000 中,用户(User)和架构是隐含关联的,即每个用户拥有与其同名的架构。因此要删除一个用户,必须先删除或修改这个用户所拥有的所有数据库对象。
在 SQL Server 2005 中,架构和创建它的数据库用户不再关联,完全限定名(fully-qualified name)现在包含4个部分:server.database.schema.object
1. 体系结构(Architecture)
体系结构亦可称为架构,所谓软件架构,根据Perry 和Wolfe之定义:Software Architecture = {Elements,Forms, Rationale / Constraint },也就是软件主架构 = {组件元素,元素互助合作之模式,基础要求与限制}。Philippe Kruchten采用上面的定义,并说明主架构之设计就是:将各组件元素以某些理想的合作模式组织起来,以达成系统的基本功能和限制。体系结构又分为多种样式,如Pipes and Filters等。
2. 框架(Framework)
框架亦可称为应用架构,框架的一般定义就是:在特定领域基于体系结构的可重用的设计。也可以认为框架是体系结构在特定领域下的应用。框架比较出名的例子就是MVC。
3. 库(Library)
库应该是可重用的、相互协作的资源的集合,供开发人员进行重复调用。它与框架的主要区别在于运行时与程序的调用关系。库是被程序调用,而框架则调用程序。比较好的库有JDK。
4. 设计模式(Design Pattern)
设计模式大家应该很熟悉,尤其四人帮所写的书更是家喻户晓。“四人帮”将模式描述为“在一定的环境中解决某一问题的方案”。这三个事物 — 问题、解决方案和环境 — 是模式的基本要素。给模式一个名称,考虑使用模式将产生的结果和提供一个或多个示例,对于说明模式也都是有用的。
5. 平台(PlatForm)
由多种系统构成,其中也可以包含硬件部分。
对于以上的概念有一个比较清楚的认识之后,就可以在软件的开发过程中进行应用。理论和实践是缺一不可的,相辅相成的。没有理论的指导,实践就缺乏基础;没有实践的证明,理论就缺乏依据,因此我一直认为:对于当代的程序员,在有一定的实践基础后,必须学习更深的理论知识。无论你是从那方面先开始学习的。
在软件的开发过程中,从许多过程实践和方法中,大致可以提炼出五大步骤:需求、分析、设计、编码、测试。而体系结构是软件的骨架,是最重要的基础。体系结构是涉及到每一步骤中。一般在获取需要的同时,就应该开始分析软件的体系结构。体系结构现在一般是各个大的功能模块组合成,然后描述各个部分的关系。
我一般认为框架是体系结构中每个模块中更细小的结构。如需要表示web技术,就会用到MVC框架,而web功能只是整个软件体系中的一个功能模块。每个框架可以有许多个实例,如用java实现的MVC框架structs。
而在框架之下就是设计模式,设计模式一般是应用中框架之中的,也可以说是对框架的补充。因为框架只是提供了一个环境,需要我们我里面填入更多的东西。无论是否应用了设计模式,你都可以实现软件的功能,而正确应用了设计模式,是我们对前人软件的设计或实现方法的一种继承,从而让你的软件更软。
体系结构是可以从不同视角来进行分析的,所以软件体系结构的设计可以按照不同的视角来进行的。按4+1 views的论述,那是四种views:逻辑、开发、过程、物理和场景。因此体系结构是逐渐细化的,你不可能开始就拿出一个完美的体系结构,而只能根据开发过程逐渐对体系结构进行细化。
打个比方:如果我们准备建一个房子,那房子如果按功能来分:墙壁、地板、照明等,它是按那种样式来组成的,房子是四方的还是圆形的等,这样就组成了房子的体系结构。在体系结构之下,我们可以把框架应用在每个模块中,例如墙壁,我们准备应用什么框架。墙壁可以包括:窗户、门等。窗户和门的组成的就是一种框架。而窗户是什么形状的或者是大还是小,是要为了实现屋内的亮度的,因此挑选什么样的窗户就是设计模式。
软件行业里常说的“架构”,究竟是什么东西
一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。甚至于很多架构师一说架构,就开始谈论什么应用架构、硬件架构、数据架构等等。我曾经也到处寻找过架构的定义,请教过很多人,结果发现,没有大家都认可的定义。套用一句关于 big data 流行的笑话,放在架构上也适用:
Architecture is like teenage sex,everybody talks about it,nobody really knows what is it。
事实上,架构在软件发明时的 N 多年以前,就已经存在了,这个词最早是跟随着建筑出现的。所以,我觉得有必要从源头开始,把架构这个概念先讨论清楚,只有这样,软件行业架构的讨论才有意义。
什么是架构?
架构的英文是 Architecture,在 Wikipedia 上,架构是这样定义的:
Architecture (Latin architectura, from the Greek ἀρχιτέκτων arkhitekton” architect”, from ἀρχι- “chief” and τέκτων “builder”) is both the process and the product of planning, designing, and constructing buildings and other physical structures。
从这个定义上看,架构好像是一个过程,也不是很清晰。为了讲清楚这个问题,我们先来看看为什么会产生架构。
为什么会产生架构?
想象一下,在最早期,每个人都完全独立生活,衣、食、住、行等等全部都自己搞定,整个人类都是独立的个体,不相往来。为了解决人类的延续的问题,自然而然就有男女群居出现,这个时候就出现了分工了,男性和女性所做的事情就会有一定的分工,可是人每天生活的基本需求没有发生变化,还是衣食住行等生活必须品。
但是一旦多人分工配合作为生存的整体,力量就显得强大多了,所以也自然的形成了族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮食,有些地方适合产出棉花等,就自然形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。
整个人群的生产力和抵抗环境的能力都得到了增强。为什么呢?因为每个人的能力和时间都是有限的,并且因为人的结构的限制,人同时只能专心做好一件事情,这样不得已就导致了分工的产生。既然分工发生了,原来由一个人干生存所必需的所有的事情,就变成了很多不同分工的角色合作完成这些事情,这些人必须要通过某些机制合在一起,让每个人完成生存所必需的事情,这实际上也导致了交易的发生(交易这部分就不在这里展开了,有机会再讨论)。
在每个人都必须自己完成所有生活必须品的生产的时候,是没有架构的(当然在个人来讲,同一时刻只能做有限的事情,在时间上还是可能会产生架构的)。一旦产生的分工,就把所有的事情,切分成由不同角色的人来完成,最后再通过交易,使得每个个体都拥有生活必须品,而不需要每个个体做所有的事情,只需要每个个体做好自己擅长的事情,并具备一定的交易能力即可。
这实际上就形成了社会的架构。那么怎么定义架构呢?以上面这个例子为例,把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。由以上的例子,也可以归纳出架构产生的动力:
必须由人执行的工作(不需要人介入,就意味着不需要改造,也就不需要架构了)
每个人的能力有限(每个人都有自己的强项,个人的产出受限于最短板,并且由于人的结构限制,同时只能专注于做好一件事情,比如虽然有两只眼睛,但是只能同时专注于一件事物,有两只手,无法同时做不同的事情。ps. 虽然有少部分人可以左手画圆右手画框,但是不是普遍现象)
每个人的时间有限(为了减少时间的投入,必然会导致把工作分解出去,给擅长于这些工作的角色来完成,见 2,从而缩短时间)
人对目标系统有更高的要求(如果满足于现状,也就不需要进行架构了)
目标系统的复杂性使得单个人完成这个系统,满足条件 2,3(如果个人就可以完成系统的提高,也不需要别的人参与,也就不需要架构的涉及,只是工匠,并且一般这个工作对时间的要求也不迫切。当足够熟练之后,也会有一定的架构思考,但考虑更多的是如何提高质量,提高个人的时间效率)
有人可能会挑战说,如果一个人对目标系统进行分解,比如某人建一栋房子,自己采购材料,自己搭建,难道也不算架构嘛?如果对于时间不敏感的话,是会出现这个情况的,但是在这种情况下,并不必然导致架构的发生。如果有足够的自觉,以及足够的熟练的话,也会产生架构的思考,因为这样对于提高生产力是有帮助的,可以缩短建造的时间,并会提高房子的质量。事实上建筑的架构就是在长期进行这些活动后,积累下来的实践。
当这 5 个条件同时成立,一定会产生架构。从这个层面上来说,架构是人类发展过程中,由懵懵懂懂的,被动的去认识这个世界,变成主动的去认识,并以更高的效率去改造这个世界的方法。以下我们再拿建筑来举例加强一下理解。
最开始人类是住在山洞里,住在树上的,主要是为了躲避其他猛兽的攻击,以及减少自然环境的变化,对人类生存的挑战。为了完成这些目标,人类开始学会在平地上用树木和树叶来建立隔离空间的设施,这就是建筑的开始。但是完全隔离也有很多坏处,慢慢就产生了门窗等设施。
建筑的本质就是从自然环境中,划出一块独占的空间,但是仍然能够通过门窗等和自然环境保持沟通。这个时候架构就已经开始了。对地球上的空间进行切分,并通过门窗,地基等,保持和地球以及空间的有机的沟通。当人类开始学会用火之后,茅棚里面自然而然慢慢就会被切分为两部分,一部分用来烧饭,一部分用来生活。当人的排泄慢慢移入到室内后,洗手间也就慢慢的出现了。这就是建筑内部的空间切分。
这个时候人们对建筑的需求也就慢慢的越来越多,空间的切分也会变成很多种,组合的方式也会有很多种,比如每个人住的房子,群居所产生的宗教性质的房子,集体活动的房子等等。这个时候人们就开始有意识的去设计房子,架构师就慢慢的出现了。一切都是为了满足人的越来越高的需求,提升质量,减少时间,更有效率的切分空间,并且让空间之间更加有机的进行沟通。这就是建筑的架构以及建筑的架构的演变
总结一下,什么是架构,就是:
根据要解决的问题,对目标系统的边界进行界定。
并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
并对这些切分出来的部分,设立沟通机制。
根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
同样这个思考可以展开到其他的行业,比如企业的架构,国家的架构,组织架构,音乐架构,色彩架构,软件架构等等。套用三国演义的一句话,合久必分,分久必合。架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分析,以及解决问题的方案:包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等。
望采纳!
相关推荐: