软件体系结构Lec1-1.ppt

上传人:本田雅阁 文档编号:2096772 上传时间:2019-02-13 格式:PPT 页数:54 大小:5.62MB
返回 下载 相关 举报
软件体系结构Lec1-1.ppt_第1页
第1页 / 共54页
软件体系结构Lec1-1.ppt_第2页
第2页 / 共54页
软件体系结构Lec1-1.ppt_第3页
第3页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件体系结构Lec1-1.ppt》由会员分享,可在线阅读,更多相关《软件体系结构Lec1-1.ppt(54页珍藏版)》请在三一文库上搜索。

1、软件体系结构,主讲老师:周立新,2019年2月13日3时21分,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),2019年2月13日3时21分,2,2019年2月13日3时21分,3,2019年

2、2月13日3时21分,4,体系结构(Architecture)的定义,IEEE的定义 体系结构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理。 对Software architecture的常见中文翻译 软件体系结构 软件架构 软件构架,2019年2月13日3时21分,5,软件体系结构(构架)研究的问题,结构性问题 系统的组织,由哪些组件构成 全局性的控制结构 通讯、同步或访问的协议 将功能分配到不同的系统组成部分 设计元素的组成 系统的物理分布 可扩展性、性能,2019年2月13日3时21分,6,软件构架的主要内容,软件构架的主要

3、内容包括 对系统组成元素的描述 这些元素相互之间的交互 系统组成的模式 模式的约束 所以在软件构架中,系统以组件和组件之间的交互进行定义。 当前的系统同时可以作为更高层设计的一个系统组件。,2019年2月13日3时21分,7,软件构架的描述,对软件系统而言,有一个合适的体系结构是长期成功的保证。 当前对于软件构架的描述是 非正式的 因人而异 针对特定系统的 通常由框图和线条以及相关的解释所组成,2019年2月13日3时21分,8,一些典型的构架描述,“Camlelot采用了C/S结构并且使用远程方法调用(RPC)” ”系统设计中采用了抽象分层和模块分解的方法“ ”我们采用了一种分布式的、面向对

4、象的方法进行信息管理。“ ”将传统的顺序编译器改造成并发编译器的最简单的方法是将不同的编译阶段在多个处理上并发执行。“,2019年2月13日3时21分,9,软件设计的层次,软件设计可以发生在多个不同的层次,在每一层我们都会发现相应的组件以及由这些组件组成更大的组件的组合机制。 二进制执行文件层 位模式 代码层 编程语言的原语、操作符; 记录、数组、过程; 构架层 模块,2019年2月13日3时21分,10,需求:做什么 概要设计,总体,架构,:怎么做? 分模块功能划分,接口定义,模式, 详细设计:算法设计,数据设计 实现:编码,测试,2019年2月13日3时21分,11,工程学科的演化,手工制

