版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件体系结构,主讲老师:周立新,2020年10月15日1时20分,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),2020年10月15日1时20分,2,2020年10月15日1时20分,3,20
2、20年10月15日1时20分,4,体系结构(Architecture)的定义,IEEE的定义 体系结构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理。 对Software architecture的常见中文翻译 软件体系结构 软件架构 软件构架,2020年10月15日1时20分,5,软件体系结构(构架)研究的问题,结构性问题 系统的组织,由哪些组件构成 全局性的控制结构 通讯、同步或访问的协议 将功能分配到不同的系统组成部分 设计元素的组成 系统的物理分布 可扩展性、性能,2020年10月15日1时20分,6,软件构架的主要内容,软
3、件构架的主要内容包括 对系统组成元素的描述 这些元素相互之间的交互 系统组成的模式 模式的约束 所以在软件构架中,系统以组件和组件之间的交互进行定义。 当前的系统同时可以作为更高层设计的一个系统组件。,2020年10月15日1时20分,7,软件构架的描述,对软件系统而言,有一个合适的体系结构是长期成功的保证。 当前对于软件构架的描述是 非正式的 因人而异 针对特定系统的 通常由框图和线条以及相关的解释所组成,2020年10月15日1时20分,8,一些典型的构架描述,“Camlelot采用了C/S结构并且使用远程方法调用(RPC)” ”系统设计中采用了抽象分层和模块分解的方法“ ”我们采用了一种
4、分布式的、面向对象的方法进行信息管理。“ ”将传统的顺序编译器改造成并发编译器的最简单的方法是将不同的编译阶段在多个处理上并发执行。“,2020年10月15日1时20分,9,软件设计的层次,软件设计可以发生在多个不同的层次,在每一层我们都会发现相应的组件以及由这些组件组成更大的组件的组合机制。 二进制执行文件层 位模式 代码层 编程语言的原语、操作符; 记录、数组、过程; 构架层 模块,2020年10月15日1时20分,10,需求:做什么 概要设计,总体,架构,:怎么做? 分模块功能划分,接口定义,模式, 详细设计:算法设计,数据设计 实现:编码,测试,2020年10月15日1时20分,11,
5、工程学科的演化,手工制造,生产,商业制造,科学,专业工程,2020年10月15日1时20分,12,工程学科的演化(2),2020年10月15日1时20分,13,科学与工程的记录周期,业界传说 临时解决方案 正式记录 新问题 模型与理论 改进的实践,2020年10月15日1时20分,14,软件工程的演化,手工制造,生产,科学,专业工程,1965-70 算法、数据,一些独立的案例(算法、数据结构、编译器构造,1980s软件开发方法学,2020年10月15日1时20分,15,Software Architecture in Practice第一章 构架商业周期,2020年10月15日1时20分,16
6、,构架由什么决定?,构架是否由系统需求决定? 将一份需求说明书给两个不同的架构师,他们是否能够设计出同样的架构? 软件构架是技术、商业和社会等诸多因素共同作用的结果。,2020年10月15日1时20分,17,构架从哪里来?,影响构架的因素主要包括: 系统涉众(stakeholder) 开发组织 构架师的素质和经验 技术环境,2020年10月15日1时20分,18,2020年10月15日1时20分,19,系统涉众(stakeholder),管理者:成本要低,人人都得干活 营销人员:特性突出、投放市场快、成本低、可与同类产品匹敌 终端用户:行为、性能、安全性、可靠性、易用性 维护人员:可修改性强
7、客户:成本低、及时交付、不要频繁修改 ,2020年10月15日1时20分,20,2020年10月15日1时20分,21,2020年10月15日1时20分,22,开发组织,除了通过需求表示的组织目标外,构架还受开发组织的结构或本质的影响 对现存构架的重用 对某一个基础设施进行长期的商业投资以实现某些战略目标 开发组织本身的结构也会影响构架的形成,2020年10月15日1时20分,23,构架师的素质和经验,构架师先前的一些经验、教育、培训以及所接触到过的成功构架模式都会影响到他们对某种构架的选择。,2020年10月15日1时20分,24,17世纪上半叶,北欧新教势力与中欧天主教势力发生了一场“三十
8、年战争”,作为北欧新教势力的代表,瑞典的军事力量达到鼎盛时期。1625年,号称“北方飓风”的瑞典国王古斯塔夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘史无前例的巨型新战舰瓦萨(Vasa)战舰。瓦萨战舰确实是一艘令人望而生畏的战舰:舰长70米,载员300人,在三层的甲板上共装有64门重炮,火力之强让人难以置信。,2020年10月15日1时20分,25,1628年8月10日,这艘巨大的战舰终于完工。在斯德哥尔摩,瓦萨战舰举行了盛大的下水典礼。礼炮声中,战舰扬帆起航,乘风前进。在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海水从炮孔处涌入船舱,战舰迅速翻入
9、水中,几分钟后,这艘雄伟战舰的处女航也是唯一的一次航行结束了。瓦萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。,2020年10月15日1时20分,26,人们对瓦萨的沉没做出了各种各样的分析,最后的主要结论是:该舰制造工艺精良,但“比例严重失调”,也就是说,该战舰的架构存在缺陷。瓦萨的沉没早已成为往事。然而,300多年后的今天,在企业信息系统领域,类似“瓦萨”这样的故事却比比皆是。处在工业高度发达的今天,在机械、电子、建筑、车船制造等各个领域,作为学科和工业的基石“架构体系”早已形成完整的理论和方法体系,但是,与这些成熟的工业领域相比,与企业信息系统相关的架构体系,几乎还处在
10、原始和蒙昧的状态。,2020年10月15日1时20分,27,理解架构:瓦萨战舰的故事,1625年,瑞典国王古斯塔夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘史无前例的巨型新战舰 瓦萨(Vasa)战舰。 瓦萨战舰确实是一艘令人望而生畏的战舰:舰长70米,载员300人,在三层的甲板上共装有64门重炮,火力超强。,2020年10月15日1时20分,28,瓦萨战舰的处女航,1628年8月10日,这艘巨大的战舰终于完工。在斯德哥尔摩的王宮前,瓦萨战舰举行了盛大的下水典礼。 在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海水涌入船舱,战舰迅速翻入水中。几分钟后,
11、这艘雄伟战舰的处女航也是唯一的一次航行结束了。瓦萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。,2020年10月15日1时20分,29,瓦萨战舰为什么沉没?,人们对瓦萨的沉没做出了分析,最后的主要结论是: 该舰制造工艺精良,但“比例严重失调”,也就是说,该战舰的架构存在缺陷。,2020年10月15日1时20分,30,信息系统的“瓦萨”问题,同样,在今天的企事业信息系统领域,“瓦萨”问题“架构”成为需要解决的关键问题。,2020年10月15日1时20分,31,2020年10月15日1时20分,32,技术环境,技术环境可以看作是对构架师素质和经验的特殊反映 代表某个时代的构架师
12、的普遍素质和经验 比如:在当今的技术环境下,如果构架师对信息系统的设计不考虑使用基于WEB的,面向对象的和支持中间件的方法是很难想像的,2020年10月15日1时20分,33,2020年10月15日1时20分,34,构架所受的影响,构架师所受的影响,涉众,开发组织,需求(质量属性),构架师(小组),构架,系统,构架师的经验,2020年10月15日1时20分,35,构架商业周期(ABC),构架师所受的影响,涉众,开发组织,需求(质量属性),构架师(小组),构架,系统,构架师的经验,2020年10月15日1时20分,36,ABC构架的反影响力,构架会影响开发组织的结构 构架会影响开发组织的目标 构
13、架会影响客户对一个系统的要求 构建系统的过程丰富了整个开发团队的经验,从而将影响设计师对后继系统的设计 一些系统会影响并实际改变软件工程的环境,也就是系统开发人员学习或实践的技术环境,2020年10月15日1时20分,37,2020年10月15日1时20分,38,2020年10月15日1时20分,39,2020年10月15日1时20分,40,Data Banker,2020年10月15日1时20分,41,2020年10月15日1时20分,42,第二章 什么是软件构架,2020年10月15日1时20分,43,构架概念的澄清,控制处理(CP),特征损失模型 (MODP),回响模型 (MODR),噪
14、音模型 (MODN),这是一个构架(描述)吗?,水下声学模拟系统,2020年10月15日1时20分,44,构架定义,Len Bass, Paul Clements等人对构架所做的定义: 某一个软件或计算系统的软件构架是该系统的一个或多个结构,它由软件元素、这些元素的外观可见属性以及这些元素之间的关系组成。,2020年10月15日1时20分,45,构架含义(1),1.构架定义了 软件元素 构架必须省略元素中与其交互无关的某些信息 接口VS.内部实现 2.系统可能而且确实由多个结构组成 其中任何一个结构并不能与构架等同 结构的多重性是理解软件构架的关键,2020年10月15日1时20分,46,构架
15、的含义(2),3.具有软件的每个计算系统都有一个软件构架 每个软件系统都可以看成由若干个元素及其相互联系构成 系统构架VS.构架描述 4.如果某个元素的行为可以从其它元素的角度观察到,这个元素的行为就是构架的内容 这种行为使各元素的交互成为可能,是构架的一部分 5.构架的存在与构架的优劣无关,2020年10月15日1时20分,47,构架的其他定义,构架是一种高层设计 构架是系统的总体结构 构架是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理 构架是组件和连接器,2020年10月15日1时20分,48,构架模式、参考模型和参考构架,构架
16、模式是对元素和关系类型以及一组对其使用方式的限制的描述 参考模型是一种考虑数据流的功能划分 参考架构是映射到软件元素(它们相互使用,共同实现在参考模型中的定义的功能)及元素之间数据流上的参考模型 (这些都是理解架构中的元素的一些有用的概念),2020年10月15日1时20分,49,2020年10月15日1时20分,50,构架模式、参考模型和参考构架的关系,参考模型,构架模式,参考构架,软件构架,2020年10月15日1时20分,51,软件构架的作用,涉众之间的交流 代码级别的系统抽象程序员的交流工具 构架级别的系统的抽象包括程序员在内的绝大多数系统涉众都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础。 系统设计的前期决策 软件构架是我们所开发的软件系统最早期设计决策的体现,它们对软件系统的后续开发、部署和维护具有相当重要的影响。 构架设计是能够对所开发系统进行分析的最早时间点。 可传递的系统级抽象 软件构架是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 街巷长制工作制度
- 街道巡察工作制度
- 见习工作制度
- 谈物业工作制度
- 贴膜店工作制度
- 赤峰宏基工作制度
- 路网值班工作制度
- 轮值会长工作制度
- 酒店砧板工作制度
- 钻井安全工作制度
- 2026浙江宁波报业传媒集团有限公司招聘编辑1人备考题库(典型题)附答案详解
- 2026年广东省广州市天河区高考地理二模试卷
- 2025年中级社会工作师考试真题+答案
- 钇-90经动脉放射栓塞微球等核药研发与产业化项目(中试研发平台一期)报告书
- 宇通客车MBO案例分析
- DB11-T 2382-2024 建设工程施工消耗量标准
- 酒吧股东合作协议范本
- 昆虫记老象虫课件
- 2026新疆生产建设兵团文化旅游投资集团有限公司招(竞)聘13人备考题库及完整答案详解1套
- 2026年广西南宁市教育局直属单位招聘教职工易考易错模拟试题(共500题)试卷后附参考答案
- 如新公司产品培训课件
评论
0/150
提交评论