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

Новая жизнь верификации

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

Оптимизирующие компиляторы

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

ФБР переходит на «скорые» методы

Что может происходить в один и тот же день в Федеральном бюро расследований? Команда спецназа спасает заложника, аналитики изучают разведданные о террористической угрозе, оперативники проводят арест преступника, а в подвале здания штаб-квартиры ФБР в Вашингтоне сотрудники работают над созданием основанной на «скорые» (agile) методах системы, призванной изменить применяемые ведомством принципы обработки данных.

Теория и практика программной инженерии

Теория помогает инженерам традиционных специализаций создавать и изучать методы, оценивать результаты и оптимизировать процессы. Играет ли теория аналогичную роль в программной инженерии?

Балансировка в облаках

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

Open Source: уроки для программной инженерии

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

Почему люди покупают программное обеспечение

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

Ретроспектива в agile-командах

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

Вознесение: приложения для облаков

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

Экономика фондов СПО

Приняв участие в создании успешных платформ категории Open Source, производители программного обеспечения могут эффективнее конкурировать, предлагая различные компоненты стека своих технологий и расширяя тем самым свой целевой рынок.

Разработка программ: проблемы и иллюзии

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

Истинная цена программных ошибок

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

Интеграция систем управления разработкой

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

Методы оптимизации процесса создания ПО

Несмотря на постоянное повышение эффективности компьютеров продуктивность человеческого труда увеличивается весьма скромными темпами, особенно это касается производительности труда программистов. Ситуацию могут исправить такие методологии как INTSPEI P-Modeling Framework, обратная семантическая трассировка и др., позволяющие оптимизировать этапы процесса создания программного обеспечения, которые трудно поддаются автоматизации.

Квадратура параллелизма

Погрязнув в деталях, теряешь перспективу. И где уж разглядеть то, что может в корне изменить наше представление о процессе параллельного программирования?

Открытая распараллеливающая система

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

Методики принятия решений при разработке ПО

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

Agile-эволюция: направление совершенствования унаследованных программ

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

Программист должен быть ответственным

Вслед за Айваром Якобсоном и Майклом Кузумано Москву посетил создатель концепции экстремального программирования (Extreme Programming, XP) Кент Бек.

Децентрализованная разработка

Распределенная разработка программного обеспечения сегодня стала нормой: современные средства связи позволяют объединять людей, находящихся по разные стороны океана, а минимизация издержек при разработке в развивающихся странах привлекает заказчиков из стран Европы и США. Кроме того, специалистов нужной квалификации может просто не оказаться «на месте», и тогда взаимодействие с удаленными рабочими группами или внешними подрядчиками окажется просто необходимым. Однако децентрализованная разработка программного обеспечения имеет и определенные недостатки.

Синтетическое качество: как искусственные данные дают реальные результаты

Синтетические (искусственно сгенерированные) данные меняют правила игры в ИИ: они обеспечивают экономию средств, гарантируют безопасность и ...