Основна увага в цьому питанні: Деякі програми виконують "додаткову роботу", щоб збільшити ймовірність "в кінцевому рахунку успішного / задовільного" результату, незважаючи на одну або кілька внутрішніх помилок у програмному забезпеченні, що вимагає більш тривалого часу виконання, коли ці помилки трапляються. Все це відбувається без відома користувача, якщо результат був успішним.
Визначення складного програмного забезпечення:
- Містить код, написаний (наданий від) більш ніж 10 розробниками протягом свого життя, а не записаний в один і той же часовий період
- Залежить від більше ніж 10 зовнішніх бібліотек, кожна з яких має застереження
- Типове програмне завдання (для генерування результату, потрібного користувачеві) вимагає 10 або більше вхідних параметрів, де більшість з них мають значення за замовчуванням, але їх можна налаштувати, якщо користувачеві потрібен контроль.
- Найголовніше - програмне забезпечення, яке має відповідну складність щодо виконуваного завдання, тобто не є зайвим .
Редаговано: Що є складним? Будь ласка, подивіться. Існує велика різниця між складними та складними . (пряме посилання)
Визначення надмірності / стійкості в цьому питанні :
(Додано надійність на основі коментарів)
- Якщо програмне завдання не вдалося, коли використовувався поточний набір параметрів, спробуйте інші параметри.
- Очевидно, слід знати, що ті "різні" параметри використовують інший шлях коду, можливо, це призведе до іншого (сподіваємось, кращого) результату.
- Іноді ці різні кодові шляхи вибираються на основі спостережень зовнішніх бібліотек.
- Врешті-решт, якщо реально виконане завдання дещо відрізняється від специфікації користувача, користувач отримає звіт із деталізацією розбіжності.
- Нарешті, як і 10-плюс настроювані параметри, надмірність та звітність також можна налаштувати.
Приклад такого програмного забезпечення:
- Міграція баз даних
- Бізнес бази даних
- База даних управління джерелами тощо.
- Пакетне перетворення між документом Word та документом OpenOffice, PowerPoint та OpenOffice Draw тощо.
- Автоматичний переклад цілого веб-сайту
- Автоматичний аналіз програмного пакету, такого як Doxygen, але там, де аналіз повинен бути більш надійним (тобто не лише інструментом документації)
- Мережевий зв’язок, де пакети можуть бути втрачені та очікується кількість повторних спроб
Це питання спочатку було натхнене з " Як ви маєте справу з навмисно поганим кодом?"
але зараз зосереджена лише на одній із причин розриву програмного забезпечення. Це питання не стосується жодних інших причин виникнення програмного забезпечення, наприклад додавання нових функцій.
Можливо, пов'язані: