文档详情

软件体系结构原理、方法与实践总结

公****
实名认证
店铺
DOCX
39.35KB
约12页
文档ID:406824628
软件体系结构原理、方法与实践总结_第1页
1/12

第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)◎典型的软件系统的架构类型◎游戏系统的体系结构实例Darks tar◎商业系统体系结构实例Explanner/Ai, Explanner/J第5章统一建模语言(UML).复习UML的各种图的含义,用途和画法类图在UML中有何重要作用?1. 为开发人员提供这种模仿现实世界的表达方式2. 让分析员使用客户所采用的术语和客户交流,促使客户说出所要解决的问题的重要细节RUP 4+1图什么是体系结构描述语言?它与程序语言以及UML有哪些区别与联系?ADL 是一种形式化语言,在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架基于 底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持其三个基本元素是:构件、连接件、体 系结构配置跟其他语言的比较:构造能力:ADL能够使用较小的独立体系结构元素来建造大型软件系统;抽象能力:ADL使得软 件体系结构中的构件和连接件描述可以只关注它们的抽象特性,而不管其具体的实现细节;重用能力:ADL使得组成。

下载提示
相似文档
正为您匹配相似的精品文档