收藏 分享(赏)

第二周-什么是软件构架.ppt

上传人:cjc2202537 文档编号:1041913 上传时间:2018-06-07 格式:PPT 页数:60 大小:1.27MB
下载 相关 举报
第二周-什么是软件构架.ppt_第1页
第1页 / 共60页
第二周-什么是软件构架.ppt_第2页
第2页 / 共60页
第二周-什么是软件构架.ppt_第3页
第3页 / 共60页
第二周-什么是软件构架.ppt_第4页
第4页 / 共60页
第二周-什么是软件构架.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、第二章 什么是软件构架,任课老师:黄武,提纲,最早软件构架的提出构架的概念构架模式、参考模型和参考构架构架为何如此重要构架结构和视图,1. 最早的软件构架,最早在软件开发领域,构架(Architecture)这个词用来指适用于多个系统的计算机系统的描述1969年,Fred Brooks和Ken Inverson把构架描述为“程序员所看到的.计算机的概念结构”。之前,Blaauw最先提出构架一词,他认为“构架说明了做什么,而系统实现说明了怎么做”从这些描述中我们可以看到,构架实际上是同类系统的抽象,1.1 Parnas提出的关于构架的原则,70年代,David Parnas对软件构架的许多基本原

2、则进行了深入研究,包括:信息隐藏原则Parnas 72关于只允许通过接口使用元素的原则72强调对软件系统中的不同结构进行考察,不得混淆这些结构74在基于组件开发的系统中错误处理和检验的原则72,76,1.1 Parnas提出的关于构架的原则,将每个程序都看作是某个程序族中的一员Parnas76认识到系统的结构影响到系统的质量76引入使用结构,该原则控制各元素之间的连接,以增强系统的可扩展性79Parnas等人的工作为软件构架理论的建立创造了基础,2 软件构架的概念,下面是一个水下声学模拟系统的简单线框图描述,这个图是系统的构架吗?我们从中得到了什么?又有哪些我们所关心的问题我们并不能从中知晓,

3、2.1 构架的引入,我们无法从上面的图形获取的信息这些元素本身的实质是什么?这些元素在系统中的作用又是什么?图中的连线代表什么意义?各个元素在图中的分布意义是什么,或者说他们的层次关系是什么?我们都无法从该线框图上了解,因此,这不是一个完整的构架,2.2 构架的各种定义,构架的定义大体上可以分为两大类:决策派的定义一组决策的集合组成派的定义元素 + 元素的关系,2.2.1 决策派定义的代表,Booch、Rumbaugh和Jacobson的定义构架是一系列重要决策的集合,这些决策与以下内容相关:软件的组织、构成系统的结构元素及其接口的选择,这些元素在相互协作中明确表现的行为,这些结构元素和行为元

4、素进一步组合所构成的更大规模的子系统,以及如何组织这些元素Woods的定义软件构架是一系列设计决策,如果作了不正确的决策,你的项目可能最终会被取消,2.2.2 组成派定义的代表,Garlan和Shaw的定义构架包括组件(Component)、连接器(Connector)和约束(Constrain)三大要素Boehmn的定义软件构架包括系统组件、连接件和约束的集合,反映不同涉众需求的集合和原理的集合IEEE620.12-1990定义构架是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理,2.2.3 本书的定义,某个软件或计算机系统的软件

5、构架是该系统的一个或多个结构,他们由软件元素,这些元素之间的外部可见属性和这些元素之间的关系组成这个概念阐述了以下几方面的意义,2.2.4 构架概念的展开,构架定义了软件元素构架中包含了关于各个元素如何彼此相关的信息,但省略了各个元素中与交互无关的信息,因此不考虑元素的细节,对系统进行了抽象系统可能而且确实由多个结构组成,但其中的任何一个结构都不等同于构架构架中的不同结构有不同的侧重点,有些考虑功能的分解,有些考虑元素在运行时的交互关系等等,2.2.4.1 构架的逻辑结构,2.2.4.2 构架的物理结构,2.2.4 构架概念的展开,具有软件的每个计算机系统都有一个软件构架 每个系统都具有元素及

