《2015级软件体系结构复习资料及考试试卷(共23页).docx》由会员分享,可在线阅读,更多相关《2015级软件体系结构复习资料及考试试卷(共23页).docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上软件架构的定义:(1)计算系统的软件架构是解释该系统所需的结构体的集合,其中包括软件元素,元素之间的相互关系和二者各自的属性。(2)Bass:软件架构包括一个或一组软件构件,软件构件的外部的可见特性(指软件构件提供的服务,性能,特性,错误处理,共享资源使用等)及其相互关系。(3)软件架构师关注的首先不是功能,而是品质关注点(非功能性需求),涉众关注的是那些品质,如性能.安全.可伸缩性.可变性.可维护性.可用性等。理解涉众的品质关注点后,考虑折中.分解,分而治之.保持概念完整性。(4)软件架构具有一定形式的结构化元素,即构件的集合包括:处理构件:负责对数据进行加工;数据
2、构件:是被加工的信息;连接构件:把架构的不同部分组合连接起来.软件架构从四个角度,对系统进行描述:概念:描述系统的主要构件及它们之间的关系模块:包含功能分解和层次结构;运行:描述系统的动态结构;代码:描述代码和库函数在开发环境中的组织(5)张友生:软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述,这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织和拓步结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。软件架构的意义:架构是风险承担者(涉众)进行交流的手段架构是早期设计决策的体现软件架构是可传
3、递和可重用的模型软件架构的应用现状(1)软件架构描述语言:ADL是一种形式化语言。(2)架构描述构造与表示:按照一定的描述方法,用架构描述语言(ADL)对架构进行说明的结果则称为架构的表示,将描述架构的过程称为架构构造。(3)架构分析、设计与验证:架构分析的内容:结构、功能和非功能分析/架构设计本质:将系统分解成相应的组成成分并将这些成分重新组装成一个系统/架构设计两大类方法:过程驱劢和问题列表驱劢.架构测试着重于仿真系统模型,解决架构层的主要问题.架构测试策略可分为单元/子系统/集成/验收测试等阶段的测试策略。(4)架构发现、演化与重用:架构发现从既存系统中提取软件的架构,属逆向工程。架构重
4、用属于设计重用,比代码重用更抽象。软件架构演化是指由于系统需求、技术、环境、分布等因素的变化而导致软件架构的变劢。(5)基于架构的软件开发方法:在基于构件和基于架构的软开发逐渐成为主流情况下,已经出现了基于构件的软件工程。(6)特定领域的架构框架:DSSA是将架构理论应用到具体领域的过程。(7)软件架构支持工具(8软件产品线架构:产品线代表着一组具有公共的系统需求集的软件系统,是根据基本的用户需求对标准的产品线构架迚行定制,将可重用构件不系统独有的部分集成而得到的。(9)建立评价软件架构的方法:架构权衡分析方法(ATAM方法)、软件架构分析方法(SAAM方法)、中间设计的积极评审(ARID方法
5、)软件体系结构建模的种类结构、框架、动态、过程、功能模型结构:以构件、连接件和其他概念来刻画结构,并以此来反映系统的重要语义内容.框架:框架模型更侧重于整体的结构.主要以一些特殊的问题为目标建立只针对和适应该问题的结构。动态:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。例如,描述系统的重新配置或演化。过程:过程模型研究构造系统的步骤和过程。 功能:体系结构是由一组功能构件按层次组成,下层向上层提供服务。4+1模型逻辑视图主要支持系统的功能需求.-静开发视图也称模块视图,主要侧重于软件模块的组织和管理。-静进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。-动物理视
6、图主要考虑如何把软件映射到硬件上-动场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,场景可认为是最重要的需求抽象。管理信息系统-逻辑视图和开发视图实时控制系统-进程视图和物理视图RUP4+1软件体系结构的生命周期模型:架构的核心模型:构件.连接件.配置.端口.角色软件过程各阶段间的关系:需求分析-建立体系结构-详细设计-实现-测试C4模型:容器:一个在其内部可以执行构件或驻留数据的东西。在面向对象的系统中,通常系统由多个容器组成,容器由多个构件组成,构件由多个类组成。软件架构风格:描述某一特定应用领域中系统组织方式的惯用模式.架构风格定义了一个系统家族即(架构定义,词汇表,约束
7、),词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。诸风格的特征数据流风格:批处理序列;管道/过滤器。调用/返回风格:主程序/子程序;面向对象风格;层次结构。独立构件风格:进程通讯;事件系统。虚拟机风格:解释器;基于规则的系统。仓库风格:数据库系统;超文本系统;黑板系统。C2风格管道-过滤器:每个构件都读输入数据流,进行处理,产生输出数据流.这里的处理是对输入流的过滤,变换及增量计算;构件被称为过滤器,连接件就是过滤器间的数据流传输的管道.如:UnixShell编写的程序.编译器.批处理程序.面像对象系统:此风格建立在数据抽象和面向对象的基础上。构件是对
8、象。构件封装了数据和用于控制该数据的操作,构件间通过信息传递进行通讯和合作。基于事件的隐式调用:构件不直接调用一个过程,而是触发或广播一个或多个事件.系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。这种风格的构件是一些模块,模块既可以是一些过程,又可以是一些事件的集合.主要特点:事件的触发者并不知道哪些构件会被这些事件影响.如IDE的Debugger,数据库的trigger,Windows的画面控制.分层系统:层次系统为层次结构,每一层为上层服务,并作为下层客户.连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。
9、此风格便于分解复杂问题.由于每层只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。仓库系统:有两种构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行.构件与仓库间相互作用.(数据库,信号处理松耦合代理,数据共享存取,带有全局数据库的批处理系统)C2:系统中的构件和连接件都有一个顶部和一个底部;构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;一个连接件可以和任意数目的其它构件和连接件连接;当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。C/S风格:有三个主要组
10、成部分:客户应用程序,数据库服务器和网络.模型:任务分配:服务器:数据库安全性的要求;数据库访问并发性的控制;数据库前端的客户应用程序的全局数据完整性规则;数据库的备份与恢复。客户应用程序:提供用户与数据库交互的界面;向数据库服务器提交用户请求并接收来自数据库服务器的信息;利用客户应用程序对在客户端的数据执行应用逻辑要求。优点:有强大的数据操作和事务处理能力,模型思想简单,易于理解,节约费用.缺点:开发成本较高,客户端程序设计复杂,软件移植困难三层C/S风格优点:可维护性和可扩展性,具有良好的可升级性和开放性,可以选择各自最适合的开发语言。三层C/S结构各层间的通信效率若不高,即使分配给各层的
11、硬件能力很强,其作为整体来说也达不到所要求的性能。设计时必须慎重考虑三层间的通信方法、通信频度及数据量这和提高各层的独立性一样是三层C/S结构的关键问题。三层B/S风格具体结构为:浏览器/Web服务器/数据库服务器。B/S架构是利用WWW浏览器技术,结合浏览器的多种脚本语言用通用浏览器就实现强大功能,并节约了开发和运用成本。优:系统安装、修改和维护,都容易,对客户端机器性能要求不高.适用于面向大量用户的应用和不特定用户应用.架构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础缺:应用系统在操作性等响应速度上远低于C/S架构.数据动态交互性不强,不利于在线事务处理(
12、OLTP)应用.在公众网下的应用会有安全方面的成本。 CORBA:接口定义语言(IDL)利用IDL统一地描述服务器对象的接口接口池(IR)利用IDL统一地描述服务器对象的接口动态调用接口(DII)动态调用接口提供了标准函数供客户对象动态创建请求、动态构造请求参数。客户对象将动态调用接口与接口池配合使用可实现服务器对象接口的动态搜索、请求及参数的动态构造与发送。 对象适配器(OA)用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口,以便他们使用ORB内部的某些功能。这些功能包括服务器对象的登录与激活、客户请求的认证等。特点:引入中间件作为事务代理,完成客户机提出的业务请求。实现客户与
13、服务对象的完全分开。提供软总线机制。采用面向对象的软件实现方法开发应用系统。正交软件体系结构正交软件体系结构由完成不同功能的n(n1)个线索(子系统)组成系统具有m(m1)个不同抽象级别的层;线索之间是相互独立的(正交的);系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)结构清晰,易于理解易修改,可维护性强可移植性强,重用粒度大 基于层次消息总线的软件结构异构风格关于软件包、框架、通信以及其他一些架构上的问题,存在多种标准。且会变化。我们总会遇到一些遗留系统,它们仍有效用,但与新系统有些不协调。处于技术与经济的考虑,常决定不再重写它们。即使在某一单位中规定了共享共同的软件包或
14、相互关系的一些标准,仍存在解释或表示习惯上的不同。领域特定的软件架构(DSSA)DSSA的目标:在相关应用中共享体系结构。以加大重用。DSSA的定义:DSSA是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。基本活动:模型典型的软件系统的架构类型人工智能:模拟或扩大人类认知,运动或其他有机体过程的系统商业:工商企业运营必要的系统通讯:提供用于数据传输和数据管理,数据的用户连接或者数据展示的基础设施的系统内容创作:用来创建或管理文字和多媒体的系统设备:与物理世界交互的系统,可为个人提供某种有意义的服务娱乐与运动:管理公众事件
15、或者提供大众娱乐体验的系统。金融:为转账和理财及其他安全事务提供基础设施的系统游戏:为个人或群体提供娱乐体验的系统工业:模拟或控制物理过程的系统行政管理:支持地方/中央/全球等政治实体的管理和运作方式的系统法律:支持法律的系统医疗:诊断或治疗,或者有助于医学研究的系统军事:用于商议,通讯,指挥,控制和信息(C4I)的系统。也有用于进攻和防卫武器的系统操作系统:位于硬件之上提供基本软件服务的系统平台:位于操作系统之上提供高级服务的系统科学:用于科学研究和应用的系统工具:用于开发其他系统的系统运输:控制水上,地面,空中或太空交通工具的系统实用程序:与其他软件交互作用的系统,可提供某种有意义的服务体
16、系结构描述方法图形表达工具 模块内连语言:传统程序设计语言。不便处理和描述高层次软件体系结构元素。基于软构件的系统描述语言:将软件系统描述成一种是由许多特殊软件实体构造组成的组织或系统.面向的系统元素是层次较低的以程序设计为基础的通信协作软件实体单元,系统一般是面向特定应用的特殊系统.软件体系结构描述语言:ADL是针对软件体系结构的整体性和抽象性特点,定义和确定适合于软件体系结构表达与描述的有关抽象元素而形成的。XML的特点简洁有效易学易用开放的国际化标准高效且可扩充XML的作用使得搜索更加有意义开发灵活的Web应用软件实现不同数据的集成使用于多种应用环境客户端数据处理与计算数据显示多样化局部
17、数据更新与现有Web发布机制相兼容可升级性压缩性能高XML的应用客户需要与不同的数据源进行交互时将大量运算负荷分布在客户端将同一数据以不同的面貌展现给不同的用户网络代理对所取得的信息进行编辑、增减以适应个人用户的需要XML与HTML的区别HTML是一种格式化的语言,HTML文本可以看作一个格式化的程序XML是一种元标记语言XML定义一套元句法,与特定领域有关的标记语言(例如,MusicML、MathML和CML等)都必须遵守XSL与CSS的区别CSS只能改变特定元素的格式,也只能以元素为基础。但XSL样式单可以重新排列元素并对元素进行重排序。CSS的优越性在于具有广泛的浏览器支持。但XSL更为
18、灵活和强大,可更好地适用于XML文档。且带XSL样式单的XML文档可以很容易地转换为带CSS样式单的HTML文档。若只是要对一些固定数据进行排版,可以使用“HTMLCSS”方式;若这些数据是与某些应用程序相关,且独立于程序存在,独立于程序来使用,则应该充分使用XML技术,采用“HTMLXMLXSL”。XML文档的解析的各种API接口的特征和选择原则DOM,SAX,JDOM,JAXP DOM:DOM提供了一组丰富的功能,用户可以用这些功能来解释和操作XML文档。DOM先构建整个文档驻留内存的树,才能进行解析。如果文档很大,就会要求有极大的内存.DOM创建表示原始文档中每个东西的对象,包括元素、文
19、本、属性和空格。若用户只需关注文档的一小部分,那就嫌效率不高,费力不讨好。SAX解析器向代码发送事件。SAX解析器不创建任何对象,只是将事件传递给应用程序。SAX解析器在解析开始时就开始发送事件。SAX事件是无状态的。SAX事件不是持久的。JDOM是基于Java技术的开源项目,它试图遵循80/20规则:用DOM和SAX的20%的功能来满足80%的用户需求。JDOM使用SAX和DOM解析器,故只是一组相对较小的Java类。主要特性:大幅度减少了用户代码,通常是DOM应用程序的1/3,SAX应用程序的1/2。JAXPJAXP提供的诸如DocumentBuilderFactory之类的接口,为不同的
20、解析器提供了一个标准接口。还有一些方法可以允许用户控制底层的解析器是否可以识别名称空间,以及是否使用DTD或模式来验证XML文档。 API接口的选择要用Java编写应用程序吗?JAXP使用DOM、SAX和JDOM;如果用Java编写代码,那么应使用JAXP将代码与各种解析器实现的细节隔离。应用程序将如何部署?如果应用程序将要作为Javaapplet部署,则会希望使要下载的代码数量最小,SAX解析器比DOM解析器小,而使用JDOM时,除了SAX或DOM解析器之外还要求编写少量代码。一旦解析了XML文档,还需要多次访问那些数据吗?是,则DOM可能是正确的选择(保存全部数据)。若用SAX,则开发人员
21、需要以某种方式保存它。否则必须再次解析该文件。只需要XML源文件的少量内容吗?是,则SAX可能是正确的选择。SAX是选择处理,不会为源文件中的每个东西创建对象。正在一台内存很少的机器上工作吗?是,则不管可能考虑到的其它因素是什么,SAX都是最佳选择。SaaS,软件即服务是一种通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件。 SOA的定义SOA是一种应用程序体系结构,在该体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成
22、业务流程。SOA特征松散耦合.粗粒度服务.标准化接口SOA用途便于将业务系统能力分解为独立性高/松散耦合,粗粒度的和可复用的服务便于对服务进行组装和编排以满足业务和流程的变化需求。SOA的设计原则明确定义的接口/自包含和模块化/粗粒度/松耦合/互操作性、兼容和策略声明SOA的关键技术 发现服务层 UDDI、DISCO发布与发现。我是谁,在哪,能干啥 描述服务层 WSDL、XML Schema我具体有哪些功能,怎么用 消息格式层 SOAP、REST用什么格式的内容和我交互 编码格式层 XML我需用XML语言描述交互信息 传输协议层 HTTP、TCP/IP、SMTP等 底层通信协议是什么 SOA的
23、实现方法 Web ServiceWeb服务的应用实例 ERPRIA的优点RIA结合了C/S架构反应速度快、交互性强的优点,以及B/S架构传播范围广及容易传播的特性RIA简化并改进了B/S架构的用户交互数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面RIA可继续使用现有的应用程序模型(包括J2EE和.NET),无需大规模替换现有Web应用程序。通过RIA技术,可轻松构建更直观、易使用、反应更迅速并且可以脱机使用的应用程序RIA可为企业提供多种重要效益,如提高产品销量、增强客户关系,延长网站逗留时间、减少带宽成本及支持求助等RIA客户端开发
24、技术类别 Flex,XUL,Laszlo,AJAX,Java,BindowsAjax开发模式Ajax技术核心:JavaScript调用XML的异步传输 Ajax开发过程初始化XMLHttpRequest对象指定相应处理函数发出Http请求处理服务器返回信息动态显示信息接口设计包含用户接口设计=用户界面设计用户界面设计的黄金规则及其含义用户操纵控制:以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式.提供灵活的交互.允许用户交互被中断和撤销.当技能级别增长时可以使交互流线化并允许定制交互.使用户与内部技术细节隔离开来.设计应允许用户与出现在屏幕上的对象直接交互。减少用户的记忆负担:减少对
25、短期记忆的要求.建立有意义的缺省.定义直观的快捷方式.界面的视觉布局应该基于真实世界的象征.以不断进展的方式揭示信息。保持界面一致:允许用户将当前任务放入有意义的环境中.在应用系统家族内保持一致性.如果过去的交互模型已经建立起了用户期望,除非有不得已的理由,否则不要改变它。 界面分析从哪些方面着手界面分析意味着了解(1)通过界面和系统交互的人(最终用户)(2)最终用户为完成工作要执行的任务(3)作为界面的一部分而显示的内容(4)任务处理的环境评估的主要方式 :基于调查问卷戒检查表的评估方式基于场景的评估方式基于度量的评估方式 ATAM评估方法, 效用树软件设计里的模式的层次(1)Coad的面向
26、对象模式:可划分为:基本的继承和交互模式面向对象软件系统的结构化模式与MVC框架相关的模式。(2)代码模式:主要目标在于:指明结合基本语言概念的可用方式;构成源码结构与命名规范的基础;避免面向对象程序设计语言的缺陷。(3)框架应用模式:在应用程序框架“菜谱”中有很多“菜谱条”,它们用一种不很规范的方式描述了如何应用框架来解决特定的问题。不同的框架有各自的“菜谱”。(4)形式合约:形式合约也是一种描述框架设计的方法,强调组成框架的对象间的交互关系。设计模式 定义,作用,分类 设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它与具体的实现语言无关。作用:提高了软件复用
27、的水平,从而提高了生产效率。分类:创建型,结构型,行为型GoF的23种经典设计模式创建型(工厂方法模式。抽象工厂。建造者。原型。单例)结构型(适配器。桥连。组合。装饰。外观。享元。代理)行为型(职责链。命令。解析器。迭代器。中介者。备忘录。观察者。状态。策略。模板方法。访问者)工厂模式定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得子类实例化的过程推迟。实例化子类的对象抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。产品对象族。抽象工厂与工厂模式的区别:工厂模式的工厂是针对一个产品等级结构抽象工厂模式的工厂是针对多个产品等级结构 适配器
28、模式将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作与对象的接口单例模式保证一个类只有一个实例,并提供一个访问它的全局访问点类的单个实例代理模式为其他对象提供一种代理以控制这个对象的访问如何访问对象,对象位置MVC特点和Java实现示例MVC是观察者,策略,组合模式的演变。根据MVC在框架中的实现不同可能还会用到工厂和装饰器模式。中间件的定义,优点,功能,分类,发展趋势中间件:是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。优点:它使设计师集中设计与应用有关的部分,大
29、大简化设计与维护工作。功能:负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。提供一个多层体系结构的应用开发和运行的平台,以及一个应用开发框架,支持模块化的应用开发。屏蔽硬件、操作系统、网络和数据库的差异。(如JVM,ODBC)提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。分类:面向对象:CORBA,EJB,COM应用层:底层、通用型、集成型中间件发展趋势:规范化、构件化和松耦合、平
30、台化。主要的中间件:RPC,ORB,RMI,RMI-IIOP,MOM,事务处理监控器面向对象设计原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则组合/聚合复用原则概要设计书(外部设计书)的文档内容和制作步骤内容:目的/方针、概要、功能、用户界面、系统结构、软件结构、硬件结构、网络结构、系统接口,用语定义步骤:业务流程的作成-向子系统的分解-画面和报表的布局作成-编号设计-逻辑数据设计-系统接口设计-外部设计书整理-评审详细设计书(内部设计书)的文档内容和制作步骤内容:可以有功能、用户界面、系统结构、软件结构、硬件结构、网络结构、系统接口,必须有程序结构、数据结构、网络结构
31、,处理逻辑,消息和用语定义。步骤:画面的详细设计-报表的详细设计-外部接口的详细设计-业务规划的详细设计-要求处理的详细设计-消息的详细设计-物理数据设计-内部设计书整理-评审补充:Chapter 20 Embedded Systems嵌入式系统 Embedded systems design 嵌入式系统设计 Architectural patterns 体系结构模式 Timing analysis 时序分析 Real-time operating systems 实时操作系统第13章 软件产品线体系结构软件产品线的产生于发展软件产品线的过程模型有双周期模型,SEI模型,三生命周期模型。3.什
32、么是软件重用?软件重用的层次可以分为哪几个级别?软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件重用的层次可以分为三个级别:(1)代码重用(2)设计结果重用(3)分析结果重用5.程序结构、软件结构、软件体系结构三者有什么区别和联系? 区别:(1)程序结构是采用自顶向下、及化的程序设计方法;使用三种基本控制结构(即顺序、选择和循环)构造程序。程序结构有两层含义,一是指程序的数据结构和控制结构;另一是指由比程序低一级的程序单位(模块)组成程序的过程、方法和表示。(2)软件结构是指一种层次表况,由软件组成成分构造软件的过程、方法和表示。(3)软件是具有一定形式的结构
33、化元素,即构件的集合,包括处理构件、数据构件和连接构件。联系:(1)软件结构主要包括程序结构和文档结构。(2)软件体系结构是整个软件系统的骨架。1.选择一个熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出的特点。(为什么要采用这种风格?采用这种风格带来哪些优势?具有哪些不足?)如在石油管理局劳动管理系统中使用三层C/S的风格。该项目要求系统需要具备较强的适应能力和演化能力,不论单机还是网络环境均能运行,并保证数据的一致性,且能随着网络环境的改善和管理水平的提高以及从独立的应用程序方式向适应Intranet环境的方式演化。三层C/S体系结构运用事务分离的原则将MIS应用分为表示层、功能
34、层、数据层等三个层次,每一个层次都有自己的特点。在MIS的三层结构中,中间的功能层是关键。运行MIS应用程序的最基本的任务就是执行数千条定义业务如何运转的业务逻辑。一个业务处理过程就是一组业务处理规则的集合,中间层反应的是应用域模型,是MIS系统的核心内容。优点:允许合理地划分三层结构的功能在逻辑上保持相对独立性;允许更灵活有效地选用相应的平台和硬件系统,具有良好可升级性和开放性;三层C/S结构中,应用层的各层可以并行开发,各层可以选择各自最适合的开发语言;允许充分利用功能层有效地隔离开表示层和数据层,整个系统的管理层次也更加合理和可控制。缺点:三层C/S结构各层间的通信效率若不高,即使分配给
35、各层的硬件能力很强,其作为整体来说也达不到所要求的性能。此外,设计时必须慎重考虑三层间的通信方法、通信频度及数据量。基于消息总线:HMB风格的构件接口是一种基于消息的互联接口,可以较好地支持体系结构设计。构件之间通过消息进行通讯,接口定义了构件发出和接收的消息集合。当某个事件发生后,系统或构件发出相应的消息,消息总线负责把该消息传递到此消息感兴趣的构件。 按照响应方式的不同,消息可分为同步消息和异步消息。HMB风格构件动态行为:构件的行为就由外来消息的类型唯一确定,即一个消息和构件的某个操作之间存在着固定的对应关系。对于这类构件,可以认为构件只有一个状态,或者在每次对消息响应之前,构件 处于初
36、始状态。更通常的情况是,构件的行为同时受外来消息 类型和自身当前所处状态的影响。HMB风格运行时刻的系统演化:动态增加或删除构件;动态改变构件响应的消息类型;消息过滤;【问题一】在实际的软件项目开发中,采用成熟的体系结构风格是项目成功的保证。请用200字以内的文字说明:什么是软件体系结构风格;面向对象和控制环路两种体系结构风格各自的特点。软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。面向对象:此风格的特征是将数据表示和基本操作封装在对象中。构件是对象。对象维护自身表示的完整性,对象之间通过消息机制进行通信
37、,对象交互时需要知道彼此的标识,通过对象之间的协作完整计算过程。控制环路:将过程输出的指定属性维护在一个特定的参考值。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件。通过手机实际和理想的过程状态信息,调整过程和变量,使趋向于理想状态。【问题二】用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种体系结构风格中的主要构件,并详细描述计算过程。面向对象:构件是对象。对于系统的增减速功能,采用面向对象风格的巡航控系统首先会定义司机、油门、时钟、速度计和车轮等构件。整个计算的主要过程是:(1)司机进行增/减速操作设置期望速
38、度,该期望速度以消息的形式传递给速度计;(2)速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度;(3)速度计计算当前速度和期望速度的速度差值;(4)该差值以消息的形式发送给油门,油门通过速度差值调节自身状态;(5)整个过程在时钟的控制下定期向速度计发送消息,重复执行(2)(4)。控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。具体的计算过程是:(1)司机进行增/减操作设置期望速度值;(2)将设定值置为期望速度值;(3)控制器采集车轮脉冲和时钟值,计算出当前速度;(4)比较期望速度和当前速度,计算速度差值,控制油门动作。(5)反复执行(3)和(4)。2
39、.软件体系结构描述方法和体系结构描述标准是形式化的基础,简要说明有哪些软件体系结构描述方法和描述标准。体系结构描述方法分类:1.图形表达工具2.模块内连接语言3.基于软构建的系统描述语言4.软件体系结构描述语言 鉴于体系结构描述的概念与实践的不统一, IEEE发起研究并于2000年通过了体系结构描述框架标准IEEE P1471。IEEE P1471适用于软件密集的系统,其目标在于:便于体系结构的表达与交流,并通过体系结构要素及其实践标准化,奠定质量与成本的基础。IEEE P1471详细介绍了一套体系结构描述的概念框架,并给出建立框架的思路。但如何描述以及具体的描述技术等方面缺乏更进一步的指导。
40、Rational起草了可重用的软件资产规格说明,专门讨论了体系结构描述的规格说明,提出了一套易于重用的体系结构描述规范。该建议草案已经提交OMG。基于RUP(Rational United Process)、采用UML模型 描述软件的体系结构,认为体系结构描述的关键是定义视点、视图以及建模元素之间的映射关系。与IEEE P1471相比,该建议标准的体系结构描述方案涉及 面比较窄,所注重的层次比较低,因而更具体。由于将体系结构的描述限于UML和RUP(RUP 4+1视图),具有一定的局限性,但该建议标准结合了业界已经广泛采用的建模语言和开发过程,因而易于推广,可以有效实现在跨组织之间重用体系结构
41、描述结果。3.对一个你曾经开发过的软件系统进行考虑,如果要使用ADL对其体系结构进行描述,你会选择哪一种?为什么?这样选择的优点和缺点各有哪些? 我会选择Acme。原因如下:Acme是第二代ADL,即,其目的是确定一种最少共同点ADL。Acme是CMU的Acme项目的产物,Acme具备大多数ADL共有的概念,因此它本身也是一个ADL,并且是一个相对而言比较简单的通用的ADL,Acme的主要特点表现为:采用七个基本的体系结构设计元素作为体系结构的本体,采用灵活的标注机制支持使用外部语言定义的非结构化信息,使用类型机制对常见的可复用的软件体系结构俗语和风格进行抽象描述,使用开放的语义框架对体系结构
42、描述进行推理,Acme的设计元素为构件、连接子、系统、端口、角色、表示、映射。 模型驱动工程的特点主要表现在,该方法更加关注为不同的领域知识构造其抽象描述,即领域模型(domain models),基于这些代表领域概念的模型刻画软件系统,并通过自动(半自动)的层层转换完成从设计向实现的过渡,从而最终完成整个系统的开发。Ajax是一个技术综合体,其核心技术包括JavaScript、XMLHttpRequest对象、DOM文档对象模型等等。使用这些技术才能实现与服务器的异步通信,从而实现无刷新的Web应用。使用 JavaScript 将所有的东西绑定在一起,使用进行异步数据查询、检索,使用 DOM
43、(Document Object Model)进行动态显示及交互,使用 XML和 XSLT 进行数据交换及相关操作。(1)用户想Traveler网站请求服务,请求页面提供用户的位置信息。(2)Traveler接受请求,将请求分解为对多个网站的数据请求调用,并为发起调用进行准备。(3)调用A网站提供的Web编程接口,给出(提供)用户位置信息,请求地图信息信息。(4)A网站向Traveler网站返回用户所处位置周边的地图信息。(5)调用B网站的内容信息获取接口,给出(提供)用户地理信息,请求用户周边的住宿信息。(6)B网站向Traveler网站返回用户所处位置周边的住宿信息。(7)根据用户的请求信
44、息进行数据内容聚合。(8)Traveler网站向用户所处位置周边整合的旅游信息。请给出三种目前经常使用的Mashup数据接口并加以简单说明。(1)聚合内容式的Mashup接口。一种用于对网站内容进行描述和同步的格式,是目前使用最广泛的Web资源发布方式。可以被称为资源共享模式的延伸。(2)表达性状态转移式的Mashup接口。REST从资源的角度来看待整个网络,分布在各处的资源由统一资源标识符确定,而客户端的应用通过URI来获取资源的表示。(3)基于简单对象访问协议的Web服务式Mashup接口。一种基于XML的数据格式定义,用来进行Web服务调用过程中的参数调用和返回。在客户端进行内容聚合的优
45、点(1)从Mashup服务器存储的角度来说,对服务器所产生的负载较轻,因为数据可以直接从内容提供者那里传送到客户端。(2)从网络传输的角度来说,在基于AJAX等技术和应用模型的基础上,客户端页面只请求需要更新的内容,而不用刷新整个页面,从而减少网络数据的通信量。评估的主要方法有:(1)基于调查问卷或检查表的评估方式 优:这一评估方式比较自由灵活,可评估多种质量属性,并可在软件体系结构设计的多个阶段迚行。但是由于评估的结果径大程度上来自评估人员的主观推断,因此精度依赖于评估人员对领域的熟悉程度和经验。 缺点:尽管基于调查问卷不检查表的评估方式相对比较主观, 但由于系统相关的人员的经验和知识是评估软件体系结构的重要信息来源,因而它仍然是进行软件体系结构评估的重要途径之一。(2)基于场景的评估方式 优:该方式考虑到了所有涉众对质量的要求。涉及到的基本活动包括确定应用领域的功能和软件体系结构的结构之间的映射,设计用于体现待评估质量属性的场景以及分析软件体系结构对场景的支持程度。 缺:不同的应用系统对同一质量属性的理解可能不同,因此基于场景的评估方式是特定于领域的。该方式