2009-08-18 9 views
2

私は、私の会社のクライアント(SMB)のプロジェクトを分析する仕事に偶然遭遇しました。私はソフトウェア分析の経験がほとんどない.Net開発者(5年間)です(学校からのUML)。プロジェクトを分析する方法を学ぶ

私たちはユーザーと2週間の話しをして、要件の素晴らしいリストを得ました。明らかに、我々は最も重要な要件を除外し、束を「範囲外」としてマークしなければならなかった。

私はいくつかの用途を作り始めましたが、このプロジェクト全体を適切に終わらせるために必要な専門知識を持っていないと感じています。私は誰かが開発者からアナリストへの飛躍を遂げたのかどうか、そしてそれに伴って何が起こっているのかを知りたいと思います。また、プロジェクトを分析する上でのいくつかの優れたリソースが良いでしょう。

ありがとうございました。

+0

ツールは問題ではありません。私があなただったら、その部分を編集します。ここではUMLツールに関する多くの疑問があるので、あなたは偽装として閉じられる危険があります。 –

+0

@ Neeil:それを指摘してくれてありがとう、私はそれを編集した – Peter

答えて

3

他に誰もこのようなことをしているようです。

私は最初にあなたに良いニュースを伝えなければなりません。良いアナリストは良い開発者であるように - 誰もができるわけではありません。私は、複雑なWindowsアプリケーションコードを書いていて、ユーザーが望んでいたものを見つけ出し、それらの要件を絞り込み、デザインを考え出すのに役に立たない人がたくさんいたことを知っていました。あなたがそれが難しいと感じるなら、悪い気分にならないでください。

これは、特に現代OOシステムの場合、解析と デザインを分けることはできません。その2つは連続体の一部です。だからあなたはそれに備えなければならない。

私の3番目のポイントは、あまりにもUMLに執着しないことです。あなたのアイデアを他人に説明するための良いツールです(UMLも知っていれば提供されます)が、実際のデザインを行うためのかなり腐ったツールです。たとえば、ユースケースは、UMLが使用するスティックマン図面とは対照的に、テキストファイルで簡単に維持できます。 UMLではなく、単純なブロックダイアグラムを使用して、通常は紙とホワイトボードに描かれたオブジェクト、コンポーネント、および関係を表示します。

私の最後のポイントは、A & Dは一人ではないということです。他の人を取得する あなたはアイデアを跳ね返すことができますか。経験豊富なアナリスト/デザイナーが1日程度手助けすることができれば、もっと良いことができます。

これは役に立ちましたが、それほどネガティブではないことを願っています!

+0

もっと有用かもしれないが、全く否定できない。 :) –

+0

あなたの記述的な答えをありがとう。私はこのキャリアの変化の準備がまだ整っていないことは知っています。私は立ち往生したときにアイデアを跳ね返すために他の誰かが関与するようにしました。とにかく、これは私にとって素晴らしい学習体験になるでしょう。物事の上に乗るために読むことができるいくつかの情報源/書籍がありますか? – Peter

2

ニールの悪いニュースを柔らかくするために、あなたは自分自身にこれらの質問をしているということは、おそらく良い兆候だと言いたいと思います。

あなたの顧客(およびあなたの経営陣)との良好な関係がある場合は、アジャイルアプローチのいくつかの変形を検討する価値があるかもしれません。これは、将来に向けて遠すぎて見ようとするリスクの一部を緩和するのに役立ちます。 「顧客は唯一のあなたは彼が求めたものを彼に与えるとき、彼が何を望んで実現」という:)

あなたは分析している開発者のように思考を避けるために ひずみを分析する際に念頭に置いて

ベア顧客の要件、新しいシステムがどのようなものになるかについてのアイデアを思いついているときにも役立ちます。技術的な「考慮事項」(「これはコード作成がはるかに簡単」、「新技術Xを使用することができます」)は、有用で有用なものを設計する上で本当に役立ちます。

コーディングするときパニックに陥らないでください。作業を管理しやすい塊に分割する。誰もがこれに同意するわけではありませんが、あなたの頭を丸くすることができない管理不能なチャンクで自分を見つけた場合、just start coding - 途中でやり直さなければならない場合でも、起こることを待っているだけです。

「ゴール」を見失わないように気をつけてください。あなたが行くにつれて無意識に書き直していないことをよく確認してください。

+0

