Средства разработки программных продуктов: развитие, статистика и тенденции
Основные этапы развития средств разработки программного обеспечения. Структурный, объектный и компонентный подход к программированию. Языки программирования и методологии. Система обозначений, используемых для описания некоторого класса моделей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.12.2019 |
Размер файла | 903,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В отличие от Scrum, Kanban обрел популярность намного позже, но это ни в коей мере не умаляет его достоинств и не делает менее эффективным. Метод полезен как в IT-области, так и в бизнес-сфере.
4. Тенденции развития
Будучи высокотехнологичной отраслью, разработка программного обеспечения всегда была центром технологических тенденций. Она быстро адаптировалась к разработке веб-сайтов для компаний, которые делают бoмльшую часть своего бизнеса в интернете и разработке мобильных приложений с появлением смартфонов и гаджетов. С появлением новых технологий, индустрия программного обеспечения собирается снова адаптироваться.
При опросе компаний были отмечены следующие тенденции для индустрии программного обеспечения (Рис. 9):
Большинство отрасли, около 69,20%, признали, что их требования к клиентскому программному обеспечению основаны на ИИ. Большинство разработчиков искусственного интеллекта занимается разработкой средств автоматизации бизнеса, чат-ботов, умных помощников и методов машинного обучения.
Около 56% поставщиков услуг согласились с перспективным будущим технологии Blockchain. Промоутеры ведущих компаний-разработчиков блокчейна продемонстрировали прототипы будущих социально-экономических институтов, в том числе более прозрачную систему и более плавное функционирование.
Еще 47% руководителей отрасли делают ставку на Интернет вещей. Ассимилируя повседневную жизнь людей, гаджеты воплощаются, чтобы стать умными помощниками.
Интернет вещей уже довольно долго является популярным трендом в области разработки ПО. Обычно мы используем интернет не на одном устройстве, а сразу на нескольких, и все они подключены к интернет-серверам, облачным хранилищам и многому другому. Это явление и называется Интернетом вещей. Оно становится все более распространенным, разработчики проявляют к нему интерес и пытаются определить, как правильно запрограммировать устройства, чтобы пользователи могли легко управлять ими.
Другие тренды индустрии включают в себя "большие данные" (31%), облачные вычисления (28.70%), AR/VR (26.50%), информационную безопасность (24%) и некоторые другие.
Рисунок 9. Тренды разработки ПО [12]
По моему мнению, искусственный интеллект (ИИ) будет играть решающую роль для индустрии программного обеспечения. ИИ будет оказывать влияние в основном на два фронта: внешний и внутренний. Внешне усилия будут направлены на то, чтобы программное обеспечение на базе ИИ уделяло больше внимания применимости. В то время как внутренне, утомительные усилия по кодированию были бы облегчены с помощью помощи ИИ, сосредотачивающейся на полезности. Охватывая все взгляды, есть два пути разработки программного обеспечения с использованием ИИ:
Программное обеспечение с искусственным интеллектом
ИИ создающий программное обеспечение
Программное обеспечение с искусственным интеллектом:
Программное обеспечение на базе искусственного интеллекта популярно на рынке. С растущей потребностью в автоматизации, искусственный интеллект обеспечивает гораздо более надежное решение. Разработчики искусственного интеллекта, предлагая инновационные приложения и новые идеи, предлагают широкий спектр исследований для индустрии программного обеспечения, чтобы обеспечить более качественный сервис.
Бизнес-аналитика помогает компаниям принимать решения, в то время как автоматизация бизнес-процессов позволяет самостоятельно выполнять бизнес-процессы. В целом это повышает качество и количество обслуживания клиентов. Здесь разработчики используют ИИ для улучшения функциональности и создания более отзывчивых приложений для пользователей.
Такие требования окажут рыночное воздействие на разработку программного обеспечения. Основу разработки составят гибкие подходы к разработке, универсальные и адаптивные языки программирования, подходящие инструменты разработки и высококвалифицированные ресурсы.
ИИ, создающий ПО:
ИИ революционизирует все функции отрасли, и разработка программного обеспечения также не осталась нетронутой. При разработке программного обеспечения с помощью ИИ роли и требования к навыкам для разработчиков будут меняться для расширения возможностей процессов и продуктов.
Одна из самых интересных ролей ИИ - решение проблем. Традиционная разработка программного обеспечения потребляет много времени и ресурсов, затрачиваемых на выяснение проблем, а затем на алгоритмы решения. При машинном обучении нужно просто определить набор случаев и ввести собранный диапазон данных в модули автоматизации. Такие модули могли бы быстро считать важные критерии и атрибуты программного обеспечения. Методы глубокого обучения не только ускорят разработку методологий, но и помогут разработчикам на нескольких этапах разработки и тестирования.
На сегодняшний день происходят попытки создания систем, создающих ПО на базе ИИ. Одной из них является система глубокого обучения Bayou. Она, была разработана учеными из Университета Райса при финансировании Агентства перспективных исследований Министерства обороны США (DARPA) и Google. Bayou - это система для генерации идиом API-фрагментов кода, использующих API - интерфейсы на Java. Пользователи могут указать задачи программирования в своем коде, отправив запрос Bayou о типе программы, которая, вероятно, решит задачи. Задача Bayou состоит в том, чтобы использовать код пользователя и запрос для создания правильной программы для задачи.
В настоящее время Bayou поддерживает следующие API Java:
java.lang
java.io
java.util
Несмотря на то, что технология находится в зачаточном состоянии, она представляет собой значительный прорыв в использовании искусственного интеллекта (ИИ) для программного обеспечения, и потенциально может сделать кодирование намного менее трудоемким для разработчиков-людей. Bayou по сути действует как поисковая система для кодирования, позволяя разработчикам вводить несколько ключевых слов и видеть код на Java, который поможет с их задачей.
Bayou обучался сам, изучая миллионы строк написанного человеком Java-кода из GitHub, и использует его для написания своего собственного кода. Для обучения системы было использовано более 37000 Java и Android проектов. Bayou основан на методе, называемом нейросетевым обучением, который обучает искусственную нейронную сеть распознавать высокоуровневые шаблоны в сотнях тысяч Java-программ.
Входные данные в Bayou состоят из двух частей:
«Черновая программа», в которой пользователь может объявлять и инициализировать переменные, которые предназначены для использования в задаче программирования.
«Запрос», который передает цель задачи программирования. Думайте о запросе как о подсказках или предложениях относительно характера задачи. Каждый термин в запросе может быть двух видов: имена методов API, которые могут быть вызваны в задаче программирования, типы переменных, которые могут использоваться в задаче программирования.
Bayou интерпретирует этот запрос, используя новый метод, называемый нейронный эскиз обучения (Neural Sketch Learning). Этот метод учится связывать запросы о задачах программирования с формами решений этих задач. Во время генерации программ нейронная сеть используется для выведения распределения вероятностей по программам, которая присваивает больший вес тем программам, которые, согласно изученной модели, с большей вероятностью соответствуют предоставленному запросу. Вывод состоит из наиболее вероятных программ этого дистрибутива.
Предположим, вы хотите, чтобы Bayou генерировал метод Java, который читает из данного файла. Вы знаете, что этот метод должен вызывать метод API “readLine”. Вы можете выразить эти знания в виде запроса, используя черновик, который представлен на Рис. 10.
Рисунок 10. Запрос пользователя
Bayou заменит пустой блок, в котором задан запрос, возможно, добавив соответствующий импорт и оставив остальную часть кода без изменений. На Рис. 11 пример программы, которую выдала система Bayou.
Рисунок 11. Ответ Bayou
Хотя данная система не совершенна и может выдать в ответе не то чего ожидает пользователь, уже сейчас можно представить насколько измениться создание ПО при развитии подобных технологий. Разработчикам не придется тратить время на написание или поиск шаблонных и утомительных компонентов программного обеспечения. Они смогут сосредоточиться на инновациях и полезности на фронте применения.
Заключение
Средства разработки программных продуктов ведут свою историю с середины прошлого века. За это время они прошли несколько этапов своего развития и существенно изменились. От программирования напрямую на машинном коле до работы в интегрированных средах разработки.
В настоящее время существует огромное количество программных продуктов и методологий, позволяющих в сжатые сроки эффективно и качественно разработать программный комплекс для различных предметных областей. Использование удачных методов и инструментов программирования напрямую влияет на качество программного обеспечения.
Для программных продуктов глобального информационного общества характерны высокие требования к их коммуникативным составляющим. Это обусловило переход от создания монолитных решений для создания компонентов, допускающих свое повторное использование в различных средах и программных приложениях.
Учитывая большее влияние, которое ИИ оказывает на индустрию разработки программного обеспечения, интересно посмотреть, к чему эта индустрия будет развиваться.
Список используемой литературы
1. Дорот В.Л., Новиков Ф.А. Толковый словарь современной компьютерной лексики. СПб.: БХВ-Петербург, 2001.
2. Бен-Ари М. Языки программирования. Практический сравнительный анализ. - М.: Мир, 2000. - 128 с.
3. Савенко И.И. Технология разработки программного обеспечения: конспект лекции / сост. И.И. Савенко; Томский политехнический университет. - Томск: Изд-во Томского политехнического университета, 2014 - 67 с.
4. Иванова Г.С. Технология программирования: Учебник для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. - 320 с.
5. Robert W. Sebesta Concepts of Computer Programming Languages 10th Edition. - N.Y.: Pearson Education, 2012. - 816 с.
6. Кризис программного обеспечения [Электронный ресурс] // Howling Pixel: URL: https://howlingpixel.com/i-ru/Кризис_программного_обеспечения (Дата обращения 20.06.2019).
7. Абросимова А.С., Белова С.В. Пошаговая Детализация Как Метод Проектирования Алгоритмов // Современные наукоемкие технологии. - 2013. - № 8-1. - С. 109-110.
8. habr [Электронный ресурс] / Идеология компонентно-ориентированного программирования. URL: https://habr.com/ru/sandbox/96615/ (Дата обращения 06.06.2019).
9. Павлова, Е.А. Технологии разработки современных информационных систем на платформе Microsoft .NET / Е.А. Павлова. - М.: Интернет-Университет Информационных Технологий, 2009. - 112 с.
10. Давыдова Н.А. Программирование: Учебное пособие / Н.А. Давыдова, Е.В. Боровская - М.: БИНОМ. Лаборатория знаний, 2015. - 241 с.
11. habr [Электронный ресурс] / «Python выходит в лидеры»: кто и почему его использует. URL: https://habr.com/ru/company/it-grad/blog/418909/ (Дата обращения 06.06.2019).
12. GoodFirms [Электронный ресурс] / Remarkably Useful Stats and Trends on Software Development | GoodFirms Research. URL: https://www.goodfirms.co/resources/software-development-research (Дата обращения 07.06.2019).
13. Интеллектуальный клуб 4BRAIN [Электронный ресурс] / AGILE - гибкая система управления проектами. URL: https://4brain.ru/blog/agile/ (Дата обращения 09.06.2019).
14. Apiumhub - Software Development Hub [Электронный ресурс] / Interesting Facts About Software Development: Statistics. URL: https://apiumhub.com/tech-blog-barcelona/interesting-facts-software-development/ (Дата обращения 09.06.2019).
15. TIOBE (The Importance Of Being Earnest) [Электронный ресурс] / TIOBE Index for June 2019. URL: https://www.tiobe.com/tiobe-index/ (Дата обращения 05.06.2019).
16. Bayesian Sketch Learning for Program Synthesis [Электронный ресурс] WHAT IS BAYOU? / URL: https://info.askbayou.com (Дата обращения 20.06.19).
Размещено на Allbest.ru
...Подобные документы
Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).
презентация [41,4 K], добавлен 13.10.2013Стадии разработки программного средства. Средства, методологии и методы его разработки. Оценка надежности и качества проекта. Обоснование необходимости разработки программы. Тестирование как процесс выполнения тестовой программы с намерением найти ошибки.
презентация [57,0 K], добавлен 27.12.2013Анализ и сравнение существующих систем тьюторской поддержки. Методологии разработки программного обеспечения. Разработка web-ориентированной системы тьюторской поддержки самостоятельной работы студента. Выбор архитектуры программных средств разработки.
курсовая работа [1,1 M], добавлен 05.01.2013Этапы технологического процесса разработки программных продуктов, их жизненный цикл. Общая характеристика языков программирования. Виды ошибок и принципы тестирования программ. Установление прав собственности на продукт посредством лицензий и контрактов.
презентация [1,9 M], добавлен 01.05.2011Современные методологические проблемы разработки и внедрения программного обеспечения ERP систем. Основные концептуальные подходы к методологии разработки и внедрения программного обеспечения. Исследование методологии ASAP: ее сильные и слабые стороны.
дипломная работа [4,3 M], добавлен 29.04.2011Виды и классификация программного обеспечения. Операционные системы. Виды прикладного программного обеспечения. Программные средства работы с текстом, для вычислительных работ, с графикой, со звуком. Базы данных. Языки и системы программирования.
реферат [87,7 K], добавлен 07.03.2009Проблема надежности программного обеспечения, ее показатели и факторы обеспечения. Методы контроля процесса разработки программ и документации, предупреждение ошибок. Этапы процесса отладки ПО, приемы структурного программирования и принцип модульности.
презентация [379,5 K], добавлен 30.04.2014История развития информационных технологий. Классификация, виды программного обеспечения. Методологии и технологии проектирования информационных систем. Требования к методологии и технологии. Структурный подход к проектированию информационных систем.
дипломная работа [1,3 M], добавлен 07.02.2009Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".
дипломная работа [3,2 M], добавлен 11.09.2014Технологии разработки программного обеспечения. Процедура постановки задачи, определения требований. Последовательность действий логической, разветвленной и циклической структуры. Терминология программирования. Этапы создания программного продукта.
презентация [793,8 K], добавлен 15.11.2010Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.
дипломная работа [861,9 K], добавлен 27.11.2014Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.
реферат [2,2 M], добавлен 25.12.2017Современные инструменты разработки программного обеспечения для СУТП. Универсальные языки программирования и сравнение их со SCADA-системами. Разработка программного обеспечения с использованием многоканальных измерительных преобразователей Ш9327.
дипломная работа [2,3 M], добавлен 13.07.2011Несоответствие процессов разработки программного обеспечения международным стандартам. Фазы, развитие вычислительной инфраструктуры. История развития компьютерных систем. Этапы разработки программ и их тестирование. Ошибки в программном обеспечении.
реферат [176,2 K], добавлен 27.08.2009Объектный подход как метод реализации программных систем. Проектирование и программная реализация стратегической системы, реализующей процессы создания и взаимодействия группы объектов. Разработка объектной модели. Назначение элементов интерфейса.
курсовая работа [4,1 M], добавлен 11.05.2012Понятие CASE-средств как программных средств, которые поддерживают процессы создания и сопровождения информационных систем (ИС). Особенности IDEF-технологии разработки ИС. Описание нотации IDEF0. Разработка функциональных моделей бизнес-процесса.
презентация [399,8 K], добавлен 07.04.2013Правила написания программ с блоками защиты от несанкционированного ввода данных. Приемы надежного программирования. Причины, источники и классификация ошибок программного обеспечения. Основные пути борьбы с ошибками. Метод введения переменной состояния.
курсовая работа [1,6 M], добавлен 25.03.2012Эволюция систем автоматизированного проектирования от простых средств двухмерного рисования и разработки чертежей до программных продуктов, включающих поддержку цикла разработки и производства изделия. Требования к пользовательскому интерфейсу САПР.
курсовая работа [274,5 K], добавлен 19.12.2014Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.
курсовая работа [19,5 K], добавлен 19.05.2011Методологии разработки информационных систем в отечественной и зарубежной литературе. Государственные и международные стандарты в области разработки программного обеспечения. Разработка фрагмента информационной системы "Учебно-методический ресурс".
курсовая работа [364,6 K], добавлен 28.05.2009