Page 81 - ЭВМ
P. 81

Программная  инженерия –  прикладная  наука,  занимающаяся
               оптимизацией  и  повышением  эффективности  разработки  ПО;  сово-
               купность  научно  обоснованных  методов  проектирования (анализа),
               разработки,  внедрения  и  сопровождения  ПО.  Это  интегрирование

               принципов математики, информатики и компьютерных наук с инже-
               нерными  подходами,  разработанными  для  производства  осязаемых
               материальных артефактов.
                      Начало бурному развитию структурного программирования как
               нового направления положила работа Э. В. Дейкстры «GOTO счита-
               ется вредным» (1968 г.). Первоначально к структурному программи-
               рованию относили все, что ускоряло разработку ПО, делало его по-

               нятнее и надежнее. Сейчас в это направление принято включать кон-
               цепции структурного кодирования, модульного программирования и
               дисциплинированного проектирования ПО.
                      Структурное  кодирование  составляют  правила  организации
               в  программах  связей  по  передачам  управления,  т.  е.  допускаются
               последовательности операторов, вызовы подпрограмм, цикла и ветв-

               ления,  причем  для  всех  управляющих  конструкций  допускаются
               варианты, имеющие только один вход и выход. Напомним, что одна
               из задач анализа программ состоит в выяснении того, какие из потен-
               циально  возможных  связей  реализованы  в  программе.  Причем  от
               многообразия возможностей непосредственно зависит сложность этой
               задачи.
                      Концепция  модульного  программирования,  выдвинутая  еще

               в  середине 1950-х  гг. (ассемблеры,  Фортран),  подверглась  сильным
               изменениям в 1970-е гг. Первоначально ставилась задача выделения
               относительно  независимых  фрагментов  программ  с  целью  организа-
               ции  разделения  работ,  повторного  использования  ПО,  уменьшения
               затрат  на  повторную  компиляцию  и  преодоления  ограничений  на

               размеры  компилируемых  программ.  Связь  модульности  с  независи-
               мой компиляцией привела к разделению всех объектов программы на
               множество внешних объектов, используемых для межмодульных свя-
               зей, и множества внутренних объектов каждого модуля с распределе-
               нием по этим множествам общей сложности программы.
                      Если  предыдущие  концепции  рассматривали,  соответственно,
               микро-  и  макроуровни  ПО,  то  концепция  дисциплинированного  про-
               ектирования ПО относится к его развитию во времени. Процесс раз-

               работки ПО можно представить как последовательность актов приня-
               тия  проектных  решений  с  возвратами  для  исправления  ошибочных
               решений.



                                                           79
   76   77   78   79   80   81   82   83   84   85   86