Сложность программирования
-
Сложность программного обеспечения
- Сложность программного обеспечения влияет на его внутренние взаимодействия.
- Различие между терминами «сложный» и «усложненный»: сложный познаваем, комплекс описывает взаимодействия.
- Увеличение числа сущностей ведет к геометрическому росту взаимодействий, что усложняет понимание и контроль.
- Высокий уровень сложности увеличивает риск дефектов при изменении ПО.
-
Исследование сложности ПО
- Профессор Мэнни Леман и Лес Белади исследовали сложность ПО и пришли к выводу о необходимости детерминированных моделей.
-
Типы сложности
- Случайная сложность связана с инструментами разработки и может быть уменьшена выбором инструментов и языка программирования.
- Существенная сложность обусловлена характеристиками задачи и не может быть уменьшена.
-
Меры сложности
- Предложено множество показателей сложности, но не все поддаются измерению.
- Генри и Кафура предложили метрику сложности на основе потока информации.
- Чидамбер и Кемерер предложили набор метрик для объектно-ориентированного программирования.
-
Закон Теслера
- Утверждает, что сложность ПО невозможно удалить или скрыть.
-
Показатели Чидамбера и Кемерера
- Используются для измерения сложности программирования и включают взвешенные методы, связь между классами, отклик класса, количество дочерних элементов и глубину дерева наследования.