ソフトウェアの腐敗とは、主にパフォーマンスのことですか、それとも面倒なコードのことですか?


22

ソフトウェア腐敗のウィキペディアの定義は、ソフトウェアのパフォーマンスに焦点を当てています。これは私が慣れているものとは異なる使用法です。コードの清潔さとデザインの観点から、コードのすべての標準品質特性(読みやすさ、保守性など)を考慮して、それ以上に考えていました。何が起こっているのか誰も知らないからです。しかし、ソフトウェアの腐敗という用語には、パフォーマンスに特別な言及がありますか?または私はそれがコードの清潔さを指していると思うのは正しいですか?または、これはおそらく、用語の複数の感覚が一般的に使用されている場合です。ユーザーの観点からは、パフォーマンスに関係しています。しかし、ソフトウェア職人にとっては、コードの読み方をより具体的にする必要がありますか?


1
ウィキペディアのリストのパフォーマンスに関連していない2その3つの原因、未使用のコードほとんど更新しないコード ...
Izkata

2
「ソフトウェアは、時間が経つにつれて「パフォーマンス」が低下し、実行およびエラーが蓄積されると「レガシー」と呼ばれるものになります。これは、一般にソフトウェアの腐敗とは見なされません。ソフトウェアの腐敗がパフォーマンスに関係していないことは明らかだと思います。
zzzzBov

1
wikipidiaページ全体の唯一のリディア機能は、リリバールソースへの参照がないことを警告するタグです。
mattnz

回答:


39

この用語はパフォーマンスに関連するものではありません。少なくとも私が見たどこでもそうではありません。

具体的には、適切に管理されておらず、...汚い...腐ったコードについてです。変更が加えられたためにデザインが更新されていないコードについてであり、読みやすく理解しにくいものです。


1
「Windows rot」などのパフォーマンスを参照するために使用されると聞いたことがあります。これは、時間の経過とともに遅くなるにつれてWindowsを頻繁に再フォーマットおよび再インストールする必要があるという感じです。
Carson63000

3
うん...しかし、「ソフトウェア腐敗」と「ウィンドウ腐敗」は異なる用語です。
スティーブンC

4
@Oded-類推は汚れではありません。古い建物に発生する一種の腐敗により、構造的に健全ではなくなります。
スティーブンC

18

それに直面しよう。「ソフトウェアの腐敗」は明確に定義された技術的概念ではありません。これは、ソフトウェアのメンテナンスが不十分な場合に何が起こるかについての軽jor的な説明です。

ウィキペディアのページは1つのビューを表していますが、明らかに代替ビューがあります。そして、あなたは、異なる見解が見解を保持している人の異なる優先順位と懸念を反映していると言うことができます:

  • ソフトウェアの高速化に重点を置いている人は、パフォーマンスの「ソフトウェアの腐敗」の証拠を探す傾向があります。

  • 設計/アーキテクチャに注力している人は(たとえば、新しい機能を追加したり、機能のバグを修正したりする必要があるため)、その観点から「ソフトウェアの腐敗」が発生します。

そして、誰の視点がより適切であるかを言うことは、実際には役に立ちません。(ターコイズがより緑か青かを議論するようなものです。)


1
OPの投稿はウィキペディアに関するものだったので、以下を紹介します。ターコイズ(色) -「緑」ですが、「青みがかった色合い」です。だから私はあなたの議論は健全だと思う:)。
ベン・リー

6

「ソフトウェアの腐敗」という用語は、一般的に手元のタスクに対する適合性を指していると思います。ソフトウェアは、バグ修正、新機能、およびマイナーな調整のレイヤーごとに、意図したタスクに適さなくなる可能性があります。総合すると、これらは保守性とパフォーマンスの両方に悪影響を与える可能性があります。また、組織のニーズは時間の経過とともに変化する可能性があり、ソフトウェアは実際には設計されていない役割に強制される可能性があります。これらのすべての要因により、ソフトウェアは組織のニーズに適さなくなり、ソフトウェアを保守するための努力を重ねても起こります。


