软件架构(体系结构,Architecture)和软件框架

软件架构(architecture)是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件架构以作为满足不同客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。

软件架构师与客户商谈概念上的事情,与经理商谈广泛的设计问题,与软件工程师商谈创新的结构特性,与程序员商谈实现技巧,外观和风格。

软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。

——from wekipedia——



软件框架(Software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。

框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用可以在支持同一种框架的软件系统中运行。

简而言之,框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说使用别人搭好的舞台来做编剧和表演。

  软件框架是一个与软件相关的小作品。你可以通过编辑或修订扩充其内容。

——from wekipedia——

  构架和架构也就是通常所说的软件体系结构(software architecture).

体系结构一般包括三个部分:构件,用于描述计算;连接器,用于描述构件的连接部分;配置,将构件和连接器组成一个有机整体. 对体系结构比较严谨比较认可的定义可参见<软件工程技术概论>(科学出版社).

  体系结构与框架(Framework)的区别与联系如下:
  1.  呈现形式不同.体系结构的呈现形式是一个设计规约,而框架则是程序代码.
  2.目的不同.体系结构的首要目的大多是指导一个软件系统的实施与开发;而框架的首要目的是为复用.因此,一个框架可有其体系结构,用于指导该框架的开发,反之不然.
  3.有种特殊的体系结构,DSSA(领域特定体系结构)其首要目的也是为了复用.
  4.  有个叫体系结构风格的东西,将它用程序代码实现后就成了Corba,COM之类的东西,它们俩叫体系结构框架,也叫中间件集成框架,又有人愿意叫它对象中间件.

  MVC/三层都是一种架构模式,最终实现这种架构模式的就是框架,比如Ruby on rails和structs等实现了MVC架构模式的框架。

时间: 2024-10-26 12:06:09

软件架构(体系结构,Architecture)和软件框架的相关文章

软件框架和软件架构的区别?

初学java,遇到jdk,sdk概念:软件开发工具包(外语首字母缩写:SDK.外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的开发工具的集合. 软件包:(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序. 开发工具:包含编辑.编译.解释执行(C中是链接执行)等功能. 一.软件框架 ?软件框架是面向领域(如ERP.计算领域等)的.可复用的"半成品"软件

[Alljoyn] 1、物联网开源软件框架alljoyn研究(一)——初步了解

What is AllJoyn?[是一个合作的开源软件框架目的在于连接万物] An Open Source API Framework For the Internet of EverythingA way devices and applications publish APIs over a network in a standard wayWhy APIs?– Because this is what software developers understand and work with

杂项:软件框架

ylbtech-杂项:软件框架 软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品. 1.返回顶部 1. 定义 软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品. 框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软

TI BLE协议栈软件框架分析

看源代码的时候,一般都是从整个代码的入口处开始,TI  BLE 协议栈源码也不例外.它的入口main()函数就是整个程序的入口,由系统上电时自动调用. 它主要做了以下几件事情: (一)底层硬件初始化配置 (二)创建任务并初始化任务配置 (三)检测并执行有效的任务事件 Main() 函数源码如下: 一:底层硬件初始化设置 75行,设置系统时钟,使能内存缓冲功能. 78行,关中断,刚启动时,系统运行不稳定,一般会首先关中断. 81行,硬件相关的I/O 口配置. 84行,初始化mcu 内部的flash

Mindjet MindManager 思维导图软件-使用思维导图跟踪调用流程,绘制软件框架

思维导图.据说是每一个产品经理必备的软件.假设你阅读大型源码.使用思维导图跟踪调用流程,绘制软件框架将会很方便. 特点:没什么好说的.用过的都说好. 软件截图: 下载:http://www.mindmanager.cc/ MindManager新手新手教程 MindManager是一款创造.管理和交流思想的思维导图软件,其直观清晰的可视化界面和强大的功能能够高速捕捉.组织和共享思维.想法.资源和项目进程等等.MindManager新手新手教程专为新手用户设计,包括创建思维导图基本入门操作,让用户

软件框架

软件框架 最近做了一个软件,这个软件不是网站,但是与HTML,AJAX等技术密切相关,也不是只有单纯的数据库增删改查,还涉及到线程协调,比较复杂的文本处理…… 这样的软件,用OA,ERP的框架显然是不合适的,因为这种软件用不上权限管理,工作流这些技术.但是软件又要操作数据库. 介于这些的特殊性,想来想去,还是自己搭建一个轻量级的软件框架是比较好的. 一:C/S与B/S的选择 1,我做的是一个购物网站的刷单软件,有如下几个方面的原因,我选择了C/S程序 a,刷单软件需要长时间的运行,不定时,不间断

Niagara解决设备连接应用的软件框架平台技术。

Niagara 是Tridium公司所研发的设计用于解决设备连接应用的软件框架平台技术. Niagara是一种应用框架,或者说是软件框架,特别设计用于应对智能设备所带来的各种挑战,包括设备连接到企业级的应用,支持互联网的产品和基于互联网自动化系统的开发. 应用框架是一个软件工程中的概念,不同于普通的软件,它是用于实现某应用领域通用完备功能的底层服务,使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的产品和系统开发.应用框架强调的是软件的设计重用性和系统的可扩展性,以缩短各种应用软

CDIF:基于JSON的SOA软件框架

通用设备互联框架(CDIF)是一个基于web的连接框架,目前有部分开源实现存放在: GitHub - out4b/cdif: Common device interconnect framework.CDIF是一种基于JSON的SOA软件框架.CDIF为客户端app提供了与基于XML的WSDL语言和SOAP协议同等抽象能力.但简洁得多的基于JSON的实现,也非常适合用于描述微服务架构的API接口.CDIF提供了完整的服务注册和发现能力,并为所有的web服务和物联网设备,包括REST.SOAP类型

DM8168 DVRRDK软件框架研究

转载注明:http://blog.csdn.net/guo8113/article/details/41120491 Netra(DM8168)处理器是个多核处理器,每个核之间相互独立却又相互关联,如何高效简洁地利用每个核完成一套系统功能是非常关键的,RDK这套软件平台就是针对这种多核平台设计的一套多通道视频应用方案,主要用于DVR.NVR.IPNC之类的产品. 这个软件框架结构允许用户创建不同的多路数据流来实现视频的采集.视频处理(DEI.Noise Filter.Encode.Decode.