ImageVerifierCode 换一换
格式:PPT , 页数:62 ,大小:1.64MB ,
资源ID:10289053      下载积分:16 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10289053.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(软件体系结构风格.ppt)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

软件体系结构风格.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,软件体系结构风格,软件框架设计的核心问题是:能否复用已经成型的体系结构,方案,不同系统的设计方案存在着许多共性问题,把这些共性部分抽取出来,就形成了具有代表性的和可广泛接受的体系结构风格,什么是软件体系结构风格?,软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用,模式。,软件体系结构风格的作用是什么?,1.,指导,如何将各个模块和子系统有效地组织成一个完整的,系统。,2.,有关风格的使用带来了设计者的交流形式。关于设计元素的词汇促进了设计者理解和交流,。,3.,使用风格能够使代码的重用性得到

2、提高。当用不同的系统时,基本的架构代码风格不需要修改,它能够用于不同的系统中。,体系结构风格,对于高质量的软件产品而言,首先要为其选择合适的体系结构风格,这样就能够更好地重用已有的设计方案和实现,方案,体系结构,风格最关键的四要素,提供一个词汇表,定义一套配置规则,定义一套语义解释原则,定义对基于这种风格的系统所进行的分析,体系结构的风格有哪些?,管道,-,过滤器风格,面向对象风格,事件驱动风格,分层风格,数据共享风格,解释器风格,反馈控制环风格,特点:,1.,每个构件都有输入输出,构件完成对输入数据的处理产生输出。,2.,构件之间相对独立,相互之间无交互状态,非邻近过滤器不共享任何,信息。,

3、3.,整个体系结构的最终输出与格构件执行的顺序无关。,词汇:,过滤器:构件,管道:连接,管道,-,过滤器风格,优点,使得,软构件具有良好的隐蔽性和高内聚、低耦合的特点;,允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;,支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;,系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;,允许对一些如吞吐量、死锁等属性的分析;,支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。,缺点,通常导致进程成为批处理的结构。这是因为虽然过滤器可增量

4、式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。,不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。,因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性,。,难以进行错误处理,管道,/,过滤器结构的固有特性,决定了很难制定错误处理的一般性策略,实例:,传统的编译器是管道,/,过滤器体系结构风格的一个实例,这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。,特点:,1.,对象是构件。,2.,在对象和对象之间,通过函

5、数调用和过程调用来进行,交互。,面向对象风格,优点,一个对象对外界隐藏了自己的详细信息,改变一个对象的表示,不会影响系统的其它,部分,继承和封装方法为对象复用提供了技术支持,。,对象将数据和操作封装在一起,提高了系统内聚性,减小了模块之间的耦合程度,使系统更容易分解为既相互作用又相互独立的对象集合,缺点:,如果,一个对象要调用另一个对象,则必须知道它的标识和名称,会,产生连锁反应,如果一个对象的标识发生改变,那么必须修改所有显式调用它的其它对象,并消除由此引发的副作用,构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自

6、动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用,。,特点:,1.,构件是模块,模块可以是过程也可以是事件的集合。,2.,连接件:,往往是以过程之间的隐式调用,(Implicit Invocation),来实现的,事件驱动风格,例:观察者模式,public interface Subjectpublic void,attach,(Observer,observer);public void,detach,(Observer,observer);,void,notifyObservers,();,public class,ConcreteSubject,imp

