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

体系结构一般包括三个部分:

1、构件:用于描述计算。

2、连接器:用于描述构件的连接部分。

3、配置:将构件和连接器组成一个有机整体

********************************************************************************************

软件框架(Software Framework)介绍 
面向某领域(包括业务领域,如ERP,和计算领域,如GUI)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供一系列定义良好的可变点以保证灵活性和可扩展性。可以说,软件框架是领域分析结果的软件化,是领域内最终应用系统的模板。 
随着软件规模的扩大、应用的广泛和软件复用技术的发展,以子程序或类(Class)为单位的软件复用有许多不足:(1)子程序库日趋其庞大以致于使用人员难以掌握,(2)大多数类粒度很小,且其自身往往不能完成有用的功能。这一问题迫使人们在复用中将一组类(或模块)及其交互作为一个整体来考虑,由此出现了软件框架。 
软件框架至少包含以下组成部分: 
(1) 一系列完成计算的模块,在此称为构件。 
(2) 构件之间的关系与交互机制。 
(3) 一系列可变点(也称热点,Hot-spots,或调整点)。 
(4) 可变点的行为调整机制。 
开发人员通过软件框架的行为调整机制,将领域中具体应用所特有的软件模块绑定到该软件框架的可变点,从而得到最终应用系统,这一过程称为软件框架的例化(instantiation)。通过软件框架的使用,开发人员可将主要精力放在应用所特有的模块的开发上,从而大大提高了软件生产率和质量。 
软件框架的行为调整机制是指如何针对具体的应用调整该框架的可变部分、如何在可变点加入特定应用模块所采用的方法和规则。行为调整机制可分为四种: 
(1) 模板参数化。软件框架提供代码自动生成工具,该工具根据用户设置的参数自动生成所需的代码。 
(2) 继承和多态。通过面向对象中的子类继承和重载,在子类中加入新的功能或改变父类的行为。 
(3) 动态绑定。在运行时刻动态绑定所需的对象服务,可通过软件模式技术实现。 
(4) 构件替换。通过替换框架中可插拔的构件来加入业务特定的功能, 
不同于一般的可复用软件制品,软件框架的一个显著特点是逆向控制(Inversion of Control),在复用过程中,前者需被显式调用,控制是在应用特定的模块中,软件框架则不然,应用开发人员只要将应用特定的模块绑定到框架内,框架则根据自己的交互机制自动调用该模块,控制由框架负责。 
软件框架有很多种。按其应用的范围可分为: 
(1) 系统基础设施框架。用于简化系统级软件的开发,如操作系统、用户界面、语言处理等,典型例子为MacApp, Microsoft’s MFC等。 
(2) 中间件集成框架。用于组装分布式应用和构件,典型例子为Microsoft’s DCOM, JavaSoft’s RMI, OMG’s CORBA等 
(3) 企业应用框架。用于各类应用领域,如电信、制造业、金融等。 
按其表现形态可分为: 
(1) 白盒框架。支持白盒复用,大型的类库或子程序库通常均提供白盒框架来协助复用。 
(2) 黑盒框架。支持黑盒复用。中间件集成框架一般为黑盒框架。

********************************************************************************************

体系结构与框架(Framework)的区别与联系如下:

1.呈现形式不同.体系结构的呈现形式是一个设计规约,而框架则是程序代码。

2.目的不同.体系结构的首要目的大多是指导一个软件系统的实施与开发;而框架的首要目的是为复用。 因此,一个框架可有其体系结构,用于指导该框架的开发,反之不然。

3.有种特殊的体系结构,DSSA(领域特定体系结构)其首要目的也是为了复用.

4.有个叫体系结构风格的东西,将它用程序代码实现后就成了Corba,COM之类的东西,它们俩叫体系结构框架,也叫中间件集成框架,又有人愿意叫它对象中间件。

转载于:https://www.cnblogs.com/tracylee/archive/2012/10/12/2721275.html

