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

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

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

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

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

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

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

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). Они упрощают взаимодействие и, следовательно, интеграцию приложений.

Управление Web-сервисами

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

Сервисы, идентичность и стандарты

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

Авиация на грани: когда сбой в системе оборачивается кризисом

Что дает цифровая основа и почему гибкость и предсказуемость – новая норма?

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