6、其之间的交互,因此都具有构架,但是,并不是所有的人都能够知道这个构架的存在某个元素的行为可以从其它元素的角度观察到或区分开,则这个元素的行为就是构架的内容构架的定义中并没有包含对构架的评价,3. 构架模式、参考模型和 参考构架,在粗略的线框骨架和包含完整信息的系统构架之间,还有很多中间阶段。每个阶段都是执行一组构架决策的结果三个模型构架模式参考模型参考构架,3.1 构架模式,构架模式是对元素、元素之间关系以及一组对其使用方式的限制的描述我们可以把构架模式看作是对构架的一组制约条件即对各元素类型及其交互模式的限制条件,而这些制约条件确定了一组或一系列能满足他们要求的构架构架模式最重要的作用是它们

7、展示了已知的质量属性,3.1.1 客户服务器-构架模式,电子商务网站,3.1.2 客户服务器-构架模式,门户网站,3.1.3 客户服务器-构架模式,搜索引擎网站,3.2 参考模型,参考模型是一种考虑数据流的功能划分 参考模型对已知问题进行分解,分解得到的各个部分相互协作,构成问题的解决方案,网络参考模型,3.3 参考构架,参考构架是映射到软件元素及元素之间数据流上的参考模型参考模型实现了系统的功能划分,而参考构架则将这种功能划分与系统分解对应起来,这种对应一般是一一对应关系,也可能不是,参考模型,构架模式,参考构架,软件构架,模型之间的关系,4. 软件构架为和如此重要,我们可以从技术的角度讨论

8、软件构架的重要性构架是涉众之间交流的手段构架是系统的早期设计决策构架是可传递的系统抽象,4.1 构架是涉众交流的手段,涉众(Stakeholder):我们把与构建软件系统相关的人员称为涉众软件系统的各个涉众客户、最终用户、市场营销人员,项目经理、程序员、维护人员以及构架设计师,他们站在不同的角度考虑系统,4.1.1 构架起到交流作用,这些涉众之间具有不同的知识结构,他们如何对同一系统进行交流讨论?如何相互理解彼此的意思?用自然语言?程序语言还是图形?构架提供了一种共同的语言,有关各方可借助它表达和协商各自的需求,并理性地找到解决方案,4.2 构架是早期设计决策的体现,构架明确了对系统实现的约束

9、条件构架决定了开发组织的组织结构架阻止或支持系统的质量属性的实现通过研究构架可以预测系统的质量构架使推理判断和控制更改更简单构架有助于循序渐进的原型设计可以通过构架进行更准确的成本和进度估计,4.2.1构架明确了对系统实现的约束条件,系统实现应该体现构架设计的特色,在设计构架时首先应该考虑到构架的约束条件比如,系统会运行在什么样的资源环境下,独立的PC机,手机还是分布式系统,硬件环境是一个约束条件,4.2.2构架决定了开发组织的组织结构,构架不仅规定了所开发软件系统的结构,而且也影响着项目开发的组织结构建立工作分解结构的一个副作用是,它限定了软件构架的某些方面,比如更改工作小组,系统由不同组件

10、构成,4.2.3架阻止或支持系统的质量属性的实现,为了支持高可靠性系统,通常采用冗余体系结构为了支持可修改性,会使用分层结构,而这又会阻止高性能的实现,带有冗余功能的软件结构,4.2.4构架使推理判断和控制更改更简单,软件系统的成本大约有80%会花费在初次部署之后的维护阶段好的构架使修改更加容易,每个构架的修改可以分为:本地的、非本地的和构架上的,我们应将系统的修改控制在最容易修改的地方,4.2.5构架有助于循序渐进的原型设计,一旦确定了构架,就可以对其进行分析,并将其原型构造为一个骨架系统在产品生命的早期就能得到一个可执行的系统,以后使用使用结构对系统进行扩充使系统在早期可执行的一个特例就是

