基于体系结构的软件开发.ppt
《基于体系结构的软件开发.ppt》由会员分享,可在线阅读,更多相关《基于体系结构的软件开发.ppt(107页珍藏版)》请在三一办公上搜索。
1、1,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,好的解决方案、设计经验,可以一次又一次的使用。设计模式是面向对象的软件设计的经验总结,是被系统地命名、解释和评价的一个重要的可重现的面向对象的设计方案。利用设计模式可以方便地重用成功的设计和结构。,2,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,类比:建筑设计方案,3,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。一个软件体系结构的模式描述了一个出现在特定设计语境中的特殊的再现设计问题,并为它的解决方
2、案提供了一个经过充分验证的通用图示。解决方案图示通过描述其组成构件及其责任和相互关系以及它们的协作方式来具体指定。,4,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC的背景,软件系统的重要功能之一是从数据存储检索数据,并将其显示给用户。在用户更改数据之后,系统再将更新内容存储到数据存储中。如果将数据存储和界面显示代码放在一起,则可以减少编码量并提高应用程序性能。但这样做也存在很多问题。,5,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC(model view controller)的背景,用户界面逻辑的更改往往比业务逻辑频繁,尤其是在基于 Web
3、 的应用程序中。基于 Web 的瘦客户端应用程序的优点之一是可以随时更改用户界面,而不必重新分发应用程序。如果将显示代码和业务逻辑组合在一起并放在单个对象中,则每次更改用户界面时,都必须修改包含业务逻辑的对象。,6,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC的背景,在很多情况下,应用程序需要以不同的方式显示同一数据。例如,表格显示,趋势图显示,柱状图显示,饼图显示。界面开发与业务逻辑开发所需要的技能不同,在这两方面都精通比较困难。与业务逻辑相比,用户界面代码对设备的依赖性往往更大。例如,要将应用程序从基于浏览器的应用程序迁移到个人数字助理(PDA)或支持 Web 的
4、手机上,则必须替换很多用户界面代码,而业务逻辑可能不受影响。,7,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC的背景,如何让 Web 应用程序的用户界面和功能实现模块化,以便可以轻松地单独修改各个部分?,?,8,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC解决方案,MVC模式将建模、显示和操作分为三个独立的类:模型。模型用于管理应用程序域的行为和数据,并响应为获取其状态信息(通常来自视图)而发出的请求,还会响应更改状态的指令(通常来自控制器)。视图。视图用于管理信息的显示。控制器。控制器用于解释用户的鼠标和键盘输入,以通知模型和/或视图进行相
5、应的更改。,9,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC解决方案,10,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC的处理过程,控制器接收用户的请求,并决定应该调用哪个模型来进行处理;模型用业务逻辑来处理用户的请求并返回数据;控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。,11,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,被动的MVC模型,当控制器以独占方式操作模型时,则为被动模型。控制器将修改模型,然后通知视图:模型已经更改,应该进行刷新。此情况下的模型完全独立于视图和控制器,这意味着模型无法报告其
6、状态更改。例如,HTTP 协议,浏览器没有从服务器获取异步更新的简单方法。浏览器显示视图并对用户输入作出响应,但是它不会检测服务器上的数据更改。仅当用户显式请求刷新时,才会询问服务器是否发生了更改。,12,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,主动的MVC模型,当模型更改状态而不涉及控制器时,则为主动模型。当其他资源正在更改数据并且更改必须反映在视图中时,可能会发生这种情况。例如,股票报价机的显示。当从外部源接收股票数据,并希望当股票数据更改时更新视图。因为在这些更改发生时,只有模型检测对其内部状态的更改,所以模型必须通知视图刷新显示。使用 MVC 模式的一个目的是使
7、模型独立于视图。如果模型必须将更改通知视图,则会重新带来不希望的依赖性。,13,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,使用观察者的MVC主动模型,各个视图实现 Observer 接口,并向模型注册。模型将跟踪由所有观察器组成的列表。当模型发生改变时,模型将会遍历所有已注册的观察器,并将更改通知它们。此方法通常称为发布-订阅。,14,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC模式的优点,支持多个视图。因为视图与模型分离,而且模型与视图之间没有直接依赖性,所以用户界面可以同时显示同一数据的多个视图。适应更改。用户界面要求的更改往往比业务规则快。
8、用户可能更喜欢新设备(如手机或 PDA)采用另一颜色、字体、屏幕布局和支持级别。因为模型不依赖于视图,所以将新类型的视图添加到系统中通常不会影响模型。因此,更改的作用范围仅限于视图。,15,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式概述,MVC模式的缺点,复杂性。MVC 模式引入了新的间接级别,因此稍微增加了解决方案的复杂性。还增加了用户界面代码的事件驱动特性,调试用户界面代码会变得更加困难。频繁更新的成本。将模型与视图分离并不意味着模型的开发人员可以忽略视图的特性。例如,如果模型发生频繁更改,则它可能向视图发出大量更新请求。一些视图(如图形显示)的显示可能需要一定时间。因此,
9、模型可以将多个更新作为单个通知发送到视图。,16,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式的基本成分,模式名称:通常用来描述一个设计问题、它的解法和后果,由一到两个词组成。问题:告诉我们什么时候要使用设计模式、解释问题及其背景。解决方案:描述设计的基本要素,它们的关系、各自的任务以及相互之间的合作。后果:描述应用设计模式后的结果和权衡。比较与其他设计方法的异同,得到应用设计模式的代价和优点。,17,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式的描述(1),如果要理解和讨论模式,就必须以适当形式描述模式。好的描述有助于我们立即抓住模式的本质,即模式关心的问题是什么
10、,以及提出的解决方案是什么?,18,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式的描述(1),(1)模式名称和分类:模式名称和一个简短的摘要。(2)目的:即设计模式的用处、基本原理和目的、它针对的是什么特殊的设计问题。(3)别名:同一个模式可能会有不同的命名。(4)动机:描述一个设计问题的方案,以及模式中类和对象的结构如何解决这个问题。,Erich Gamma博士等人采用下面的固定模式来描述:,19,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式的描述(2),(5)应用:在什么情况下可以应用本设计模式。(6)结构:用对象模型技术对本模式进行表示。(7)成分:组成本设计
11、模式的类和对象及它们的职责。(8)合作:成分间如何合作实现他们的任务。(9)后果:该模式如何支持它的对象;如何在使用本模式时进行权衡。,20,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式的描述(2),(10)实现:在实现本模式的过程中,要注意哪些缺陷、线索或者技术;是否与编程语言有关。(11)例程代码:说明如何用C+或其他语言来实现该模块的代码段。(12)已知的应用:现实系统中使用该模式的实例。(13)相关模式:与本模式相关的其他模式,它们之间的区别,以及本模式是否要和其他模式共同使用。,21,第七章 基于体系结构的软件开发,7.1 设计模式,模式和软件体系结构,模式作为体系结构
12、构造块对软件体系结构而言,模式的一个重要目标就是用已定义属性进行特定的软件体系结构的构造。,模式,22,第七章 基于体系结构的软件开发,7.1 设计模式,模式和软件体系结构,构造异构体系结构单个模式不能完成一个完整的软件体系结构的详细构造,它仅仅帮助设计师设计应用程序的某一方面。为了有效使用模式,需要将它们组织成模式系统。模式系统统一描述模式,对它们分类,更重要的是,说明它们之间如何交互。,模式1,模式2,23,第七章 基于体系结构的软件开发,7.1 设计模式,模式和软件体系结构,模式和方法好的模式描述也包含它的实现指南,可将其看成是一种微方法,用来创建解决一个问题的方案。通过提供方法的步骤来
13、解决软件开发中的具体再现问题,这些微方法补充了通用的但与问题无关的分析和设计方法。,24,第七章 基于体系结构的软件开发,7.1 设计模式,模式和软件体系结构,实现模式 目前的许多软件模式具有独特的面向对象风格。因此,人们往往认为,能够有效实现模式的唯一方式是使用面向对象编程语言,其实不然。在设计层次,大多数模式只需要适当的编程语言的抽象机制,如模块或数据抽象。因此,可以用几乎所有的编程范例,并在所有的编程语言中来实现模式。,25,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式方法分类,Coad的面向对象模式 代码模式 框架应用模式 形式合约,26,第七章 基于体系结构的软件开发,
14、7.1 设计模式,设计模式方法分类,1、Coad的面向对象模式 1992年,美国面向对象技术大师Peter Coad从MVC的角度对面向对象系统进行了讨论,设计模式由最底层的构成部分(类和对象)及其关系来区分。他使用了一种通用的方式来描述一种设计模式:(1)模式所能解决问题的简要介绍与讨论;(2)模式的非形式文本描述以及图形表示;(3)模式的使用方针:在何时使用以及能够与哪些模式结合使用。,27,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式方法分类,1、Coad的面向对象模式将Coad的模式划分为以下三类:(1)基本的继承和交互模式:主要包括OOPL所提供的基本建模功能,继承模式
15、声明了一个类能够在其子类中被修改或被补充,交互模式描述了在有多个类的情况下消息的传递。(2)面向对象软件系统的结构化模式:描述了在适当情况下,一组类如何支持面向对象软件系统结构的建模。(3)与MVC框架相关的模式。,28,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式方法分类,2、代码模式代码模式的抽象方式与OOPL中的代码规范很相似,该类模式有助于解决某种面向对象程序设计语言中的特定问题。主要目标在于:(1)指明结合基本语言概念的可用方式;(2)构成源码结构与命名规范的基础;(3)避免面向对象程序设计语言(尤其是C+语言)的缺陷。,29,第七章 基于体系结构的软件开发,7.1 设
16、计模式,设计模式方法分类,2、代码模式 代码模式与具体的程序设计语言或者类库有关,它们主要从语法的角度对软件系统的结构方面提供一些基本的规范。这些模式对于类的设计不适用,同时也不支持程序员开发和应用框架,命名规范是类库中的名字标准化的基本方法,以免在使用类库时产生混淆。,30,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式方法分类,3、框架应用模式(“菜谱”)框架是从特定域中提取出来的一组组件及其相互关系的可重用的体系结构。它定义了整体结构、类和对象的分割,各部分的主要责任,类和对象如何协作,以及控制流程。框架记录了其应用领域共同的设计决策,因而框架更强调设计复用。程序员将框架作为
17、应用程序开发的基础,特定的框架适用于特定的需求。,31,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式方法分类,4、形式合约 形式合约(formal contracts)也是一种描述框架设计的方法,强调组成框架的对象间的交互关系。有人认为它是面向交互的设计,对其他方法的发展有启迪作用。形式化方法由于其过于抽象,而有很大的局限性,仅仅在小规模程序中使用。,32,第七章 基于体系结构的软件开发,7.1 设计模式,设计模式目录的内容,Gamma和他的同事已发布了可用于OO系统的23个设计模式,用一种类似分类目录的形式将设计模式记载下来。我们称这些设计模式为设计模式目录。根据模式的目标,可
18、以将它们分成创建性模式、结构性模式和行为性模式。创建性模式处理的是对象的创建过程,结构性模式处理的是对象/类的组合,行为性模式处理类和对象间的交互方式和任务分布。根据它们主要的应用对象,又可以分为主要应用于类的和主要应用于对象的。,33,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关概念,基于体系结构的软件设计(architecture-based software design,ABSD)方法为软件系统的概念体系结构提供构造方法,概念体系结构描述了系统的主要设计元素及其关系。概念体系结构代表了在开发过程中作出的第一个选择,相应地,它是达到系统质量和业务目标的关键,为达到
19、预定功能提供了基础。,34,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关概念,ABSD方法有三个基础:(1)功能分解:在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术;(2)通过选择体系结构风格来实现质量和业务需求。(3)软件模板的使用:利用一些软件系统的结构。,35,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关概念,软件模板是一个特殊类型的软件元素,包括描述所有这种类型的元素在共享服务和底层构造的基础上如何进行交互。软件模板还包括属于这种类型的所有元素的功能,这些功能的例子有:每个元素必须记录某些重大事件,每个元素必须为运行期间的外
20、部诊断提供测试点等。,36,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关术语,设计元素ABSD方法的目的是组织最早的设计策略,不包括形成实际的软件构件和类。但要作出有关功能划分和达到不同质量属性机制的决策。ABSD方法是一个递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构件和类。,37,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关术语,ABSD方法中所使用的设计元素。,38,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关术语,2.视角和视图考虑体系结构时,需要从不同的视角(perspective)来描述
21、系统。如逻辑视图进程视图(并发视图)实现视图、配置视图(物理结构、只能用在多处理器的系统中)。,39,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关术语,3.用例和质量场景用例除了使功能需求具体化,还必须使质量需求具体化。在使用用例捕获功能需求的同时,我们通过定义特定场景来捕获质量需求,并称这些场景为质量场景。在一般的软件开发过程中,我们使用质量场景捕获变更、性能、可靠性和交互性,分别称为变更场景、性能场景、可靠性场景和交互性场景。,40,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,有关术语,41,第七章 基于体系结构的软件开发,7.2 基于体系结构的
22、设计方法,有关术语,3.质量场景变更场景性能场景可靠性场景交互性场景,预期性能场景:估计每年用户增加10%的影响非预期性能场景:估计每年用户增加100%的影响,42,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法与生命周期,ABSD方法在生命周期中的位置,43,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法与生命周期,ABSD方法的输入由下列部分组成:抽象功能需求:包括变化的需求和通用的需求。用例(实际功能需求)。抽象的质量和商业需求。质量因素(实际质量和商业需求)。体系结构选项。约束。,44,第七章 基于体系结构的软件开发,7.2
23、基于体系结构的设计方法,ABSD方法的步骤,1、ABSD方法定义的设计元素,45,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法的步骤,2、设计元素的产生顺序,对ABSD方法的设计元素树可以进行广度遍历,也可以进行深度遍历。对一个特定开发来说,决定遍历设计元素树的考虑如下:领域知识新技术的融合体系结构设计团队的个人经验 右图描述了设计元素A分解为两个小的设计元素B和C。,46,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法的步骤,3、设计元素的活动,分解一个设计元素的步骤,47,第七章 基于体系结构的软件开发,7.2 基于体系结构的设
24、计方法,ABSD方法的步骤,定义逻辑视图,48,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法的步骤,某系统的逻辑视图,2,1,49,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法的步骤,(1)功能分解 一个设计元素有一组功能,这些功能必须分组。分解的目的是使每个组在体系结构内代表独立的元素。分解可以进一步细化。功能的分组可选择几个标准:1)功能聚合。2)数据或计算行为的类似模式。3)类似的抽象级别。4)功能的局部性。,50,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法的步骤,(2)选择体系结构风格每个
25、设计元素有一个主要的体系结构风格或模式,这是设计元素如何完成它的功能的基础。主要风格并不是唯一风格,为了达到特定目的,可以进行修改。体系结构风格的选择建立在设计元素的体系结构驱动基础上。在软件设计过程中,并不总是有现成的体系结构风格可供选择为主要的体系结构风格。,51,第七章 基于体系结构的软件开发,7.2 基于体系结构的设计方法,ABSD方法的步骤,(2)选择体系结构风格一旦选定了一个主要的体系结构风格,该风格必须适应基于属于这个设计元素的质量需求,体系结构选择必须满足质量需求。为设计元素选择体系结构风格是一个重要的选择,这种选择在很大程度上依赖于软件设计师的个人设计经验。,52,第七章 基
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 体系结构 软件 开发
文档标签
- 软件体系结构设计ppt课件
- 软件开发模型
- 基于J2EE的婚庆咨讯网站设计与实现
- 基于CAXA软件的转接盘零件造型与仿真加工
- 基于Node.js的小型框架设计与实现
- 基于情景的方法
- 基于catia的三维标准件库开发与研究
- 5基于质谱的蛋白质鉴定和方法
- java几种常用设计模式简单示例
- 基于智慧课堂的学习模式设计与效果研究
- 基于PSoC的通信的实现
- 基于PROFIBUSDP船舶机舱过程控制阀门从站设计
- 基于AutoCAD动态块智能零件库的开发有全套图纸可编辑
- 基于构件的软件开发ppt课件
- 中国电信软件开发合同独立使用
- 基于UML的软件开发过程ppt课件
- 基于中国历史地理信息系统CHGIS
- 软件开发体系
- C基于Garch方法的网络流量预测
- 结构的设计
链接地址:https://www.31ppt.com/p-2971701.html