7、lements Subject,public void attach(Observer observer),observersVector.addElement,(observer);,public void detach(Observer observer),observersVector.removeElement,(observer);public void,notifyObservers,()Enumeration,enumeration,=observers();while(,enumeration.hasMoreElements,()(Observer),enumeration.n

8、extElement,().update();public Enumeration observers()return(,(,Vector),observersVector.clone,().elements();private Vector,observersVector,=new,java.util.Vector,();,public interface Observervoid update();,public static void main(String args),Subject s=new ConcreteSubject();,s.attach(new Observer()pub

9、lic void update(),System.out.println(ok);,);,s.notifyer();,优点:,事件,声明者不需要知道哪些构件会响应事件,因此,不能确定构件处理的先后顺序,甚至不能确定事件会引发哪些过程调用,提高,了软件复用能力,只要在系统事件中注册构件的过程,就可以将该构件集成到系统中,便于,系统升级,只要构件名和事件中所注册的过程名保持不变,原有构件就可以被新构件所替代,缺点:,构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。,数据交换的问题。有时数据可

10、被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题,实例:,1.Debugger,2.,在用户界面中分离数据和表示,特点:,分层系统采用多个层次组织,每一层必须起两个作用:,(,1,)使用下层提供的功能。,(,2,)为上层提供服务。,分层风格,public,interface,StudentDAO,(),List,selectAll,(),Student Select(,int,id),void update(Student s),void delete(,int,id),void add(Student s),public

11、 class,StudentDAOImpl,(),.,public class,StudentBusiness,StudentDao,dao,;,public Student(,StudentDao,dao,),this.dao,=,dao,public list,studentChoice,(List ids),List list=new,ArrayList,();,for(,int,i=0;i,ids.size,();i+),int,id=,list.get,(i);,Student s=,dao.select,(id);,list.add,(s);,return list;,优点,支持,

12、基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解;,支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;,支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法,。,缺点:,并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来;,很难找到一个合适的、正确的层次抽象方法。,实例:,操作系统、数据库系统、计算机网络协议组,数据共享风格也称为仓库风格,有两种不同类型的软件元素

13、一种是中央数据单元,也称为资源库,用于表示系统的当前状态,另一种是相互依赖的构件组,中央数据单元和构件之间可以进行信息交换,这是数据共享体系结构的技术实现基础,数据共享体系结构风格,根据所使用的控制策略不同,数据共享体系结构可以分为两种类型:,一种是传统的数据库,另一种是黑板,如果由输入流中的事件来驱动系统进行信息处理,把执行结果存储到中央数据单元中,则这个系统就是数据库应用系统,如果由中央数据单元的当前状态来驱动系统运行,则这个系统就是黑板应用系统,一个典型的黑板型数据共享系统包括以下三个部分:,知识源:知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只

14、通过黑板来完成。,黑板数据结构:黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。,控制:控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。,黑板模式对于无确定性求解策略的问题比较有用,在专家系统中,这种模式应用的比较广泛。,例:问题:设字符转换规则,ABC,ACD,BCG,BEF,DE,已知:,A,,,B,求:,F,一、综合数据库,x,,其中,x,为字符,二、规则集,1,,,IF AB THEN C,2,,,IF AC THEN D,3,,,IF BC THEN G,4,,,IF BE THEN F,5,,,IF D THEN E,三

15、控制策略,顺序排队,四、初始条件,A,,,B,五、结束条件,Fx,综合数据库,可触发规则,被触发规则,A,,,B,(,1,),(,1,),A,,,B,,,C,(,2,)(,3,),(,2,),A,,,B,,,C,,,D,(,3,)(,5,),(,3,),A,,,B,,,C,,,D,,,G,(,5,),(,5,),A,,,B,,,C,,,D,,,G,,,E,(,4,),(,4,),A,,,B,,,C,,,D,,,G,,,E,,,F,1,,,IF AB THEN C 2,,,IF AC THEN D,3,,,IF BC THEN G 4,,,IF BE THEN F,5,,,IF D THEN

16、E,求解过程,例:传教士与野人问题(,M-C,问题),问题:,N,个传教士,,N,个野人,一条船,可同时乘坐,k,个人,要求在任何时刻,在河的两岸及船上,传教士人数不能少于野人的人数。,问:,如何过河。,以,N=3,,,k=2,为例求解。,1.,解决问题的多方法性:,对于一个专家系统,针对于要解决的问题,如果在其领域中没有独立的方法存在,而且对解空间的完全搜索也是不可行的,在黑板模式中可以用多种不同的算法来进行试验,并且也允许用不同的控制方法。,2.,具有可更改性和可维护性:,因为在黑板模式中每个知识源是独立的,彼此之间的通信通过黑板来完成,所以这使整个系统更具有可更改性和可维护性。,优点:,

17、3,.,有可重用的知识源:,由于每个知识源在黑板系统中都是独立的,如果知识源和所基于的黑板系统有理解相同的协议和数据,我们就可以重用知识源。,4.,支持容错性和健壮性:,在黑板模式中所有的结果都是假设的,并且只有那些被数据和其它假设强烈支持的才能够生存。这对于噪声数据和不确定的结论有很强的容错性。,1.,测试困难:,由于黑板模式的系统有中央数据构件来描述系统的体现系统的状态,所以系统的执行没有确定的顺序,其结果的可再现性比较差,难于测试。,2.,不能保证有好的求解方案:,一个黑板模式的系统所提供给我们的往往是所解决问题的一个百分比,而不是最佳的解决方案。,3.,效率低:,黑板模式的系统在拒绝错

18、误假设的时候要承受多余的计算开销,所以导致效率比较低。,缺点,4.,开发成本高:,绝大部分黑板模式的系统需要用几年的时间来进化,所以开发成本较高。,5.,缺少对并行机的支持:,黑板模式要求黑板上的中心数据同步并发访问,所以缺少对不并行机的支持。,数据共享风格实例:专家系统、语音识别等,在开发具有人机界面的软件系统时,比较适合使用模型,-,视图,-,控制器体系结构,在,MVC,结构中,主要包括模型、视图和控制器:,模型,是应用程序的核心,封装了问题的核心数据、逻辑关系和计算功能,提供了处理问题的操作过程,视图,是模型的表示,提供了交互界面,为用户显示模型信息,控制器,负责处理用户与系统之间的交互

19、为用户提供操作接口,MVC体系结构风格,MVC,体系结构具有以下优点:,多个视图与一个模型相对应,变化,-,传播机制确保了所有相关视图都能够及时地获取模型变化信息,从而使所有视图和控制器同步,便于维护,具有良好的移植性,由于模型独立于视图,因此,可以方便地实现不同部分的移植,系统被分割为三个独立的部分,当功能发生变化时,改变其中的一个部分就能够满足要求,MVC,体系结构风格也存在着一些问题:,增加了系统设计和运行复杂性,视图与控制器连接过于紧密,妨碍了二者的独立重用,视图访问模型的效率比较低,package,mypack,;,import com.opensymphony.xwork2.Ac

20、tionSupport,;,public class,UserAction,extends,ActionSupport,private String username;,private String,userpass,;,public String,getUsername,(),return username;,public void,setUsername,(String username),this.username,=username;,public String,getUserpass,(),return,userpass,;,public void,setUserpass,(Stri

21、ng,userpass,),this.userpass,=,userpass,;,Override,public String execute()throws Exception,if(,Mike.equals,(username)&123.equals(,userpass,),|,张三,.equals(username)&,abc,.equals(,userpass,),return success;,else,return error;,/,Success.jsp,/,Error.jsp,struts2,org.apache.struts2.dispatcher.FilterDispatc

22、her,struts2,/*,用户名,:,密,&,nbsp,;&,nbsp,;,码,:,特征,基于解释器风格的系统核心在于虚拟机。,一个基于解释器风格的系统通常包括:正在被解释执行的伪码和解释引擎;,伪码:由需要被解释执行的源代码和解释引擎分析所得的中间代码组成;,解释引擎包括:语法解释器和解释器当前的运行状态,解释器体系结构风格,解释引擎当前工作状态的数据结构,记录源代码被解释执行的进度的数据结,虚拟机的本质:高层次抽象与低层次抽象之间的屏障。,解释器:高层次抽象与低层次抽象之间的映射。,解释器体系结构具有以下优点:,能够提高应用程序的移植能力和编程语言的跨平台移植能力,可以利用解释器对未实

23、现的硬件进行仿真,解释器体系结构风格也存在着一些问题:,由于使用了特定语言和自定义操作规则,因此增加了系统运行的开销,解释器体系结构有许多现实应用,可以将其作为整个软件系统的一个组成部分,以下是一些具体的应用实例:,Java,和,Smalltalk,的编译器,基于规则的系统,诸如:专家系统领域中的,Prolog,语言,脚本语言,例如:,Awk,和,Perl,反馈控制环是一种特定的数据流结构,传统数据流结构是线性的,控制连续循环过程的体系结构应该是环形的,在反馈控制环系统中,主要包括以下,3,个部分:,过程,指操纵过程变量的相关机制,数据元素,指连续更新的过程变量,包括:输入变量、控制变量、操纵

24、变量和相关参考值,反馈控制环体系结构风格,控制器,通过控制规则来修正变量,收集过程的实际状态和目标状态,调节变量以驱动实际状态朝目标状态前进,反馈控制环结构能够处理复杂的自适应问题,机器学习就是一个典型的实例,将训练样本输入到学习构件中,作为被查询的基本数据和知识源,然后输入真实数据,经过学习构件的分析和计算,输出学习结果,检测构件要检查学习结果与预期结果之间的差异,并反馈给学习构件,所有的体系结构不仅有很紧密的联系,而且在大多数情况下是被一起使用,的,。,对于一个实际的系统,甚至不能判断它是,A,风格、,B,风格还是,C,风格,因为没有足够的理由把它归为任何一种独立的体系结构风格,。这种,系统类型可以被称为复合系统,这种系统的构建模式被称为异构风格的集成。,异构,风格的集成,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服