Software/Application 高级设计
Software/Application High Level Design
开发现有 software/application 的高级设计的标准或建议是什么?是否有任何可以遵循的参考指南来构建高级设计?以便所有利益相关者以相同的方式理解设计。
您可以从域开始。领域是利益相关者(业务)和开发之间的通用语言。很好地解释和理解领域是高级架构的第一部分。
据我了解,问题是关于开发和表示现有应用程序的高级设计。假设利益相关者来自不同的背景,而不仅仅是技术人员,那么可以有多种方式来表示设计。我将从以下内容开始:
用例图 - 任何系统通常都会有参与者以及参与者与系统交互的各种场景。用例图有助于展示系统的不同场景 - 例如 - 对于购物应用程序 - 用户浏览产品、用户搜索产品、用户查看产品详细信息、用户进行购买等。这样我们可以捕获系统提供的所有功能以及不同参与者如何与系统交互。为了保持高水平,可以包括重要的场景,排除不重要的场景。
流程图 - 虽然是一种非常传统的图表,流程图仍然非常有效地传达了很多信息。数据流或过程可以用流程图表示。一个系统可以进行许多顺序的 and/or 并行活动。许多系统都有一个开始(触发)点,而一些系统是循环的(有一个循环)。此外,系统可以根据条件具有备用路径。这些决策点和备用路径可以很好地用流程图表示。
ER 图 - 任何系统通常都有一些实体,并且这些实体以某种方式与其他实体相关联。例如,客户实体与订单实体相关联,并且具有一对多关系。流程图和用例图侧重于 data/process 的流程和交互,而 ER 图侧重于实体之间的关系。它提供了一种很好的方式来了解系统中涉及的高级实体以及它们之间的关系。通常这些关系是持久的,它们不会随着数据流或流程的变化而频繁变化。
部署图 - 另一个提供不同类型信息的图是系统的部署图。然而,这是更具技术性的,可能不需要很高的水平,但我认为它提供了很大的价值。基本上在部署图中,我们指定了系统的部署方式。例如,在在线购物应用程序中,该图可以显示一个代表浏览器的矩形框,然后显示当请求首次到达服务器时首先联系的负载均衡器,然后显示处理请求的应用程序服务器,包括缓存服务器,显示数据库,排队机制,如 Kafka 等。通过对部署进行建模,人们可以获得对使整个系统正常运行所涉及的计算机系统的高级概览。
希望这个回答有意义,并为您的问题提供一些指导。
开发现有 software/application 的高级设计的标准或建议是什么?是否有任何可以遵循的参考指南来构建高级设计?以便所有利益相关者以相同的方式理解设计。
您可以从域开始。领域是利益相关者(业务)和开发之间的通用语言。很好地解释和理解领域是高级架构的第一部分。
据我了解,问题是关于开发和表示现有应用程序的高级设计。假设利益相关者来自不同的背景,而不仅仅是技术人员,那么可以有多种方式来表示设计。我将从以下内容开始:
用例图 - 任何系统通常都会有参与者以及参与者与系统交互的各种场景。用例图有助于展示系统的不同场景 - 例如 - 对于购物应用程序 - 用户浏览产品、用户搜索产品、用户查看产品详细信息、用户进行购买等。这样我们可以捕获系统提供的所有功能以及不同参与者如何与系统交互。为了保持高水平,可以包括重要的场景,排除不重要的场景。
流程图 - 虽然是一种非常传统的图表,流程图仍然非常有效地传达了很多信息。数据流或过程可以用流程图表示。一个系统可以进行许多顺序的 and/or 并行活动。许多系统都有一个开始(触发)点,而一些系统是循环的(有一个循环)。此外,系统可以根据条件具有备用路径。这些决策点和备用路径可以很好地用流程图表示。
ER 图 - 任何系统通常都有一些实体,并且这些实体以某种方式与其他实体相关联。例如,客户实体与订单实体相关联,并且具有一对多关系。流程图和用例图侧重于 data/process 的流程和交互,而 ER 图侧重于实体之间的关系。它提供了一种很好的方式来了解系统中涉及的高级实体以及它们之间的关系。通常这些关系是持久的,它们不会随着数据流或流程的变化而频繁变化。
部署图 - 另一个提供不同类型信息的图是系统的部署图。然而,这是更具技术性的,可能不需要很高的水平,但我认为它提供了很大的价值。基本上在部署图中,我们指定了系统的部署方式。例如,在在线购物应用程序中,该图可以显示一个代表浏览器的矩形框,然后显示当请求首次到达服务器时首先联系的负载均衡器,然后显示处理请求的应用程序服务器,包括缓存服务器,显示数据库,排队机制,如 Kafka 等。通过对部署进行建模,人们可以获得对使整个系统正常运行所涉及的计算机系统的高级概览。
希望这个回答有意义,并为您的问题提供一些指导。