论基于架构的软件设计方法及应用
本文围绕基于架构的软件设计 ABSD方法论展开论述结合本人主持开发的某地市政务一体化审批平台项目阐述 ABSD 自顶向下、迭代细化的设计思路与落地流程。项目建设目标是整合发改、住建、市场监管多部门行政审批业务需求存在分期落地、部分业务规则随政策动态调整的特点契合 ABSD 适配需求不完全明确系统的优势。文中依次介绍 ABSD 六大设计步骤、架构风格选型、架构模板落地实践分析项目在性能、可扩展性、可维护性等质量属性落地过程中的解决措施总结 ABSD 在产品线化、长周期政务系统中的优势与落地难点。实践表明ABSD 以架构为核心牵引全流程设计有效化解需求渐进式变更带来的架构频繁重构问题保障平台平稳迭代上线。一、引言数字化政务建设背景下多地政务审批系统由分散独立业务系统向一体化中台演进。我 2023 年任职某科技公司系统架构师全权负责市级一体化政务审批中台架构设计与落地项目工期 12 个月分三期上线一期落地企业开办、不动产登记高频审批事项二期接入人社、卫健等小众事项三期拓展跨省通办、智慧审批 AI 辅助模块。项目痛点突出政策持续更新导致部分业务需求无法一次性确定、后续需不断接入新委办局业务系统生命周期长达 8 年以上属于典型长生命周期、需求渐进明确类项目。项目前期对比瀑布、RUP、敏捷等开发模型瀑布模型固化全量需求不适配需求分期落地纯敏捷缺少顶层架构约束后期容易形成烟囱式代码。经方案评审项目选用ABSD 基于架构的软件设计方法作为核心设计框架。ABSD 依托商业、质量、功能三类需求驱动架构迭代自顶向下递归拆分架构依靠架构风格、架构模板落地非功能需求完美匹配本项目需求渐进、长线迭代、多业务接入的建设特征。下文结合项目实践详解 ABSD 设计流程、落地应用、优缺点总结。二、ABSD 方法理论概述2.1 ABSD 核心思想ABSD 全称基于架构的软件设计核心是以架构驱动设计全过程区别于传统先细化需求再做设计的思路在项目总体业务框架确定后即可启动架构设计不必等待全部需求落地。整体遵循自顶向下逐层分解、递归迭代细化原则从顶层业务架构→系统架构→子系统架构→模块架构逐层拆分。ABSD 设计受三类需求共同约束功能需求系统需要实现的审批业务、表单填报、流程流转等功能性内容质量需求非功能性能、安全性、可扩展性、易用性、容错性等系统质量属性商业需求项目建设周期、运维成本、后续政务业务扩容、政策适配、国产化适配等业务目标。2.2 ABSD 标准六大设计步骤步骤 1明确商业需求划分业务上下文梳理项目建设目标、行业约束、成本周期、后续产品线规划步骤 2细化质量属性需求确定质量场景针对性能、安全、扩展等指标量化验收标准步骤 3提取关键功能进行顶层功能拆分提炼系统核心业务划分一级子系统步骤 4选择合适架构风格匹配质量与业务诉求分层架构、微服务、事件驱动、管道过滤器等风格选型步骤 5基于架构模板细化子系统架构复用成熟架构模板递归细化各子模块步骤 6迭代验证架构依据新增需求递归优化伴随需求补充迭代优化架构完成递归细化。2.3 ABSD 关键特性架构风格落地质量需求不同架构风格天然适配不同质量属性通过选型落地非功能指标架构模板复用复用行业成熟架构模板降低重复设计成本提升架构规范性适配需求不完备场景总体业务框架确定即可开工剩余需求在迭代中补充设计适配软件产品线、长生命周期系统。三、ABSD 在政务审批平台中的项目实践本政务审批中台按照 ABSD 六步流程分步落地架构设计项目整体拆分统一门户、审批流程引擎、事项资源中台、数据共享中台、运维监控平台五大顶层子系统。3.1 第一步梳理商业需求划定系统边界从政务建设商业目标出发明确三大商业约束业务目标分期接入全市 30 余个委办局审批事项实现一网通办远期打造地市政务审批产品线可复用架构快速落地区县子平台成本目标采用国产化软硬件降低后期运维人力成本生命周期目标系统生命周期≥8 年兼容未来政务改革政策带来的业务调整。 结合以上商业需求划定系统边界剥离各部门原有老旧业务系统本平台仅做统一受理、流程调度、数据互通原有存量系统保留数据源对接接口。3.2 第二步定义质量需求构造质量场景围绕政务系统行业特点梳理关键质量需求并量化场景可扩展性新增委办局事项接入无需改动核心引擎代码接入周期≤3 个工作日性能需求早高峰 9:00-11:00 并发填报≥2000 用户单表单提交响应 500ms安全性政务涉密数据加密存储接口访问权限细粒度管控符合等保三级标准可修改性审批流程规则随政策变更配置化修改无需重新编译发布。 以上质量指标作为后续架构风格选型的硬性依据。3.3 第三步提取核心功能自顶向下拆分功能依托已确定的整体业务框架在未拿到全部委办局明细需求的前提下提炼共性核心功能统一身份认证、在线表单、审批流程流转、跨部门数据交换、电子证照管理。基于 ABSD 自顶向下思路拆分顶层架构接入层统一门户、移动端小程序、政务终端业务层流程引擎、事项管理、表单引擎数据层共享数据库、文件存储、缓存中间件运维层日志、监控、权限管理。 剩余各委办局个性化审批需求在二期、三期迭代阶段逐步细化、补充子模块设计体现 ABSD 无需全需求即可开工的优势。3.4 第四步选型架构风格落地质量属性结合质量需求混合选用分层架构 微服务架构 管道过滤器架构三种架构风格整体采用分层架构接入层 - 应用层 - 数据层三层隔离提升系统可维护性分层解耦满足政策迭代修改需求核心业务采用微服务架构把流程引擎、证照服务、数据交换拆分为独立微服务独立部署扩容满足高峰期并发性能、横向扩展需求新增事项只新增对应微服务不用改动核心平台跨部门数据交互模块使用管道过滤器风格各部门异构数据源作为过滤器数据经过清洗、转换、校验后汇入共享中台轻松适配不同部门老旧系统数据格式提升数据接入灵活性。 通过架构风格选型从架构层面落地性能、扩展、可修改等非功能需求是 ABSD 方法的关键落地环节。3.5 第五步复用政务行业架构模板递归细化子系统ABSD 强调架构模板复用项目复用成熟政务中台架构模板模板内置统一权限框架、国产化适配组件、政务接口规范。以审批流程引擎子系统举例依托模板递归细化引擎→流程定义模块、节点审批模块、表单绑定模块、催办消息模块每个子模块继续拆分接口层、逻辑层、持久层实现多层递归细化设计。模板复用大幅减少基础组件重复开发缩短项目一期开发周期 20%。3.6 第六步迭代优化架构适配增量需求项目二期启动时新增卫健、文旅小众审批事项三期新增 AI 智能预审模块。按照 ABSD 递归迭代思想在原有顶层架构不变前提下向下新增对应微服务模块不改动平台核心架构。针对高峰期偶发接口超时问题迭代优化缓存架构引入 Redis 集群优化热点表单数据持续根据增量需求微调下层架构实现架构渐进式完善。3.7 落地成效平台一期顺利上线后接入 12 个部门高频事项二期快速拓展至 28 个部门新增事项接入平均 2 天完成完全满足可扩展质量指标高峰期并发稳定在 2300 用户响应时间达标验证 ABSD 在需求分期项目中的落地价值。四、ABSD 应用优缺点分析4.1 优势适配需求不确定场景本项目总体框架确定即可启动设计不用等全部需求适配政务分期落地、软件产品线项目质量需求前置落地在架构选型阶段就通过架构风格落地非功能需求避免传统开发后期才发现性能、扩展缺陷架构模板复用降本增效依托行业模板减少基础设计工作量利于后续快速衍生区县审批子平台打造政务软件产品线自顶向下架构统一管控从顶层约束系统结构避免各模块无序开发形成烟囱系统提升整体架构一致性。4.2 落地难点与改进措施难点 1前期架构设计工作量偏大需要架构师深入熟悉业务与各类架构风格对架构人员能力要求高。改进提前沉淀行业架构库积累标准化模板难点 2极端颠覆性商业需求出现时顶层架构存在重构风险。改进架构预留扩展插槽核心层最小化关键业务做接口抽象隔离难点 3小体量项目使用 ABSD 容易过度设计。改进小项目精简 ABSD 步骤简化顶层拆分粒度。五、总结本次政务一体化审批平台项目依托 ABSD 基于架构的软件设计方法完成全流程架构设计充分发挥 ABSD 以三类需求驱动、自顶向下迭代、依托架构风格与模板落地的优势完美解决项目需求分期落地、长生命周期、业务持续扩容的痛点。通过六大步骤落地分层 微服务 管道过滤器混合架构保障系统各项质量属性落地实现分阶段平稳上线。ABSD 更适合软件产品线、长生命周期、需求渐进明确的大中型软件项目不适用于小型快速原型项目。后续工作中我将持续沉淀政务领域架构模板库优化 ABSD 落地流程在后续同类政务产品线项目中进一步发挥 ABSD 架构驱动的设计价值。