体系结构与软件工程

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

分而制之 监测与调节 简单的资源申请与释放机制
15
2018/10/5
© sun@hit.edu.cn
Security 安全
定义:在对合法用户提供服务的同时,阻止未授 权用户的使用企图。

Architect的手段:
入侵监测 防火墙
加密与解密
提供最少的入口 安全核心和外壳

2018/10/5
© sun@hit.edu.cn
3
捕获需求
通过对相似系统的总结、吸收,更利于理 解新的相似系统的需求 用户在旧系统基础上提出新需求

2018/10/5
© sun@hit.edu.cn
4
设计方案的选择
有众多已有体系结构供参考 通过对体系结构的度量,可知哪种体系结 构最有效
Modifiability Portability Reusability Integrability Testability Compatibility Economy
2018/10/5
© sun@hit.edu.cn
13
Correctness/Functionality 功能正确
定义:做该做的事情,并且作得对
9
通过观察可以得知的质量
它是否在做你所期望的事情? 它用起来方便吗? 计算结果正确吗? 算了多久? 非法用户能侵入它吗? 它多久崩溃或者停止工作一次?

2018/10/5
© sun@hit.edu.cn
10
通过观察不能得知的质量
这个系统开发了多久? 被测试了多久? 被集成了多久? 它的成本是多少? 很容易修改吗?
WWW 三层结构 CORBA
J2EE
.NET
2018/10/5
© sun@hit.edu.cn
7
SE的目标是什么?
2018/10/5
© sun@hit.edu.cn
8
软件质量
运行时质量 非运行时质量 商业质量 体系结构质量

2018/10/5
© ห้องสมุดไป่ตู้un@hit.edu.cn

Architect的手段:
广泛适用的错误恢复策略 提防不可靠的传送 冗余关键部件和通讯线路 现场切换能力 监测活跃状态和错误报告 错误产生、捕获和传播的模板 快速恢复或启动策略
2018/10/5
© sun@hit.edu.cn
18
Usability/Ease of use 易用性
难的是有的时候不知道什么是该做的 软件只能被证明有错,不能被证明无错 正确性与体系结构无关

两个同样功能的软件体系结构必须相同吗?
2018/10/5
© sun@hit.edu.cn
14
Performance 性能
定义:系统的响应时间,硬件资源的占用率
“Make it right before you make it fast” Architect的手段:
2018/10/5
© sun@hit.edu.cn
16
Robustness/Availability 鲁棒性、可信性、健壮性
定义:能长时间正确运行并快速从错误状 态恢复到正确状态

没有绝对的健壮
2018/10/5
© sun@hit.edu.cn
17
Robustness/Availability 鲁棒性、可信性、健壮性
软件体系结构 2. SA与SE
孙志岗 sun@hit.edu.cn
SA对SE的贡献
开发团队的组织结构 捕获需求 设计方案的选择 分析和描述复杂系统的高层属性 人员交流 技术进步 ……

2018/10/5 © sun@hit.edu.cn 2
开发团队的组织结构
按体系结构设计出的组件,划分开发小组 构建新的类似系统时,每个小组贡献自己 的组件
退耦
2018/10/5
© sun@hit.edu.cn
21
Portability 移植性
定义:软件可以很简单地在平台间移植

Architect的手段:
为平台/网络独立分层 建立接口标准
2018/10/5
© sun@hit.edu.cn
22
Reusability 重用性
定义:在新系统中应用已有的组件

Architect的手段:
规则和小型的模式 建立应用框架 建立产品线体系结构
2018/10/5
© sun@hit.edu.cn

2018/10/5
© sun@hit.edu.cn
11
软件质量

了解了一个方面的质量,并不能对你了解其他方 面的质量有多大帮助 但是,如果改变结构从而提高一个质量,经常会 影响其它质量 体系结构的选择极大地影响软件质量,但并不能 影响所有的质量 体系结构只为获得某个质量创造条件,但并不能 保证肯定获得
© sun@hit.edu.cn 12
2018/10/5
影响软件质量的因素

Correctness Functionality Performance Security Robustness Availability Usability Ease of use




2018/10/5
© sun@hit.edu.cn
5
分析和描述复杂系统的高层属性 方便人员交流
知道了采用的体系结构,也就知道了此系 统有何优缺点 对体系结构的命名,使交流变得简单

2018/10/5
© sun@hit.edu.cn
6
技术进步

每个新的体系结构的诞生,都给技术的进 步带来深远影响
定义:最终用户容易使用和学习

Don’t pretend you know the user; you don’t. Architect的手段:
仿照现有的工具和环境 统一的界面外观和工具 统一风格的帮助 定制?
2018/10/5
© sun@hit.edu.cn
19
Modifiability 适应性
定义:系统很容易被修改从而适应新的需 求或采用新的算法、数据结构的能力 改一个组件比改多个组件要容易 组件由体系结构定义,所以体系结构对此 影响很大

2018/10/5
© sun@hit.edu.cn
20
Modifiability 适应性

Architect的手段:
稳定的功能分解与分配 少量使用模式 信息隐藏和抽象 分层
相关文档
最新文档