NoteDeep
软件体系结构
/
2 概述
课程简介
1 IT往事
2 概述
3 软件体系结构的研究与发展
4 软件体系结构的层次性
5 软件体系结构的设计原理
6 部件与连接器
7 软件体系结构的一般描述
8 设计模式
体系结构
是指整个系统构成的基本和主体形态。
体系结构成为建立和考察系统的总体指导或基本出发点
软件的复杂性打破了以往硬件与软件的平衡,SA被提出了
软件体系结构
是软件在设计构成上的
基本、可供设计选择
的
形态和总体结构
。
软件设计中可供选择的结构形态
每个结构概念都传达了一些信息
有关领域愈是成熟和发展,人们对结构的认识也就愈加深刻
SA概念的提出和应用,说明了软件设计技术在高层次上的发展并走向成熟
软件体系结构的发展
软件体系结构构成
软件体系结构定义了软件的
局部和总体计算部件
的构成,以及这些
部件之间的相互作用
关系。
体系结构是由
结构和功能各异、相互作用
的部件集合,按照
层次
构成的。
体系结构的各组成部分应该易于被
重用
以组成更大的或者新的系统
层次的规范性便于进行
系统功能和非功能性分析
SA的定义:
体系结构 = 组件 + 连接件 + 约束
Architecture = Components + Connectors + Constrains
体系结构的类别:
概略型
需求型
设计型
好的软件体系结构,是好的软件的必要条件。
SE的目标:软件质量
软件质量:
运行时质量
非运行时质量
体系结构质量
通过观察可以得知的质量
通过观察不能得知的质量
影响软件质量的因素
1
Correctness/Functionality 功能正确
定义:做该做的事情,并且作得对
软件只能被发现有错,不能被证明无错
正确性与体系结构无关
2
Performance性能
定义:系统的响应时间,硬件资源的占用率
Architect的手段:
分而制之
监测与调节
简单的资源申请与释放机制
3
Security 安全
定义:在对合法用户提供服务的同时,
阻止未授权用户的使用企图
。
Architect的手段:
入侵监测
防火墙
加密与解密
提供最少的入口
安全核心和外壳
4
Robustness/Availability鲁棒性、可信性、健壮性
定义:能长时间正确运行并快速从错误状态恢复到正确状态
没有绝对的健壮
Architect的手段:
广泛适用的错误恢复策略
提防不可靠的传送
冗余关键部件和通讯线路
现场切换能力
监测活跃状态和错误报告
错误产生、捕获和传播的模板
快速恢复或启动策略
5
Usability/Ease of use易用性
定义:最终用户容易使用和学习
Don’t pretend you know the user; you don’t.
Architect的手段:
仿照现有的工具和环境
统一的界面外观和工具
统一风格的帮助
6
Modifiability适应性
定义:系统
很容易被修改
从而适应新的需求或采用新的算法、数据结构的能力
改一个组件比改多个组件要容易,但改变一个体系结构则难得多
组件由体系结构定义,所以体系结构对此影响很大
Architect的手段:
稳定的功能分解与分配
信息隐藏和抽象
分层
退耦
7
Portability移植性
定义:软件可以很简单地在平台间移植
Architect的手段:
为平台/网络独立分层
建立接口标准
8
Reusability 重用性
定义:在新系统中应用已有的组件
Architect的手段:
规则和小型的模式
建立应用框架
建立产品线体系结构
9
Integrability 集成性
定义:
让分别开发的组件在一起正确的工作
Architect的手段:
最小化接口的复杂度
限制交互机制和协议的数量
建立产品线体系结构
统一的命名规范
10
Testability可测性
定义:让软件容易被证明是错的
Architect的手段:
自检、捕获、回放、故障注入和报告
一致的错误处理方式
11
Compatibility兼容性
定义:易于把软件元素
和其他软件结合
Architect的手段:中间件
12
Economy 经济效益
定义:开发成本、开发时间和对市场的适应能力
Architect的手段:
正确的选择体系结构
组件重用
Modifiability
怎样提高质量?
使体系结构:
易于理解
可度量
可复用
可文档化
易于交流和执行
当前的软件设计
体系结构的理论和工具是解决软件复杂性和工程设计的必由之路
软件设计的层次
层次划分
是人们考虑并解决问题的方式方法
每个层次的设计可单独进行
低层次级为了高层次级服务
每个层次都包括:
构成系统的
部件
部件合成系统的
规则
软件设计的层次
结构级
代码级
执行级
体系结构与软件的工程设计
实现体系结构指导下的软件工程设计,关键就是要
建立软件结构的分析和构造方法
。
软件复用
就是具有特定性能的
模式
或
部件
在不同应用中的多次频繁使用。
体系结构对于软件具有
宏观
的视角,但体系结构设计的问题包含了软件结构的
各个层次
。
软件体系结构风格为
大粒度的软件重用
提供了机会。
软件体系结构的知识体系
评论列表
评论...
发表
软件体系结构的发展
软件体系结构构成
SE的目标:软件质量
影响软件质量的因素
怎样提高质量?
当前的软件设计
软件设计的层次
体系结构与软件的工程设计
软件体系结构的知识体系