Книга: Основы объектно-ориентированного программирования
Компромиссы
Компромиссы
В данном обзоре внешних факторов качества ПО мы встретились с требованиями, которые могут конфликтовать друг с другом.
Как можно достичь целостности, если не вводить защиты различного рода, что неизбежно затруднит простоту использования? Экономичность часто конфликтует с функциональностью.
Оптимальная эффективность требует полной адаптации к определенному оборудованию и программной среде, что является противоположностью переносимости. Повторное использование требует решения общих задач, что расширяет границы, заданные спецификацией. Давление своевременности может склонить нас к технике RAD - быстрой разработки приложения (Rapid Application Development), что может повредить расширяемости. Хотя во многих случаях удается найти решение, примиряющее явно конфликтующие факторы, иногда приходится идти на компромисс.
Разработчики слишком часто и без колебаний идут на компромисс, не давая себе труда рассмотреть соответствующие вопросы и имеющиеся варианты. В таких молчаливых решениях доминирующим фактором обычно является эффективность. По-настоящему инженерный подход к созданию ПО подразумевает работу по ясной формулировке критериев и осознанного выбора вариантов.
Как бы ни были необходимы компромиссы между факторами качества, один из факторов стоит в стороне от остальных - корректность. Нет никакого оправдания тому, что корректность подвергается опасности ради других факторов, таких как эффективность. Если ПО не выполняет свою функцию, все остальное не имеет смысла.
- Корректность (Correctness)
- Устойчивость (Robustness)
- Расширяемость (Extendibility)
- Повторное использование (Reusability)
- Совместимость (Compatibility)
- Эффективность (Efficiency)
- Переносимость (Portability)
- Простота использования (Easy of Use)
- Функциональность (Functionality)
- Своевременность (Timeliness)
- Другие качества
- О документации
- Компромиссы
- Ключевые вопросы
- 11.4. Компромиссы между CLI- и визуальными интерфейсами
- 13.1.2. Компромиссы между сложностью интерфейса и реализации
- 13.3.2. Компромиссы не действуют
- Возможность избежать случайных приоритетов
- 2 Консенсус и компромисс
- 11 Интерфейсы: модели проектирования пользовательских интерфейсов в среде Unix
- 11.1. Применение правила наименьшей неожиданности
- 13.1. Сложность