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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Истоки DevOps

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

Особенности создания ПО в эпоху Интернета вещей

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

Создание критически важных приложений на основе микросервисов

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

Роль архитектора в гибком облачном мире

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

Программное обеспечение: взгляд в будущее

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

Союз Agile и ITSM

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

В МТИ автоматизировали поиск ошибок переполнения целочисленного типа в двоичном коде

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

Открытая архитектура информационных систем

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

Виртуальные команды разработки

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

Формальные методы в agile-разработке

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

Статистика обращений к API ценна для бизнес-анализа

По аналогии с уже давней практикой извлечения полезных знаний из протоколов веб-трафика, в организациях, предоставляющих онлайн-сервисы, могли бы черпать новую информацию о потенциальных заказчиках, анализируя статистику использования интерфейсов программирования этих сервисов, подчеркнул на недавней конференции Intel Business of APIs Джон Массер, директор консалтинговой компании API Science.

Улучшая, не навреди

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