Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 2.23 KB

11.2.md

File metadata and controls

59 lines (43 loc) · 2.23 KB

11.2. 办公室里的争论

11.2.1. 故事:办公室里,争论正酣

办公室里,关于什么是软件架构,争论正酣。

程序员说,软件架构就要决定要编写哪些类,使用哪些现成框架(Framework)。

程序经理说,软件架构就是模块的划分和接口的定义。

系统分析员说,软件架构就是为业务领域对象的关键建模。

配置管理员说,软件架构就是开发出来的及编译后的软件到底是啥结构。

数据库工程师说,软件架构规定了持久化数据的结构,其他一切不过是对数据的操作而已。

部署工程师说,软件架构规定了软件部署到硬件的策略。

用户说,软件架构就是决定一个个功能子系统如何划分。

大家想了想说,这些架构视图好像我们都需要啊,软件架构师哭了。

11.2.2. 探究:优秀的多视图方法,应贴近实践

上述争论可以总结为一句话:不同涉众看待软件架构的视角是不同的

但是,实际工作中架构师的工作范围如此广泛,多视图方法能系统的涵盖吗?例如:

  • 进程、线程的相关设计
  • 接口的定义
  • 子系统的划分
  • 服务器的选型
  • (若你用C)结构化方法的模块设计“放”哪里?
  • 考虑Layer(逻辑层)
  • 考虑Tier(物理层)
  • (基于并行开发的需要)源程序目录结构的定义
  • 数据分布与数据库Schema
  • (若没选RDBMS而选了文件方式)文件格式的定义
  • (嵌入式系统常将数据保存到FlashFlash存储结构的定义
  • ......

答案是:贴近实践的多视图方法,应将各项工作涵盖其中

  • 运行架构
    • 进程、线程的相关设计
  • 逻辑架构
    • 接口的定义
    • 子系统的划分
    • (若你用C)结构化方法的模块设计“放”哪里?
    • 考虑Layer(逻辑层)
  • 物理架构
    • 服务器的选型
    • 考虑Tier(物理层)
  • 开发架构
    • (基于并行开发的需要)源程序目录结构的定义
  • 数据架构
    • 数据分布与数据库Schema
    • (若没选RDBMS而选了文件方式)文件格式的定义
    • (嵌入式系统常将数据保存到FlashFlash存储结构的定义