什么是软件系统架构设计
“架构”一词最早来自建筑学,原意为建筑物设计和建造的艺术。
但是在软件工程领域,软件架构不是一个新名词,只是在早期的著作中人们将软件架构称为软件体系架构。
这就是架构的概念。
所谓架构,就是人们对一个结构内的元素及元素间关系的一种主观影射的产物。
系统架构的主要任务是界定系统级的功能与非功能要求、规划要设计的整体系统的特征、规划并设计实现系统级的各项要求的手段,同时利用各种学科技术完成子系统的结构构建。
在系统架构中,由于对软件越来越深入的依赖,软件架构的任务也体现出重要的作用。
而且系统架构与软件架构是紧密联系和相互依赖的。
1997年,Eberhadrt Rechtin 与MarkW Maier 在其论著中,为计算机科学总结了系统架构方面的实践成果,从而奠定了系统科学和系统架构在计算机科学中的基石:无论何种系统架构应用领域,目的都是一样的,即完整地、高一致性的、平衡各种利弊的、有技术和市场前瞻性的设计系统和实施系统。
什么是系统架构设计?
不同的架构方法论,会将架构分为不同视图,每个视图侧重某一个方面、领域的问题。
比如希赛推的ADMEMS架构体系,分为以下几种视图:1. 数据架构:描述数据的存储结构、格式等方面。
2. 物理架构:描述机器的物理部署、网络拓扑方面。
3. 运行架构:描述运行期线程、进程间的交互工作机制。
4. 逻辑架构:指如何将代码分成不同模块、组件,以及之间的职责分配、交互行为。
5. 开发架构:主要指开发工具的选择,程序单元的划分,开发管理规范流程等方面。
例如分为哪些工程、项目,源代码管理,自动化编译构建、测试、部署等。
目前国际上运用比较广泛的是TOGAF架构体系,他把架构分为业务架构、数据架构、应用架构、技术架构等几个方面。
想详细的了解这些架构视图,可以参考这些架构体系相关的书、资料。
另外有很多人无缘无故的抨击架构概念,不知道是出于调侃还是无知。
埃及的金字塔、神庙的建设,不是几个平常的泥瓦匠聚在一起就能够造出来的。
像SAP、Oracle ERP,国内的金蝶等大规模的系统,以及空间站、火箭的控制系统等,没有系统性的架构方法、规范、流程,结果只能是悲剧。
当规模、复杂度没有达到一定程度,比如在一些小的团队、产品中,架构过程可能融入到老板、经理、组长、资历较深的一些开发者中,融入在大家的日常工作中,以至于感觉不到架构的存在。
就算遇到一些问题,因规模不大、复杂度不高,也比较容易调整。
当这些前提条件发生变化时,架构的作用和必要性就逐步的体现出来。
总的来说,一说到架构,如果懂软件,那么会了解为一个软件系统,这个软件设计的组成结构,如哪些是基础支持组件,哪些是完成A业务,哪些完成B业务……但说道企业架构的时候,就会问,该企业架构的几个架构如业务架构、数据架构、业务架构、技术架构,以及如何链接在一起。
倒觉得,一个企业确实需要这样的架构,但不要神话它,最主要的是业务如何最终体现到软件中和流程中。
而采取分离式设计时,最容易的错误就是各自为政,集成困难。
那么以数据为中心的架构设计,会自然提供集成的基础。
提到过,企业最重要的资产是数据,甚至不是信息,是数据。
企业的业务流程会变,IT系统会变,所需要的信息与知识会变,唯有数据能够积淀下来。
这有点象自然演进,考古那种,啥都
安卓软件架构是指什么
软件体系结构研究如果仅仅停留在非形式化的框图阶段,已经难以适应进一步发展的需要。
为支持基于体系结构的开发,需要有形式化建模符号、体系结构说明的分析与开发工具。
从软件体系结构研究的现状来看,在这一领域近来已经有不少进展,其中比较有代表性的是美国卡耐基梅隆大学(Carnegie Mellon University)的Robert J.A11en于l997年提出的Wright系统。
Wright是-种结构描述语言,该语言基于一种形式化的、抽象的系统模型,为描述和分析软件体系结构和结构化方法提供了一种实用的工具。
Wright主要侧重于描述系统的软件构件和连接的结构、配置和方法。
它使用显式的、独立的连接模型来作为交互的方式,这使得该系统可以用逻辑谓词符号系统,而不依赖特定的系统实例来描述系统的抽象行为。
该系统还可以通过一组静态检查来判断系统结构规格说明的一致性和完整性。
从这些特性的分析来说,Wright系统的确适用于对大型系统的描述和分析。
什么是分布式系统架构
分布式应用程序就是指应用程序分布在不同计算机上,通过网络来共同完成一项任务,通常为服务器/客户端模式。
更广义上理解“分布”,不只是应用程序,还包括数据库等,分布在不同计算机,完成同一个任务。
之所以要把一个应用程序分布在不同的计算机上,主要有两个目的:1) 分散服务器的压力大型系统中,模块众多,并发量大,仅用一个服务器承载往往会发生压力过大而导致系统瘫痪的情况。
可以在横向和纵向两方面来进行拆分,把这些模块部署到不同的服务器上。
这样整个系统的压力就分布到了不同的服务器上。
l 横向:按功能划分。
l 纵向:N层架构,其中的一些层分布到不同的服务器上(分层的概念会在后文进行介绍)。
2) 提供服务,功能重用使用服务进行功能重用比使用组件进行代码重用更进一层。
举例来说,如果在一个系统中的三个模块都需要用到报表功能,一种方法是把报表功能做成一个单独的组件,然后让三个模块都引用这个组件,计算操作由三个模块各自进行;另一种方法是把报表功能做成单独的服务,让这三个模块直接使用这个服务来获取数据,所有的计算操作都在一处进行,很明显后者的方案会比前者好得多。
服务不仅能对内提供还能对外提供,如果其他合作伙伴需要使用我们的报表服务,我们又不想直接把所有的信息都公开给它们。
在这种情况下组件方式就不是很合理了,通过公开服务并对服务的使用方做授权和验证,那么我们既能保证合作伙伴能得到他们需要的数据,又能保证核心的数据不公开。
什么是硬件架构
硬件架构指的是计算机硬件的程序执行处理结构,软件程序的运行是建立在硬件架构的基础上的,比如我们熟悉的intel系列处理器,就是属于x86架构,升级换代产品的部分仅仅是扩展了可用的部件的性能和字长(如从8位到16位再到32位到64位)可以兼容以前编写的程序(486也可以运行xp但是很慢),这个架构属于复杂指令集架构(CISC),还有一类属于精简指令集架构RISC ,是把复杂的指令分拆成多个可执行的跟小的元素程序来执行的,例如Apple(主要使用RISC的IBM生产的powerpc芯片,现在也有部分产品(Mac mini/MacBook Pro\Air)使用INTEL的CPU),IBM的powerpc,详见http://baike.baidu.com/view/23531.htm,无论是哪种架构,都是软件程序运行时候的硬件的处理单元的组合,举个例子来说2个数相加,a放在某个寄存器,b放在另一个寄存器,结果放在第三个寄存器,就是在cpu内部完成寄存器1与寄存器2的相加运算,然后结果通过内部寄存器送出到寄存器3.中间连接不同寄存器的通道和寄存器及这个运转机制组成硬件架构。
所以最开始的人工语言---汇编语言的程序书写就是与某种特定架构处理器的寄存器位一一对应的,这样效率理论上是最高,而且实时控制能力很强,直至目前,许多工控机仍然是采用汇编语言。
但是由于硬件架构针对性强,导致这类汇编语言编写的操作系统(英国有人开发了使用汇编开发的类似win窗口界面的操作系统,仅仅几M)无法顺利地工作到其他硬件架构的cpu上,这样造成耗费了大量人力成本编写的操作系统无法移植和运行在不同架构的硬件上(例如Amd公司后来开发的cpu增强指令集的功能与intel的有所不同)。
于是人们开发了c语言,这个语言是具备硬件无关性的,可以工作在不同架构的计算机上(只要这个架构的计算机有c语言的编译器---这种特定硬件架构的c语言编译器就是针对这种计算机的硬件架构来完成最终c语言代码的编译运行的“中间翻译软件”,不需要改动源代码就可以生成(编译出)适合此种计算机硬件架构的最终执行程序。
)那么RISC的架构与CISC的架构有哪些不同呢?纽约约克镇IBM研究中心的John Cocke证明,计算机中约20%的指令承担了80%的工作,他于1974年提出了RISC的概念。
第一台得益于这个发现的电脑是1980年IBM的PC/XT。
再后来,I RISC IBM的RISC System/6000也使用了这个思想。
RISC这个词本身属于伯克利加利福尼亚大学的一个教师David Patterson。
RISC这个概念还被用在Sun公司的SPARC微处理器中(用于小型机工作站),并促成了现在所谓的MIPS技术的建立,它是Silicon Graphics的一部分。
许多当前的微芯片现在都使用RISC概念。
与CISC不同的另一种软件程序执行的效率研究方法和执行过程。
不知道这个解答你满意不?我的qq 910907292
什么是框架结构
框架结构一般是建筑用语,其他行业又有这个词,比如软件行业的框架结构。
其实就是软件架构,是一个系统的草图,软件体系结构是构建计算机软件实践的基础。
框架结构是指由梁和柱以刚接相连接而成,构成承重体系的结构,即由梁和柱组成框架共同抵抗使用过程中出现的水平荷载和竖向荷载。
框架结构的房屋墙体不承重,仅起到围护和分隔作用,一般用预制的加气混凝土、膨胀珍珠岩、空心砖或多孔砖、浮石、蛭石、陶粒等轻质板材砌筑或装配而成。
框架结构又称构架式结构。
房屋的框架按跨数分有单跨、多跨;按层数分有单层、多层;按立面构成分为对称、不对称;按所用材料分为钢框架、混凝土框架、胶合木结构框架或钢与钢筋混凝土混合框架等。
其中最常用的是混凝土框架(现浇整体式、装配式、装配整体式,也可根据需要施加预应力,主要是对梁或板)、钢框架。
装配式、装配整体式混凝土框架和钢框架适合大规模工业化施工,效率较高,工程质量较好。
格调高大上