Language agnostic 学习实现软件工作流的方法

Language agnostic 学习实现软件工作流的方法,language-agnostic,workflow,implementation,Language Agnostic,Workflow,Implementation,有多少种方法可以学习实现软件的工作流?它们是什么?如果你指的是用户工作流程,那么如何引导用户浏览软件 我通常使用某种状态机来限制用户可以触发哪些功能,以及在工作流的特定状态下向用户提供哪些信息。通过这种方式,我可以集中精力在流的每个部分的“沙箱”中进行设计,从而使决策变得更加容易 如果您不是指用户工作流,则可以忽略此答复 通常您在工作流中有步骤。步骤包括一些前提条件(从UI隐藏的业务逻辑)、一些用户交互(用户输入一些数据,并执行一些“用户操作”)和post条件。通常,用户交互部分有一个或多个用户

有多少种方法可以学习实现软件的工作流?它们是什么?

如果你指的是用户工作流程,那么如何引导用户浏览软件

我通常使用某种状态机来限制用户可以触发哪些功能,以及在工作流的特定状态下向用户提供哪些信息。通过这种方式,我可以集中精力在流的每个部分的“沙箱”中进行设计,从而使决策变得更加容易


如果您不是指用户工作流,则可以忽略此答复

通常您在工作流中有步骤。步骤包括一些前提条件(从UI隐藏的业务逻辑)、一些用户交互(用户输入一些数据,并执行一些“用户操作”)和post条件。通常,用户交互部分有一个或多个用户选择的“存在”,每个出口都有自己的post条件(通常每个用户出口都有自己的业务逻辑,这取决于一个步骤的出口的含义)。退出将工作流导航到下一步。有时,您可以使用全自动步骤(即使用某些外部数据源、调用某些web服务、重要计算等)。
如果您的工作流很简单,那么您可以将其实现为一组表示每个步骤的类,并且步骤顺序的配置可以用XML表示。当您的工作流越来越大时,搜索一些工作流引擎可能是合理的,(我认为对WF引擎的讨论超出了这个问题的范围)。

重要的一点是,步骤可以是正交的,但设计起来比较困难。如果您的步骤相互依赖,则配置工作流和步骤顺序的人员必须完全了解此类依赖关系(例如:用户地址步骤可能取决于用户对象创建步骤,从工作流中删除用户对象创建步骤将导致尝试访问不存在的对象).

你能把你的问题说得更一般一点吗?你所说的“软件工作流”是什么意思?好吧,当你面对一个新项目时,有时你会遇到像状态机这样的东西,它的状态完全取决于用户所处的步骤。所以每个州都有不同的输入和输出。。。。