软件设计 ============= FAQ --------- 软件设计中的概要设计和详细设计有什么区别? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 软件设计中的概要设计和详细设计有以下区别: 1. 粒度:概要设计的粒度更大,关注系统的整体框架和体系结构;详细设计的粒度更小,关注每个模块和组件的具体实现。 2. 抽象程度:概要设计更加抽象,只定定义模块和组件之间的关系、接口和交互;详细设计更加具体,定义每个模块和组件内部的详细逻辑和算法。 3. 变动性:概要设计的变动性更大,体系结构的变更会影响整个系统;详细设计的变动性更小,模块内部的变更影响更加局限。 4. 依赖性:后续的详细设计依赖于早期的概要设计,但概要设计则比较独立。 5. 实施顺序:概要设计先行,详细设计后续,软件实施过程也遵循这个顺序。 所以,总体来说,概要设计关注 forest,定义系统框架和体系结构;详细设计关注 trees,定义每个模块的详细功能和算法。它们有着不同的粒度、抽象程度和依赖性,软件设计过程也按照从概要到详细的顺序逐步实施。概要设计为详细设计提供了基础和指导,两者共同驱动软件系统设计的完备性和质量。 软件概要设计和详细设计的另一种解释 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 概要设计:Architectural Design 或 High-level Design, | 详细设计:Detailed Design 或 Low-level Design, | 概要设计关注系统的整体架构,定义各个模块和组件之间的关系。它是高层次的设计,对应着系统的宏观视角。 | 详细设计关注每个模块内部的具体实现细节,定义详细的逻辑和算法。它是低层次的设计,对应着系统的微观视角。 | 所以,Architectural Design与Detailed Design可以视为软件设计的宏观层面与微观层面,它们共同确保设计的完备与质量。 | 高层次的设计为低层次的设计提供指导,而低层次的设计也反过来验证高层次设计方案的可行性。 | 除此之外,概要设计也被称为“顶层设计”或“框架设计”,详细设计也被称为“底层设计”或“逻辑设计”。 | 而按照软件工程的设计过程,我们通常先进行概要设计,然后是详细设计,最终才进入代码实施的阶段。 | 所以,Architectural Design和Detailed Design在软件系统设计过程中有着非常重要而紧密的逻辑关系。它们共同推动设计的完备性与质量,是高质软件设计不可或缺的两个层面。