プログラミングパラダイムとメンテナンス開発者[終了]


9

私が読んでいたのは、保守のセクションがあるソフトウェアエンジニアリングの事実と誤りです。私は何年もの間メンテナンス開発者でしたので、私は非常に興味深い事実を提示されました。3つあります。

  • 事実41:メンテナンスは通常、ソフトウェアコストの40〜80%(平均、60%)を消費します。したがって、それはおそらくソフトウェアの最も重要なライフサイクルフェーズです。
  • 事実42:拡張機能は、ソフトウェア保守コストの約60%を占めています。エラー訂正は約17%です。したがって、ソフトウェアのメンテナンスは、主に古いソフトウェアに新しい機能を追加することであり、修正することではありません。
  • 事実45:より優れたソフトウェアエンジニアリング開発は、より多くではなくより多くのメンテナンスにつながります。

これは直観に反するものでしたが、変更が簡単なため、優れたソフトウェアのメンテナンスが多いことがわかります。したがって、それはより長く使用され続け、はい、より多くの変更をもたらします。

どのパラダイム(関数型、オブジェクト指向、手続き型など)が保守性が最もよく、これを裏付ける研究はありますか?


私は事実と誤謬のコピーを所有しており、各事実(および誤謬)について、それをサポートするさまざまな出版物への引用があります。便利なコピーはありませんが、パラダイムがメンテナンスに及ぼす影響について、これらの引用のいずれかで説明していますか?
トーマス・オーエンス

この本は2003年に書かれたものであり、結論の多くは今日でも関連しています。人々が特定のパラダイムに関する新しい研究を持っているかどうか私は興味を持っていました。メンテナンスは議論の見落とされている部分のようです。
KaizenSoze

Facts and Fallaciesで引用されている研究や出版物が特定のパラダイムの保守性に関するものである場合、その論文を引用している他の論文や論文をIEEEまたはACMデータベースで検索することが1つの選択肢です。IEEEまたはACMデータベースにアクセスできない場合は、家に帰ったときに本のコピーを見て、そのような検索ができるかどうかを確認できます。残念ながら、私はあなたに他の論文の名前を取得することしかできず、論文自体を取得することはできません。
Thomas Owens

回答:


12

機能、オブジェクト指向、手続きなどのパラダイムは、ソフトウェアの保守性と意味のある方法で相互に関連付けられていない可能性があります。

次の内容は、ソフトウェアの保守性とより明確に関連しています。

  • 要件収集と要件エンジニアリングのレベル

  • 適切な開発手法:(疎結合、高凝集、単体テスト、YAGNI ...)

  • 熟練した資格のあるソフトウェアエンジニア(彼らはバカの10倍の価値があります)

  • 認定および組織化されたテクニカルQAチーム

  • 有能なプロジェクトマネージャーが率いる優れたプロジェクト管理(熟練したソフトウェア開発者IMHOよりも見つけるのが難しい)

  • 優れたプロダクトオーナーまたはアプリケーションマネージャー、強力なリーダーシップ、優れた長期的な方向性、プロジェクトチームへの優れたフィードバック、全体的なビジョン。


+1リストに適切なドキュメントを追加したい
treecoder

+1「価値重視」プロセスをリストに追加します。プロセスは、何が行われ、何が行われないかを定義し、推進します。プロセスが測定するものは重要であり、プロセスが測定しないものは重要ではありません。特に、人事担当者が席に「モロン」を詰め始めたときに当てはまります。
mattnz 2011

2

これは直観に反するものでしたが、変更が簡単なため、優れたソフトウェアのメンテナンスが多いことがわかります。したがって、それはより長く使用され続け、はい、より多くの変更をもたらします。

コストの割合ではなく、メンテナンスの量からこれを表示しているようです。より多くの機能が追加された優れたソフトウェアは、より多くのソフトウェアです。メンテナンスパーセンテージが固定されている場合(それが優れたソフトウェアであり、追加機能が優れたソフトウェアとして追加されたと想定しているため)、量は増加します。これは、スライスの数が同じ、より大きなパイです。

あなたの質問に基づいて、「良い」ソフトウェアが機能的、OOP、または手続き型コードで書かれたかどうかが重要です。人が測定する方法を知らない場合、誰かにレーザーガイド付きのパワーソーを与えて木材を節約できますか?

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