Обзор подходов к автоматизации процесса программирования

Обзор подходов к автоматизации процесса программирования

В статье представлен обзор развития в области автоматизация формирования программ. Рассматриваются основные проблемы в области автоматического синтеза программ, интеллектуальная поддержка разработки программного обеспечения, компьютерная разработка программного обеспечения.

Авторы публикации

Рубрика

Информационные технологии

Журнал

Журнал «Научный лидер» выпуск # 1 (3), Январь ‘20

Поделиться

 

Сразу после того, как люди начали использовать компьютеры, возникла необходимость в программирования. Компьютер является чрезвычайно мощным инструментом для работы. В яркие обсуждения данной тематики исследователями были еще в 1954 г.

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

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

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

Конечно, ожидать от компьютера, что он сам разработает алгоритм для данной проблемы, - очень оптимистичное видение. Было несколько других более реалистичных направлений исследований, начиная от автоматического перевода языков программирования и заканчивая неавтоматической компьютерной поддержкой и различными задачами разработки программного обеспечения.[2]

Подобное переключение внимания с полной автоматизации процесса решения проблем на обеспечение его поддержки, наблюдается в искусственном интеллекте, в частности в форме «экспертных систем». На самом деле, ведется довольно много работы в самых разных направлениях. Даже более традиционные подходы, такие как автоматизированная разработка программного обеспечения (CASE), стремятся к прогрессу во внедрении методов, основанных на знаниях [3].

Есть несколько направлений исследований, все в рамках общих усилий по созданию методов и инструментов для поддержки процесса разработки программного обеспечения в форме компьютерной помощи людям. Направления исследований можно классифицировать по разным критериям, но мы приняли методологию, основанную на сосредоточении внимания на взаимодействии человека и компьютера. В основе этого аспекта лежит автоматизация, т.е. в какой мере человек не только планирует и придумывает формулы манипулирования в процессе формирования программы, но и выполняет их. Наша гипотеза заключается в том, что на самом деле человеку не обязательно выполнять все операции. После их программирования компьютер может выполнять их с возможным выигрышем в эффективности, надежности и т. д. Это совершенно очевидно для таких операций с программами, как трансляция программ, оптимизация и другие преобразования. В этой статье мы хотели бы больше сосредоточиться на формировании программы. Чем больше человек знает о том, как решать некоторый класс проблем, тем больше он / она может перенести на компьютер, при условии, что знания могут быть надлежащим образом представлены и могут быть сформулированы операции для их манипуляции. Как следствие при формировании программы, любой прогресс может быть достигнут только в том случае, если человек сможет глубже понять его. Опять же, работа по достижению этой цели идет в нескольких направлениях, в первую очередь, возможно, в рамках исследований теории программирования, но, с нашей точки зрения, делается попытка зафиксировать знания в области программирования таким образом, чтобы их можно было использовать для компьютерной поддержки формирования программ. Более подробно все эти вопросы уже рассматривались в литературе [4].

Список литературы

  1. Великоруссов Ю.А., Крылов Б.А. Автоматизация процесса программирования // Научно-технический вестник информационных технологий, механики и оптики. 2007. №40. URL: https://cyberleninka.ru/article/n/avtomatizatsiya-protsessa-programmirovaniya (дата обращения: 26.01.2021).
  2. Вичугова А.А. Автоматизация процесса разработки программного обеспечения: методы и средства // Прикладная информатика. 2016. №3 (63). URL: https://cyberleninka.ru/article/n/avtomatizatsiya-protsessa-razrabotki-programmnogo-obespecheniya-metody-i-sredstva (дата обращения: 26.01.2021).
  3. Aslett, MJ. «A Knowledge Based Appraach to Softwere Development». Amsterdam, The Netherlands: North Holland Publishing Co., (1991).
  4. Navrat, P. «Intelligent Support for Software Construction, and Higher Education in Informatics at   The Slovak TU : teh DEC Connection.» In : Proc. DECSYM 92 Laiest Trends in Computing, Side-Antalya, (1992), 253-263.

Предоставляем бесплатную справку о публикации,  препринт статьи — сразу после оплаты.

Прием материалов
c по
Осталось 4 дня до окончания
Размещение электронной версии
Загрузка материалов в elibrary