软件开发生命周期 (SDLC:Software Development Life Cycle) 经历多个阶段,如规划、需求评估、分析、设计、执行、文档、测试等。每个阶段进一步分为具有适当定义的目标和结果的任务。
分析和设计是确定构建软件产品的实际架构、工作模型和执行过程的阶段。
这些阶段的两个关键步骤是高级系统设计和低级系统设计。
什么是高级系统设计?
高级设计 (HLD:High-Level Design) 提供软件开发过程的全面概述,以及系统架构、应用程序、数据库管理以及系统和导航的完整流程图。它是一个蓝图,整合了开发软件的各个步骤和模块、它们的目标、可变组件、结果、架构和时间表。HLD 将商业计划转化为软件产品或服务。
软件开发中的 HLD 示例包括系统架构文档、应用程序开发流程图等。
什么是低级系统设计?
低级设计 (LLD:Low-Level Design) 在单个级别处理 HLD 中各种组件、模块和步骤的规划、编码和执行。HLD 中的每个模块都有一个独特的 LLD 文档,该文档提供了有关如何对模块进行编码、执行、质量测试以及如何集成到更大程序中的全面详细信息。LLD 通过将 HLD 组件解构为工作解决方案来提供可操作的计划。
软件开发中的 LLD 示例包括购物车集成、安全测试、用户界面设计等。
HLD和LLD之间的区别
HLD 和 LLD 还具有不同的功能和用途,例如高级编程语言和低级编程语言。
宏观与微观架构和设计
HLD 是一种宏观设计,提供软件开发过程的鸟瞰图。它包括图表、流程图、导航细节和其他将构成开发过程关键的技术要求。
除了流程图、图表、导航信息和技术要求外,LLD 还提供有关 HLD 的每个组件的逐步执行的全面信息。它处理微观层面的软件开发。
HLD 的每个组件都有一个唯一的 LLD 文档。
发展年表
HLD 先于 LLD 阶段。一旦 HLD 到位并获准执行,就可以开始对各个 LLD 的工作。
HLD 在规划和需求阶段得到处理后开始,并且没有其他依赖关系。
另一方面,LLD 需要以特定的顺序执行。一些模块必须等待执行,直到其他模块完成。
LLD 属于 SDLC 的设计阶段,而 HLD 属于 SDLC 的分析阶段。
目的
HLD 的目的是列出各种模块的功能方面以及最终结果。
LLD 的目的是详细说明 HLD 中每个模块的逻辑和执行。
利益相关者
解决方案架构师负责创建 HLD 文档。它可以有内部和外部的利益相关者,例如负责了解软件指标的审查团队、设计团队、客户和经理。
LLD 由公司或供应商团队中的软件开发人员、Web 管理员、安全工程师等处理。LLD 通常仅限于内部利益相关者。
目标听众
HLD 文档的目标受众是经理、客户和软件开发团队。
从事该项目的软件工程师、编码人员、测试人员和开发人员是 LLD 文档的目标受众。
预期结果
HLD 的结果是准备好交付给最终用户的软件产品或服务。
LLD 的结果是完成 HLD 的单个模块,例如编码或测试阶段。
了解软件设计文档
除了技术要求和其他实现细节之外,软件设计文档还概述了开发软件产品或服务的结构、功能和逻辑方面。无论设计是处理宏观层面还是微观层面的执行,程序员和其他利益相关者都应该知道和理解软件开发过程的范围和各个步骤。