




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