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

Что сулит будущее?

Тема январского номера журнала Computer (IEEE Computer Society, Vol. 47, No. 1, 2014) — перспективы.

Принципы разработки в облаках

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

Технологии разработки пользовательских интерфейсов

Под влиянием непрерывных изменений, обусловленных чередованием эпох от настольных ПК к Web и мобильным устройствам, активно развиваются пользовательские интерфейсы. Что происходит сейчас в области разработки пользовательских интерфейсов, какие применяются методы и каковы перспективы их развития?

Тестирование быстродействия приложений AJAX

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

Энциклопедия алгоритмов

Вышел в свет перевод третьего издания книги «Алгоритмы: построение и анализ» («Introduction to algorithms»), ставшего уже знаменитым среди специалистов пособием по алгоритмам, которое в наши дни рекомендуется в качестве основного учебника чуть ли не по каждому университетскому курсу по ИТ.

PaaS: новые возможности разработки в облаках

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

Эскизное проектирование в программировании

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

Управление проектами в условиях нестабильности

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

Программы для посадки на Марс

Какой объем программного обеспечения требуется для безопасной посадки космического аппарата на Марс и как добиться надежности кода? На примере анализа процесса разработки программной системы, управлявшей посадкой марсохода НАСА Curiosity, можно получить ответы на эти вопросы.

Архитектура и скорая разработка: брак, развод или дружба?

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

Нарушайте правила

Большинство заказных разработок ПО выполняется на основе гибких методов управления проектами, в частности Scrum, однако менее половины проектов завершаются успешно. Чтобы заставить Scrum работать, необходимо научиться «погружать» заказчика в проект.

Метапроектирование как наука

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

Программирование в динамическом мире

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

Бережливая разработка программ

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

Как появляются новые языки программирования

Для удовлетворения требований современных ИТ-систем создается ряд новых языков программирования.

Эволюция парадигмы программирования

Методологии и принципы разработки программ прошли путь от машинного кода до аспектно-ориентированного программирования и продолжают меняться.

Инструменты небесных разработчиков

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

Тестирование облачных сервисов

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

Кризис программирования 2.0

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

Строгая реализация скорых методов разработки

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

Как «приготовить» Data Quality

Качество данных становится востребованной темой в российских компаниях. Эксперт направления Data Governance «КОРУС Консалтинг» Мария Русина рассказывает о том, как добиться качественных данных.