基盤と見なすことができるソフトウェア開発方法論


10

私はソフトウェア開発方法論を含む小さな研究論文を書いています。私は利用可能なすべての方法論を調べていましたが、すべての方法論から、他の方法の基礎を提供しているものはあるのでしょうか。

例として、
アジャイル、プロトタイピング、クリーンルーム、反復、RAD、RUP、スパイラル、ウォーターフォール、XP、リーン、スクラム、Vモデル、TDDの方法論を見てみましょう。

私たちはそれを言うことができます:
プロトタイピング、反復、スパイラル、ウォーターフォールは他のものの「基礎」です?

それとも「基礎」などはなく、それぞれの方法論には独自の歴史がありますか?

もちろん、私は自分の論文ですべての方法論について説明したいと思いますが、それを行う時間がないので、どの方法論を代表として見ることができるかを知りたいのです。

回答:


5

リストの名前はすべての方法論ではなく、さまざまなレベルでスケーリングされます。

  • 反復は特性であり、いくつかの方法と技法で共有される特性です。スクラムは反復法であり、TDDは反復法です。
  • 私はアジャイルを、概念的/哲学的なレベルに留まる方法論のスーパーセットと見なしています。オブジェクト指向プログラミングでは、それを抽象的であると説明できます。これは、インスタンス化できず、派生して実装する必要がある一連の値と原則です。それがスクラムとXPが行うことです。
  • クリーンルーム、RAD、RUP、スパイラル、ウォーターフォール、XP、リーン、スクラム、Vモデルは適切な方法論、つまりソフトウェア開発プロセスです(ただし、スクラムは重いプロセスではなく軽量の「フレームワーク」であると主張しています)
  • プロトタイピングとTDDはテクニック、アクティビティです。TDDはXPのプラクティスです。

基礎となる識別は難しい仕事です。あなたは明らかに歴史的な線を引くことができますが、方法論が別のものに直接基づいていることはほとんどありません。それらはむしろ重なり合い、互いに借用し、時々互いに応答します...明確に定義された分類を見ることができませんが、おそらくいくつかの大家族の概要を説明できます。

それを見る別の方法は、世代の観点からです。エンタープライズソフトウェアに関しては、2世代の方法論が知られていると思います。最初のものは、ウォーターフォールとVモデルの中で、ソフトウェアに適用された他のエンジニアリング分野からの既存のプロセスがほとんどでした。第2世代(アジャイルと呼ぶこともできますが、アジャイルという用語が生み出されるずっと前に始まりました)は、第1世代のプロセスの重さに対応して開始され、人々はソフトウェアがまったく異なる動物であり、基準が良いソフトウェアとこれらの基準を確実にすることができるステップは本当に具体的であり、まだ調査されなければなりませんでした。

最後に、ソフトウェアでは他の分野よりも多分、方法論は、物事を機能させるために適用できるレシピではないことに注意してください。ソフトウェア開発には、技術的な側面と同じくらい多くの人間的な側面があり、チームまたはマネージャーが特効薬の方法論と、やみくもに適用するもののチェックリストを考え出すことは、いくつかの驚きを期待できます。Chaos Reportのようなソフトウェアプロジェクトの成功率に関する研究を毎年見るだけで、ソフトウェアの方法論の歴史は、一連の失敗した試行とは、確固たる科学的に確立された反復可能なプロセスのルールよりも関係があることがわかります。


私は、ソフトウェアの2種類を比較し、この学術論文は、私が言及した2つの世代と同様の処理をお勧めします:paulralph.name/wp-content/uploads/2011/01/...
guillaume31

3

3つあります:

  1. なし(別名:カウボーイコーディング)
  2. 迅速なアプリケーション開発(RADまたはスパイラル)

残りはこれらのバリアントと組み合わせです

ウォーターフォールからのアーティファクト(開始、要件、機能仕様、設計仕様、テスト仕様、品質管理仕様など)はすべて、プロジェクトにとって重要な事項をカバーしていることに注意してください。非常に異なる方法。たとえば、TDDでは、機能、ユーザーストーリー、およびテストの説明は、ウォーターフォールの要件、機能仕様、およびテスト仕様をカバーしています。RUPではさらに多くのアーティファクトが追加され、ウォーターフォール仕様の一部(たとえば、利害関係者のドキュメントは開始ドキュメントの一部)を壊しますが、らせん状に進行します

完了したら、結果へのリンクを公開してください。興味深い論文のようです。


@Bas:ジェームズ・マーティンは1991年に「迅速なアプリケーション開発」を用語をコイニングと信じてen.wikipedia.org/wiki/...
スティーブンA. Loweの

この回答をどうもありがとう!これは会社で行っている割り当ての一部なので、後で結果を公開できるかどうかを確認します。だから私はそれを会社の割り当てから独立させることができるかどうか試してみます:)
Bas

0

たぶん、次のようなアンティークの方法論(「方法論」ではなく)に言及したいと思うかもしれません。

  1. バッチ処理:カードのデッキを送信して、翌日に出力を取得します。欠点:提出の間隔が長すぎる。デバッグのために、コアダンプを調べます。

  2. cliメソッド-viまたはemacsを使用してコンパイルします。コマンドラインからのすべては、今日までLinuxシェルで行われているのと同じです。欠点:デバッグするのが難しい(gdb?冗談でしょう?)、40年前のシェルコマンドがわかりにくい。

ちょっとした考え。


1
これは私が探していたものではありませんでした。ソフトウェア開発プロジェクトで使用されているソフトウェア開発方法論について本当に知りたいです。

0

プロトタイピング、スパイラル、ウォーターフォールという3つの基本的なアプローチに言及できます。リーン、TDD、またはクリーンルームを方法論と見なすのではなく、方法論の一部となるプロセスを検討します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.