软件体系结构课件
Software Architecture
By 王备战 wangbz@ 13959238599 0592-2580589(O)
软件体系结构课件
从本质上讲,软件与硬件的设计和实现是 相通的,是可以相互转换的。
软件体系结构课件
Chapter One 概述 体系结构是指整个系统构成的基本和主体形态。– 体系结构成为建立和考察系统的总体指导或基本出发点 – 体系结构对一个应用系统的生命周期有着非常重要的影响 – 软件的复杂性打破了以往硬件与软件的平衡,SA被提出了 软件的复杂性打破了以往硬件与软件的平衡,SA被提出了
软件体系结构是软件在设计构成上的基本、可供设计选择 的形态和总体结构。– – – – 软件设计中可供选择的结构形态 每个结构概念都传达了一些信息 有关领域愈是成熟和发展,人们对结构的认识也就愈加深刻 SA概念的提出和应用,说明了软件设计技术在高层次上的发展并 SA概念的提出和应用,说明了软件设计技术在高层次上的发展并 走向成熟
软件体系结构课件
Chapter One 概述 Contents: Contents:– §1.1 软件体系结构 – §1.2 当前的软件设计 – §1.3 软件设计的层次 – §1.4 体系结构与软件的工程设计 – §1.5 软件体系结构的知识体系
软件体系结构课件
Chapter One 概述§1.1 软件体系结构
软件体系结构课件
Chapter One 概述§1.1 软件体系结构 SA发展 SA发展– 1980’s 使用非正式的框图 依靠专家的特定经验 不规范、多样地使用体系结构模式和风格
– 1990’s 认识到了体系结构的价值 开发过程中要求体系结构文档,并开始体系结构评审 产品化、商业化的体系结构标准和组件集成框架开始出现 规范化体系结构设计中的词汇、符号和工具 软件体系结构的书籍和课程
– 2000’s ?
软件体系结构课件
Chapter One 概述§1.1 软件体系结构 软件体系结构– 软件体系结构定义了软件的局部和总体计算部件的构成,以及这些 部件之间的相互作用关系。 – 总的来看,体系结构是由结构和功能各异、相互作用的部件集合, 按照层次构成的。 体系结构的各组成部分应该易于被重用以组成更大的或者新的系统 层次的规范性便于进行系统功能和非功能性分析
– “There is no standard, universally-accepted definition of the term, universallyfor software architecture is a field in its infancy, although its roots run deep in software engineering. ” – 后人精简Garlan and Shaw的定义为: 后人精简Garlan Shaw的定义为: 体系结构 = 组件 + 连接件 + 约束 Architecture = Components + Connectors + Constrains
软件体系结构课件
Chapter One 概述§1.1 软件体系结构 体系结构的类别– 概略型 – 需求型 – 设计型
体系结构的重要性
– 好的软件体系结构,是好的软件的必要 条件。 – “Good architectural design has always been a major factor in determini
ng the success of a software system.”
软件体系结构课件
SA对SE的贡献 SA对SE的贡献 开发团队的组织结构 捕获需求 设计方案的选择 分析和描述复杂系统的高层属性 人员交流 技术进步 ……
软件体系结构课件
开发团队的组织结构 按体系结构设计出的组件,划分开发小组 构建新的类似系统时,每个小组贡献自己 的组件
软件体系结构课件
捕获需求 通过对相似系统的总结、吸收,更利于理 解新的相似系统的需求 用户在旧系统基础上提出新需求
软件体系结构课件
设计方案的选择 有众多已有体系结构供参考 通过对体系结构的度量,可知哪种体系结 构最有效
软件体系结构课件
分析和描述复杂系统的高层属性 方便人员交流 知道了采用的体系结构,也就知道了此系 统有何优缺点 对体系结构的命名,使交流变得简单
软件体系结构课件
技术进步 每个新的体系结构的诞生,都给技术的进 步带来深远影响– WWW – 三层结构 – CORBA – J2EE – .NET
软件体系结构课件
SE的目标是什么? SE的目标是什么?
软件体系结构课件
Source Code AnalysisMany studies have shown that the expense of fixing a vulnerability after deployment can multiple the cost one hundredhundred-fold compared to addressing the issue while the application is still under development
软件体系结构课件
软件质量 运行时质量 非运行时质量 商业质量 体系结构质量
软件体系结构课件
通过观察可以得知的质量 它是否在做你所期望的事情? 它用起来方便吗? 计算结果正确吗? 算了多久? 非法用户能侵入它吗? 它多久崩溃或者停止工作一次?
软件体系结构课件
通过观察不 通过观察不能得知的质量 这个系统开发了多久? 被测试了多久? 被集成了多久? 它的成本是多少? 很容易修改吗?
软件体系结构课件
软件质量 了解了一个方面的质量,并不能对你了解其他方 面的质量有多大帮助 但是,如果改变结构从而提高一个质量,经常会 影响其它质量 体系结构的选择极大地影响软件质量,但并不能 影响所有的质量 体系结构只为获得某个质量创造条件,但并不能 保证肯定获得
软件体系结构课件
影响软件质量的因素 Correctness Functionality Performance Security Robustness Availability Usability Ease of use Modifiability Portability Reusability Integrability Testability Compatibility Economy