УДК 004.4

Достижения и проблемы в разработке компьютерного программного обеспечения

Ли Синьюэ – выпускница Экспериментальной средней школы Чжуншань (Китай, Провинция Гуандонг).

Лян Яньин – магистр, преподаватель информационных технологий Экспериментальной средней школы Чжуншань (Китай, Провинция Гуандонг).

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

Ключевые слова: программирование, инновации, технологии, проблемы разработки ПО, качество кода.

Введение

Разработка компьютерного программного обеспечения – это динамичная и быстро развивающаяся область, обусловленная рядом факторов, включая достижения в области технологий, меняющиеся потребности пользователей и развивающиеся бизнес-модели. Инженеры-программисты отвечают за проектирование, разработку, тестирование и поддержку программных систем, поддерживающих различные приложения и отрасли. В последние годы произошли значительные успехи в разработке программного обеспечения, такие как гибкие методологии разработки, DevOps и микросервисы. Также появились новые технологии, такие как искусственный интеллект, блокчейн и квантовые вычисления, которые могут трансформировать разработку программного обеспечения. Несмотря на эти достижения, разработка программного обеспечения также сталкивается с рядом постоянных проблем, включая безопасность, надежность и масштабируемость. В этой статье представлен обзор последних достижений и текущих проблем в разработке компьютерного программного обеспечения, опираясь на ряд литературы и тематических исследований.

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

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

Исследования и опыт, накопленные в области программной инженерии в 90-е годы, послужили основой для формирования методологической концепции и комплекса знаний в этой сфере. Специалисты из IEEE Computer Society Professional Practices Committee провели необходимую селекцию и концентрацию основных проблем, методов и публикаций. Этот процесс завершился в 2004 году с публикацией соответствующего документа, который в 2005 году был принят в качестве международного стандарта ISO.

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

Гибкие методологии

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

DevOps

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

Микросервисы

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

Новые технологии

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

Проблемы

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

Стратегии решения проблем

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

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

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

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

Заключение

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

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

  1. Фаулер, М. (2010). Непрерывная интеграция. Пирсон Образование.
  2. Ларман К. и Базили В.Р. (2003). Итеративная и инкрементная разработка: краткая история. Компьютер IEEE, 36(6), 47-56.
  3. Мелл П. и Гранс Т. (2011). Определение облачных вычислений NIST. Национальный институт стандартов и технологий.
  4. Прессман, Р.С. (2014). Программная инженерия: подход практика. Макгроу-Хилл Образование.
  5. Шталь, Ф. (2017). Искусственный интеллект и программная инженерия. Спрингер.

Интересная статья? Поделись ей с другими: