对于完全离线的应用,是否可以有用例图?

Can there be a use case diagram for an app that is completely offline?

提问人:Sheru 提问时间:2/14/2023 最后编辑:ChristopheSheru 更新时间:2/19/2023 访问量:127

问:

我正在构建一个完全具有 0 后端的客户端应用程序,因为所有数据都是完全静态且不可修改的。根据我对用例图的理解,它们应该代表用户和服务器之间的操作和反应。但是,如果没有服务器的参与,可以有一个用例图吗?

我尝试在 reddit 和 stack overflow 上查找,但没有找到任何专门针对客户端应用程序的内容。我期待一个解释。

UML 客户端 用例图

评论

1赞 qwerty_so 2/14/2023
如果一个系统是完全自主的,并且不交互,那么它对任何人都毫无用处(除了它自己的目的)。eremite 将是唯一这样的事情。但是任何其他系统都有它有用的东西。
0赞 Geert Bellekens 2/14/2023
你从哪里得到“用户和服务器”?用例通常以用户和系统之间的对话形式出现。Cient/Server 是此类系统的组件,但在用例建模中,整个系统被视为一个黑匣子。
0赞 Sheru 2/14/2023
Geert,我从教程人员正在解释的银行应用程序示例中得到了这一点。但话又说回来,即使作为一个系统,我正在开发的应用程序也不能作为一个整体完全反应。它主要是“点击按钮,视觉效果发生”。我不知道我该如何为这样的应用程序制作用例图。
0赞 Sheru 2/14/2023
qwerty_so,是的,我就是这么想的。我最终做了一个序列图。这很容易做到,因为该应用程序确实有一个流程。一个用例在我的脑海中没有意义。
3赞 Geert Bellekens 2/14/2023
用例不是关于按钮和视觉效果,而是关于用户在使用软件时的主要目标是什么。他们试图以一种产生可观察(有用)结果的方式实现什么?这绝对不是按下按钮或看到视觉效果的发生。

答:

2赞 Christophe 2/15/2023 #1

只要你有一个参与者、一个主题(即一个系统)和一个目标,你就可以使用一个用例。根据 UML 规范:

每个用例都指定了主体可以与一个或多个参与者协作执行的一些行为。用例定义主题提供的 Behaviors,而不参考其内部结构

前端、后端、客户端应用程序、服务器是关于系统的内部结构。它们对于用例无关紧要。重要的是参与者(用户)想要通过您的系统实现的目标。

用例既不是为了描述与系统交互的细节。对这些细节进行建模需要以某种方式考虑交互的顺序或事件的流程。相反,用例没有顺序,也没有工作流程。还有其他模型。

最后但并非最不重要的一点是,用例不应与用户界面混淆。用户界面是关于交互如何发生的,而用例是关于交互的内容。对用户界面使用线框或其他技术。就连用例的发明者伊瓦尔·雅各布森(Ivar Jacobson)也解释说,让用户界面设计与用例联系在一起是一件坏事。

评论

0赞 Sheru 2/15/2023
是的,阅读这个定义。这是否意味着可以有一个用例图......没有系统?因为如果我要应用你所说的应用程序正在使用。可以这么说,正在开发的应用程序并不完全有一个系统。这是一个 ThreeJS 超级花哨的前端重型投资组合网站。没有输入或进行任何表单数据处理的地方。也就是没有系统。或者一个非常非常基本的系统(如果“点击,事情发生”算作一个系统)。
0赞 qwerty_so 2/15/2023
所考虑的系统始终是明确的。有时,它被显示为UC气泡周围的边界,演员在外面。花点时间阅读 Bittner/Spence 关于 UC 的信息。
1赞 Christophe 2/16/2023
@Sheru,只要有用户,就有系统。它可以是一个简单的前端,也可以是一个复杂的分布式系统。用户使用您的应用程序这一事实表明该应用程序有助于实现某些目标。在这里,您有您的用例,独立于(轻)内部结构和用户界面;-)