5、造,生产,商业制造,科学,专业工程,2019年2月13日3时21分,12,工程学科的演化(2),2019年2月13日3时21分,13,科学与工程的记录周期,业界传说 临时解决方案 正式记录 新问题 模型与理论 改进的实践,2019年2月13日3时21分,14,软件工程的演化,手工制造,生产,科学,专业工程,1965-70 算法、数据,一些独立的案例(算 法、数据结构、编译器 构造,1980s软件开发方法学,2019年2月13日3时21分,15,Software Architecture in Practice 第一章 构架商业周期,2019年2月13日3时21分,16,构架由什么决定?,构架是

6、否由系统需求决定? 将一份需求说明书给两个不同的架构师,他们是否能够设计出同样的架构? 软件构架是技术、商业和社会等诸多因素共同作用的结果。,2019年2月13日3时21分,17,构架从哪里来?,影响构架的因素主要包括: 系统涉众(stakeholder) 开发组织 构架师的素质和经验 技术环境,2019年2月13日3时21分,18,2019年2月13日3时21分,19,系统涉众(stakeholder),管理者:成本要低,人人都得干活 营销人员:特性突出、投放市场快、成本低、可与同类产品匹敌 终端用户:行为、性能、安全性、可靠性、易用性 维护人员:可修改性强 客户:成本低、及时交付、不要频繁

7、修改 ,2019年2月13日3时21分,20,2019年2月13日3时21分,21,2019年2月13日3时21分,22,开发组织,除了通过需求表示的组织目标外,构架还受开发组织的结构或本质的影响 对现存构架的重用 对某一个基础设施进行长期的商业投资以实现某些战略目标 开发组织本身的结构也会影响构架的形成,2019年2月13日3时21分,23,构架师的素质和经验,构架师先前的一些经验、教育、培训以及所接触到过的成功构架模式都会影响到他们对某种构架的选择。,2019年2月13日3时21分,24,17世纪上半叶,北欧新教势力与中欧天主教势力发生了一场“三十年战争”,作为北欧新教势力的代表,瑞典的军

8、事力量达到鼎盛时期。1625年,号称“北方飓风”的瑞典国王古斯塔夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘史无前例的巨型新战舰瓦萨(Vasa)战舰。瓦萨战舰确实是一艘令人望而生畏的战舰:舰长70米,载员300人,在三层的甲板上共装有64门重炮,火力之强让人难以置信。,2019年2月13日3时21分,25,1628年8月10日,这艘巨大的战舰终于完工。在斯德哥尔摩,瓦萨战舰举行了盛大的下水典礼。礼炮声中,战舰扬帆起航,乘风前进。在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海水从炮孔处涌入船舱,战舰迅速翻入水中,几分钟后,这艘雄伟战舰的处女航也是唯一

9、的一次航行结束了。瓦萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。,2019年2月13日3时21分,26,人们对瓦萨的沉没做出了各种各样的分析,最后的主要结论是:该舰制造工艺精良,但“比例严重失调”,也就是说,该战舰的架构存在缺陷。 瓦萨的沉没早已成为往事。然而,300多年后的今天,在企业信息系统领域,类似“瓦萨”这样的故事却比比皆是。处在工业高度发达的今天,在机械、电子、建筑、车船制造等各个领域,作为学科和工业的基石“架构体系”早已形成完整的理论和方法体系,但是,与这些成熟的工业领域相比,与企业信息系统相关的架构体系,几乎还处在原始和蒙昧的状态。,2019年2月13日3时

10、21分,27,理解架构:瓦萨战舰的故事,1625年,瑞典国王古斯塔夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘史无前例的巨型新战舰 瓦萨(Vasa)战舰。 瓦萨战舰确实是一艘令人望而生畏的战舰:舰长70米,载员300人,在三层的甲板上共装有64门重炮,火力超强。,2019年2月13日3时21分,28,瓦萨战舰的处女航,1628年8月10日,这艘巨大的战舰终于完工。在斯德哥尔摩的王宮前,瓦萨战舰举行了盛大的下水典礼。 在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海水涌入船舱,战舰迅速翻入水中。几分钟后,这艘雄伟战舰的处女航也是唯一的一次航行结束了。瓦

11、萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。,2019年2月13日3时21分,29,瓦萨战舰为什么沉没?,人们对瓦萨的沉没做出了分析,最后的主要结论是: 该舰制造工艺精良,但“比例严重失调”,也就是说,该战舰的架构存在缺陷。,2019年2月13日3时21分,30,信息系统的“瓦萨”问题,同样,在今天的企事业信息系统领域,“瓦萨”问题“架构”成为需要解决的关键问题。,2019年2月13日3时21分,31,2019年2月13日3时21分,32,技术环境,技术环境可以看作是对构架师素质和经验的特殊反映 代表某个时代的构架师的普遍素质和经验 比如:在当今的技术环境下,如果构架师对

12、信息系统的设计不考虑使用基于WEB的,面向对象的和支持中间件的方法是很难想像的,2019年2月13日3时21分,33,2019年2月13日3时21分,34,构架所受的影响,构架师所受的影响,涉众,开发组织,需求(质量属性),构架师(小组),构架,系统,构架师的经验,2019年2月13日3时21分,35,构架商业周期(ABC),构架师所受的影响,涉众,开发组织,需求(质量属性),构架师(小组),构架,系统,构架师的经验,2019年2月13日3时21分,36,ABC构架的反影响力,构架会影响开发组织的结构 构架会影响开发组织的目标 构架会影响客户对一个系统的要求 构建系统的过程丰富了整个开发团队的

13、经验,从而将影响设计师对后继系统的设计 一些系统会影响并实际改变软件工程的环境,也就是系统开发人员学习或实践的技术环境,2019年2月13日3时21分,37,2019年2月13日3时21分,38,2019年2月13日3时21分,39,2019年2月13日3时21分,40,Data Banker,2019年2月13日3时21分,41,2019年2月13日3时21分,42,第二章 什么是软件构架,2019年2月13日3时21分,43,构架概念的澄清,控制处理(CP),特征损失模型 (MODP),回响模型 (MODR),噪音模型 (MODN),这是一个构架(描述)吗?,水下声学模拟系统,2019年2

14、月13日3时21分,44,构架定义,Len Bass, Paul Clements等人对构架所做的定义: 某一个软件或计算系统的软件构架是该系统的一个或多个结构,它由软件元素、这些元素的外观可见属性以及这些元素之间的关系组成。,2019年2月13日3时21分,45,构架含义(1),1.构架定义了 软件元素 构架必须省略元素中与其交互无关的某些信息 接口VS.内部实现 2.系统可能而且确实由多个结构组成 其中任何一个结构并不能与构架等同 结构的多重性是理解软件构架的关键,2019年2月13日3时21分,46,构架的含义(2),3.具有软件的每个计算系统都有一个软件构架 每个软件系统都可以看成由若

15、干个元素及其相互联系构成 系统构架VS.构架描述 4.如果某个元素的行为可以从其它元素的角度观察到,这个元素的行为就是构架的内容 这种行为使各元素的交互成为可能,是构架的一部分 5.构架的存在与构架的优劣无关,2019年2月13日3时21分,47,构架的其他定义,构架是一种高层设计 构架是系统的总体结构 构架是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理 构架是组件和连接器,2019年2月13日3时21分,48,构架模式、参考模型和参考构架,构架模式是对元素和关系类型以及一组对其使用方式的限制的描述 参考模型是一种考虑数据流的功能划

16、分 参考架构是映射到软件元素(它们相互使用,共同实现在参考模型中的定义的功能)及元素之间数据流上的参考模型 (这些都是理解架构中的元素的一些有用的概念),2019年2月13日3时21分,49,2019年2月13日3时21分,50,构架模式、参考模型和参考构架的 关系,参考模型,构架模式,参考构架,软件构架,2019年2月13日3时21分,51,软件构架的作用,涉众之间的交流 代码级别的系统抽象程序员的交流工具 构架级别的系统的抽象包括程序员在内的绝大多数系统涉众都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础。 系统设计的前期决策 软件构架是我们所开发的软件系统最早期设计决策

17、的体现,它们对软件系统的后续开发、部署和维护具有相当重要的影响。 构架设计是能够对所开发系统进行分析的最早时间点。 可传递的系统级抽象 软件构架是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反映问题的模型。 这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。,2019年2月13日3时21分,52,2. What is Software Architecture,ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description,2019年2月13日3时21分,53,Architecture metamodel,2019年2月13日3时21分,54,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1