软件结构是以什么为基础(软件结构是以什么为基础而组成的一种控制层次结构)

软件结构是以什么为基础(软件结构是以什么为基础而组成的一种控制层次结构)缩略图

软件结构是以什么为基础而组成的一种控制层次结构

软件结构是以什么为基础而组成的一种控制层次结构

计算机系统是一个由硬件,软件组成的多级层次结构,它通常由微程序级,一般机器级,操作系统级,汇编语言级,高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持. 计算机硬件的五大部分是:运算器,存储器,控制器,适配器,输入输出设备(其中运算器和控制器合在一起俗称CPU,存储器包括内存储器如内存和外存储器如硬盘,光盘等等)

软件基础是以什么为基础而组成的结构

软件基础是以什么为基础而组成的结构

软件有很多不知道你说的是什么软件,软件基础就是首先要明白软件的应用领域,软件的用途,软件的基本命令应用,软件界面参数设置,软件发展过程,

软件开发的架构设计指的是什么?

软件开发的架构设计指的是什么?

软件架构(software

architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系

统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向

对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。

软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。

软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。

在“软件构架简介”中,David Garlan 和 Mary Shaw

认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结

构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。

但构架不仅是结构;IEEE Working Group

on Architecture 把其定义为“系统在其环境中的最高层概念”。构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注

重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。

在Rational Unified Process 中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互。

从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来事实和管

理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑

和流程。

一般而言,软件系统的架构(Architecture)有两个要素:

它是一个软件系统从整体到部分的最高层次的划分。

一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。

详细地说,就是要包括架构元件(Architecture Component)、联结器(Connector)、任务流(Task-flow)。

所谓架构元素,也就是组成系统的核心”砖瓦”,而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和

联结器完成某一项需求。

建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。

建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。

软件开发一般比较会关注设计模式而不是架构设计,欢迎追问。

计算机软件基本结构包含是什么

计算机软件由程序和有关的文档组成。程序是指令序列的符号表示,文档是软件开发过程中建立的技术资料。程序是软件的主体,一般保存在存储介质(如软盘、硬盘和光盘)中,以便在计算机上使用。文档对于使用和维护软件尤其重要,随着软件产品发布的文档主要是使用手册,其中包含了该软件产品的功能介绍、运行环境要求、安装方法、操作说明和错误信息说明等。某个软件要求的运行环境是指运行它至少应有的硬件和其他软件的配置,也就是说,在计算机系统层次结构中,它是该软件的下层(内层)至少应有的配置(包括对硬件的设备和指标要求、软件的版本要求等)。计算机软件按用途可分为系统软件和应用软件。

输入、输出、主体 计算机软件是指在硬件设备上运行的各种程序以及有关的资料。所谓程序实际上是用于指挥计算机执行各种动作以便完成指定任务的指令集合。像C语言就是一种编程语言,应包括#include woid main()等

结构化设计以什么为基础,按一定的步骤映射成软件结构

顺序结构、分支结构、循环结构 顺序结构就是从头到尾一次执行每一个语句 分支结构根据不同的条件执行不同的语句或者语句体 循环结构就是重复的执行语句或者语句体,达到重复执行一类操作的目的 来自百度

什么是软件架构?

当你去了解一个东东的时候,第一步要做的,就应该去知道这个东东的定义,对于软件架构也是如此,经过网上查询和书籍的帮助,我大概理清了一个轮廓。

软件行业是一个热衷于制造‘名词’的行业,如果退回15年,估计没几个人知道‘软件架构’是什么,在上个世纪80年代,随着软件开发的规模不断扩大,软件开发成为一个行业,初期,随之而来的是越来越多的软件项目的失败,造成项目失败的原因很多,但主要集中在开发过程,所以软件工程应运而生,CMMI等流程标准也是一茬接着一茬的冒个不停。

在软件工程初具规模的时候,软件开发还是以数据结构+算法的形式存在,进入20世纪最后10年,随着面向对象技术、设计模式等在开发过程中的成功应用,软件架构也走进了大家的视野。

软件架构在定义上分为‘组成派’和‘决策派’两大阵营,分别描述如下:

’组成派‘认为软件架构是将系统描述成计算组件及组件之间的交互

。它有两个非常明显的特点:

关注架构实践的客体——软件,以软件本身作为描述对象。

分析了软件的组成,说明软件不是一个‘原子’意义上的整体,而是有不同的部分经过特定的接口进行连接组成的一个整体,这对软件开发来说很重要。

‘决策派’认为

软件架构包含了一系列的决策

,主要包括:

软件系统的组织

选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为

用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合

软件架构并不仅仅关注软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解、经济以及技术的限制和权衡等。

‘决策派’有以下两个显著的特点:

关注软件架构中的实体——人,以人的决策为描述对象。

归纳了软件架构决策的类型,指出架构决策不仅包括关于软件系统的组织、元素、子系统和架构风格等几类决策,还包括关于众多非功能性需求的决策。

按照‘组成派’的观点,软件架构关注的是软件整体的分割和交互,之所以分割,是因为不同的部分在逻辑或物理上相对独立,通过‘分而治之’的原则进行分割可以更好的理解整个系统,把握用户的需求,但是虽然整个软件可以分割成多个模块或子系统,但是模块和子系统之间的通信和交互也是很重要的,我想按照这种观点,架构师的主要任务是将软件分割成不同的模块,并定义模块之间的接口。

按照‘决策派’的观点,软件是一个在很多限制下产生的产品,这些限制包括用户和技术两方面,用户方面包括功能需求、性能需求、硬件需求等,技术方面包括技术选择、可扩展性、可重用性、可维护性等。我想按照这中观点,架构师的主要任务就是作出上述个各种限制作出选择或决策。《软件架构设计》 温昱

软件体系结构的发展历史

与最初的大型中央主机相适应,最初的软件结构体系也是Mainframe结构,该结构下客户、数据和程序被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐在应用中被淘汰。在80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户(PC机)和服务器(Mainframe或Server)之间分担;请求通常被关系型数据库处理,PC机在接受到被处理的数据后实现显示和业务逻辑;系统支持模块化开发,通常有GUI界面。Client/Server结构因为其灵活性得到了极其广泛的应用。但对于大型软件系统而言,这种结构在系统的部署和扩展性方面还是存在着不足。

Internet的发展给传统应用软件的开发带来了深刻的影响。基于Internet和Web的软件和应用系统无疑需要更为开放和灵活的体系结构。随着越来越多的商业系统被搬上Internet,一种新的、更具生命力的体系结构被广泛采用,这就是为我们所知的“三层/多层计算”。

。客户层(client tier) 用户接口和用户请求的发出地,典型应用是网络浏览器和胖客户(如Java程序)

。服务器层(server tier) 典型应用是Web服务器和运行业务代码的应用程序服务器

。数据层(data tier) 典型应用是关系型数据库和其他后端(back-end)数据资源, 如 Oracle和SAP、 R/3等

三层体系结构中,客户(请求信息)、程序(处理请求)和数据(被操作)被物理地隔离。三层结构是个更灵活的体系结构,它把显示逻辑从业务逻辑中分离出来,这就意味着业务代码是独立的,可以不关心怎样显示和在哪里显示。业务逻辑层现在处于中间层,不需要关心由哪种类型的客户来显示数据,也可以与后端系统保持相对独立性,有利于系统扩展。三层结构具有更好的移植性,可以跨不同类型的平台工作,允许用户请求在多个服务器间进行负载平衡。三层结构中安全性也更易于实现,因为应用程序已经同客户隔离。应用程序服务器是三层/多层体系结构的组成部分,应用程序服务器位于中间层。

如图所示,应用程序服务器运行于浏览器和数据资源之间,一个简单的实例是,顾客从浏览器中输入一个定单,web服务器将该请求发送给应用程序服务器,由应用程序服务器执行处理逻辑,并且获取或更新后端用户数据。

兴起

六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多。在此种背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。自从软件系统首次被分成许多模块,模块之间有相互作用,组合起来有整体的属性,就具有了体系结构。好的开发者常常会使用一些体系结构模式作为软件系统结构设计策略,但他们并没有规范地、明确地表达出来,这样就无法将他们的知识与别人交流。软件体系结构是设计抽象的进一步发展,满足了更好地理解软件系统,更方便地开发更大、更复杂的软件系统的需要。

事实上,软件总是有体系结构的,不存在没有体系结构的软件。体系结构(Architecture)一词在英文里就是建筑的意思。把软件比作一座楼房,从整体上讲,是因为它有基础、主体和装饰,即操作系统之上的基础设施软件、实现计算逻辑的主体应用程序、方便使用的用户界面程序。从细节上来看每一个程序也是有结构的。早期的结构化程序就是以语句组成模块,模块的聚集和嵌套形成层层调用的程序结构,也就是体系结构。结构化程序的程序(表达)结构和(计算的)逻辑结构的一致性及自顶向下开发方法自然而然地形成了体系结构。由于结构化程序设计时代程序规模不大,通过强调结构化程序设计方法学,自顶向下、逐步求精,并注意模块的耦合性就可以得到相对良好的结构,所以,并未特别研究软件体系结构。

我们可以作个简单的比喻,结构化程序设计时代是以砖、瓦、灰、沙、石、预制梁、柱、屋面板盖平房和小楼,而面向对象时代以整面墙、整间房、一层楼梯的预制件盖高楼大厦。构件怎样搭配才合理?体系结构怎样构造容易?重要构件有了更改后,如何保证整栋高楼不倒?每种应用领域需要什么构件(医院、工厂、旅馆)?有哪些实用、美观、强度、造价合理的构件骨架使建造出来的建筑(即体系结构)更能满足用户的需求?如同土木工程进入到现代建筑学一样,软件也从传统的软件工程进入到现代面向对象的软件工程,研究整个软件系统的体系结构,寻求建构最快、成本最低、质量最好的构造过程。

软件体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法,最近几年软件体系结构研究已完全独立于软件工程的研究,成为计算机科学的一个最新的研究方向和独立学科分支。软件体系结构研究的主要内容涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结构的形式化方法等。解决好软件的重用、质量和维护问题,是研究软件体系结构的根本目的。

操作系统本身是计算机系统软件的重要组成部分,而其物质基础是什么

操作系统本事是一种软件,软件是由许多指令组成的,也就是程序,而他的物质基础是电脑硬件,只有建立在硬件的基础上,它才能起作用,

it基础架构是什么?

是网络+终端+软件系统