软件体系结构Lec11

上传人:痛*** 文档编号:176738937 上传时间:2022-12-23 格式:PPT 页数:54 大小:5.62MB
返回 下载 相关 举报
软件体系结构Lec11_第1页
第1页 / 共54页
软件体系结构Lec11_第2页
第2页 / 共54页
软件体系结构Lec11_第3页
第3页 / 共54页
点击查看更多>>
资源描述
软件体系结构软件体系结构 主讲老师:周立新主讲老师:周立新2022年12月23日16时31分1教科书和参考书教科书和参考书 教科书:教科书:软件架构实践(第软件架构实践(第2版),版),L.Bass.P.Clements.and R.Kazman,车立红译,车立红译,清华大学出版社(清华大学出版社(2004)参考书:参考书:软件构架编档,软件构架编档,Paul Clements,Felix Bachmann等著,朱崇高等著,朱崇高 译,清华大学出版社(译,清华大学出版社(2004)软件体系结构软件体系结构一门初露端倪学科的展一门初露端倪学科的展望,望,;M.Shaw and D.Garlan,Prentice Hall,1996清华大学出版社(清华大学出版社(1998),科学出版社(),科学出版社(2003)2022年12月23日16时31分22022年12月23日16时31分32022年12月23日16时31分4体系结构(体系结构(Architecture)的定义的定义 IEEE的定义的定义 体系结构是以组件、组件之间的关系、组件与体系结构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理。结构以及指导上述内容设计与演化的原理。对对Software architecture的常见中文翻译的常见中文翻译 软件体系结构软件体系结构 软件架构软件架构 软件构架软件构架2022年12月23日16时31分5软件体系结构(构架)研究的问题软件体系结构(构架)研究的问题 结构性问题结构性问题 系统的组织,由哪些组件构成系统的组织,由哪些组件构成 全局性的控制结构全局性的控制结构 通讯、同步或访问的协议通讯、同步或访问的协议 将功能分配到不同的系统组成部分将功能分配到不同的系统组成部分 设计元素的组成设计元素的组成 系统的物理分布系统的物理分布 可扩展性、性能可扩展性、性能2022年12月23日16时31分6软件构架的主要内容软件构架的主要内容 软件构架的主要内容包括软件构架的主要内容包括 对系统组成元素的描述对系统组成元素的描述 这些元素相互之间的交互这些元素相互之间的交互 系统组成的模式系统组成的模式 模式的约束模式的约束 所以在软件构架中,系统以组件和组件之所以在软件构架中,系统以组件和组件之间的交互进行定义。间的交互进行定义。当前的系统同时可以作为更高层设计的一当前的系统同时可以作为更高层设计的一个系统组件。个系统组件。2022年12月23日16时31分7软件构架的描述软件构架的描述 对软件系统而言,有一个合适的体系结构对软件系统而言,有一个合适的体系结构是长期成功的保证。是长期成功的保证。当前对于软件构架的描述是当前对于软件构架的描述是 非正式的非正式的 因人而异因人而异 针对特定系统的针对特定系统的 通常由框图和线条以及相关的解释所组成通常由框图和线条以及相关的解释所组成2022年12月23日16时31分8 一些典型的构架描述一些典型的构架描述“Camlelot采用了采用了C/S结构并且使用远程方结构并且使用远程方法调用(法调用(RPC)”系统设计中采用了抽象分层和模块分解的系统设计中采用了抽象分层和模块分解的方法方法“”我们采用了一种分布式的、面向对象的我们采用了一种分布式的、面向对象的方法进行信息管理。方法进行信息管理。“”将传统的顺序编译器改造成并发编译器将传统的顺序编译器改造成并发编译器的最简单的方法是将不同的编译阶段在多的最简单的方法是将不同的编译阶段在多个处理上并发执行。个处理上并发执行。“2022年12月23日16时31分9软件设计的层次软件设计的层次 软件设计可以发生在多个不同的层次,在软件设计可以发生在多个不同的层次,在每一层我们都会发现相应的组件以及由这每一层我们都会发现相应的组件以及由这些组件组成更大的组件的组合机制。些组件组成更大的组件的组合机制。二进制执行文件层二进制执行文件层 位模式位模式 代码层代码层 编程语言的原语、操作符;编程语言的原语、操作符;记录、数组、过程;记录、数组、过程;构架层构架层 模块模块2022年12月23日16时31分10 需求:做什么 概要设计,总体,架构,:怎么做?分模块功能划分,接口定义,模式,详细设计:算法设计,数据设计 实现:编码,测试2022年12月23日16时31分11工程学科的演化工程学科的演化手工制造手工制造生产生产商业制造商业制造科学科学专业工程专业工程2022年12月23日16时31分12工程学科的演化(工程学科的演化(2)手工制造手工制造商业制造商业制造工程制造工程制造有天赋的业余者有天赋的业余者直觉直觉/蛮劲蛮劲无计划的进展无计划的进展偶然的交流偶然的交流对原材料的浪费对原材料的浪费为使用而制造为使用而制造熟练的手工艺者熟练的手工艺者已成型的一套流程已成型的一套流程经验的提炼经验的提炼技巧训练技巧训练关注成本和收益关注成本和收益为销售而制造为销售而制造受教育的职业人员受教育的职业人员理论和分析理论和分析科学指导下的进展科学指导下的进展职业教育职业教育科学分析原料使用科学分析原料使用市场根据产品细分市场根据产品细分2022年12月23日16时31分13科学与工程的记录周期科学与工程的记录周期 业界传说业界传说 临时解决方案临时解决方案 正式正式记录记录新问题新问题 模型与理论模型与理论 改进的实践改进的实践2022年12月23日16时31分14软件工程的演化软件工程的演化手工制造手工制造生产生产商业制造商业制造科学科学专业工程专业工程1965-70 算法、数据算法、数据一些独立的案例(算一些独立的案例(算法、数据结构、编译器法、数据结构、编译器构造构造1980s软件开发方法学软件开发方法学2022年12月23日16时31分15Software Architecture in Practice第一章第一章 构架商业周期构架商业周期2022年12月23日16时31分16构架由什么决定?构架由什么决定?构架是否由系统需求决定?构架是否由系统需求决定?将一份需求说明书给两个不同的架构师,他们将一份需求说明书给两个不同的架构师,他们是否能够设计出同样的架构?是否能够设计出同样的架构?软件构架是技术、商业和社会等诸多因素软件构架是技术、商业和社会等诸多因素共同作用的结果。共同作用的结果。2022年12月23日16时31分17构架从哪里来?构架从哪里来?影响构架的因素主要包括:影响构架的因素主要包括:系统涉众(系统涉众(stakeholder)开发组织开发组织 构架师的素质和经验构架师的素质和经验 技术环境技术环境2022年12月23日16时31分182022年12月23日16时31分19系统涉众(系统涉众(stakeholder)管理者:成本要低,人人都得干活管理者:成本要低,人人都得干活 营销人员:特性突出、投放市场快、成本营销人员:特性突出、投放市场快、成本低、可与同类产品匹敌低、可与同类产品匹敌 终端用户:行为、性能、安全性、可靠性、终端用户:行为、性能、安全性、可靠性、易用性易用性 维护人员:可修改性强维护人员:可修改性强 客户:成本低、及时交付、不要频繁修改客户:成本低、及时交付、不要频繁修改 2022年12月23日16时31分202022年12月23日16时31分212022年12月23日16时31分22开发组织开发组织 除了通过需求表示的组织目标外,构架还除了通过需求表示的组织目标外,构架还受开发组织的结构或本质的影响受开发组织的结构或本质的影响 对现存构架的重用对现存构架的重用 对某一个基础设施进行长期的商业投资以实现对某一个基础设施进行长期的商业投资以实现某些战略目标某些战略目标 开发组织本身的结构也会影响构架的形成开发组织本身的结构也会影响构架的形成2022年12月23日16时31分23构架师的素质和经验构架师的素质和经验 构架师先前的一些经验、教育、培训以及构架师先前的一些经验、教育、培训以及所接触到过的成功构架模式都会影响到他所接触到过的成功构架模式都会影响到他们对某种构架的选择。们对某种构架的选择。2022年12月23日16时31分24 17世纪上半叶,北欧新教势力与中欧天主教势力发生了一场“三十年战争”,作为北欧新教势力的代表,瑞典的军事力量达到鼎盛时期。1625年,号称“北方飓风”的瑞典国王古斯塔夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘史无前例的巨型新战舰瓦萨(Vasa)战舰。瓦萨战舰确实是一艘令人望而生畏的战舰:舰长70米,载员300人,在三层的甲板上共装有64门重炮,火力之强让人难以置信。2022年12月23日16时31分25 1628年8月10日,这艘巨大的战舰终于完工。在斯德哥尔摩,瓦萨战舰举行了盛大的下水典礼。礼炮声中,战舰扬帆起航,乘风前进。在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海水从炮孔处涌入船舱,战舰迅速翻入水中,几分钟后,这艘雄伟战舰的处女航也是唯一的一次航行结束了。瓦萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。2022年12月23日16时31分26 人们对瓦萨的沉没做出了各种各样的分析,最后的主要结论是:该舰制造工艺精良,但“比例严重失调”,也就是说,该战舰的架构存在缺陷。瓦萨的沉没早已成为往事。然而,300多年后的今天,在企业信息系统领域,类似“瓦萨”这样的故事却比比皆是。处在工业高度发达的今天,在机械、电子、建筑、车船制造等各个领域,作为学科和工业的基石“架构体系”早已形成完整的理论和方法体系,但是,与这些成熟的工业领域相比,与企业信息系统相关的架构体系,几乎还处在原始和蒙昧的状态。2022年12月23日16时31分27理解架构:瓦萨战舰的故事理解架构:瓦萨战舰的故事 1625年,瑞典国王古斯塔年,瑞典国王古斯塔夫斯阿道弗斯(夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘)决心建造一艘史无前例的巨型新战舰史无前例的巨型新战舰 瓦萨(瓦萨(Vasa)战舰。)战舰。瓦萨战舰确实是一艘令人望瓦萨战舰确实是一艘令人望而生畏的战舰:舰长而生畏的战舰:舰长70米,米,载员载员300人,在三层的甲板人,在三层的甲板上共装有上共装有64门重炮,火力超门重炮,火力超强。强。2022年12月23日16时31分28瓦萨战舰的处女航 1628年年8月月10日,这艘巨大的战舰终于完工。日,这艘巨大的战舰终于完工。在斯德哥尔摩的王宮前,瓦萨战舰举行了盛在斯德哥尔摩的王宮前,瓦萨战舰举行了盛大的下水典礼。大的下水典礼。在在1万多名围观者的目光注视下,忽然,瓦万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海萨号奇怪地摇晃了一下,便向左舷倾斜。海水涌入船舱,战舰迅速翻入水中。几分钟后,水涌入船舱,战舰迅速翻入水中。几分钟后,这艘雄伟战舰的处女航这艘雄伟战舰的处女航也是唯一的一次也是唯一的一次航行结束了。瓦萨战舰在它壮丽的起航时刻,航行结束了。瓦萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。带着全身飘扬的彩旗,沉没于它诞生的港口。2022年12月23日16时31分29瓦萨战舰为什么沉没?瓦萨战舰为什么沉没?人们对瓦萨的沉没做出了分析,最后的主要结论是:该舰制造工艺精良,但“比例严重失调比例严重失调”,也就是说,该战舰的架构架构存在缺陷。2022年12月23日16时31分30信息系统的“瓦萨”问题同样同样,在今天的企事业信息系统领域,在今天的企事业信息系统领域,“瓦萨瓦萨”问题问题“架构架构”成为需要解决成为需要解决的关键问题。的关键问题。2022年12月23日16时31分312022年12月23日16时31分32技术环境技术环境 技术环境可以看作是对构架师素质和经验技术环境可以看作是对构架师素质和经验的特殊反映的特殊反映 代表某个时代的构架师的普遍素质和经验代表某个时代的构架师的普遍素质和经验 比如:在当今的技术环境下,如果构架师对信比如:在当今的技术环境下,如果构架师对信息系统的设计不考虑使用基于息系统的设计不考虑使用基于WEB的,面向对的,面向对象的和支持中间件的方法是很难想像的象的和支持中间件的方法是很难想像的2022年12月23日16时31分332022年12月23日16时31分34构架所受的影响构架所受的影响构架师所受的影响构架师所受的影响涉众涉众开发组织开发组织需求(质量属性)需求(质量属性)构架师(小组)构架师(小组)构架构架系统系统构架师的经验构架师的经验2022年12月23日16时31分35构架商业周期(构架商业周期(ABC)构架师所受的影响构架师所受的影响涉众涉众开发组织开发组织需求(质量属性)需求(质量属性)构架师(小组)构架师(小组)构架构架系统系统构架师的经验构架师的经验2022年12月23日16时31分36ABC构架的反影响力构架的反影响力 构架会影响开发组织的结构构架会影响开发组织的结构 构架会影响开发组织的目标构架会影响开发组织的目标 构架会影响客户对一个系统的要求构架会影响客户对一个系统的要求 构建系统的过程丰富了整个开发团队的经构建系统的过程丰富了整个开发团队的经验,从而将影响设计师对后继系统的设计验,从而将影响设计师对后继系统的设计 一些系统会影响并实际改变软件工程的环一些系统会影响并实际改变软件工程的环境,也就是系统开发人员学习或实践的技境,也就是系统开发人员学习或实践的技术环境术环境2022年12月23日16时31分372022年12月23日16时31分382022年12月23日16时31分392022年12月23日16时31分40Data Banker2022年12月23日16时31分412022年12月23日16时31分42第二章第二章 什么是软件构架什么是软件构架 2022年12月23日16时31分43构架概念的澄清构架概念的澄清控制处理(控制处理(CP)特征损失模型特征损失模型(MODP)回响模型回响模型(MODR)噪音模型噪音模型(MODN)这是一个构架(描述)吗?这是一个构架(描述)吗?水下声学模拟系统水下声学模拟系统2022年12月23日16时31分44构架定义构架定义 Len Bass,Paul Clements等人对构架所做等人对构架所做的定义:的定义:某一个软件或计算系统的软件构架是该系统的某一个软件或计算系统的软件构架是该系统的一个或多个结构,它由软件元素、这些元素的一个或多个结构,它由软件元素、这些元素的外观可见属性以及这些元素之间的关系组成。外观可见属性以及这些元素之间的关系组成。2022年12月23日16时31分45构架含义(构架含义(1)1.构架定义了构架定义了 软件元素软件元素 构架必须省略元素中与其交互无关的某些信息构架必须省略元素中与其交互无关的某些信息 接口接口VS.内部实现内部实现 2.系统可能而且确实由多个结构组成系统可能而且确实由多个结构组成 其中任何一个结构并不能与构架等同其中任何一个结构并不能与构架等同 结构的多重性是理解软件构架的关键结构的多重性是理解软件构架的关键2022年12月23日16时31分46构架的含义(构架的含义(2)3.具有软件的每个计算系统都有一个软件构架具有软件的每个计算系统都有一个软件构架 每个软件系统都可以看成由若干个元素及其相互每个软件系统都可以看成由若干个元素及其相互联系构成联系构成 系统构架系统构架VS.构架描述构架描述 4.如果某个元素的行为可以从其它元素的角度如果某个元素的行为可以从其它元素的角度观察到,这个元素的行为就是构架的内容观察到,这个元素的行为就是构架的内容 这种行为使各元素的交互成为可能,是构架的一这种行为使各元素的交互成为可能,是构架的一部分部分 5.构架的存在与构架的优劣无关构架的存在与构架的优劣无关2022年12月23日16时31分47构架的其他定义构架的其他定义 构架是一种高层设计构架是一种高层设计 构架是系统的总体结构构架是系统的总体结构 构架是以组件、组件之间的关系、组件与环构架是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理结构以及指导上述内容设计与演化的原理 构架是组件和连接器构架是组件和连接器2022年12月23日16时31分48构架模式、参考模型和参考构架构架模式、参考模型和参考构架 构架模式是对元素和关系类型以及一组对构架模式是对元素和关系类型以及一组对其使用方式的限制的描述其使用方式的限制的描述 参考模型是一种考虑数据流的功能划分参考模型是一种考虑数据流的功能划分 参考架构是映射到软件元素(它们相互使参考架构是映射到软件元素(它们相互使用,共同实现在参考模型中的定义的功能)用,共同实现在参考模型中的定义的功能)及元素之间数据流上的参考模型及元素之间数据流上的参考模型(这些都是理解架构中的元素的一些有用的(这些都是理解架构中的元素的一些有用的概念)概念)2022年12月23日16时31分492022年12月23日16时31分50构架模式、参考模型和参考构架的构架模式、参考模型和参考构架的关系关系参考模型参考模型构架模式构架模式参考构架参考构架软件构架软件构架2022年12月23日16时31分51软件构架的作用软件构架的作用 涉众之间的交流涉众之间的交流 代码级别的系统抽象代码级别的系统抽象程序员的交流工具程序员的交流工具 构架级别的系统的抽象构架级别的系统的抽象包括程序员在内的绝大多数系统涉包括程序员在内的绝大多数系统涉众都借助软件体系结构来进行彼此理解、协商、达成共识或众都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础。者相互沟通的基础。系统设计的前期决策系统设计的前期决策 软件构架是我们所开发的软件系统最早期设计决策的体现,软件构架是我们所开发的软件系统最早期设计决策的体现,它们对软件系统的后续开发、部署和维护具有相当重要的影它们对软件系统的后续开发、部署和维护具有相当重要的影响。响。构架设计是能够对所开发系统进行分析的最早时间点。构架设计是能够对所开发系统进行分析的最早时间点。可传递的系统级抽象可传递的系统级抽象 软件构架是关于系统构造以及系统各个元素工作机制的相对软件构架是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反映问题的模型。较小、却又能够突出反映问题的模型。这种模型可以在多个系统之间传递,特别是可以应用到具有这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。的系统级复用。2022年12月23日16时31分522.What is Software Architectureiii.ANSI/IEEE Std 1471-2000,Recommended Practice for Architectural Description2022年12月23日16时31分53Architecture metamodelSoftware ArchitectureSoftware Architecture DescriptionArchitectural viewis made ofis represented byArchitecture Design ProcessproducesFormComponentConnectionArchitectural Patternis ais made ofSoftware Architectsare actors inLogical viewProcess viewImplemen-tation viewDeployment viewRequirementssatisfiesArchitectural stylehashashasis aSystem architectureis part ofArchitecture Style guideConstraintsconstrainsconstrainsUse case viewrelates toArchitectural Blueprintdepicts2022年12月23日16时31分54
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!