大师兄的信息化管理学习笔记(十一):软件架构与设计模式

2023-02-09  本文已影响0人  superkmi

大师兄的信息化管理学习笔记(十):面向对象方法
大师兄的信息化管理学习笔记(十二):软件工程过程管理

一、关于软件架构设计

  • 软件架构的描述
  • 软件架构的风格
  • 软件架构的评估
  • 软件架构的形式化方法

二、 软件架构风格

风格 描述
数据流风格 批处理序列、管道/过滤器
调用/返回风格 主程序/子程序、数据抽象、面向对象、层次结构
独立构件风格 进程通信、事件驱动的系统
虚拟机风格 解释器、基于规则的系统
仓库风格 数据库系统、黑板系统、超文本系统
1. 管道/过滤器模式
  • 高内聚、低耦合
  • 支持服用
  • 便于维护
  • 支持并行
  • 需要协调
  • 性能下降
  • 实现复杂
2. 面向对象模式
  • 高度模块化
  • 数据隐藏
  • 代码共享
  • 灵活易维护
  • 对象之间调用复杂
3. 层次结构模式
4. 客户/服务器模式
5. 事件驱动模式
6. 软件架构设计考虑因素

三、软件架构评估

  • 调查问卷法:请对系统架构有经验的专家对系统架构做出主观评估。
  • 度量法:将软件系统架构量化,通过客观指标来评估架构优劣。
  • 场景评估法:筛选重要场景,根据不同场景中各架构的表现进行评估(ATAM)。
1. 场景评估法
场景 描述
刺激(stimulus) 解释或描述项目干系人怎样引发与系统的交互。
环境(environment) 刺激发生时的情况。
响应(response) 系统是如何通过架构对刺激作出反应的。

四、软件设计

  • 概要设计(软件架构设计):描述软件的组织和结构,标识各种不同的组件。
  • 软件详细设计:详细的描述各个组件,使之能被构造。
  • 结构化设计SD:是一种面向数据流的方法,他一SRS和SA阶段所产生的DFD和数据字典为基础,是自顶向下、逐步求精和模块化的过程。
  • 面向对象设计OOD:面向对象方法已可维护性和可用性为设计基础,更接近现实世界、更自然。
1. 内聚性
  • 偶然内聚
  • 逻辑内聚
  • 时间内聚
  • 通信内聚
  • 顺序内聚
  • 功能内聚
2. 耦合性
  • 无直接耦合
  • 数据耦合
  • 标记耦合
  • 控制耦合
  • 公共耦合
  • 内容耦合

五、设计模式

  • 模式名称
  • 问题描述
  • 目的
  • 解決方案
  • 效果
  • 实例代码
  • 相关设计模式
1. 设计模式的七大原则
原则 描述
开闭原则
Open CLose Principle
对扩展开放,对修改关闭。
里氏代换原则
Liskov Substitution Principle
任何基类可以出现的地方,子类一定可以出现。
依赖倒转原则
Dependence Inversion Principle
针对接口编程,依赖于抽象而不依赖于具体。
接口隔离原则
Interface Segregation Principle
使用多个隔离的接口,比使用单个接口要好。
迪米特法则
Demeter Principle
一个实体应当尽量少地与其它实体发生相互作用。
合成复用原则
Composite Reuse Principle
尽量使用合成/聚合的方式,而不是使用集成。
单一职责原则
Single Response Principle
设计功能单一的类,不要在一个类中实现多个功能。
2. 设计模型分类
  • 工厂模式
  • 抽象工厂模式
  • 单例模式
  • 建造者模式
  • 原型模式
  • 适配器模式
  • 桥接模式
  • 组合模式
  • 装饰器模式
  • 外观模式
  • 享元模式
  • 代理模式
  • 责任链模式
  • 命令模式
  • 解释器模式
  • 迭代器模式
  • 中介者模式
  • 备忘录模式
  • 观察者模式
  • 状态模式
  • 策略模式
  • 模板方法模式
  • 访问者模式

六、软件架构和设计模式

  • 都是处理一些抽象概念间的关系。
  • 设计模式是领域无关的,解决某些抽象问题。
  • 软件架构针对要解决的问题,是领域相关的。
上一篇下一篇

猜你喜欢

热点阅读