1、什么是系统架构
计算机软件体系结构(计算机软件体系结构图)
大家好!今天让创意岭的小编来大家介绍下关于计算机软件体系结构的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、什么是系统架构
问题一:“系统架构”是什么意思?都有哪些架构? JDE属于分布式架构,人和系统恕我孤陋寡闻,没听过阿
问题二:软件架构和系统架构到底是什?生活中有哪些东西可以比喻? 软件架构是指软件整体的组织结构,是在较高层次上的分析设计,体现了软件系统总体的规化、决策、控制等。
系统架构包括软件、硬件、网络等多方面的组织结构。架构是分析设计的高层阶段,不会涉及到技术实现的细节,是蓝图,是规化,是决策。
现实生活中可比喻为高楼大厦的设计图纸。
问题三:什么是架构 架构一般指软件架构
(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口(计算机科学)来实现。 软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。
软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。
在“软件构架简介”中,David Garlan 和 Mary Shaw 认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。”【GS93】
但构架不仅是结构;IEEE Working Group on Architecture 把其定义为“系统在其环境中的最高层概念”【IEEE98】。构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。
在 Rational Unified Process 中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互。
从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。
一般而言,软件系统的架构(Architecture)有两个要素:
・它是一个软件系统从整体到部分的最高层次的划分。
一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。
详细地说,就是要包括架构元件(Architecture ponent)、联结器(Connector)、任务流(Task-flow)。所谓架构元素,也就是组成系统的核心砖瓦,而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。
・建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。
在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。
详情参考
......>>
问题四:什么是系统工程师、系统架构工程师? 系统工程师资格就是具备较高专业技术水平,能够分析商业需求,并使用各种系统平台和服务器软件来设计并实现商务解决方案的基础架构。
系统架构师是大型项目的技术领导者,总体负责系统的体系结构设计和指导。
问题五:什么是分布式系统架构 baike.baidu/view/9914海9 百度百科
问题六:架构,系统架构,技术架构,应用架构都是什么关系 架构
是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
系统架构
是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务。
技术架构
通过合理的完善的评估途径对组织、网络、程序的组成框架、模型进行评价和分析,并对其进行完善。
应用架构
以架构图的方式描述系统的组成和框架,一般从系统功能和系统技术层次两个架构视角进行设计。
问题七:请问系统架构设计师的职责是什么 系统架构师的职责主要有如下4条:
1、确认需求
在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。
2、系统分解
依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。
软件架构师的功力基本体现于此,这是一项相对复杂的工作。
3、技术选型
架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于软件架构。
Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是Mysql?需要不需要采用MVC或者Spring等轻量级的框架?前端采用富客户端还是瘦客户端方式?类似的工作,都需要在这个阶段提出,并进行评估。
架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际情况进行权衡,最终进行确认。
4、制定技术规格说明
架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能。
架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持沟通。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求。
问题八:系统架构师是干什么的啊? 属于项目的高级分析、规划、管理人员
系统架构师(System Architecture)系统架构师是负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等等。
全文见百科
baike.baidu/view/905154?fr=ala0_1_1
问题九:系统架构师的角 *** 别 系统构架师与产品经理的关系及区别产品经理通常是指负责产品设计的“专人”。一个优秀的理想的产品经理,应同时具备较高的商业素质和较强的技术背景。产品经理要有深厚的领域经验,也就是说,对该软件系统要应用到的业务领域非常之熟悉。比如,开发房地产销售软件的产品经理,应该对房地产公司的标准销售流程了如指掌,甚至比大多数销售人员还要清楚。如果开发的是通用产品,他/她还具备对市场、潜在客户需求的深刻洞察力。 那么,系统架构师与产品经理有什么不同呢? 我们不应该把二者混为一谈,这是不少论述和实践常犯的错误。我看来,如果把开发软件比作摄制电影,产品经理之于系统架构师,就正像编剧之于导演。产品经理虽然要有一定技术背景,但仍应属于“商业人士(business people)”,而系统架构师则肯定是一个技术专家。二者看待问题的立场、角度和出发点完全不同。系统构架师与项目经理的关系及区别 软件项目经理是指对项目控制/管理,关注项目本身的进度、质量,分配、调动、协调、管理好人、财、物等资源的负责人。对于软件项目经理来讲,包括项目计划、进度跟踪/监控、质量保证、配置/发布/版本/变更管理、人员绩效评估等方面。优秀的项目经理需要的素质,并不仅在于会使用几种软件或是了解若干抽象的方法论原则,更重要的在于从大量项目实践中获得的宝贵经验,以及交流、协调、激励的能力,甚至还应具备某种个性魅力或领袖气质(Chari *** a)。 由此可见,项目经理和系统架构师在职责上有很大差异。混同这两个角色,往往也会导致低效、无序的开发。特别是,从性格因素上讲,单纯的技术人员倾向于忽视“人”的因素,而这正是管理活动的一个主要方面。另外,就像战争中的空军掩护(Air Cover)一样,专职的项目经理能够应付开发过程中大量的偶发事件和杂务,对于一个规模稍大的项目,这些杂务本身就能占用一个全职工作者的几乎全部时间。在一个项目中,推动项目发展的是系统构架师,而不是项目经理。项目经理的职责只是配合系统构架师,提供各个方面的支持。主要职责是与内外部沟通和管理资源(包括人)。系统构架师提出系统的总体构架,给出开发指导。一个项目中,项目经理的角色什么?如果他即使管理人员又是设计人员,则必须比别人强,能够有让别人服的东西。如果他只是项目管理人员,系统构架师有专门人员,就可以不用精通或者说了解 it 各个方面的知识,如果了解更好。另外,如果在一个项目没有人在技术构架上和开发指导上负全部责任,而是每个人都负责一快的架构、分析、设计、代码和实施等,最后肯定会失去管理。系统构架师与系统分析员的关系及区别系统分析员(System *** yst)是指对系统开发中进行分析、设计和领导实施的人。一般意思上讲,系统分析员的水平将影响系统开发的质量,甚至成败。但在一个完善的系统开发队伍中,还需要有业务专家,技术专家和其他辅助人员。所以,系统分析员只是其中的角色之一。但我国许多的 IT 公司,一般只有系统分析员而没有技术专家。系统分析员固然是对特定系统进行分析、设计。所以他的任务、目标是明确的。他只是去执行任务,完成系统的最终设计。系统架构师应该和系统分析员分开,但架构师必须具备系统分析员的所有能力,同时还应该具备设计员所没有的很多能力。 系统架构师是指导、检督系统分析员的工作,要求系统分析员按什么标准,什么工具,什么模式,什么技术去设计系统的。同时,系统架构师应该对系统分析员所提出的问题,碰到的难题及时地提出解决的方法。并检查、评审系统分析员的工作。
二、计算机软件系统的组成部分是哪些
所谓软件是指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。软件系统可分为系统软件和应用软件两大类。
1系统软件
系统软件由一组控制计算机系统并管理其资源的程序组成,其主要功能包括:启动计算机,存储、加载和执行应用程序,对文件进行排序、检索,将程序语言翻译成机器语言等。实际上,系统软件可以看作用户与计算机的接口,它为应用软件和用户提供了控制、访问硬件的手段,这些功能主要由操作系统完成。此外,编译系统和各种工具软件也属此类,它们从另一方面辅助用户使用计算机。下面分别介绍它们的功能。
1)操作系统(Operating System, OS)
操作系统是管理、控制和监督计算机软、硬件资源协调运行的程序系统,由一系列具有不同控制和管理功能的程序组成,它是直接运行在计算机硬件上的、最基本的系统软件,是系统软件的核心。操作系统是计算机发展中的产物,它的主要目的有两个:一是方便用户使用计算机,是用户和计算机的接口。比如用户键入一条简单的命令就能自动完成复杂的功能,这就是操作系统帮助的结果;二是统一管理计算机系统的全部资源,合理组织计算机工作流程,以便充分、合理地发挥计算机的效率。操作系统通常应包括下列五大功能模块:
(1)处理器管理。当多个程序同时运行时,解决处理器(CPU)时间的分配问题。
(2)作业管理。完成某个独立任务的程序及其所需的数据组成一个作业。作业管理的任务主要是为用户提供一个使用计算机的界面使其方便地运行自己的作业,并对所有进入系统的作业进行调度和控制,尽可能高效地利用整个系统的资源。
(3)存储器管理。为各个程序及其使用的数据分配存储空间,并保证它们互不干扰。
(4)设备管理。根据用户提出使用设备的请求进行设备分配,同时还能随时接收设备的请求(称为中断),如要求输入信息。
(5)文件管理。主要负责文件的存储、检索、共享和保护,为用户提供文件操作的方便。
操作系统的种类繁多,依其功能和特性分为批处理操作系统、分时操作系统和实时操作系统等;依同时管理用户数的多少分为单用户操作系统和多用户操作系统;适合管理计算机网络环境的网络操作系统。按其发展前后过程,通常分成以下六类:
(1)单用户操作系统(Single User Operating System)
单用户操作系统的主要特征是计算机系统内一次只能支持运行一个用户程序。这类系统的最大缺点是计算机系统的资源不能充分利用。微型机的DOS、Windows操作系统属于这一类。
(2)批处理操作系统(Batch Processing Operating System)
批处理操作系统是20世纪70年代运行于大、中型计算机上的操作系统。当时由于单用户单任务操作系统的CPU使用效率低,I/O设备资源未充分利用,因而产生了多道批处理系统,它主要运行在大中型机上。多道是指多个程序或多个作业(Multi-Programs or Multi Jobs)同时存在和运行,故也称为多任务操作系统。IBM的DOS/VSE就是这类系统。
(3)分时操作系统(Time-Sharing Operating System)
分时系统是一种具有如下特征的操作系统:在一台计算机周围挂上若干台近程或远程终端,每个用户可以在各自的终端上以交互的方式控制作业运行。
在分时系统管理下,虽然各用户使用的是同一台计算机,但却能给用户一种“独占计算机”的感觉。实际上是分时操作系统将CPU时间资源划分成极小的时间片(毫秒量级),轮流分给每个终端用户使用,当一个用户的时间片用完后,CPU就转给另一个用户,前一个用户只能等待下一次轮到。由于人的思考、反应和键入的速度通常比cpu的速度慢得多,所以只要同时上机的用户不超过一定数量,人们不会有延迟的感觉,好像每个用户都独占着计算机。分时系统的优点是:第一,经济实惠,可充分利用计算机资源;第二,由于采用交互会话方式控制作业,用户可以坐在终端前边思考、边调整、边修改,从而大大缩短了解题周期;第三,分时系统的多个用户间可以通过文件系统彼此交流数据和共享各种文件,在各自的终端上协同完成共同的任务。分时操作系统是多用户多任务操作系统,UNIX是国际上最流行的分时操作系统。此外,UNIX具有网络通信与网络服务的功能,也是广泛使用的网络操作系统。
(4)实时操作系统(Real-Time Operating System)
在某些应用领域,要求计算机对数据能进行迅速处理。例如,在自动驾驶仪控制下飞行的飞机、导弹的自动控制系统中,计算机必须对测量系统测得的数据及时、快速地进行处理和反应,以便达到控制的目的,否则就会失去战机。这种有响应时间要求的快速处理过程叫做实时处理过程,当然,响应的时间要求可长可短,可以是秒、毫秒或微秒级的。对于这类实时处理过程,批处理系统或分时系统均无能为力了,因此产生了另一类操作系统——实时操作系统。配置实时操作系统的计算机系统称为实时系统。实时系统按其使用方式可分成两类:一类是广泛用于钢铁、炼油、化工生产过程控制,武器制导等各个领域中的实时控制系统;另一类是广泛用于自动订票系统、情报检索系统、银行业务系统、超级市场销售系统中的实时数据处理系统。
(5)网络操作系统(Network Operating System)
计算机网络是通过通信线路将地理上分散且独立的计算机联结起来的一种网络,有了计算机网络之后,用户可以突破地理条件的限制,方便地使用远处的计算机资源。提供网络通信和网络资源共享功能的操作系统称为网络操作系统。
(6)微机操作系统
微机操作系统随着微机硬件技术的发展而发展,从简单到复杂。Microsoft公司开发的DOS是一单用户单任务系统,而Windows操作系统则是一单用户多任务系统,经过十几年的发展,已从Windows 3.1发展到目前的Windows NT、Windows 2000和Windows XP,它是当前微机中广泛使用的操作系统之一。Linux是一个原码公开的操作系统,目前已被越来越多的用户所采用,是Windows操作系统强有力的竞争对手。
2)语言处理系统(翻译程序)
如前所述,机器语言是计算机唯一能直接识别和执行的程序语言。如果要在计算机上运行高级语言程序就必须配备程序语言翻译程序(下简称翻译程序)。翻译程序本身是一组程序,不同的高级语言都有相应的翻译程序。
对于高级语言来说,翻译的方法有两种:
一种称为“解释”。早期的BASIC源程序的执行都采用这种方式。它调用机器配备的BASIC“解释程序”,在运行BASIC源程序时,逐条把BASIC的源程序语句进行解释和执行,它不保留目标程序代码,即不产生可执行文件。这种方式速度较慢,每次运行都要经过“解释”,边解释边执行。
另一种称为“编译”,它调用相应语言的编译程序,把源程序变成目标程序(以.OBJ为扩展名),然后再用连接程序,把目标程序与库文件相连接形成可执行文件。尽管编译的过程复杂一些,但它形成的可执行文件(以.exe为扩展名)可以反复执行,速度较快。运行程序时只要键入可执行程序的文件名,再按Enter键即可。
对源程序进行解释和编译任务的程序,分别叫做编译程序和解释程序。如FORTRAN、COBOL、PASCAL和C等高级语言,使用时需有相应的编译程序;BASIC、LISP等高级语言,使用时需用相应的解释程序。
3)服务程序
服务程序能够提供一些常用的服务性功能,它们为用户开发程序和使用计算机提供了方便,像微机上经常使用的诊断程序、调试程序、编辑程序均属此类。
4)数据库管理系统
在信息社会里,社会和生产活动产生的信息很多,使人工管理难以应付,人们希望借助计算机对信息进行搜集、存储、处理和使用。数据库系统(Data Base System, DBS)就是在这种需求背景下产生和发展的。
数据库是指按照一定联系存储的数据集合,可为多种应用共享。数据库管理系统(Data Base Management System, DBMS)则是能够对数据库进行加工、管理的系统软件。其主要功能是建立、消除、维护数据库及对库中数据进行各种操作。数据库系统主要由数据库(DB)、数据库管理系统(DBMS)以及相应的应用程序组成。数据库系统不但能够存放大量的数据,更重要的是能迅速、自动地对数据进行检索、修改、统计、排序、合并等操作,以得到所需的信息。这一点是传统的文件柜无法做到的。
数据库技术是计算机技术中发展最快、应用最广的一个分支。可以说,在今后的计算机应用开发中大都离不开数据库。因此,了解数据库技术尤其是微机环境下的数据库应用是非常必要的。
2应用软件
为解决各类实际问题而设计的程序系统称为应用软件。从其服务对象的角度,又可分为通用软件和专用软件两类。
1)通用软件
这类软件通常是为解决某一类问题而设计的,而这类问题是很多人都要遇到和解决的。例如:文字处理、表格处理、电子演示等。
2)专用软件
在市场上可以买到通用软件,但有些具有特殊功能和需求的软件是无法买到的。比如某个用户希望有一个程序能自动控制车床,同时也能将各种事务性工作集成起来统一管理。因为它对于一般用户是太特殊了,所以只能组织人力开发。当然开发出来的这种软件也只能专用于这种情况。
三、计算机体系的层次性结构
计算机系统层次结构,指的是计算机系统由硬件和软件两大部分所构成,计算机系统的层次结构有以下五级:
1、微程序设计级 ---- 第1级 2、传统机器级 ---- 第2级
3、操作系统级 --- 第3级 4、汇编语言级 --- 第4级
5、高级语言级 --- 第5级
层次之间的关系
1)各层次之间的关系十分密切,高层是低层功能的扩展,低层是高层实现的基础。
2)站在不同的层次观察计算机系统,到关于计算机不同的概念。上图第二列分别对应地给出了从高级语言、汇编语言、机器语言和微程序设计级所看到的计算机的不同编程工具。
四、软件体系结构的定义
虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,较为典型的定义有:
(2)Mary Shaw和David Garlan认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。软件体系结构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等
(3)Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。
(4)Hayes Roth则认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。
(5)David Garlan和Dewne Perry于1995年在IEEE软件工程学报上又采用如下的定义:软件体系结构是一个程序/系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间进化的指导方针。
(6)Barry Boehm和他的学生提出,一个软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。
(7)1997年,Bass,Ctements和Kazman在《使用软件体系结构》一书中给出如下的定义:一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。其中,软件外部的可见特性是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。
以上就是关于计算机软件体系结构相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
下列哪些是云计算的服务模式(下列哪些是云计算的服务模式a技术服务b基础设施及服务)