软件/应用程序高级设计

时间:2019-04-16 15:45:47

标签: architecture software-design high-level

开发现有软件/应用程序的高级设计有哪些标准或建议?是否有任何参考指南可用于构建高级设计?以便所有利益相关者以相同的方式理解设计。

2 个答案:

答案 0 :(得分:1)

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

用例图-任何系统通常都会有参与者以及参与者与系统交互的各种场景。用例图有助于布局系统的不同场景-例如,对于购物应用程序-用户浏览产品,用户搜索产品,用户查看产品详细信息,用户进行购买等。通过这种方式,我们可以捕获系统提供的所有功能以及不同参与者如何与系统交互。为了使它高层次化,可以包括重要场景,而可以排除不重要的场景。

流程图-尽管流程图是非常传统的一种,但流程图仍然非常有效地传达了很多信息。数据或过程的流程可以由流程图表示。一个系统可以进行许多顺序和/或并行活动。许多系统都有起点(触发),而有些系统是循环的(有回路)。系统还可以根据情况具有备用路径。这些决策点和替代路径可以很好地用流程图表示。

ER图-任何系统通常都具有某些实体,并且这些实体以某种方式与其他实体相关联。例如,客户实体与订单实体相关联,并且具有一对多关系。流程图和用例图专注于数据/流程和交互的流程,而ER图则专注于实体之间的关系。它提供了一种很好的方式来了解系统中涉及的高级实体以及它们之间的关系。通常,这些关系是持久的,它们不会像数据流或流程更改那样频繁地更改。

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

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

答案 1 :(得分:0)

您可以按域开始。域是利益相关者(业务)与开发之间的通用语言。很好地解释和理解领域是高级体系结构的第一部分。