Page 81 - ЭВМ
P. 81
Программная инженерия – прикладная наука, занимающаяся
оптимизацией и повышением эффективности разработки ПО; сово-
купность научно обоснованных методов проектирования (анализа),
разработки, внедрения и сопровождения ПО. Это интегрирование
принципов математики, информатики и компьютерных наук с инже-
нерными подходами, разработанными для производства осязаемых
материальных артефактов.
Начало бурному развитию структурного программирования как
нового направления положила работа Э. В. Дейкстры «GOTO счита-
ется вредным» (1968 г.). Первоначально к структурному программи-
рованию относили все, что ускоряло разработку ПО, делало его по-
нятнее и надежнее. Сейчас в это направление принято включать кон-
цепции структурного кодирования, модульного программирования и
дисциплинированного проектирования ПО.
Структурное кодирование составляют правила организации
в программах связей по передачам управления, т. е. допускаются
последовательности операторов, вызовы подпрограмм, цикла и ветв-
ления, причем для всех управляющих конструкций допускаются
варианты, имеющие только один вход и выход. Напомним, что одна
из задач анализа программ состоит в выяснении того, какие из потен-
циально возможных связей реализованы в программе. Причем от
многообразия возможностей непосредственно зависит сложность этой
задачи.
Концепция модульного программирования, выдвинутая еще
в середине 1950-х гг. (ассемблеры, Фортран), подверглась сильным
изменениям в 1970-е гг. Первоначально ставилась задача выделения
относительно независимых фрагментов программ с целью организа-
ции разделения работ, повторного использования ПО, уменьшения
затрат на повторную компиляцию и преодоления ограничений на
размеры компилируемых программ. Связь модульности с независи-
мой компиляцией привела к разделению всех объектов программы на
множество внешних объектов, используемых для межмодульных свя-
зей, и множества внутренних объектов каждого модуля с распределе-
нием по этим множествам общей сложности программы.
Если предыдущие концепции рассматривали, соответственно,
микро- и макроуровни ПО, то концепция дисциплинированного про-
ектирования ПО относится к его развитию во времени. Процесс раз-
работки ПО можно представить как последовательность актов приня-
тия проектных решений с возвратами для исправления ошибочных
решений.
79