了解应用设计的基本步骤和模块构成 掌握应用分析中各模块基本分析方法和 tips

对一份好的应用分析有初步体感

WHAT - 什么事应用设计

image.png

应用设计来源于应用分析。业务分析基于对业务数据的核心理解和分析,产出了业务用例、业务规则、业务流程。这些是应用设计的关键输入。应用设计会基于业务的详细流程进行功能的拆解,明确每一个应用要承担的功能,以及所要提供的服务,并且对所需要的服务做一个详细的设计,并最终产生我们的一个最终的技术方案。

HOW - 怎么做应用设计

image.png1、应用协作分析
目的

  • 根据业务流程将应用系统和系统处理流程串联起来
  • 明确每个应用的主要职责和提供的服务

关注点

  • 系统间的协作流程要尽可能完善
  • 单系统内部的流程可以简略
  • 如果设计的系统非常多,可以简略一些非关键的流程

2、应用系统服务边界设计

  • 服务边界模型:提供者、使用者、服务、说明、规约
  • 接口定义(语法、语义、语用、约束)

image.png
3、应用内部影响分析及结构设计

  • 领域模型设计
  • 状态机设计
  • 内部系统详细用例设计
  • 对外影响分析
  • 兼容性依赖分析

领域模型设计

  • 最小化减轻领域专家和软件架构师之间的误解,并且减少了后续昂贵的需求变化的数量
  • 业务专家和开发共同探讨和确定的领域实体概念
  • 约束说明

状态机设计(重点在约束)
image.png
内部应用影响系统详细用例分析设计

  • 系统用例 —— 基于业务用例拆解,代表一个具有特定职责(功能)的独立模块,关注本模块如何实现
  • 系统详细用例分析一些 tips
    • 命名:最好是“主谓”结果
    • 模版
      • 使用/发生场景
      • 选的几种方案,优劣,以及为什么选定最后的方案
      • 具体的流程图,可以通过时序图或流程图体现,当是新建系统或者复杂模型建议通过流程图。图要抽象,突出主路径和关键的地方,再配以文字说明
      • 每个流程节点相当于一个内部方法,可以指导后续的编码
      • 注意点 & 问题:比如允许的合并支付最大笔数;资损风险点;一些你特别想说的
    • 文档编辑技巧
      • 文档结构化描述

image.png

4、对外影响分析

  • 应用服务变更对外围的影响
    • 服务入参、返回对象变更
    • 数据变更
  • 应用协作变更造成的外围影响
    • 非功能性影响
      • 新增对某个系统调用造成对下游容量影响
      • 新增比较多 DB 操作对 DB 容量的影响
    • 功能性影响
      • 分布式事务链路里面,新增参与者
      • 调用去除对下游信息变化带来的影响
  • 新业务功能分析
    • 新增功能对外围改造影响分析
      • 代码配合改造
        • 消费记录影响分析(做什么改造,重点关注什么)
        • 转账中心影响分析
      • 配置新增