软件工程笔记8-软件体系结构与设计模式
Published:
致无论过去如何,都应该被深埋在五十英尺的地下,让它在泥士中腐烂。
软件体系结构与设计模式
体系结构设计中强调:系统的可理解性,可维护性,可拓展性
软件体系结构的基本概念
体系结构模式,风格,框架的概念
模式:描述出现的问题及其解决方案的核心
模型可分成:体系结构模式,设计模式,惯用法
风格:描述一种系统范畴,包括
- 一组构建完成系统需要的某种功能
- 一组连接件:实现构件间的通信合作协调
- 约束,定义构件如何集成为一个系统
- 语义模型,使设计者通过分析系统的构成成分的性质来理解系统的整体特性
框架:特定应用领域问题的体系结构模式
体系结构的重要作用
- 有助于风险承担者进行交流
- 突出早期涉及决策
- 软件体系结构是可传递和复用的模型
典型的软件体系结构风格
数据流风格
当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。管道/过滤器、批处理序列都属于数据流风格。 管道/过滤器结构如下图所示。

调用-返回风格
- 主程序-子程序体系结构

- 面向对象风格
- 层次结构
仓库风格

特定领域的软件体系结构
领域相关体系结构:特定的应用所需要的体系结构模型
类属模型
从许多实际系统中抽象处理的一般模型,封装了这些系统的主要特征
参考模型
描述了一个理想化的包含了系统应具有的所有特征的软件体系结构
分布式系统结构
分布式体系结构的主要特点:资源共享,经济型,性能与可扩展性,固有分布性,健壮性
- 多处理器体系结构
- 客户/服务器体系结构(C/S)(胖/瘦客户机类型) 三层C/S体系结构将整个系统分为表示层,应用逻辑层和数据层三部分
- 浏览器/服务器(B/S)
- 分布式对象体系结构:系统的各个模块可分在多台服务器上运行
- 代理:构建嗲有隔离组件的分布式软件系统,代理者负责协调通信
体系结构框架
- MVC框架:模型,视图,控制器

- J2EE体系框架(继承自MVC框架):客户↔表示层,业务层,集成层↔资源层

- PCMER与PCBMER框架
设计模式
- 抽象工厂


- 单件:一个类只有一个实例并提供一个访问它的全局访问点。该实例在系统生存期中都存在
- 外观:给子系统的一组接口提供一套统一的高层界面,使得子系统更容易使用(类似于将子系统封装到外观类中,外观类提供方法并将实际功能转发给对应的子系统内容

- 适配器:一个类的结构转化为客户期望的另一种接口,使得原本因接口不匹配无法合作的类可以一起工作

- 责任链:通过一条隐式的对象消息链传递处理请求,请求沿着这条链传递,直到有一个对象处理它为止


中介者:封装一系列复杂对象的交互情景,组织各对象显式调用以降低它们之间的耦合(中央信息枢纽,协调指挥行为)
中介者和其管辖的类之间有聚合关系

- 观察者:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象得到通知并自动更新

