整体架构图和功能架构图是软件系统开发过程中常见的两种架构图,用于描述软件系统的结构和组成部分。虽然它们都是架构图,但是它们的目的和使用场景有所不同。下面将分别介绍整体架构图和功能架构图的特点和使用。

整体架构图

整体架构图是用来描述软件系统整体结构和各个组成部分之间的关系的高层架构图。它以系统的整体为视角,展示了系统的核心组件、模块以及这些组件之间的关系。整体架构图通常由系统架构师或者软件设计人员绘制,用于帮助团队成员更好地理解系统的组成和结构。

整体架构图是面向概念层次的,关注的是系统的整体设计和组织。它不涉及具体的实现细节,而是强调系统的模块划分、模块之间的依赖关系、模块之间的通信方式等。因此,整体架构图通常使用高层次的抽象语言和图形符号来表示,例如UML(统一建模语言)。

下面是一个使用mermaid语法绘制的整体架构图的示例:

erDiagram
    CUSTOMER }|..|{ ORDERS : has
    CUSTOMER ||--o{ INVOICE : has
    CUSTOMER ||--o{ PAYMENT : has
    ORDERS ||--|{ ORDER_LINE : has
    INVOICE ||--|{ INVOICE_LINE : has
    PAYMENT ||--|{ PAYMENT_LINE : has

在这个示例中,我们展示了一个简单的电子商务系统的整体架构图。其中,CUSTOMER(顾客)拥有多个ORDERS(订单),CUSTOMER还与INVOICE(发票)和PAYMENT(支付)之间存在关联关系。类似地,ORDERS与ORDER_LINE(订单项)之间也存在关联关系。这个整体架构图帮助我们理解了系统的核心组件以及它们之间的关系。

功能架构图

功能架构图是用来描述软件系统的功能模块和功能之间的关系的架构图。它强调系统的功能组成和功能之间的协作关系,用于帮助开发团队了解系统的功能设计和功能划分。

功能架构图通常由系统分析师或者需求工程师绘制,用于帮助团队成员更好地理解系统的功能需求和功能模块之间的关系。功能架构图关注的是系统的功能划分和功能之间的调用关系,不涉及具体的实现细节。

下面是一个使用mermaid语法绘制的功能架构图的示例:

classDiagram
    class Customer {
        +name: String
        +email: String
        +placeOrder(): void
        +makePayment(): void
    }

    class Order {
        +id: Integer
        +items: List<Item>
        +calculateTotalPrice(): Double
    }

    class Item {
        +id: Integer
        +name: String
        +price: Double
    }

    class Payment {
        +id: Integer
        +amount: Double
        +status: String
        +processPayment(): void
    }

    Customer -- Order : places
    Customer -- Payment : makes
    Order -- Item : contains

在这个示例中,我们展示了一个简单的电子商务系统的功能架构图。其中,Customer(顾客)拥有placeOrder(下订单)和makePayment(进行支付)的功能。Order(订单)拥有calculateTotalPrice(计算总价)的功能。Payment(支付)拥有processPayment(处理支付)的功能。类似地,Customer和Order之间存在places(下订单)的关系,Customer和Payment之间存在makes(进行支付)的关系,Order和Item之间存在contains(包含)的关系。

通过功能架构图,我们可以清晰地了解到系统的功能模