2011-12-14 43 views
0

我习惯于规划复杂性在用户交互中的软件。我学到的敏捷软件工程原理非常适合这种情况。当大部分计划围绕用户的交互进行时,用户故事很容易写出来。用于数据驱动的流程的软件工程

我现在正在研究一个系统,其中用户唯一的干预是点击go按钮并在发生错误时读取错误。

该系统的所有其他工作都在数据处理和非常重的数据处理。我有大约5种不同的数据转换来规划这个处理流程。

这些过程本质上是松散耦合的,所以它们应该很容易作为不同的过程进行规划,然后再应用到工作流程中。即便如此,规划数据驱动流程的问题仍然存在,但规模较小。

如何才能规划数据驱动的流程?这种类型的软件有没有已知的设计流程?

回答

1

同样!为规划迭代开发

敏捷原则可用于任何类型的项目。这仍然可以由用户驱动,但您可能需要扩展“用户”的概念。谁最终将使用您正在构建的软件?自己呢?一个科技团队?其他进程? “真正的”用户?无论他们是谁,都需要将它们包含在设计中,并让他们与您讨论规格。

  1. 首先确定用户需要的优先级。什么是他们希望看到的“核心”功能集,以及/或者什么是新流程的最重要的架构定义功能?计划他们的前几个迭代。 (在设置开发环境的迭代0之后)。最后,你的系统不会做它应该做的所有事情,但那将是一个开始。另外,重点关注端到端的故事。最好尽早产生一个输出,即使它不是所需的输出,然后回来重构它以改进它。

  2. 继续按照习惯写用户故事,也许在每个故事的开始处添加一个句子:“作为XXX,我想...为了......”。这样每个故事都与该故事的原始请求者紧密相关。 (XXX可能是你自己,另一个系统或真正的用户)。

  3. 专注于早期的综合验收测试集。 (也许使用像JBehaveFITnesse这样的自动化框架(如果你使用Java,但是对于每种语言我都会有其他选择)对于数据驱动的项目,这些都是至关重要的:它们将作为系统的文档,并使它您应该以这种方式构建您的受理测试:从“空”(或“给定”系统)开始,当您将XX和YY和ZZ添加为数据时,结果应该是AA,BB和CC。不要犹豫,在你的验收测试中进行破解和测试,只要它们一直是用户看到和批准的。(不要对它们做任何假设,验证所有内容)

  4. 然后迭代后迭代,增加复杂层次,直到达到所需的一组规格。

我已经参与了几个介质基于数据管理和处理(存储库,包括来自不同源的合并,保持“金源”,双态数据库,喂食其他外部系统大型工程项目等等)基本上,这个团队越是敏捷,这个项目的成功越是成功。到目前为止。

+0

这就是我遇到麻烦的地方。就该产品而言,所有管理层关心的是最终产品,这是一种pdf。这个pdf是由5个转换和操作数据的过程组成的。那么用户故事会是“以格式A获取数据并将其转换为格式为B的数据”? – brandon 2011-12-14 18:40:37

0

使用某种形式的验收测试(BDD得到了很多关注这些天)可以提供帮助。确实存在不同的PDF所产生的“特征”,不是吗?我建议尝试使用BDD验收测试将验证(给出反馈)这些功能的责任移交给最终用户。

相关问题