2011-12-14 17 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

+0

さて、そうすることもできますが、反復的なアプローチが実際にプロジェクトを改善し、例を示し、教育することができることを理解できるようにすることもできます。私はそれが難しいことがあることを知っている、私はいつもそれを行うことに成功していませんでした。しかし、それが働いたとき、それはいつも報われました。彼らはコンセプトを理解し、レンガ造りのレンガ造りのプロジェクトを見て、いつも利益を見ています(あなたが頻繁にリリースする限り)。 – Guillaume

+0

最悪の場合、あなた自身のユーザーになります。最も重要で定義されているものを自分の仕様から定義し、そこから構築してください。理想とはほど遠いですが、滝よりも優れています。 – Guillaume

0

受け入れテスト(BDDは最近注目を集めています)を使用すると助けになります。作成されたPDFには確かに異なる「機能」があります。 BDD受入れテストを使用して、これらの機能を最終ユーザーに検証するという責任感を移すことをお勧めします。