新しいプロジェクトを開始するとき、皆さんはどのような手順を踏んでいるのでしょうか? UML ダイアグラム、SRS、またはその他の設計ドキュメントを作成したことがありますか? 私は新しいプロジェクトを開始しており、これらすべてのプラクティスについて専門家のアドバイスを得たいと思っています。コードを書くことは知っていますが、UML などを試したことはありません。
どんな助けでも素晴らしいでしょう
通常、私のプロセスは次のように実行されます。
プロジェクトが進行するにつれて、ビジネスと技術/設計の両方の観点から要件が変化し、常に事前に予測できるとは限らないため、論理的な段階で「設計しすぎる」ことにはあまり意味がないと思います。
プロジェクト ライフサイクルの早い段階で検討したいことの 1 つは、ドメイン モデルの作成です。プログラマーとして、コンピューターの専門用語は問題なく話せますが、顧客の専門用語は話せない可能性があります。ドメイン モデルは、顧客との対話方法を学習して、顧客があなたを理解し、あなたも顧客を理解できるようにする方法です。UML クラス ダイアグラムの形式にすることも、Word 文書の用語集にすることもできます。
概念段階の後、私が最初に作成したいのは定義リストです。これにより、変数、クラス、および関数の名前が通知され、それらについて話すことができます。オプションが与えられた場合、私は通常、UML よりも疑似コード クラスを選択します。私ができるだけ早くやりたいと思っているもう 1 つの考えは、インターフェイスのモックアップを作成することです。これは、プロジェクトに応じて GUI、CLI、または API になる可能性がありますが、自分のコードがどのレベルに到達する必要があるかについての確固たる考えを与えてくれます。
私は UML について本当に気にしたことはありません (とにかく「本物の」UML ではありません)。プロジェクトを開始するとき、私はいくつかのことに興味があります。
1 については、UML ユース ケース図を使用できます。私は通常、独自の疑似ユース ケース図を使用します。これから、誰がどのようにソフトウェアを使用するかを計画します。さまざまなユーザーがさまざまな方法でソフトウェアを使用します。これは、a) ターゲット ユーザーが誰であるかを判断するのに役立ち、b) 2 に必要な機能を判断するのに役立つため、便利です。
2 については、通常、大きなリストを作成するだけです。リストをカテゴリや優先順位に分割すると便利な場合があります。これが私の「TODO」リストになることが多いです。
3 については、UML 注釈がないことを除いて、UML クラス図に似たものを描きます。基本的に、各クラス/モジュール/コンポーネントは独自のボックスを取得し、線でリンクされています。これは、システムにどのコンポーネントが存在するか、それらがどのように関連/通信するかなどを示しています。おそらく、プロジェクトごとに異なる方法で描画し、その時点で必要だと感じているものに応じて、他のものよりも詳細になるものもあります.
この後、単純な使い捨てのモックアップ/プロトタイプを作成して、コア コンセプトのプロトタイプを作成するのが好きです。これにより、それがどのように機能するか、どのように実装するか、およびどのように実装しないかについてのアイデアが得られます (プロトタイプを「間違った方法で」作成することがよくありますが、これは、作成していなかったらわかりませんでした)。 . ここで重要なことは、コードが実際のバージョンでは使用されていないことです。