Программная инженерия

Тестирование программных систем

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

Четыре столпа Open Source

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

Архитектура на основе потоков событий

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

Искусственный интеллект в жизнь

Темы мартовского, апрельского и майского номеров журнала Computer (IEEE Computer Society, V. 55, No. 3, 4, 5, 2022) – готовность технологий искусственного интеллекта и соответствующих методов программной инженерии к широкому применению, интеграция алгоритмов в повседневную жизнь и игровые технологии нового поколения.

Программная инженерия и системы искусственного интеллекта: опережая время

Темы декабрьского, январского и февральского номеров журнала Computer (IEEE Computer Society, Vol. 54, No. 12, 2021, Vol. 55, No. 1, 2, 2022) – программная инженерия, перспективные идеи в мире ИТ, вопросы криминалистической экспертизы, диагностики и контроля инфраструктур.

На пути к умной инфраструктуре

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

Программная инженерия квантовых компьютеров

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

Уроки программирования

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

Agile для корпораций

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

Как выбирать компоненты Open Source

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

Как Data Science помогает повышать качество ПО

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

Валидация автономных систем

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

Горизонтальное масштабирование команд разработчиков

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

Программист и собака

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

Игнорировать, рефакторизовать или переписать?

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

Верификация и валидация ПО: технологии и инструменты

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

Баланс между наукой и практикой

Созданный только в 2014 году факультет компьютерных наук НИУ ВШЭ уже завоевал хорошую репутацию и пользуется популярностью среди абитуриентов. Какие преимущества имеются у молодого факультета перед патриархами академического образования в области computer science, чему и как учат на ФКН и где ждут его выпускников?

Об Agile по гамбургскому счету

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

Микросервисная архитектура в корпоративном ИТ-ландшафте

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

Истоки DevOps

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

Аналитика по запросу: как российские пользователи выбирают BI-системы

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