6

ウィキペディアによると、ソフトウェアの腐敗とコードの腐敗は同じだという。同意しません。

コードの腐敗とは、コードに変更が加えられるにつれて、読みやすさと保守性が徐々に失われることです。

ソフトウェアの腐敗とは、ある環境エミュレータから別の環境エミュレータにソフトウェアが移動するにつれて、パフォーマンスが徐々に失われることです。1つの例は、エミュレーターで実行されるすべてのData General PDPソフトウェアです。実際、腐敗しているのはソフトウェアではなく環境です。


+1。ウィキペディアは、ソフトウェアの腐敗をコードの腐敗と同一視しています。編集する必要があります。さらなるソフトウェアの腐敗。1つの例は、GUIを使用できない/使用するのが難しいことです。古い/ wrongドキュメントも貢献しています。
ジェイアン

3

ソフトウェアが実際に悪くなることはなく、古くなったり、摩耗したり、伝統的な意味で「腐敗」したりしません。

ソフトウェアが動作する環境が変わらなければ、ソフトウェアは本質的に永遠に続きます。これが、著者が最後の5分間でライブラリを更新していないため(実際には少しだけ誇張している)、誰かが「死んでいる」かどうかを尋ねられたとき、私がとてもうんざりする理由です。

しかし、環境は通常ありません変わります。オペレーティングシステムにパッチが適用されて更新され、コンピューターがより強力なものに置き換えられ、ソフトウェアが依存する可能性のある新しいプログラム(Internet Explorer、デバイスドライバー、その他のライブラリなどのクライアントの最新バージョンなど)がインストールされます。そのため、これらの変更を考慮してソフトウェアを更新する必要があります。

大幅に更新または保守されることなく、文字通り数十年にわたって継続的かつ確実に実行されているソフトウェアシステムがあります。銀行取引を処理するメインフレーム上で実行されるCOBOLソフトウェアが思い浮かびます(ただし、1999年にY2Kを処理するためにすべてを修正する必要がありました)。

Wikipediaのパフォーマンス重視は、その点を見逃しているようです。多くのソフトウェアアプリケーションは、新しい環境にインストールされると実際にパフォーマンスが向上します。ウィキペディアの記事は、実際にはソフトウェアの肥大化にもっと関心があるようです。


ソフトウェアの膨張—はい、良い点です。私が質問をしたときの用語の理解において、ソフトウェアの腐敗は、コードのクリーンアップと設計の基準が標準以下の開発者グループによって修正され続けたという事実に関係していました。
カザール

3

「ソフトウェアの腐敗」-非常に曖昧な用語であり、概念に対するあなたの認識や視角に応じて、誰にとってもさまざまなことを意味します。

ソフトウェア腐敗に関するウィキペディアによる定義は、一部の個人によっても書かれているため、標準を設定していません。この用語にはさまざまな意味があり、参照される特定の領域に分解する必要があると思います。

  • プログラマーは、これをアンチパターンに満ちた、維持できないコードベースであり、命名とコーディングスタイルに一貫性がないと理解するかもしれません。
  • システム管理者は、これをパフォーマンスの低下、メモリリークと地獄でいっぱいだと理解するかもしれません。メンテナンス。
  • エンドユーザーは、これを非常に複雑で、直感的ではなく、働きにくいソフトウェアとして理解するかもしれません。

2

ソフトウェアの腐敗は、一定期間ソフトウェアを使用しないときに発生する状態だと常に考えていました。どういうわけか、ソフトウェアはビルド不可能な状態に変化します。次に、ビルドできるポイントに到達すると、以前のように入力および出力で動作しません。デジタルで保存されているにもかかわらず、コードが実際にフォームで劣化したかのようです。


1
環境(コンパイラー、ライブラリーなど)が変更されたためですか?ウィキペディアはそれについて議論しています。
カザーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.