Programmierparadigmen und der Wartungsentwickler [geschlossen]

9

Ich habe gelesen, Fakten und Irrtümer der Softwareentwicklung, die einen Abschnitt der Wartung hat. Da ich seit Jahren ein Wartungsentwickler bin, wurden mir sehr interessante Fakten präsentiert. Hier sind drei.

  • Fakt 41: Die Wartung verbraucht normalerweise 40 bis 80 Prozent (durchschnittlich 60 Prozent) der Softwarekosten. Daher ist es wahrscheinlich die wichtigste Lebenszyklusphase von Software.
  • Fakt 42: Die Verbesserung ist für rund 60 Prozent der Softwarewartungskosten verantwortlich. Die Fehlerkorrektur beträgt ungefähr 17 Prozent. Bei der Softwarewartung geht es daher hauptsächlich darum, alte Software um neue Funktionen zu erweitern und nicht zu reparieren.
  • Fakt 45: Eine bessere Softwareentwicklung führt zu mehr Wartung, nicht weniger.

Dieser war nicht intuitiv, es stellt sich heraus, dass gute Software mehr Wartung hat, weil sie leicht zu ändern ist. Daher bleibt es länger in Gebrauch, was ja zu mehr Änderungen führt.

Welches Paradigma (wie funktional, objektorientiert, prozedural) weist die beste Wartbarkeit auf, und gibt es Forschungsergebnisse, die dies belegen?

KaizenSoze
quelle
Ich besitze eine Kopie von Fakten und Irrtümern, und für jede Tatsache (und jeden Irrtum) gibt es Zitate für verschiedene Veröffentlichungen, die dies unterstützen. Ich habe keine Kopie zur Hand, aber diskutieren diese Zitate die Auswirkungen des Paradigmas auf die Wartung?
Thomas Owens
Das Buch wurde 2003 geschrieben, viele der Schlussfolgerungen sind noch heute relevant. Ich war neugierig, ob die Leute neue Studien zu bestimmten Paradigmen hatten. Wartung scheint ein übersehener Teil der Diskussion zu sein.
KaizenSoze
Wenn sich eine der in Facts and Fallacies zitierten Studien oder Veröffentlichungen auf die Wartbarkeit eines bestimmten Paradigmas bezieht, besteht eine Option darin, die IEEE- oder ACM-Datenbanken nach anderen Artikeln und Artikeln zu durchsuchen, in denen dieser Artikel zitiert wird. Wenn Sie keinen Zugriff auf die IEEE- oder ACM-Datenbanken haben, kann ich mir meine Kopie des Buches ansehen, wenn ich nach Hause komme, um zu sehen, ob ich eine solche Suche durchführen kann. Leider kann ich Ihnen nur Namen anderer Papiere und nicht die Papiere selbst geben.
Thomas Owens

Antworten:

12

Ich denke, Sie werden feststellen, dass Paradigmen wie funktional, OO und prozedural wahrscheinlich nicht auf sinnvolle Weise mit der Wartbarkeit von Software übereinstimmen.

Was Sie möglicherweise finden, korreliert viel deutlicher mit der Wartbarkeit der Software:

  • Grad der Anforderungserfassung und Anforderungsentwicklung

  • Gute Entwicklungspraktiken: (lose Kopplung, hohe Kohäsion, Unit-Tests, YAGNI ...)

  • Erfahrene und qualifizierte Software-Ingenieure (Sie sind zehnmal so viel wert wie ein Idiot)

  • Qualifiziertes und organisiertes technisches QS-Team

  • Gutes Projektmanagement unter Leitung kompetenter Projektmanager (IMHO noch schwerer zu finden als qualifizierte Softwareentwickler)

  • Gute Produktbesitzer oder Anwendungsmanager, starke Führung, gute langfristige Ausrichtung, gutes Feedback an die Projektteams, Gesamtvision.

maple_shaft
quelle
+1 Ich möchte der Liste eine gute Dokumentation hinzufügen
Treecoder
+1 Fügen Sie der Liste "Value Focused" -Prozess hinzu. Der Prozess definiert und steuert, was getan und was nicht getan wird. Was der Prozess misst, ist wichtig und was der Prozess nicht misst, ist unwichtig. Besonders wahr, wenn die HR-Leute anfangen, Sitze mit "Idioten" zu füllen.
Mattnz
2

Dieser war nicht intuitiv, es stellt sich heraus, dass gute Software mehr Wartung hat, weil sie leicht zu ändern ist. Daher bleibt es länger in Gebrauch, was ja zu mehr Änderungen führt.

Sie scheinen dies anhand des Wartungsaufwands und nicht anhand des Prozentsatzes der Kosten zu sehen. Gute Software mit mehr Funktionen ist nur eine größere Menge an Software. Wenn der Wartungsprozentsatz festgelegt ist (da es sich um eine gute Software handelt und wir davon ausgehen, dass die zusätzlichen Funktionen als gute Software hinzugefügt wurden), erhöht sich der Betrag. Es ist nur ein größeres Stück Kuchen mit der gleichen Anzahl von Scheiben.

Basierend auf Ihren Fragen ist es wichtig, ob die "gute" Software geschrieben wurde: Funktions-, OOP- oder Verfahrenscode. Wird jemand, der eine lasergeführte Motorsäge hat, Holz sparen, wenn er nicht weiß, wie er messen soll?

JeffO
quelle