总体设计(概要设计)的9个标准步骤。与常见的理论划分不同,这个流程更侧重于工程实践中的决策与落地过程。
下面逐一介绍这9个步骤,并结合新闻管理系统举例说明:
1. 设想供选择的方案
做法:根据需求分析阶段的结果,头脑风暴出多种可能的实现方案。不要局限于一种,要考虑不同的架构风格、技术栈、部署方式等。 新闻管理系统举例:
方案B:前后端分离 + 微服务架构(Spring Cloud),适合高并发。
方案C:基于Serverless的无服务器架构,按需付费。
目的:为后续对比提供素材。
2. 选取合理的方案
做法:对第一步列出的所有方案进行初步筛选,剔除那些技术上不可行、成本过高或明显不符合约束条件的方案。 新闻管理系统举例:
剔除方案C(Serverless),因为团队不熟悉该技术,且新闻系统需要长期稳定的数据库连接。
剔除方案B(微服务),因为初期用户量不大,微服务会增加运维复杂度。
保留:方案A(单体分层架构)作为候选。
3. 推荐最佳方案
做法:对保留下来的合理方案进行详细对比(成本、性能、可维护性、开发周期等),最终推荐一个最优方案,并给出理由。 新闻管理系统举例:
对比方案A和另一个改进的单体方案。
推荐:采用方案A(Spring Boot + Vue + MySQL + Redis)。
理由:开发速度快、成本低、社区资源丰富,且预留了后续拆分微服务的接口,满足当前需求且具备一定扩展性。
4. 功能分解
做法:将系统总功能自顶向下逐层分解为若干子功能,直到每个子功能足够简单、易于实现。 新闻管理系统举例:
顶层:新闻管理系统
第二层:用户管理、新闻采编、新闻发布、新闻浏览、评论管理、系统管理
第三层(以新闻采编为例):新闻录入、新闻编辑、新闻删除、新闻查询、提交审核
目的:明确系统“做什么”,为模块划分打基础。
5. 设计软件结构
做法:根据功能分解的结果,将每个子功能映射为软件模块,确定模块之间的调用关系、层次结构,遵循高内聚低耦合原则。通常用结构图(SC图)或层次图表示。 新闻管理系统举例:
绘制结构图:新闻管理系统 → 用户管理模块、采编模块、发布模块等。
定义模块接口:如
insertNews(News news)、approveNews(int newsID, int auditorID)。目的:明确系统“怎么做”的骨架。
6. 设计数据库
做法:进行概念设计(E-R图)、逻辑设计(关系模式)、物理设计(索引、存储引擎),并编写数据字典。 新闻管理系统举例:
E-R图:用户、新闻、分类、评论四个实体及其联系。
关系模式:
新闻(NewsID, Title, Content, CategoryID, AuthorID, Status, PublishTime)数据字典:字段名、类型、长度、约束、说明。
目的:为数据存储和访问提供蓝图。
7. 制定测试计划
做法:在总体设计阶段就应开始规划测试策略,包括测试范围、测试方法(单元测试、集成测试、系统测试)、测试环境、测试用例的设计思路等。 新闻管理系统举例:
单元测试:测试新闻录入模块的字段校验。
集成测试:测试“录入→审核→发布”全流程。
系统测试:测试多用户并发浏览新闻的性能。
目的:提前规划质量保障,避免后期返工。
8. 书写文档
做法:将上述所有步骤的成果整理成规范的《总体设计说明书》,包括引言、总体方案、软件结构、数据库设计、接口设计、运行设计、测试计划等。 新闻管理系统举例:
编写《新闻管理系统总体设计说明书》,包含架构图、结构图、E-R图、API列表、部署图等。
目的:形成可评审、可追溯、可指导详细设计的基线文档。
9. 审查和复审
做法:组织评审会,邀请开发、测试、需求方参加,检查设计的完整性、一致性、可行性。记录问题并整改,评审通过后基线化。 新闻管理系统举例:
评审要点:是否覆盖所有需求?模块划分是否合理?数据库外键是否正确?API是否满足前端调用?
评审通过后,进入详细设计阶段。
目的:质量把关,确保设计方向正确。
总结
这9个步骤形成了一个完整的总体设计闭环:
设想方案 → 选取合理 → 推荐最佳 → 功能分解 → 设计结构 → 设计数据库 → 制定测试 → 书写文档 → 审查复审
其中,前3步是方案决策,4-6步是核心设计,7-8步是规划与文档化,第9步是质量把关

