软件架构(architecture)是有关软件总体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。程序员
软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,做为绘图员画图的基础同样,一个软件架构师或者系统架构师陈述软件架构以做为知足不一样客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系上来讲,软件架构能够和建筑物的架构相比拟。一个软件架构师须要有普遍的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操做、逻辑和流程。架构
软件架构师与客户商谈概念上的事情,与经理商谈普遍的设计问题,与软件工程师商谈创新的结构特性,与程序员商谈实现技巧,外观和风格。框架
软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的链接则明确和相对细致地描述组件之间的通信。在实现阶段,这些抽象组件被细化为实际的组件,好比具体某个类或者对象。在面向对象领域中,组件之间的链接一般用接口来实现。模块化
——from wekipedia—— spa
软件框架(Software framework),一般指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。设计
框架的功能相似于基础设施,与具体的软件应用无关,可是提供并实现最为基础的软件架构和体系。软件开发者一般依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用能够在支持同一种框架的软件系统中运行。中间件
简而言之,框架就是制定一套规范或者规则(思想),你们(程序员)在该规范或者规则(思想)下工做。或者说使用别人搭好的舞台来作编剧和表演。对象