软件架构设计讲义PPT课件

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

09.03.Hale Waihona Puke Baidu021
CHENLI
13
SA发展
1980’s
使用非正式的框图
依靠专家的特定经验
不规范、多样地使用体系结构模式和风格
1990’s
认识到了体系结构的价值
开发过程中要求体系结构文档,并开始体系结构评 审
产品化、商业化的体系结构标准和组件集成框架开 始出现
规范化体系结构设计中的词汇、符号和工具
• 体系结构风格(Architecture Styles)
表示软件系统的一种特别的基本结构,以及相 关的构造方法
• 设计模式(Design Patterns)
构造型模式、结构型模式、行为型模式
• 框架(Framework)
另一种研究和构造软件体系结构的方法,更多 的是关于应用领域问题的已建立的系统结构。
09.03.2021
CHENLI
11
SA之重要
最早指出SA的重要性 的是大师Edsger Dijkstra(1930-2002)
“..the larger the project, the more essential the structuring!”(1968)
http://www.cs.utexas.edu/users/EWD/
http://www.cs.utexas.edu/users/EWD/ewd01xx/EWD196.PDF
09.03.2021
CHENLI
12
程序=?
程序 = 算法 + 数据结构(1960’s ) 程序 = 子程序 + 子程序(1970’s ) 对象 = 算法 + 数据结构
程序 = 对象 + 对象(1980’s) 程序 = 组件 + 连接件(1990’s)
21
软件体系结构可分为四种不同的体系:
• 概念结构
包括部件、互连、原则和性能等
• 代码结构
包括软件的配置管理、系统建造等
• 模块结构
包括模块界面、模块管理、模块控制和一致性等
• 执行结构
包括性能分析、调度分析、动态配置和不同的
执行系统之间的接口等 09.03.2021
CHENLI
22
与软件体系结构有关的研究:
我国伟大的教育家、思想家 陶行知
提出了“生活即教育”、“社会即学校”、 “教学做合一”三大教育主张。
“千教万教教人求真,千学万学学做 真人”
“有其内必形诸外”
“勿以恶小而为之,勿以善小而不为”
09.03.2021
CHENLI
1
什么是“工程”?
定义有很多,通常来说:
用最少的代价解决问题 ... ... 目的是处理实际的难题 ... ... 以科学知识为手段 ... ... 建造工具 ... ... 服务于人类
09.03.2021
CHENLI
23
好的体系结构
与大多数好的设计一样
是一系列相容的原理和技术的产 物,在项目的各个阶段保持一致
在各种变化面前表现出弹性
在产品的整个生命周期中充当向 导
09.03.2021
CHENLI
8
“建筑体系结构”
09.03.2021
CHENLI
9
“建筑体系结构”
09.03.2021
CHENLI
10
SA的定义
后人精简Garlan and Shaw的定义为:
体系结构 = 组件 + 连接件 + 约束
Architecture = Components + Connectors + Constrains
软件体系结构的书籍和课程
2000’s
09.03.2021?
CHENLI
14
技术进步
每个新的体系结构的诞生,都给技术的 进步带来深远影响
WWW 三层结构 CORBA J2EE .NET
09.03.2021
CHENLI
15
什么是软件体系结构
• 软件体系结构定义了软
件局部和总体计算部件的构 成,以及这些部件之间的相互 作用关系。
目标:使普通人能做以前只有 专家圣手才能做的事情
09.03.2021
CHENLI
2
工程的进化
09.03.2021
CHENLI
3
工程化的步伐
手工(Craft)
商业(Commerical)
行家里手和业余天才 熟练的工匠
直觉与强力
既定程序
偶然的进步
注重实效地优化
不经意的推广
言传身教
工程(Professional Engineering)

部件类型
部件支持的相互作用类型

1 模块(Module)
过程调用、数据共享
2 对象(Object)
方法调用
3 过滤器(Filter)
数据流
4 过程(Process)
消息传递、远程调用、 通讯协议、同步
5 数据文件(Data file) 读写
6 数据库(Database) 模式、查询语言
7 文 09.03档.2021(Document) C共HEN享LI 表示假设
09.03.2021
CHENLI
6
软件设计的目标和目的 软件需求:解决“做什么”
软件设计:解决“怎么做” 软件结构设计的任务
问题结构(软件需求) 映射 软件结构
09.03.2021
CHENLI
7
2.2.1 什么叫软件的体系结构
软件体系结构,又常被称为构架。
“软件体系结构”你早就知道 Client/Server Three-tier P2P Distributed ……
09.03.2021
CHENLI
16
架构不是框框—应用架构的基本思想
一个架构是一个可复用的设计构 件,它规定了应用的体系结构, 阐明了整个设计、协作构件之间 的依赖关系、责任分配和控制流 程。
09.03.2021
CHENLI
17
软件的总体结构主要回答的问题
•软件的组成部分 •软件的层次关系 •模块的内部处理逻辑 •模块之间的界面
09.03.2021
CHENLI
18
软件体系结构
软件体系结构包括两部分: (1)过程构件(模块)的层次结构 (2)数据构件
CHENLI
19
软件体系结构学习主要内容
• 软件体系结构的有关概念 • 软件体系结构的层次性 • 软件体系结构的设计原理
09.03.2021
CHENLI
20
普通部件及其支持的相互作用
受过系统教育的专业人 员
分析与理论
以科学为指导地升级换 代
专业教育课程
奢侈地使用原料
注重成本与原料利用 原料多次利用
生产是为了使用而不是 出售
为销售而生产
市场份额
09.03.2021
CHENLI
4
规范化循环
土方法
专门的解决方法
新的问题
实践提高
模型与理论
09.03.2021
CHENLI
规范化
5
2.2从需求定义到软件体系结构
相关文档
最新文档