Технологии программирования (ТП) — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Технологии программирования (ТП)

2021-01-31 73
Технологии программирования (ТП) 0.00 из 5.00 0 оценок
Заказать работу

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

Основные вехи чисто программистской линии технологического повыше- ния производительности труда в программировании связаны с кристаллиза- цией определенных ПП, обусловленных созданием конкретных ЯП, изобре- тением новых принципов реализации СП, появлением новых ТП:

– переход от машинного кода к ассемблеру освободил программирование от соблазна виртуозного кодирования алгоритмов;

– появление языков высокого уровня сняло с программистов бремя про- рисовки блок-схем с многократной их перерисовкой по мере уточнения ре- шаемой задачи;


 

 

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

В большинстве ПП, за исключением языка Lisp и некоторых языков функ- ционального программирования, программа рассматривается как статиче- ский объект, тогда как в реальности она развивается и может частично видо- изменяться в процессе разработки и исполнения. Ждут своего часа резервы верификации, обретающие практичность на современной технике.

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

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

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

Тестирование – это организация такого применения программы, в кото- ром обнаруживается наличие дефекта: ошибки или несоответствия ожида- ниям конкретных групп пользователей. Это означает, что для определения


 

 

множества недостаточно задать его элементы, надо еще определить и все, что множеству принадлежать не может.

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

– для выбираемых входных данных сразу подбираются ожидаемые вы- ходные данные;

– тест, не обнаруживающий ошибку, не имеет смысла как тест, но может быть полезен как демонстрационный материал;

 
тестирование – это творческий процесс, так как возможности допустить ошибку в программе разнообразнее, чем ее правильные построения;

– удачный тест выявляет новую, незамеченную ранее ошибку. При автоматизации тестирования решают следующие проблемы:

– создание и накопление хорошего набора тестов;

– оценка набора на полноту по ряду критериев;

– исполнение программ на тестах, оценка результатов и их хранение;

– символьное исполнение программ;

– исполнение программ в альтернативных условиях, отличных от условий разработки.

Тонкости выбора тестового материала детально описаны в книге С. К. Черноножкина [18].

Различается отношение к источникам ошибок и мерам их профилактики в разных ПП. Если императивно-процедурное программирование (ИП) апел- лирует к спецификации типов данных (ТД), обеспечивающих возможность статического контроля при компиляции программ, то функциональное про- граммирование (ФП) предпочитает полный динамический контроль любых условий, гарантирующих корректность вычислений.

 
С математической точки зрения процесс тестирования можно предста- вить как обнаружение точек графика реализуемой функции, через которые эта функция не должна бы проходить. Локализация ошибки – это установле- ние отклоняющейся точки. Исправление ошибки – это преобразование опре- деления функции к виду, дающему ее уточненный график. Может быть ис- пользовано сравнительное исполнение программы и ее прототипа.

В целом, процесс разработки программ можно представить как последова- тельность шагов по уточнению постановки задачи, методов ее решения, текста программы решения и набора данных, представляющих тесты и «нетесты». Если последовательность достигает состояния, в котором уточняемые сущности соот- ветствуют друг другу, то утверждается, что завершена отладка программы.

Подходы к отладке не менее требовательны к творчеству, чем методы те- стирования, но объем необходимых затрат на отладку может быть сокращен выбором стиля конструирования программ из проверенных шаблонов,


 

 

рамками надежных стандартов, использованием удобно реализуемых моде- лей. Здесь многое дает парадигма функционального программирования.

Сложность процесса отладки программы можно оценивать по мощности множества данных, на которых необходимо выполнить прогон программы (более 6000 для компилятора С++). Так, например, множество данных для отладочного прогона программы, содержащей цикл, должно содержать не менее трех наборов:

– без захода в тело цикла;

– с однократным заходом в тело цикла;

– с многократным прохождением тела цикла.

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

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

 


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.