アジャイル開発に頭を下げてくれてありがとう。プロジェクトのタイムラインには、スコープのさまざまな側面を扱ういくつかのツールで構成されているため、いくつかの種類のタイムボックスがあります。問題は、おそらく私がプロジェクト管理者と開発者の両方になるということです。 :|私は適切なソフトウェア分析を行う上でいくつかの読書が大好きです... – Peter

+0

プロジェクトマネージャーはまだ開発者が彼の見積もりについていけないことに失望するかもしれませんが、プロジェクトマネージャーと開発者のあまりの意見の相違は避けてください。 ) – Benjol

+0

これはあなたの答えに加えたいくつかの非常に良いヒントです。私は分析するときに開発者のように多くの自分自身をキャッチします:)。実際、私はこのことを分析した後、コードの半分がすでに私の頭の中に書かれていると思います。 – Peter

1

UMLはコミュニケーションツールなので、ユーザーに必要条件を満たすために使用する必要があります。

誰も理解できない小さな細部でダイアグラムをオーバーロードしないでください。私にとっては、Rational Roseなどのような醜い醜いダイアグラムを使用することは避けてください。グラフィックスツールを使用して自分自身を描画します。無料のオンラインUMLツールyUML.meなど、何か楽しいものを使うことができます。ユーザーは平易な英語で直接表現し、それが

Blogger is a User 
    Admin is a Blogger 
    Author is a Blogger 
    Subscriber is a User 

    Admin Manage Site 
    Manage Site Include Manage Users 
    Manage Site Include Manage Themes 
    Manage Site Include Manage Plugins 

のようなソースコードをUMLに変換持つことができるように、私もyUML DSLの上にビジネスアナリストのためのユーザーフレンドリーな言語を開発してきた

がここにあります: http://reboltutorial.com/blog/easy-yuml-dialect-for-mere-mortals/

重要なことは簡単にすることです。多くの人がダイアグラムを複雑にするので、UMLには悪い評判があります。

+0

漫画のボックスを除いて、yUML図と、まともなUMLモデリングツール(例:ビジュアルパラダイム)を使って作成した図との違いはほとんど分かりません。私はダイアグラムを使ってどのように動作するのかをユーザに説明することは実際考えていませんでした。テキスト文書の明白な英語で十分です。 – Peter

+0

私の意見では、UMLはコミュニケーションツールと言えますが、コミュニケーションは主にアナリストと開発者の間です。あなたの思考で私を修正してください。 – Peter

+1

@Peter、私はモックアップ(http://www.balsamiq.com/products/mockupsのような)と顧客とのコミュニケーションのために行くだろう。あなたはスクリーンショットでそれらを座らせて、彼らの話の一つを選び、彼らがそれをやる方法を考え出すことができるかどうかを見ます。 – Benjol

1

私は新鮮なデザイナーを好スタートさせるためにいくつかの投稿を掲載しました。 http://aviadezra.blogspot.com/search/label/UML

ほとんどの場合、配備図を使用してシステムの物理アーキテクチャをモデリングすることから始まり、「システム物理アーキテクチャのモデリング」のポストは、配備図を簡単に使用して開始します。ノードとその相互関係のみを提示し、ノードで動作するコンポーネントとアプリケーションを含めることによって画像を完成させます。

次の段階では、コンポーネント図を使用したシステムの論理アーキテクチャについて説明します。「システム論理アーキテクチャのモデリング」は、論理コンポーネントの単純な配線を示し、それらが一緒に配線されている方法を示しています。

並列アプリケーションを設計する場合は、アクティビティ図を使用して並列ワークフローを表示し、シーケンス図とクラス図を使用して画像を完成させることから、「並列アプリケーションのモデリング」のポストはプロセス全体を案内します。

詳細設計段階に入ると、クラス図を使用して、さまざまな方法で互いに関連するオブジェクト(クラス)のタイプに関する問題のドメインを記述します。ポスト 'Association、Aggregation and Composition'では、3つのバリエーションクラス図で使用される関連コネクタの

次に、シーケンス図を使用して、さまざまなオブジェクトが相互に作用する方法を示します。シーケンス図の一般的な問題は、条件と反復を表示する方法です。ポスト 'Interaction Fragment'では、そのような問題に対してどのように対話フラグメント演算子(Alt、Opt、Par、Loop、およびRegion)を使用できるかについて説明しています。

関連する問題