Skip to content

架构设计

架构设计三步曲

第一阶段,需求把握阶段

架构师需要先理解需求,对需求进行分类。

软件需求又分为三个层次:

  • 业务级需求
  • 用户级需求
  • 开发级需求

架构设计之前要抓住关键目标,判断目标之间的冲突,制定权衡取舍的策略。例如,性能优先还是扩展性优先。

  • 需求结构化,分析需求影响因素,建立全面有序的理解;
  • 分析约束影响,识别隐含的需求;
  • 确定关键目标,识别目标间的冲突,制定权衡取舍的策略;
  • 确定关键功能,有针对性地分配有限的设计时间。

第二阶段,概念架构设计阶段

初步设计

重大需求特色需求高风险需求做为架构设计的入口,进行初步设计。通过对重大需求用例进行鲁棒图分析,识别出功能职责协作链的各个组成部分。

高层分割

高层分割的方法主要有两种:分系统为系统,分系统为子系统。

第三阶段,架构细化阶段

逻辑架构设计

逻辑架构设计可以从以下三步来实现:

  • 根据职责划分结构单元
  • 将结构单元组织起来完成功能
  • 根据功能和质量要求对设计进行质疑,完善设计,并确定他们之间的接口

划分结构单元的原则有:

  • 职责不同的单元分在不同的子系统
  • 不同的通用性的单元分在不同的子系统
  • 需要的技术不同,分在不同的子系统
  • 根据工作量均衡原则对工作量大的子系统再做细分

划分手段有:

  • 分层
  • 引入分区
  • 提取机制

物理架构设计

物理架构设计可以从以下三步来实现:

  • 选取硬件和拓扑结构
  • 将逻辑单元影射到物理节点
  • 关注非功能性要求,对架构进行优化

目标要“功/守/降/避”十个目标:

  • 攻:高性能、可用性、可扩展性
  • 守:经济性、可行性、可维护性
  • 降:降低节点内性能开销、降低节点间通信开销
  • 避:避免节点内 CPU、内存、磁盘资源的争用,避免节点间网络带宽的争用

开发架构设计

开发架构设计主要工作:

  • 逻辑单元和程序单元的影射
  • 选用什么开发语言和开发工具
  • 工程的划分如何,目录结构如何,程序单元之间的关系如何,编译与依赖关系如何?

数据架构设计

数据库架构设计很关键,常常影响系统的成败。