首页>>技术前沿>>网站/软件行业动态
软件开发中软件架构与软件框架别再傻傻分不清楚
作者:西安软件开发 | 原创 来源:西安软件公司 | 时间:2019年8月5日| 点击:0次 | 【评论】

一些程序员在软件开发中对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将软件架构和软件框架混为一谈。其实很简单,一句话:框架是软件,架构不是软件。框架落脚在“架”字上,可以理解成名词性的,是一个客观性的名词存在,如.Net Framework;而架构体现在“构”字上,理解成构造,是一个动词性的,是一系列动作发生的策略性体现。
软件开发
框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务尅被最终应用系统直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。

架构不是软件,而是关于软件如何设计的重要策略。软件架构决策设计到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件架构之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧!我们不能指着某些代码,说这就是软件架构,因为软件架构是比具体代码高一个抽象层次的概念。架构势必被代码所体现和遵循,但任何一段具体的代码都代表不了架构。

框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果-----先大局后局部,就出现了架构;先通用后专用,就出现了框架。下图很好地揭示了这一点。架构是问题的抽象解决方案,它关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。

架构

软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。架构关注的是技术整合,扩展和可维护性。软件架构决策涉及到如何将软件系统分解成不同的部分,各部分之间的静态结构关系和动态交互关系。经过完整的开发过程之后,架构决策体现在最终开发出的软件系统中。我们不能指着某些代码,说这就是软件架构,因为软件架构是比具体代码高一个抽象层次的概念。架构可以被代码所体现和遵循,但任何一段具体的代码都代表不了架构。

框架与架构之间的关系

框架作为软件系统或子系统的半成品,设计开发过程从总体上来说与系统开发非常类似,框架是通过架构设计,详细设计,实现和测试开发出来的。框架不是架构(软件体系结构)。体系结构确定了系统整体结构,层次划分,不同部分之间的协作等设计。框架比架构更具体。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(如Web开发中的MVC)可以通过多种框架来实现。

简而言之,软件开发中框架和架构的关系可以总结为两句话:(1)为了尽早验证架构设计,或者处于支持产品线开发的目的,可以将关键的通用机制甚至整个架构以框架的方式进行实现;(2)业界(及公司内部)可能存在大量可供重用的框架,这些框架或者已经实现了软件架构所需的重要架构机制,或者为未来系统的某个子系统提供了可扩展的半成品,所以最终的软件架构可以借助这些框架构造。

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 软件开发 软件架构 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、弈聪软件网站内容中凡注明“来源:XXX(非陕西弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,APP开发,微信小程序开发,大数据平台开发,区块链技术开发等软件开发技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“陕西弈聪”的作品系本站版权所有,任何人转载请署名来源,否则陕西弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。