Głównym celem tego pytania: niektóre programy wykonują „dodatkową pracę” w celu zwiększenia szansy na „ostatecznie pomyślny / zadowalający” wynik, pomimo jednego lub więcej wewnętrznych błędów w oprogramowaniu, co wymaga dłuższego czasu wykonania, gdy te błędy wystąpią. Wszystko to dzieje się bez wiedzy użytkownika, jeśli wynik byłby udany.
Definicja złożonego oprogramowania:
- Zawiera kod napisany przez (ponad 10 programistów) przez cały okres jego użytkowania, a nie napisany w tym samym przedziale czasowym
- Zależy od ponad 10 bibliotek zewnętrznych, każda z zastrzeżeniami
- Typowe zadanie programowe (do generowania pożądanego przez użytkownika wyniku) wymaga 10 lub więcej parametrów wejściowych, przy czym większość z nich ma wartości domyślne, ale można je konfigurować, jeśli użytkownik potrzebuje kontroli.
- Co najważniejsze, oprogramowanie, które ma odpowiednią złożoność w stosunku do wykonywanego zadania, tj. Nie jest niepotrzebnie skomplikowane .
Edytowane: Co jest złożone? Proszę zobaczyć Istnieje duża różnica między złożonym a skomplikowanym . (link bezpośredni)
Definicja redundancji / odporności w ramach tego pytania :
(Dodano niezawodność na podstawie komentarzy)
- Jeśli zadanie oprogramowania nie powiodło się, gdy użyto bieżącego zestawu parametrów, wypróbuj inne parametry.
- Oczywiście musi istnieć wiedza wewnętrzna, że te „różne” parametry używają innej ścieżki kodu, co może skutkować innym (miejmy nadzieję lepszym) wynikiem.
- Czasami te różne ścieżki kodu są wybierane na podstawie obserwacji bibliotek zewnętrznych.
- Na koniec, jeśli faktyczne wykonane zadanie różni się nieco od specyfikacji użytkownika, użytkownik otrzyma raport szczegółowo opisujący rozbieżność.
- Wreszcie, podobnie jak 10 konfigurowalnych parametrów, nadmiarowość i raportowanie są również konfigurowalne.
Przykład takiego oprogramowania:
- Migracja bazy danych
- Baza danych biznesowych
- Baza danych kontroli źródła itp.
- Konwersja wsadowa między dokumentem Word a dokumentem OpenOffice, PowerPoint i OpenOffice Draw itp.
- Automatyczne tłumaczenie całej strony internetowej
- Automatyczna analiza pakietu oprogramowania, takiego jak Doxygen, ale tam, gdzie analiza musi być bardziej niezawodna (tj. Nie tylko narzędzie dokumentacji)
- Komunikacja sieciowa, w której pakiety mogą zostać utracone i należy spodziewać się wielu ponownych prób
To pytanie zostało pierwotnie zainspirowane tym, jak radzisz sobie z celowo złym kodem?
ale teraz koncentruje się tylko na jednej z przyczyn wzdęć oprogramowania. To pytanie nie obejmuje żadnych innych przyczyn wzdęć oprogramowania, takich jak dodanie nowych funkcji.
Ewentualnie powiązane: