软件架构设计教程教程详解.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件框架 基于框架的软件开发目前已经成为一种时尚。现在的软件开发越来越倚重框架的使用,选择何种框架、每个框架在整个架构中处于什么位置,都成为软件架构设计中的重要环节。框架技术有助于把通用专注点和专用关注点分离出来,使系统具有更好的易修改性和可重用性。 与软件架构相关的还有软件架构模式、软件架构风格和软件架构框架。软件架构模式是从具有共性的多系统中精练出来的能够再现的好的设计方案。软件架构风格是对软件架构模式的进一步提炼,形成的解决方案的框架。软件架构风格比软件架构模式更具有应用价值,如客户服务器风格、管道过滤器风格。但有时不加区分地使用软件结构模式和软件架构风格,而且软件架构模式术语的使用更广发,我们通常说C/S模式、B/S模式,但很少说C/S风格。 框架的定义 框架是一个已部分完成,需要扩充或丰满的骨架。 或:框架是可以通过某种回调机制进行扩展的软件系统或子系统的半成品。该定义强调三点: 1、框架是半成品。这是框架与其它软件元素的本质区别。框架已经实现了软件系统或子系统的通用部分的代码。 2、使用框架进行软件开发的基本思想是:将特定应用部分(容易变化的部分)封装成扩展点,以某种回调机制将用户扩展的部分纳入框架的控制范围之内。 3、采用“回调”机制将框架扩展成软件系统或子系统。 所谓回调就是反过来调用。C语言中将另一个函数的指针作为函数调用语句的参数传递给被调用函数,被调用函数又反过来调用由参数传过来的函数(反调用)完成部分功能。在面向对象编程语言中,利用抽象方法支持回调机制,开发人员通过抽象方法的实现来实现扩展。 框架的定义 从设计模式看,框架是一个软件系统模式,是大粒度的可复用部件。 框架可分成冷点和热点。冷点定义软件系统的完整结构,包括它的基本构件和构件之间的关系,它们在应用框架实例化过程中保持不变。热点描述了应用框架中的那些随具体应用需求不同的部分。 当使用一个框架创建一个具体的软件系统时,主要工作是根据用户的特别需求,对框架的热点进行专门化。 框架与架构的区别 本质区别是:框架是软件,架构不是软件。 框架是一种特殊的软件,它并不提供完整的解决方案,而是为开发人员解决方案的实现提供参考模版或支持基础(或平台)。框架是半成品,框架中的服务(类和方法)可以被最终应用系统直接调用,而框架中的扩展点是供应用开发人员定制的可变点。 软件架构不是软件,而是软件如何被设计的重要决策。经过完整的开发过程之后,这些架构决策将体现在最终开发的软件系统中。我们不能指着某些代码说它是软件架构。架构势必被代码所体现和遵循。。 框架与架构的联系 框架技术和架构技术所体现的是解决复杂问题的“分而治之”的思维方式—先大局后局部(架构)先通用后专用(框架)。架构是问题的抽象解决方案,框架是半成品,需要根据具体需求进一步定制开发才能变成应用系统。 从系统设计角度看,一个软件系统总是根据需求先进行架构设计形成抽象解决方案,再根据架构模型选择框架得到系统的半成品,最后在框架的扩展点加入特定业务处理部分得到最终完整解决方案。这说明一个框架往往是系统架构或系统架构某一部分的实现的半成品。 从实现角度看,先构建通用半成品(框架),再实现特定部分。 在管理信息系统开发中,广泛使用的struts、spring等都是部分实现的半成品,struts主要是解决表现层与业务逻辑层之间的松耦合问题。 软件架构模型 为了指导软件体系架构的设计,许多学者总结出了多种体系架构模型,其中著名的体系架构某些有“4+1”模型、 “5视图法”。 “4+1”模型如下图所示。 逻辑视图 开发视图 过程视图 物理视图 场景 “5视图法”包括:逻辑视图、开发视图、运行视图、物理视图和数据视图。 运行视图就是过程视图。 逻辑视图的软件架构 逻辑架构关注功能,不仅包括用户可见的功能(与业务有关的功能),还包括实现用户功能必须提供的辅助功能,如某用户对数据访问时必须验证其权限,为满足需求约束需要提供的辅助功能等。逻辑架构用逻辑元素和逻辑元素之间的交互来描述。逻辑元素可能是子系统、逻辑层(功能逻辑划分)、功能模块和类等。子系统的划分、逻辑层的划分、系统功能模块,以及类模型等,从逻辑建模角度看,都是逻辑架构设计的内容。 逻辑架构关注的是构成系统的软件元素及其关系—构件及其连接。 开发视图的软件架构 开发架构关注的是软件系统的程序构成及其关系,重点考虑

您可能关注的文档

文档评论(0)

创业文库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档