|
Каждому известны два наиболее важных параметра программ: "память и время. Однако существует еще один параметр, который необходимо учитывать, — сложность. Чем сложнее программа, тем труднее ее контролировать, тестировать, отлаживать и эксплуатировать. Ограничив параметр сложности, мы можем получить намного легче поддающийся управлению результат. В настоящее время существуют методы ограничения сложности программ.
Программа для вычислительных машин — одна из наиболее сложных когда-либо создаваемых структур. Более того, из-за повторных вычислений с различными наборами данных программа является наиболее испытанной структурой. Некоторые ошибки многих сложных структур так и остаются невыявленными, так как соответствующие ситуации никогда не наступают. Например, только во время землетрясений можно проверить сейсмоустойчи-вость здания.
В разные времена истории человечества были созданы очень сложные структуры и выполнены операции впечатляющей сложности, но содержащие несколько серьезных ошибок. Под удачной структурой или операцией подразумевается такая, в которой ошибки проектирования и внедрения могут быть выявлены во время использования. Что такое методы управления сложностью? Как они действуют? Каким образом можно их применить для ^программирования?
Существуют два подхода к обеспечению качества: проведение исчерпывающего тестирования либо обеспечение высокого качества системы на всех стадиях разработки. Для большинства программ невозможно провести исчерпывающего тестирования, поэтому приходится управлять сложностью программ.
Метод, обычно используемый для управления сложностью, заключается в том, что процесс или структуру разбивают на небольшие, легко управляемые части, которые комбинируют для получения определенной функции. Такой подход используется в серийном производстве так же, как и во всех организациях — административных и промышленных. Увеличение сложности програм*
мы не пропорционально увеличению ее размера. При увеличении размера программы вдвое сложность может возрасти в четыре раза. Таким образом, проект программного обеспечения, по размерам вдвое превышающий заведомо успешный проект, нельзя получить простым удвоением персонала. Это обстоятельство часто не учитывалось и явилось причиной появления многих неудачных проектов.
Управление сложностью — очень важный фактор в программировании. По существу мы занимаемся этим, определяя функцию каждого модуля независимым образом. Каждый модуль, получая входные данные, должен выдать определенные выходные данные. Модульное проектирование дает возможность составлять из модулей систему с более сложной структурой.
Разбиение на модули и метод проектирования сверху вниз (это понятие объясняется ниже) позволяют нам контролировать сложность системы, определяя ее различные уровни. Детали нижнего уровня могут игнорироваться, если нет необходимости в соответствующей этому уровню информации. Например, если читается основная программа и встретился вызов подпрограммы, выдающей заголовки некоторых сообщений, то можно пропустить эту подпрограмму и продолжать следовать логике основной программы. Если же заголовки запрограммированы как часть основной программы, то неизбежно выполнение этой части программы.
Разбиение на модули — это мощное средство управления параметром сложности. Во-первых, модули позволяют разделить множества переменных. Таким образом, уменьшается влияние многих возможных ошибок благодаря их изоляции в пределах каждого модуля. Например, чем больше модуль, тем больше вероятность использования одной и той же переменной для двух разных целей. Кроме того, чем больше модуль, тем труднее определить, что произойдет, если внести незначительное изменение в какую-либо часть модуля. И наконец, введение модулей уменьшает число возможных путей в программе, что является существенным обстоятельством при управлении параметром сложности.
Следующий шаг в управлении общей сложностью — управление сложностью в пределах каждого модуля; этот процесс обычно называется структурным программированием.
⇐2.12. Установление целей || Оглавление || 2.14. Структурное программирование⇒
Курсы дизайна ногтей, Москва - курсы дизайна ногтей. Красивые ногти это просто. |