软件体系结构lec1-1

上传人:wm****3 文档编号:52094367 上传时间:2018-08-18 格式:PPT 页数:54 大小:5.62MB
返回 下载 相关 举报
软件体系结构lec1-1_第1页
第1页 / 共54页
软件体系结构lec1-1_第2页
第2页 / 共54页
软件体系结构lec1-1_第3页
第3页 / 共54页
软件体系结构lec1-1_第4页
第4页 / 共54页
软件体系结构lec1-1_第5页
第5页 / 共54页
点击查看更多>>
资源描述

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

1、软件体系结构主讲老师:周立新*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)*2*3*4体系结构(Architecture)的定义 IEEE的定义 体系结构是以组件、组件之间的关系、组件

2、与 环境之间的关系为内容的某一系统的基本组织 结构以及指导上述内容设计与演化的原理。 对Software architecture的常见中文翻译 软件体系结构 软件架构 软件构架*5软件体系结构(构架)研究的问题 结构性问题 系统的组织,由哪些组件构成 全局性的控制结构 通讯、同步或访问的协议 将功能分配到不同的系统组成部分 设计元素的组成 系统的物理分布 可扩展性、性能*6软件构架的主要内容 软件构架的主要内容包括 对系统组成元素的描述 这些元素相互之间的交互 系统组成的模式 模式的约束 所以在软件构架中,系统以组件和组件之 间的交互进行定义。 当前的系统同时可以作为更高层设计的一 个系统组

3、件。 *7软件构架的描述 对软件系统而言,有一个合适的体系结构 是长期成功的保证。 当前对于软件构架的描述是 非正式的 因人而异 针对特定系统的 通常由框图和线条以及相关的解释所组成*8一些典型的构架描述 “Camlelot采用了C/S结构并且使用远程方 法调用(RPC)” ”系统设计中采用了抽象分层和模块分解的 方法“ ”我们采用了一种分布式的、面向对象的方 法进行信息管理。“ ”将传统的顺序编译器改造成并发编译器的 最简单的方法是将不同的编译阶段在多个 处理上并发执行。“ *9软件设计的层次 软件设计可以发生在多个不同的层次,在 每一层我们都会发现相应的组件以及由这 些组件组成更大的组件的

4、组合机制。 二进制执行文件层 位模式 代码层 编程语言的原语、操作符; 记录、数组、过程; 构架层 模块*10 需求:做什么 概要设计,总体,架构,:怎么做? 分模块功能划分,接口定义,模式, 详细设计:算法设计,数据设计 实现:编码,测试*11工程学科的演化手工制造生产商业制造科学专业工程*12工程学科的演化(2)手工制造商业制造工程制造有天赋的业余者 直觉/蛮劲 无计划的进展 偶然的交流 对原材料的浪费 为使用而制造熟练的手工艺者 已成型的一套流程 经验的提炼 技巧训练 关注成本和收益 为销售而制造受教育的职业人员 理论和分析 科学指导下的进展 职业教育 科学分析原料使用 市场根据产品细分

5、*13科学与工程的记录周期业界传说 临时解决方案 正式 记录新问题模型与理论改进的实践*14软件工程的演化手工制造生产商业制造科学专业工程1965-70 算法、数据一些独立的案例(算 法、数据结构、编译器 构造1980s软件开发方法学*15Software Architecture in Practice第一章 构架商业周期*16构架由什么决定? 构架是否由系统需求决定? 将一份需求说明书给两个不同的架构师,他们 是否能够设计出同样的架构? 软件构架是技术、商业和社会等诸多因素 共同作用的结果。*17构架从哪里来? 影响构架的因素主要包括: 系统涉众(stakeholder) 开发组织 构架师

6、的素质和经验 技术环境*18*19系统涉众(stakeholder) 管理者:成本要低,人人都得干活 营销人员:特性突出、投放市场快、成本 低、可与同类产品匹敌 终端用户:行为、性能、安全性、可靠性 、易用性 维护人员:可修改性强 客户:成本低、及时交付、不要频繁修改 *20*21*22开发组织 除了通过需求表示的组织目标外,构架还 受开发组织的结构或本质的影响 对现存构架的重用 对某一个基础设施进行长期的商业投资以实现 某些战略目标 开发组织本身的结构也会影响构架的形成*23构架师的素质和经验 构架师先前的一些经验、教育、培训以及 所接触到过的成功构架模式都会影响到他 们对某种构架的选择。*

7、24 17世纪上半叶,北欧新教势力与中欧天主 教势力发生了一场“三十年战争”,作为北欧 新教势力的代表,瑞典的军事力量达到鼎盛 时期。1625年,号称“北方飓风”的瑞典国王 古斯塔夫斯阿道弗斯(Gustavs Adolphus )决心建造一艘史无前例的巨型新战舰 瓦萨(Vasa)战舰。瓦萨战舰确实是一艘 令人望而生畏的战舰:舰长70米,载员300 人,在三层的甲板上共装有64门重炮,火 力之强让人难以置信。*25 1628年8月10日,这艘巨大的战舰终于完工 。在斯德哥尔摩,瓦萨战舰举行了盛大的 下水典礼。礼炮声中,战舰扬帆起航,乘 风前进。在1万多名围观者的目光注视下, 忽然,瓦萨号奇怪地摇

8、晃了一下,便向左 舷倾斜。海水从炮孔处涌入船舱,战舰迅 速翻入水中,几分钟后,这艘雄伟战舰的 处女航也是唯一的一次航行结束了。 瓦萨战舰在它壮丽的起航时刻,带着全身 飘扬的彩旗,沉没于它诞生的港口。*26 人们对瓦萨的沉没做出了各种各样的分析 ,最后的主要结论是:该舰制造工艺精良 ,但“比例严重失调”,也就是说,该战舰的 架构存在缺陷。瓦萨的沉没早已成为往事。然而,300 多年后的今天,在企业信息系统领域,类 似“瓦萨”这样的故事却比比皆是。处在工业 高度发达的今天,在机械、电子、建筑、 车船制造等各个领域,作为学科和工业的 基石“架构体系”早已形成完整的理论和方 法体系,但是,与这些成熟的工

9、业领域相 比,与企业信息系统相关的架构体系,几 乎还处在原始和蒙昧的状态。*27理解架构:瓦萨战舰的故事 1625年,瑞典国王古斯塔 夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘 史无前例的巨型新战舰瓦萨(Vasa)战舰。 瓦萨战舰确实是一艘令人望 而生畏的战舰:舰长70米, 载员300人,在三层的甲板 上共装有64门重炮,火力超 强。*28瓦萨战舰的处女航 1628年8月10日,这艘巨大的战舰终于完工 。在斯德哥尔摩的王宮前,瓦萨战舰举行了 盛大的下水典礼。 在1万多名围观者的目光注视下,忽然,瓦 萨号奇怪地摇晃了一下,便向左舷倾斜。海 水涌入船舱,战舰迅速翻入水中。几分钟后

10、 ,这艘雄伟战舰的处女航也是唯一的一 次航行结束了。瓦萨战舰在它壮丽的起航时 刻,带着全身飘扬的彩旗,沉没于它诞生的 港口。 *29瓦萨战舰为什么沉没? 人们对瓦萨的沉没做出了分析,最后的主要结 论是: 该舰制造工艺精良,但“比例严重失调”,也就 是说,该战舰的架构存在缺陷。 *30信息系统的“瓦萨”问题同样,在今天的企事业信息系统领域,“瓦 萨”问题“架构”成为需要解决的关键 问题。*31*32技术环境 技术环境可以看作是对构架师素质和经验 的特殊反映 代表某个时代的构架师的普遍素质和经验 比如:在当今的技术环境下,如果构架师对信 息系统的设计不考虑使用基于WEB的,面向对 象的和支持中间件

11、的方法是很难想像的*33*34构架所受的影响构架师所受的影响涉众开发组织需求(质量属性)构架师(小组)构架系统构架师的经验*35构架商业周期(ABC)构架师所受的影响涉众开发组织需求(质量属性)构架师(小组)构架系统构架师的经验*36ABC构架的反影响力 构架会影响开发组织的结构 构架会影响开发组织的目标 构架会影响客户对一个系统的要求 构建系统的过程丰富了整个开发团队的经 验,从而将影响设计师对后继系统的设计 一些系统会影响并实际改变软件工程的环 境,也就是系统开发人员学习或实践的技 术环境*37*38*39*40Data Banker*41*42第二章 什么是软件构架*43构架概念的澄清控

12、制处理(CP)特征损失模型 (MODP)回响模型 (MODR)噪音模型 (MODN)这是一个构架(描述)吗?水下声学模拟系统*44构架定义 Len Bass, Paul Clements等人对构架所做 的定义: 某一个软件或计算系统的软件构架是该系统的 一个或多个结构,它由软件元素、这些元素的 外观可见属性以及这些元素之间的关系组成。*45构架含义(1) 1.构架定义了 软件元素 构架必须省略元素中与其交互无关的某些信息 接口VS.内部实现 2.系统可能而且确实由多个结构组成 其中任何一个结构并不能与构架等同 结构的多重性是理解软件构架的关键*46构架的含义(2) 3.具有软件的每个计算系统都

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

14、是映射到软件元素(它们相互使 用,共同实现在参考模型中的定义的功能 )及元素之间数据流上的参考模型(这些都是理解架构中的元素的一些有用的 概念)*49*50构架模式、参考模型和参考构架的 关系参考模型构架模式参考构架软件构架*51软件构架的作用 涉众之间的交流 代码级别的系统抽象程序员的交流工具 构架级别的系统的抽象包括程序员在内的绝大多数系统涉 众都借助软件体系结构来进行彼此理解、协商、达成共识或 者相互沟通的基础。 系统设计的前期决策 软件构架是我们所开发的软件系统最早期设计决策的体现, 它们对软件系统的后续开发、部署和维护具有相当重要的影 响。 构架设计是能够对所开发系统进行分析的最早时间点。 可传递的系统级抽象 软件构架是关于系统构造以及系统各个元素工作机制的相对 较小、却又能够突出反映问题的模型。 这种模型可以在多个系统之间传递,特别是可以应用到具有 相似质量属性和功能需求的系统中,并能够促进大规模软件 的系统级复用。*522. What is Software Architectureiii. ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description*53Architecture metamodel*54

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号