Czytałem, Fakty i błędy inżynierii oprogramowania, która zawiera sekcję dotyczącą konserwacji. Ponieważ od lat jestem programistą konserwacji, zaprezentowałem bardzo interesujące fakty. Oto trzy.
- Fakt 41: Konserwacja zazwyczaj pochłania od 40 do 80 procent (średnio 60 procent) kosztów oprogramowania. Dlatego jest to prawdopodobnie najważniejsza faza cyklu życia oprogramowania.
- Fakt 42: Ulepszenie odpowiada za około 60 procent kosztów utrzymania oprogramowania. Korekta błędu wynosi około 17 procent. Dlatego konserwacja oprogramowania polega głównie na dodawaniu nowych możliwości do starego oprogramowania, a nie naprawianiu go.
- Fakt 45: Lepszy rozwój inżynierii oprogramowania prowadzi do większej konserwacji, a nie mniej.
Ten był sprzeczny z intuicją, okazuje się, że dobre oprogramowanie wymaga większej konserwacji, ponieważ łatwo je zmienić. Dlatego pozostaje dłużej w użyciu, co prowadzi do, tak, więcej zmian.
Który paradygmat (taki jak funkcjonalny, obiektowy, proceduralny) ma najlepszą łatwość utrzymania i czy istnieją jakieś badania na poparcie tego?
maintenance
maintainability
KaizenSoze
źródło
źródło
Odpowiedzi:
Myślę, że przekonasz się, że paradygmaty takie jak funkcjonalny, OO i proceduralne prawdopodobnie nie będą miały istotnego związku z utrzymywalnością oprogramowania.
Co można znaleźć następujące podstawowe informacje znacznie łatwiejsze w utrzymaniu oprogramowania:
Poziom zbierania wymagań i inżynieria wymagań
Dobre praktyki rozwoju: (luźne połączenie, wysoka kohezja, testy jednostkowe, YAGNI ...)
Wykwalifikowani i wykwalifikowani inżynierowie oprogramowania (są warte 10 razy więcej niż kretyn)
Wykwalifikowany i zorganizowany zespół ds. Technicznych kontroli jakości
Dobre zarządzanie projektami prowadzone przez kompetentnych kierowników projektów (nawet trudniejsze do znalezienia niż wykwalifikowani twórcy oprogramowania IMHO)
Dobrzy właściciele produktów lub menedżerowie aplikacji, silne przywództwo, dobry długoterminowy kierunek, dobre informacje zwrotne dla zespołów projektowych, ogólna wizja.
źródło
Wygląda na to, że przeglądasz to na podstawie konserwacji, a nie procentu kosztów. Dobre oprogramowanie, które ma więcej funkcji, to po prostu większa ilość oprogramowania. Jeśli odsetek konserwacji jest stały (ponieważ było to dobre oprogramowanie i zakładamy, że dodatkowe funkcje zostały dodane jako dobre oprogramowanie), kwota wzrośnie. To tylko większy kawałek ciasta z taką samą liczbą plasterków.
W zależności od tego, o co pytasz, ważne jest, czy „dobre” oprogramowanie zostało napisane w: kodzie funkcjonalnym, OOP czy proceduralnym. Czy podarowanie komuś laserowej piły mechanicznej zaoszczędzi na drewnie, jeśli nie będzie wiedział, jak mierzyć?
źródło