Разработка ПО

Гибкое управление разработкой

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

CMMI и Six Sigma на практике

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

Новая эра в оценке производительности компьютерных систем

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

Пять ключей к обмену знаниями в проектах

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

Чертова дюжина проблем программной инженерии

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

Scrum: гибкое управление разработкой

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

Метрики управления портфелем программных продуктов

Производители коммерческого программного обеспечения, такие, как Microsoft, IBM, и Oracle, вынуждены держать большие портфели программных продуктов, включающие операционные системы, межплатформенное, прикладное и встроенное ПО. Многие предприятия (банки, университеты, больницы) также создают свои собственные приложения и управляют ими. Руководство всех этих организаций сталкивается с важной проблемой: как одновременно управлять инвестициями, доходами, качеством и соответствовать ожиданиям клиентов в условиях пухлых портфелей программных продуктов?

Wiki в коллективной разработке требований

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

Разработка программного обеспечения в небольшой организации

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

Разработчики переходят на динамические языки

Программисты предпочитают избавиться от излишне сложных и устаревших методик и стремятся использовать подходы, позволяющие упростить и ускорить разработку. Как следствие, многие из них все чаще отдают предпочтение динамическим языкам программирования, таким как JavaScript, Perl, Python и Ruby. Эксперты по программному обеспечению так и не пришли к единому определению динамического языка, однако, по существу, такой язык позволяет создавать программы, способные менять свой код и логические структуры во время исполнения, добавляя при этом различные типы, имена модулей, классы и функции. Зачастую эти языки являются интерпретируемыми и, как правило, проверяют типы во время исполнения.

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

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

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

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

Управление требованиями на базе стандартов

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

Программирование без стека вызовов

Большинство вычислительных систем построено по схеме «команда - контроль исполнения»: один метод вызывает другой и дает ему инструкции по выполнению каких-либо действий или получению нужной информации. В реальном мире часто бывает по-другому.

SE2004: рекомендации по обучению специальности «Программная инженерия»

Во всем мире университеты разрабатывают для своих студентов курсы по программной инженерии, которые дополняют существующие программы по информатике и компьютерной инженерии. Чтобы сформулировать принципы составления эффективного учебного плана, IEEE Computer Society и ACM разработали в рамках более масштабного проекта Computing Curriculum набор рекомендаций Software Engineering 2004 (SE2004). SE2004 — один из нескольких документов, совместно подготовленных IEEE и ACM для вычислительных дисциплин, к которым помимо программной инженерии также относятся информатика, компьютерная инженерия, информационные системы и информационные технологии.

Адаптивная декомпозиция ресурсов в системах реального времени

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

Первые шаги к решению проблемы верификации программ

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

Управление документацией в проектах разработки ПО

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

Что диск грядущий нам готовит?

По прогнозам, в 2010 году средняя емкость жесткого диска на ПК составит 1,7 Гбайт, а к 2020-му она возрастет до 85 Тбайт, что позволит записать 22 млн. песен, или 86 млн. цифровых фотографий, или 21,5 тыс. фильмов.

Спецификации интероперабельности Web-сервисов

Предлагаемая концептуальная платформа позволяет анализировать проблемы интероперабельности Web-сервисов. Она обеспечивает контекст для изучения существующих стандартов и спецификаций, а также выявления новых возможностей автоматизации. Web-сервисы становятся предпочтительной технологией реализации сервис-ориентированных архитектур (Service-Oriented Architecture, SOA). Они упрощают взаимодействие и, следовательно, интеграцию приложений.

Тренды рынка BI в 2024 году

Пользователи BI стали требовательнее при выборе российского решения – базовой функциональности уже недостаточно. Подробнее в обзоре.