软件设计中架构和框架的区别相关推荐

  1. 软件构架、架构和框架的区别

    2019独角兽企业重金招聘Python工程师标准>>> 软件框架(Software Framework)介绍  面向某领域(包括业务领域,如ERP,和计算领域,如GUI)的.可复用的 ...

  2. 第九十期:哪种人是软件设计中的稀缺型人才?

    好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才. 作者:从码农到工匠 好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才 ...

  3. 哪种人是软件设计中的稀缺型人才?

    阿里妹导读:好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才. 为什么在接口制定标准中说:一流的企业做标准,二流的企业做品牌,三流的企业做产品?依赖倒置到底是什 ...

  4. 软件设计中的一些原则

    本文为大家介绍软件设计中的一些原则,都是经过长期经验总结出来的知识,每一个程序员都应该了解,相信对大家在进行软件设计的过程中会有很大帮助. Don't Repeat Yourself (DRY) DR ...

  5. 漫谈 · 软件设计中的具象化

    本文微信公众号链接:https://mp.weixin.qq.com/s/PiZU1biNR5DeqrjnhXE9ag 何为具象化?要说具象,就要说说与具象有关的抽象.表象. 抽象与具象: 抽象是通过 ...

  6. (130)FPGA面试题-FPGA设计中波特率和比特率的区别

    1.1 FPGA面试题-FPGA设计中波特率和比特率的区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中波特率和比特率的区别: 5)结束 ...

  7. 从奥运门票系统瘫痪到家乐福踩踏事件看软件设计中业务模型的处理

    从奥运门票系统瘫痪到家乐福踩踏事件看软件设计中业务模型的处理 作者:郭方明 完成日期:2007-11-17 version 1.0 联系信箱:gfm.job@Gmail.com 注:转载文章,请注明作 ...

  8. 【转载】软件设计中的易用性

    软件设计中的易用性 摘要: 这篇文章介绍了软件设计中"易用性"的概念并解释了为什么它在软件设计项目中应该是一个重要的部分. 介绍 应用"易用性"到软件开发中 & ...

  9. 设计 VS 架构 VS 框架

    设计(design).架构(architechure).框架 (framework)之间是个什么关系?请描述一下? 每个人都在进行设计 在探讨题目问题之前,我们从设计开始聊聊. 其实我们每个人都在做设 ...

最新文章

  1. 【Linux】修改/etc/fstab时参数设错,导致启动异常,无法进入系统(已解决)
  2. js实现表格动态数据展示在其他页面上
  3. JAVA并发编程JUC基础学习(简介)
  4. Redis基本数据类型
  5. python中functools_functools模块2个常用函数
  6. VS Code Remote 发布!开启远程开发新时代
  7. 《C和指针》——将无符号整数转换为字符
  8. 如何过滤某一频率的声音
  9. loginrequired注解_简单实现一个登录验证的注解来保护私有资源
  10. 计算机页面图形颠倒,电脑屏幕倒过来了如何解决
  11. 一图看懂编程语言迁移模式:终点站是Python、Go、JS
  12. 软件基本功:不会代码共用,因为没有设计能力;代码共用都不会,谈什么设计
  13. 光伏发电系统最大功率点跟踪MPPT matlab/simulink仿真 扰动观察法
  14. 计算机主机房净高,机房建设标准
  15. matlab里的计算符号,Matlab符号运算总结
  16. [BZOJ4173]数学
  17. Spark快速大数据分析——Spark安装与IDEA 开发(贰)
  18. 拷贝出师表到另一个文件,恢复顺序
  19. 网站加速教程--提升性能的同时节约10倍成本
  20. php视频打水印,php 七牛云 视频加水印

热门文章

  1. javascript遍历对象的属性
  2. 主席树【bzoj3524(p3567)】[POI2014]Couriers
  3. ASP.NET的IIS映射
  4. Oracle GoldenGate 12c 新特性
  5. Webpack实战(一):基础入门-教你轻松搞定Webpack打包工具安装及参数配置
  6. 修改oracle 的dbname,在oracle 10g上修改dbname的实验
  7. 7-138 打印沙漏 (20 分)
  8. C语言中如何将小数或整数和字符串合二为一
  9. /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory 报错解决
  10. 负压式爬壁机器人_一种负压吸附式仿生爬壁机器人的制作方法