ВУЗ:
Составители:
Рубрика:
11
Пусть С(х) – функция сложности решения проблемы х, Т(х) – функ-
ция затрат времени на решение проблемы х. Для двух проблем р
1
и р
2
из
соотношения С(р
1
) > С(р
2
) следует, что
T(p
l
) > T(p
2
). (1.1)
Этот вывод интуитивно ясен: решение сложной проблемы требует
большего времени.
Далее. Из практики решения проблем человеком следует
С(р
1
+ р
2
) > С(р
1
) + С(р
2
).
Отсюда с учётом соотношения (4.1) запишем
T(p
1
+ p
2
) > T(p
l
) + T(p
2
). (1.2)
Соотношение (1.2) – это обоснование модульности. Оно приводит к
заключению «разделяй и властвуй» – сложную проблему легче решить,
разделив её на управляемые части. Результат, выраженный неравенством
(1.2), имеет важное значение для модульности и ПО. Фактически, это ар-
гумент в пользу модульности.
Однако здесь отражена лишь часть реальности, ведь здесь не учиты-
ваются затраты на межмодульный интерфейс. Как показано на рис. 1.11, с
увеличением количества модулей (и уменьшением их размера) эти затра-
ты также растут.
Таким образом, существует оптимальное количество модулей Opt,
которое приводит к минимальной стоимости разработки. Увы, у нас нет
необходимого опыта для гарантированного предсказания Opt. Впрочем,
разработчики знают, что оптимальный модуль должен удовлетворять
двум критериям:
снаружи он проще, чем внутри;
его проще использовать, чем построить.
Рис. 1.11. Затраты на модульность
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »