软件工程笔记8-软件体系结构与设计模式

less than 1 minute read

Published:

致无论过去如何,都应该被深埋在五十英尺的地下,让它在泥士中腐烂。


软件体系结构与设计模式

体系结构设计中强调:系统的可理解性,可维护性,可拓展性

软件体系结构的基本概念

体系结构模式,风格,框架的概念

模式:描述出现的问题及其解决方案的核心

模型可分成:体系结构模式,设计模式,惯用法

风格:描述一种系统范畴,包括

  • 一组构建完成系统需要的某种功能
  • 一组连接件:实现构件间的通信合作协调
  • 约束,定义构件如何集成为一个系统
  • 语义模型,使设计者通过分析系统的构成成分的性质来理解系统的整体特性

框架:特定应用领域问题的体系结构模式

体系结构的重要作用

  1. 有助于风险承担者进行交流
  2. 突出早期涉及决策
  3. 软件体系结构是可传递和复用的模型

典型的软件体系结构风格

数据流风格

当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。管道/过滤器、批处理序列都属于数据流风格。 管道/过滤器结构如下图所示。

调用-返回风格

  1. 主程序-子程序体系结构
  1. 面向对象风格
  2. 层次结构

仓库风格

特定领域的软件体系结构

领域相关体系结构:特定的应用所需要的体系结构模型

类属模型

从许多实际系统中抽象处理的一般模型,封装了这些系统的主要特征

参考模型

描述了一个理想化的包含了系统应具有的所有特征的软件体系结构

分布式系统结构

分布式体系结构的主要特点:资源共享,经济型,性能与可扩展性,固有分布性,健壮性

  • 多处理器体系结构
  • 客户/服务器体系结构(C/S)(胖/瘦客户机类型) 三层C/S体系结构将整个系统分为表示层,应用逻辑层和数据层三部分
  • 浏览器/服务器(B/S)
  • 分布式对象体系结构:系统的各个模块可分在多台服务器上运行
  • 代理:构建嗲有隔离组件的分布式软件系统,代理者负责协调通信

体系结构框架

  • MVC框架:模型,视图,控制器
  • J2EE体系框架(继承自MVC框架):客户↔表示层,业务层,集成层↔资源层
  • PCMER与PCBMER框架

设计模式

  • 抽象工厂
  • 单件:一个类只有一个实例并提供一个访问它的全局访问点。该实例在系统生存期中都存在
  • 外观:给子系统的一组接口提供一套统一的高层界面,使得子系统更容易使用(类似于将子系统封装到外观类中,外观类提供方法并将实际功能转发给对应的子系统内容
  • 适配器:一个类的结构转化为客户期望的另一种接口,使得原本因接口不匹配无法合作的类可以一起工作
  • 责任链:通过一条隐式的对象消息链传递处理请求,请求沿着这条链传递,直到有一个对象处理它为止
  • 中介者:封装一系列复杂对象的交互情景,组织各对象显式调用以降低它们之间的耦合(中央信息枢纽,协调指挥行为)

    中介者和其管辖的类之间有聚合关系

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