11、在产品生命期的早期确定潜在的需求问题,4.2.6可以通过构架进行更准确的成本和进度估计,成本和进度估计是一个重要的管理工具,它能够使管理人员获得必要的资源并了解项目开发中是否遇到困难。与了解整个系统相比,了解系统的某些部分本质上可以使成本和进度的估计更加准确,4.3 构架是可传递、可重用的模型,构架的重用为开发组织带来巨大的效益产品线共享一个公共的构架系统开发可以使用大型的由其它组织开发的元素在一定的范围内限制,使构架可以获得更广泛的重用构架使基于模板的开发成为可能构架可以作为培训的基础,4.3.1产品线共享一个公共的构架,软件产品线或家族是一组软件密集型系统,这些系统共享一个公共的、可管理的

12、特性集,满足了特定市场或任务的具体需要,是按照规定的方式根据一组公共的核心资产开发的在这些核心资产中,主要部分就是设计用来处理整个家族需要的构架,微软的Windows操作系统是很好利用产品线开发的例子,4.3.2系统开发可以使用大型的由其它组织开发的元素,基于构架的开发强调各元素的组合或装配,而这些元素很可能已分别甚至是完全独立地开发实现了商业组件、子系统、兼容的通信结构都是基于互换性原则的,各种可互换使用的Grid组件,4.3.3少就是多,限制构架选择范围,尽管计算机程序可以无限组合,但涉及到程序的协调和交互时,有意识地限制选择可以得到更多的重用比如采用客户机服务器模式,可以产生各种不同的实

13、际系统,4.3.4 构架可以作为培训的基础,在对项目新成员介绍所开发的系统时,可以首先介绍系统的构架,以及对组件之间如何交互从而实现系统需求的高层次描述,这可以更好地培训新成员,5. 构架结构和视图,现代的软件系统非常复杂,我们很难一下子就理解他们。正确的做法是任何时刻我们只关注软件系统的一个或几个结构。这正如不同的医生关注病人的不同部分视图是构架元素内聚集的表述,由系统涉众编写和阅读,它由一个元素集合表示和元素之间的关系组成,用于表示构架中的某个结构,从不同角度看到的人体视图,5.1 构架结构,结构结构是元素本身的集合,他们存在于软件和硬件中,比如,模块结构是系统的模块和其组织的结构,模块视

14、图是该结构的表示构架结构根据元素的主要特性可以分为三类模块结构组件连接器结构分配结构,5.2 软件结构,常见的软件构架结构,5.2.1 模块结构,模块结构的元素是模块,模块表示一种考虑系统的基于功能的划分模块结构要回答的问题:分配给每个模块的主要功能责任允许模块使用的其它软件元素它实际使用的其它软件是什么什么模块通过泛化和特化(类的继承)关系与其它模块相关,5.2.1.1 分解结构,基于模块的结构包括如下内容:分解结构(任务分解)分解结构通过“是一个子模块”的关系将彼此关联起来,它展示了如何将大的模块分解为小模块,直到很容易理解为止该方法适用于资源分配、项目结构化和规划,信息隐藏等,5.2.1

15、.2 使用结构,使用结构(调用关系)使用结构也是模块、过程或模块结构上的资源,这些单元通过“使用”关系彼此关联该结构单元用于设计子集、设计扩展等,便于系统的增量式开发比如,我们为一个系统设计数据处理,我们可能有很多处理被调用,但开始时我们只完成有限的实际处理单元,然后再扩展,5.2.1.3 分层结构,分层结构(特殊的使用关系) 当以一种特定的方式小心地控制该结构中的使用关系时,就出现了由层组成的系统,在该系统中,一个层就是相关功能的一个一致的集合。在一个严格的分层结构中,第n层只能使用第n-1层提供的服务 分层结构适用于增量式开发,在“虚拟机”上实现可移植性,操作系统多采用分层结构,5.2.1

