软件标准体系结构原理方法与实践总结.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 标准 体系结构 原理 方法 实践 总结
- 资源描述:
-
第1章:软件体系结构概论 什么是软件危机,软件危机具体表现有哪些? 软件危机:落后软件生产方法无法满足快速增加计算机软件需求,从而造成软件开发和维护过程中出现一系列严重问题现象。 软件危机表现: 软件成本日益增加,开发进度难以控制,软件质量差,软件维护困难 产生软件危机原因,怎样克服软件危机? 产生软件危机原因有用户需求不明确,缺乏正确理论指导,软件规模越来越大,软件复杂度越来越高。 大家面临不光是技术问题,更关键是管理问题。要提升软件开发效率,提升软件产品质量,必需采取工程化开发方法和生产技术。在技术上,应该采取基于重用软件生产技术; 在管理上,应该采取多维工程管理模式。 构件:(components,也译为组件,部件): 是指语义完整、语法正确和有可重用价值单位软件,是软件重用过程中能够明确辨识系统;结构上,它是语义描述、通讯接口和实现代码复合体。是含有某种功效可重用软件模板单元,表示了系统中关键计算元素和数据存放。 软件架构师关注点: 关注首先不是功效,而是品质关注点(非功效性需求) 。涉众关注是那些品质,如性能,安全,可伸缩性,还是可变性,可维护性,可用性等。了解涉众品质关注点后,考虑折中。分而治之,保持概念完整性 软件体系结构定义 软件体系结构为软件系统提供了一个结构、行为和属性高级抽象,由组成系统元素描述,这些元素相互作用、指导元素集成模式和这些模式约束组成。软件架构不仅指定了系统组织结构和拓扑结构,而且显示了系统需求和组成系统元素之间对应关系,提供了部分设计决议基础原理。 软件体系结构意义 体系结构是风险负担者进行交流手段,体系结构是早期设计决议表现,它明确了对系统实现约束条件,决定了开发和维护组织组织结构,制约着系统质量属性,能够估计软件质量,是推理和控制更改更简单,有利于循序渐进原型设计。同时,软件体系结构是可传输和可重用模型。 软件体系结构应用现实状况 现在,软件体系结构领域研究很活跃,归纳现有体系结构研究活动,关键包含以下多个方面 1.软件体系结构描述语言2.体系结构结构和表示 3.体系结构分析、设计和验证4.体系结构发觉、演化和重用5.基于体系结构软件开发方法6.特定领域体系结构框架7.软件体系结构支持工具8.软件产品线体系结构9.建立评价软件体系结构方法 架构分析、设计和验证,发觉、演化和重用 架构分析内容可分为结构分析、功效分析和非功效分析。生成一个满足软件需求架构过程即为架构设计。 架构设计过程本质在于将系统分解成对应组成成份,并将这些成份重新组装成一个系统。 架构设计有两大类方法:过程驱动方法和问题列表驱动方法。 架构测试着重于仿真系统模型,处理架构层关键问题。因为测试抽象层次不一样,架构测试策略能够分为单元/子系统/集成/验收测试等阶段测试策略。 架构发觉 从既存系统中提取软件架构,属逆向工程。 架构重用 属于设计重用,比代码重用更抽象。因为软件架构是系统高层抽象,反应了系统关键组成元素及其交互关系,所以较算法更稳定,更适合于重用。 软件架构演化是指因为系统需求、技术、环境、分布等原因改变而造成软件架构变动。软件系统在运行时架构改变称为架构动态性,而将架构静态修改称为架构扩展。二者全部是架构适应性和演化性研究范围。 第2章 软件体系结构建模。 软件体系结构建模种类 结构模型、框架模型、动态模型、过程模型和功效模型 什么是“4+1视图”,分别给出每个视图名称和关键关注点。 “4+1”视图模型是Kruchten于1995年提出用于描述软件体系结构方法,关键用5个不一样视图:逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 每一个视图只关心系统一个侧面,5个视图结合在一起才能反应系统软件体系结构全部内容 软件体系结构生命周期模型 软件体系结构非形式化描述,软件体系结构规范描述和分析,软件体系结构求精及其验证,软件体系结构实施,软件体系结构演化和拓展,软件体系结构提供、评价和度量,软件体系结构终止 容器 容器是指一个在其内部能够实施构件或驻留数据东西。它能够是从网络或应用服务器直到富用户端应用或数据库任何东西。容器通常是可实施文件,但未必是各自独立步骤。 C4模型 在面向对象系统中,通常系统由多个容器组成,容器由多个构件组成,构件由多个类组成 第3章 软件体系结构风格。 软件架构风格定义 诸风格特征 ◎数据流风格:批处理序列;管道/过滤器。 管道和过滤器风格软件体系结构特点 (1)使得软构件含有良好隐蔽性和高内聚、低耦合特点;(2)许可设计者将整个系统输入/输出行为看成是多个过滤器行为简单合成;(3)支持软件重用。(4)系统维护和增强系统性能简单。(5)许可对部分如吞吐量、死锁等属性分析;(6)支持并行实施。不过,这么系统也存在着若干不利原因。 (1)通常造成进程成为批处理结构。这是因为即使过滤器可增量式地处理数据,但它们是独立,所以设计者必需将每个过滤器看成一个完整从输入到输出转换。 (2)不适合处理交互应用。当需要增量地显示改变时,这个问题尤为严重。 (3)因为在数据传输上没有通用标准,每个过滤器全部增加了解析和合成数据工作,这么就造成了系统性能下降,并增加了编写过滤器复杂性。 ◎调用/返回风格:主程序/子程序;面向对象风格;层次结构。 面向对象优点 能形象地表现现实世界领域,重用性高,对应改变很强。 即易扩展, 维护性强 数据抽象和面向对象组织缺点 性能损失。 面向对象编程为了:重用性、 灵活性和扩展性等特征而作出牺牲。测试比较麻烦,对整体系统设计要求高 ◎独立构件风格:进程通讯;事件系统。 基于事件隐式调用优点: 为软件重用提供了强大支持。 当需要将一个构件加入现存系统中时,只需将它注册到系统事件中。为改善系统带来了方便。 当用一个构件替换另一个构件时,不会影响到其它构件接口。 基于事件隐式调用缺点: 构件放弃了对系统计算控制。数据交换问题。 有时数据可被一个事件传输,但 有时系统必需依靠一个共享仓库进行交互。 这时全局性能和资源管理便成了问题。 既然过程语义必需依靠于被触发事件上下文约束,相关正确性推理存在问题。 分层系统优点: 支持基于抽象程度递增系统设计,使设计者能够把一个复杂系统按递增步骤进行分解; 支持功效增强,因为每一层至多和相邻上下层交互,所以功效改变最多影响相邻上下层;支持重用。 只要提供服务接口定义不变,同一层不一样实现能够交换使用。 这么,就能够定义一组标准接口,而允很多种不一样实现方法。 分层系统缺点: 并不是每个系统全部能够很轻易地划分为分层模式,甚至即使一个系统逻辑结构是层次化 ,出于对系统性能考虑,系统设计师不得不把部分低级或高级功效综合起来;极难找到一个适宜、 正确层次抽象方法。 ◎虚拟机风格:解释器;基于规则系统。 ◎仓库风格:数据库系统;超文本系统;黑板系统。 请简明说明黑板风格定义。 黑板结构是一个六至八层层次结构,每一层全部抽象了和之相邻较低一层信息。 知识源代表整个问题求解中独立子任务。每个知识源被组织成一个条件部分和一个动作部分,条件部分要求什么时候知识源可用,动作部分负责处理相关黑板元素并产生新元素。控制构件作为黑板监控程序和调度程序;通常将黑板知识源应用到黑板中多种元素含有优先次序,调度程序负责监控黑板和计算优先次序。 ◎C2风格 C2风格特点 C2体系结构风格:能够概括为经过连接件绑定在一起根据一组规则动作并行构件网络。组织规则有:1、系统中构件和连接件全部有一个顶部一个底部。2、构件顶部应连接到某连接件底部,构件底部应连接到连接件顶部,构件之间不能直接连接。3、一个连接件能够和任意数目标其它构件和连接件相连。4、当两个连接件直接相连时,必需由其中一个底部到另一个顶部。C2风格特点:系统中构件可实现应用需求,并能将任意复杂度功效封装在一起;全部构件之间通讯是经过以连接件为中介异步消息交换机制来实现;构件相对独立,构件之间依靠性较少。系统中不存在一些构件将在同一地址空间内实施,或一些构件共享特定控制线程之类相关性假设。 ◎C/S风格 C/S风格优点: C/S架构含有强大数据操作和事务处理能力,模型思想简单,易于了解。系统用户应用程序和服务器构件分别运行在不一样计算机上,系统中每台服务器全部能够适合各构件要求,这对于硬件和软件改变显示出极大适应性和灵活性,而且易于对系统进行扩充和缩小。系统中功效构件充足隔离,用户应用程序开发集中于数据显示和分析,而数据库服务器开发则集中于数据管理。 将大应用处理任务分布到很多经过网络连接低成本计算机上,以节省费用。 C/S风格缺点: 开发成本较高,用户端程序设计复杂,信息内容和形式单一,用户界面风格不一,使用繁杂,不利于推广使用,软件移植困难,软件维护和升级困难,新技术不能轻易应用 ◎三层C/S风格 三层C/S风格优点: 许可合理地划分三层结构功效,使之在逻辑上保持相对独立性,能提升系统和软件可维护性,和可扩展性。许可更灵活选择对应平台和硬件系统,使之在 处理负荷能力上和处理特征上分别适应于三层;而且这些平台和各个组成部分能够含有良好可升级性和开放性。应用各层能够并行开发,能够选择各自最适合开发语言。利用功效层有效地隔离开表示层和数据层,未授权用户难以绕过功效层而利用数据库工具或黑 客手段非法访问数据层,为严格安全管理奠定了坚实基础。 要注意问题: 三层C/S结构各层间通信效率若不高,即使分配给各层硬件能力很强,其作为整体来说 也达不到所要求性能。设计时必需慎重考虑三层间通信方法、 通信频度及数据量。 这和提升各层独立性一样是三层C/S结构关键问题。 ◎三层B/S风格 B/S风格就是上述三层应用结构一个实现方法,其具体结构为:浏览器/Web服务器/数据库服务器。优点(1)基于B/S体系结构软件,系统安装,修改和维护全在服务器端处理。(2)提供了异种机,异种网,异种应用服务联机,联网,同意服务最现实开放性基础。缺点(1)缺乏对动态页面支持能力,没有集成有效数据库处理能力。(2)在数据查询等响应速度上,要远远低于C/S体系结构。(3)数据提交通常以页面为单位,数据动态交互性不强,不利于在线事务处理应用。 ◎异构风格 ◎领域特定软件架构(DSSA) ◎经典软件系统架构类型 ◎游戏系统体系结构实例Darkstar ◎商业系统体系结构实例Explanner/Ai,Explanner/J 第5章 统一建模语言(UML). 复习UML多种图含义,用途和画法 类图在UML中有何关键作用? 1.为开发人员提供这种模拟现实世界表示方法。 2.让分析员使用用户所采取术语和用户交流,促进用户说出所要处理问题关键细节。 RUP 4+1图 什么是体系结构描述语言?它和程序语言和UML有哪些区分和联络? ADL是一个形式化语言,在底层语义模型支持下,为软件系统概念体系结构建模提供了具体语法和概念框架。基于底层语义工具为体系结构表示、分析、演化、细化、设计过程等提供支持。其三个基础元素是:构件、连接件、体系结构配置。 跟其它语言比较:结构能力:ADL能够使用较小独立体系结构元素来建造大型软件系统;抽象能力:ADL使得软件体系结构中构件和连接件描述能够只关注它们抽象特征,而不管其具体实现细节;重用能力:ADL使得组成软件系统构件、连接件甚至是软件体系结构全部成为软件系统开发和设计可重用部件;组合能力:ADL使得其描述每一系统元素全部有其自己局部结构,这种描述局部结构特点使得ADL支持软件系统动态改变组合;异构能力:ADL允很多个不一样体系结构描述关联存在;分析和推理能力:ADL许可对其描述体系结构进行多个不一样性能和功效上多个推理分析。 第6章 可扩展标识语言(XML). XML特点,作用,应用 特点: 简练有效;易学易用;开放国际化标准;高效且可扩充 作用: 使得搜索愈加有意义; 开发灵活Web应用软件;实现不一样数据集成;使用于多个应用环境;用户端数据处理和计算;数据显示多样化;局部数据更新;和现有Web公布机制相兼容;可升级性;压缩性能高 应用: 应用于用户需要和不一样数据源进行交互时;应用于将大量运算复合分布在用户端;应用于将统一数据以不一样面貌展现给不一样用户;应用于网络代理对所取得信息进行编辑、增减以适应个人用户需要 XML和HTML区分 HTML是一个格式化语言,一个HTML文本能够看作一个格式化程序,而一段符合XML语法规范文本则是一段“纯”数据,它结构由其它称为DTD文原来描述,而它处理则可能是任何其它支持XML容器或程序。和XML相比另一个不一样点是,XML是一个元标识语言。XML定义了一套元句法,和特定领域相关标识语言全部必需遵守。 XSL和CSS区分 XML文档解析多种API接口特征和选择标准 DOM,SAX,JDOM,JAXP 第8章 基于服务体系结构。 SOA定义,特征,用途(目标) 什么是SOA,SOA含有哪些特征? SOA,是Service-Oriented Architecture简写,是面向服务体系结构意思,对此,W3C,Service-和Gartner给出了不一样定义,SOA是一个在计算环境中设计、开发、布署和管理离散逻辑单元(服务)模型方法。因为SOA考虑到了系统内对象,所以即使SOA是基于对象,不过作为一个整体,它却不是面向对象。 SOA特征:(1)松散耦合;(2)粗粒度服务;(3)标准化接口。 用途(目标): 便于将业务系统能力分解为独立性高(或松散耦合),粗粒度和可复用服务; 便于对服务进行组装和编排以满足业务和步骤改变需求。 SOA目标: 为方便构建数据服务,业务服务,展现层构件,使用户轻易借助界面建模,步骤引擎和规则引擎实现灵活应用组装。 SOA设计标准 明确定义接口;自包含和模块化;粗粒度;松耦合;互操作性、兼容和策略申明 SOA关键技术 发觉服务层;描述服务层;消息格式层;编码格式层;传输协议层 SOA实现方法 1. Web Service 什么是Web服务?Web服务含有哪些特点? 答:Web服务是使用标准技术在Internet上运行商务步骤,它能够使用标准Internet协议,将功效纲领性表现在Internet和Intranet上。特征:1、使用标准协议规范2、使用协议规范性3、高度集成能力4、完好封装性5、松散耦合 说明Web服务体系结构模型?它三个关键协议分别是什么? Web服务是一个崭新分布式计算模型,是Web上数据和信息集成有效机制。 三个组成元素为:Serverice Broker、Service Provider、Service Requester 三个关键协议:简单对象访问协议SOAP;统一描述、发觉和集成协议UDDI;Web服务描述语言WSDL WEB服务作为Web服务体系结构关键,简明说明Web服务关键技术及其作用。 (1):底层传输层,关键负责消息传输机制。 (2):服务通信协议层,服务通信协议层关键是以一个统一方法描述并定义服务之间进行通信传输所需技术标准。 (3):服务描述层,关键以一个统一方法描述服务接口和消息交换方法。 (4):服务层,关键功效是将遗留系统进行包装,并经过公布WSDL接口描述被定位和调用。 (5):业务步骤层,关键功效是支持服务发觉,服务调用和点到点服务调用,并将业务步骤从服务底层调用抽象出来。 (6):服务注册层,关键功效是使服务提供者能够经过WSDL公布服务定义,并支持服务请求者查找所需服务信息。 2. 服务注册表 3. 企业服务总线 第9章 富互联网应用体系结构。 RIA优点 1.RIA利用相对健壮用户端描述引擎,这个引擎能够提供内容密集、响应速度快和图形丰富用户界面。RIA另一个好处于于,数据能够被缓存在用户端,从而能够实现一个比基于HTML响应速度愈加快且数据往返于服务器次数更少用户界面。 RIA用户端开发技术类别 Macromedia Flash/Flex;AJAX;Laszlo;Avolon;Java SWT;XUL;Bindows;Oracle Forms Javascript/Html5: 被认为是最有前途RIA技术 Ajax开发模式 Ajax关键技术 Ajax开发过程 AJAX技术关键是什么?AJAX是怎样将多个已经有技术绑定在一起?这些技术各自起到什么作用? AJAX技术关键是javascript调用XML异步传输。借助于AJAX,能够在用户单击按钮时,使用JavaScript和DHTML立即更新用户界面,并向服务器发出异步请求,以实施更新或查询数据库。当请求返回时,就能够使用JavaScript和css来对应更新用户界面,而不是刷新整个页面。最关键是,用户甚至不知道浏览器正在和服务器通信,Web站点看起来是即时响应。 XML高拓展性、高灵活性,使得其能够描述多种不一样类应用软件中不一样类型数据,能够实现不一样数据集成。 XHTML结合了部分XML强大功效和HTML简单特征。 JavaScript关键用来传输用户界面上数据到服务端并返回结果。 XMLHttpRequest用来响应经过HTTP传输数据,一旦数据返回到用户端,就能够立即使用DOM将数据显示在网页上。 DOM为XML文档已解析版本定义了一组接口。 XSLT能够降低大量用JavaScript编写应用逻辑。 CSS提供了从内容中分离应用样式和设计机制。 第11章 用户界面设计 OO分析模型 --> 设计模型 接口设计包含用户接口设计=用户界面设计 用户界面设计黄金规则及其含义 n 用户操纵控制 n 降低用户记忆负担 n 保持界面一致 用户操作控制 以不强迫用户进入无须要或不期望动作方法来定义交互模式。提供灵活交互。 许可用户交互被中止和撤销。当技能等级增加时能够使交互流线化并许可定制交互。使用户和内部技术细节隔离开来。设计应许可用户和出现在屏幕上对象直接交互。 减轻用户记忆负担 降低对短期记忆要求。建立有意义缺省。定义直观快捷方法。界面视觉布局应该基于真实世界象征。以不停进展方法揭示信息。 保持界面一致 许可用户将目前任务放入有意义环境中。在应用系统家族内保持一致性。假如过去交互模型已经建立起了用户期望除非有不得已理由,不然不要改变它。 界面分析从哪些方面着手 WebApp 界面设计 有效WebApp 界面 WebApp界面设计标准 第12章 基于体系结构软件开发 软件设计里模式层次 设计模式 – 定义,作用,分类 什么是设计模式?它和风格、框架有什么区分和联络? 设计模式(Design pattern)是一套被反复使用、多数人知晓、经过分类编目标、代码设计经验总结。对通用设计问题反复处理方案。 软件体系结构风格是描述某一特定应用领域中系统组织方法常见模式。软件框架是整个或部分系统可重用设计;模式比框架愈加抽象;框架是模式特例化;设计模式被实现成为框架后,能够极大减轻从设计到实现鸿沟;利用了模式框架比没有利用模式框架更轻易了解、更能被设计和实现重用;通常成熟框架包含了多个设计模式;一个框架不仅能够具体实现一个模式,还能够具体实现多个模式;设计模式和风格二者为近义词,通常情况下能够相互通用;风格关键是指大,宏观设计。模式既可宏观,又可微观。 作用: 1、复用处理方案——经过复用已经公认设计,我能够在处理问题时取得先发优势,而且避免重蹈前人覆辙。我能够从学习她人经验中获益,用不着为那些总是会反复出现问题再次设计处理方案了。 2、确立通用术语——开发中交流和协作全部需要共同词汇基础和对问题共识。设计模式在项目标分析和设计阶段提供了共同基准点。 3、提升观察高度--模式还为我们提供了观察问题、设计过程和面向对象更高层次视角,这将使我们从“过早处理细节”桎梏中解放出来。 4、大多数设计模式还能使软件更轻易修改和维护。其原因在于,它们全部是久经考验处理方案。所以,它们结构全部是经过长久发展形成,比新构思处理方案更善于应对改变。而且,这些模式所用代码往往更易于了解——从而使代码更易维护。 漂亮架构标准和特征 GoF23种经典设计模式 分类: 1.创建型模式 ▪工厂方法模式▪ 抽象工厂模式▪ 建造者模式▪ 原型模式▪ 单例模式 2. 结构型模式 ▪ 适配器模式▪ 桥接模式▪ 组合模式▪ 装饰模式▪外观模式▪ 享元模式▪ 代理模式 3.行为型模式 ▪ 职责链模式▪ 命令模式▪ 解析器模式▪ 迭代器模式▪ 中介者模式▪ 备忘录模式▪ 观察者模式 ▪ 状态模式▪ 策略模式▪ 模版方法模式▪ 访问者模式 工厂模式,抽象工厂模式具体代码实现示例 MVC特点和Java实现示例 MVP 中间件技术 中间件定义,优点,功效,分类,发展趋势 定义: 中间件是处于系统软件和应用软件之间一类软件。 优点: 它使设计师集中设计和应用相关部分,大大简化了设计和维护工作。 功效: 1. 负责用户机和服务器之间连接和通信,和用户机和应用之间高效率通信机制。 2. 提供给用层不一样服务之间互操作机制没,和应用层和数据库之间连接和控制机制。 3. 提供一个多层体系结构应用开发和运行平台,和一个应用开发框架,支持模块化应用开发。 4. 屏蔽硬件、操作系统、网络和数据库差异。 5. 提供给用负载和高可用型、安全机制和管理功效,和交易管理机制,确保交易一致性。 6. 提供一组通用服务区实施不一样功效,避免反复工作和是应用之间能够协作。 分类: 采取自底向上方法来划分,可分为底层中间件、通用型中间件和集成性中间件三大层次。 关键中间件:RPC,ORB,RMI,RMI-IIOP,MOM, 事务处理监控器 编程语言Scala有哪些特点? 编程语言Scala特点: 1) 测试轻易。函数性语言(Lisp等)优点。 2) 代码量少。脚本语言(Ruby,Python等)优点。 3) 由编译器进行型检验(型宣言不要)。静型定义语言(Java,C等)和动型定义语言(Ruby,Lisp等)优点。 4) 可直观易懂地记述处理步骤。面向过程语言(Cobol,C等)优点。 5) 可实现封装,继承,多态,面向对象开发。面向对象语言(Java,C#等)优点。 1. 相关软件开发,有哪些新趋势? 一、在全球金融危机布景下,开源软件将取得更多商场时机 二:开源软件将主导移动利用软件开展 三:将开源软件推行到云核实、SaaS(软件即效劳) 选择一个你熟悉大型软件系统,分析其体系结构中用到风格,和表现出特点(为何要采取这种风格?带来了哪些优势?含有哪些不足?)。 对社交软件体系结构中用到风格分析:采取了C/S风格,而且在一定程度上算为三层C/S风格 采取这种风格原因: 表示层:社交信息显示,并提供了更新和搜索等操作 功效层:含有搜索、在线聊天、离线留言、文件传输等等功效 数据层:有数据库服务器提供留言、相册、好友信息等数据 优点:使逻辑结构更为清楚,分类明确,给用户愈加好体验 缺点:需要数据通信支持,对网络依靠很高,没有网络,很多功效将没有意义。 对于一个实际系统,不能判定它是A风格、B风格还是C风格,因为没有足够理由把它归为任何一个独立体系结构风格。这种系统类型被称为异构结构,对应着它是分层系统,所以这个虚拟系统是分层系统。 这个系统包含体系结构有:管道和过滤器风格、事件驱动风格、分层系统。 管道和过滤器风格 管道和过滤器风格优点: 管道和过滤器风格缺点: 事件驱动风格 以体系结构定义作为开发框架,支持基于构件开发.该语言提供了建模,分析,仿真和代码生成能力,不过没有将连接子显式地表示为一阶实体。 分层系统 分层系统优点:支持基于抽象程度递增系统设计;支持功效增强;支持重用。 分层系统缺点:并不是每个系统全部能够很轻易划分为分层模式,甚至即使是层次化,出于性能考虑,也不得不吧部分低及或高级功效综合起来;极难找到一个适宜、正确层次抽象方法。 C2风格 系统中构件可实现应用需求,并能将任意复杂度功效封装在一起; 全部构件之间通讯是经过以连接件为中介异步消息交换机制来实现; 构件相对独立,构件之间依靠性较少。系统中不存在一些构件将在同一地址空间内实施,或一些构件共享特定控制线程之类相关性假设。 基于消息总线风格 消息总线是系统连接件、负责消息分配、传输和过滤和处理结果返回。消息是构件之间通信唯一方法。因为构件经过总线进行连接,并不要求各个构件含有相同地址空间或局限在一台机器上,所以该风格能够很好刻画分布式开发系统,和CORBA.DCOM和EJB规范系统 是一家在线旅游信息服务企业,其关键业务是为自助旅游者提供相关旅游线路及周围信息服务。伴随企业业务不停发展,企业用户要求提供基于位置增值旅游信息服务,即期望能够在给定位置(利用 GPS 全球定位系统获取)情况下得到周围地理位置、住宿、餐饮和交通等旅游相关信息。针对该需求,企业技术人员对现有系统体系结构和运行模式进行了认真分析,决定采取Mashup技术集成来自其合作网站(设为A、B、C、D)信息,满足用户需求。具体实现方法是: (1) 利用A网站提供地图信息,得到用户位置相关周围地理信息。 (2) B网站依据用户位置信息向其提供周围住宿信息。 (3) C网站依据用户位置信息向其提供周围餐饮信息。 (4) D网站依据用户位置信息向其提供周围公交线路等信息。 问题1: (2)对用户请求服务作出对应处理。(3)Traveler网站向A网站请求返回用户所处位置周围地图信息。(5)Traveler网站向B网站请求返回用户所处位置周围住宿信息。 (7)对网站提供信息作出响应处理。 问题2: 聚合是服务时,则经过调用API来获取各个源功效,Mashup最常见API类型通常有两种,分别是REST和SOAP;假如聚合是数据,则使用RSS来获取数据。 问题3: 用户端用户界面能表现和应对更多更复杂数据模式,这么才能处理用户端运算和异步发送、接收数据。当页面在服务器上创建完成并交付给HTML后,用户端程序为用户提供比和服务器交互更良好感受。为了达成高度复杂数据模式,用户端许可用户构建一个高响应、交互式应用程序。能够实现一个比基于HTML响应速度愈加快且数据往返于服务器次数更少用户界面。 一方认为应采取微软.net平台,一方认为应采取Java企业版平台 给出两个平台优势和共有特点 (1) 、.Net平台:易于布署和设置、多程序设计语言支持、针对特定平台优化支持 Java企业版平台:良好跨平台可移植性支持、丰富多厂商外部支持、良好源代码以外可定制性支持 共同特点:良好Web多层应用开发支持、良好O/R(对象/关系)映射支持、良好Web服务支持 J2EE更适合大型企业,大企业钟情J2EE .NET更适合中小型企业,实施速度快,维护轻易,中小企业则看好.Net J2EE平台更稳定 .NET平台更适合和微软系统软件结合 支持J2EE平台服务器愈加好也更贵 支持.NET平台服务器占据低端市场,价格适中 J2EE平台适合大数据量并发处理系统 .NET平台适合和微软应用软件(比如Office、Project、Exchange等)结合紧密系统 (2) 、MVC模式中各组间应采取何种构件实现 在基于EJB重量级框架中,实现构件分别为: 模型(Model):由EJB构件实现 视图(View):由JSP构件实现 控制器(Controller):由Servlet构件实现 在基于Struts等轻量级框架中,实现构件分别为: 模型(Model):由Java Bean构件实现 视图(View):由JSP构件实现 控制器(Controller):由Servlet构件实现 (3)、MVP模式和MVC模式关键区分为: ① 在组件耦合度方面:在MVP模式中,视图并不直接使用模型,它们之间通信经过Presenter进行,从而实现了视图和模型分离,而在MVC模式中,视图直接和模型交互。 ② 在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发界面事件,而在MVC模式中这通常是由控制器完成工作;在MVP模式中,系统关键业务逻辑组织集中在Presenter中,而在MVC模式中,对应控制器通常只完成事件分发。 ③ 在开发工程化支持方面:MVP模式可愈加好地支持单元测试,而在MVC模式中,因为模型和视图绑定,所以难以实施对应单元测试;在MVP模式中,Presenter基于约定接口和视图和模型交互,可愈加好地支持组件重用。 (4)、事务基础特征包含: 原子性:一个事务中全部操作,要么全部完成,要么全部不完成,不会结束在中间某个步骤。事务在实施过程中发生错误,会被回滚到事务开始前状态,就像这个事务历来没有实施过一样。 一致性:在事务开始之前和事务结束以后,数据完整性限制没有被破坏。 隔离性:两个事务实施是互不干扰,两个事务时间不会相互影响。 持久性:在事务完成以后,该事务对数据所作更改便持久地保留在数据库之中,而且是完全。 EJB规范支持两种事务控制方法为: 容器维护事务(Container Managed Transaction,CMT):由EJB容器依据布署描述符或EJB构件注释中指定事务属性自动控制事务边界,容器维护事务是方法级,即默认将一个方法看成一个事务实施,当方法实施过程中发生系统级异常,容器会自动将事务回滚,从而将方法前面实施结果恢复。 Bean维护事务(Bean Managed Transaction,BMT):由程序员在EJB源代码中控制事务实施边界,事务边界经过Java事务接口(Java Transaction API,JTA)进行控制,Bean维护事务能够跨越方法边界。 1. 什么是软件重用,软件重用层次能够分为哪多个等级? 答:软件重用是指在两次或数次不一样软件开发过程中反复使用相同或相近软件元素过程。软件重用层次按重用粒度大小可分为程序代码重用,测试用例重用,设计文档重用,设计过程重用,需求分析文档重用及领域知识重用。 2. 软件体系结构模型能够分为哪多个,具体是怎样划分? 答:软件结构关键模型由5种元素组成:构件、连接件、配置、端口和角色。其中,构件、连接件和配置是最基础元素。 3. 体系结构设计和演化中试验原型阶段分为2个周期,分别对各周期简述。 答:第一周期没有具体、明确日期,第一周期结束会形成图形用户界面初始设计和问题域模型两个版本。第二周期任务是设计和建立一个下次软件体系结构,含有以下特征:足够灵活,能包含现有元素,也有包含新增功效;提供相当稳定结构,在这个结构中,原型能在试验原型阶段进行演化;开发一个高效开发组织,许可开发人员并行地在原型基础上进行开发。 4. 连接件:是用来建立构件间交互和支配这些交互规则体系结构结构模块。 5. 体系结构配置:体系结构配置或拓扑是描述体系结构构件和连接件连接图。体系结构配置提供信息来确定构件是否正确连接、接口是否分配、连接件组成通信是否正确,并说明实现要求行为组合含义。 6. 软件体系结构动态性:指软件系统在运行时刻体系结构变动。 7. Web服务栈:Web服务栈是一个全新体系结构,整个Web服务技术系列被称为Web服务栈。 8. SOAP:简单对象访问协议,SOAP是一个基于XML,在松散分布式环境中交换结构化信息轻量级协议,它为在一个松散、分布式环境中使用XML交换结构化和类型化信息提供了一个简单机制。 9. WSDL标准:是一个XML格式,用来实现Web服务栈中描述层,将网络服务描述为能够进行消息交换通信端点集合。 10. 可修改性:是指能够快速地以较高性能价格比对系统进行变更能力。通常以一些具体变更为基准,经过考察这些变更代价衡量可修改性。可修改性包含:1可维护性,2可扩展性,3结构重组,4可移植性 11. 关键资源:是领域工程全部结果集合,是产品线中产品结构基础。 12. 软件产品线:软件产品线就是在一个公共软件资源集合基础上建立起来共享同一个特征集合系统集合。 13. SEI模型:SEI将产品线基础活动分为三部分,分别是关键资源开发,产品开发和管理。 14. 产品线体系结构:产品线体系结构是一个软件体系结构和一组在一族产品中可重用构件,为增加软件关键、为企业降低软件开发和维护成本提供了一个关键路径。 15. 体系结构生命周期模型分为哪多个阶段? 答:1、需求分析阶段 2、建立软件体系结构阶段 3、设计阶段 4、实现阶段 16. 请简述软件体系结构生命周期。 答:以自然语言进行软件结构非形式化描述,接着利用适宜形式化数学理论模型对上一阶段非形式化描述进行规范定义,从而得到软件形式结构形式化规范描述。对设计好软件体系结构进行验证和求精,直到不需要进行求精验证时,转入软件体系结构实施。在此阶段将软件结构实施于系统设计中,并将其结构构件和连接件有机组织在一起。判定软件体系结构是否需要扩展,演化。需要从则反复以上步骤,不然对该体系结构进行评价、度量,转入终止阶段。 17. 动态体系结构特征有哪些? 答:1、可结构性动态特征2、适应性动态特征3、智能型动态特征 18. 请简述基于构件动态体系结构模型是怎样支持运行系统更新? 答:1、检测更新范围 2、更新准备工作 3、实施更新 4、存放更新 19. 软件体系结构评定关键方法有哪些? 答:1.基于调查问卷或检验表评定方法:调查问卷是一系列能够应用到多种体系结构评定相关问题,这些问题可能包含体系结构对设计决议,有些问题包含体系结构文档,有问题针对体系结构描述本身细节问题等。检验表中也包含一系列比调查问卷更细节和具体问题,它们更趋向于考察一些关心质量属性。这一评定方法比较灵活自由,可评定多个质量属性,也能够在软件体系结构设计多个阶段进行。2.基于场景评定方法:场景是一系列有序使用或修改系统步骤。基于场景方法由SEI首先提出并应用在体系结构权衡分析方法和软件体系结构分析方法中,这种软件体系评定方法分析软件体系结构对场景也就是对系统对使用或修改活动支持程度,从而判定该体系结构对这一场景所代表对质量需求对满足程度。3.基于度量评定方法:度量是指为软件产品对某一属性所给予对数值。此评定技术包含3个基础活动:首先需要建立属性和质量之间映射关系,然后从软件体系结构文档中获取度量信息,最终依据映射标准分析推导出系统对一些质量属性。 20. 简述双生命周期中领域工程阶段关键任务及内容。 答:(1)领域分析。利用现有系统设计、体系结构和需求建立领域模型。(2)领域设计。用领域模型确定领域/产品线共性和可变性,为产品线设计体系结构。(3)领域实现。基于领域体系结构开发领域可重用资源(构件、文档、代码生成器)。 21. 软件产品线过程模型有哪些? 答:1、双周期模型 2、SEI模型 3、三生命周期模型 22. 请简述并画出“4+1”视图模型 答:“4+1”视图模型即从5个不一样视角(逻辑视图,进程视图,物理视图,开发视图和场景视图)来描述软件体系结构。每个视图之关心系统一个侧面,5个视图结合在一起才能反应系统软件体系结构全部内容。 逻辑视图关键支持系统功效需求,即系统提供给最终用户服务;开发视图也称模块视图,关键侧重于软件模块组织和管理;进程视图侧重于系统运行特征,关键关注部分非功效性需求,比如系统性能和可用性;物理视图关键考虑怎样把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等;场景能够看做是那些关键系统活动抽象,它使4个视图有机联络起来,从某种意义上说场景是最关键需求抽象。展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




软件标准体系结构原理方法与实践总结.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4676857.html