软件/应用程序高级设计

问题描述 投票:1回答:2

开发现有软件/应用程序的高级设计的标准或建议是什么?有没有可以遵循的参考指南来构建高级设计?这样所有利益相关者都能以同样的方式理解设计。

architecture software-design high-level
2个回答
1
投票

据我了解,问题是开发和表示现有应用程序的高级设计。假设利益相关者来自不同背景而不仅仅是技术人员,可以有多种方式来表示设计。我会从下面的内容开始:

用例图 - 任何系统通常都有演员和演员与系统交互的各种场景。用例图有助于列出系统的不同场景 - 例如 - 用于购物应用程序 - 用户浏览产品,用户搜索产品,用户查看产品详细信息,用户进行购买等。这样我们可以捕获系统提供的所有功能以及不同参与者如何与系统交互。为了保持高水平,可以包括重要的场景,并且可以排除不重要的场景。

流程图 - 虽然是一种非常传统的图表,但流程图仍然可以非常有效地传达大量信息。数据流或流程可以由流程图表示。系统可以进行许多顺序和/或并行活动。许多系统具有启动(触发)点,而一些系统是循环的(具有循环)。此外,系统可以根据条件具有备用路径。流程图可以很好地表示这些决策点和备用路径。

ER图 - 任何系统通常都有一些实体,实体以某种方式与其他实体相关联。例如,客户实体与订单实体相关联,并且具有一对多关系。虽然流程图和用例图关注的是数据/流程和交互的流程,但ER图关注的是实体之间的关系。它提供了一种理解系统中涉及的高级实体以及它们如何相关的好方法。通常这些关系是持久的,它们不会随着数据流或流程的变化而频繁变化。

部署图 - 提供不同类型信息的另一个图是系统的部署图。然而,这更具技术性,可能不需要高水平,但我认为它提供了很大的价值。基本上,在部署图中,我们指定了系统的部署方式。例如,在在线购物应用程序中,该图表可以显示代表浏览器的矩形框,然后显示负载平衡器,当请求首次到达服务器时将首先联系,然后显示处理请求的应用程序服务器,包括缓存服务器,显示数据库,排队机制,如Kafka等。通过对部署进行建模,可以让人们高度了解所涉及的计算机系统,以使整个系统运行。

希望这个答案有意义,并为您的问题提供一些指示。


0
投票

您可以从域开始。域是利益相关者(业务)和开发之间的共同语言。很好地解释和理解域是高级架构的第一部分。

© www.soinside.com 2019 - 2024. All rights reserved.