16、.5 类结构,类或泛化该结构中的模块单元是类,关系是“继承自”或“是一个实例”该结构适用于面向对象的编程中,从一个公共的模板中产生快速的、相近的实现,5.2.2 组件连接器结构,该结构的元素是运行时的组件和连接器该结构回答如下问题:什么是主要的执行组件,它们之间如何交互什么是主要的共享数据存储数据在系统中经过了哪些地方系统的哪些部分可以并行运行系统执行时,其结构可能发生的变化,5.2.2.1 进程或通信进程,进程或通信进程此处的单元为通过通信、同步和/或排除操作将彼此相连的进程或线程该结构用于调度分析;性能分析等,顺序图,5.2.2.2 并发,并发该结构能够使设计师确定并行的机会以及可能出现的

17、资源争用的位置单元是组件,连接器是“逻辑线程”其适用于确定存在资源争用,线程交叉、连接、被创建或被杀死的位置,活动图,5.2.2.3 共享数据或存贮库,共享数据或存贮库该结构由创建、存储和访问持久数据的组件和连接器组成该结构展示了软件元素如何产生数据和使用数据,可以使用该结构确保良好的性能和数据完整性,5.2.2.4 客户机/服务器,客户机/服务器组件是客户机和服务器,连接器是协议以及它们共享来执行系统工作的消息该结构适用于关注点的分离(支持可修改性)、物理分布和负载平衡,5.2.3 分配结构,分配结构展示了软件元素,创建并执行软件的一个或多个外部环境中的元素之间的关系它回答如下问题:每个软件

18、元素在什么处理器上执行在开发、测试和系统构建期间,每个元素都存储在什么文件中分配给开发小组的软件元素是什么,5.2.3.1 部署结构,部署该结构展示了如何将软件分配给硬件处理和通信元素该结构的元素是软件、硬件和通信路径;关系是“分配给”和“移植到”该结构用于工程人员对性能、数据完整性、可用性和安全性进行推断,5.2.3.2 实现结构,实现该结构展示了软件元素是如何映射到系统开发、集成或配置控制环境中的文件结构上。这对于开发活动和构架构成的管理非常重要,5.2.3.3 工作分配结构,3、工作分配该结构将实现和集成模块的责任分配给开发小组该结构适用于项目管理、最佳利用专业技术等,具有管理和构架两层

19、含义,工作分解图,5.3 构架之间的关联,上面描述的各种构架都提供了关于某一系统不同的考察视角和设计线索,他们都是有用而且有效的这些构架之间是相互关联的,一个项目往往将某种构架作为主要构架,并根据结构的需要考虑运用其它构架并不是所有的系统都需要在构架上采用多种结构结构代表了构架的主要工程设计平衡点,5.4 通常我们会选择那些结构,模块视图结构,这是关键的抽象进程,该视图解决功能的并发和分布问题开发,该视图展示了软件模块、库、子系统和开发单元的组织部署,该视图将其它元素映射到了处理和通信节点上,5.4.1 用UML模型表示构架,UML可以通过称为4+1视图模型的软件体系结构来表示构架,用例视图,UML 的4+1模型视图,5.4.2 UML的4+1模型视图,UML的4+1模型视图通过五个不同的视图来描述系统,每个视图对应于特定的研究系统的观点,不同的视图突出特定参与者所关心系统的不同方面,通过合并所有5个视图中得到的信息就可以形成系统的完整描述其中的用例视图具有将其他4个视图的内容结合到一起的特殊作用,5.5 作业,谈谈您对Parnas提出的软件构架应该遵守的基本原则的理解为什么说软件构架是系统早期设计决策的体现软件构架可以分为几种结构,它们之间的相互关系是什么?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报