Опубликован: 15.01.2013 | Доступ: свободный | Студентов: 1920 / 542 | Длительность: 08:58:00
Специальности: Программист
Лекция 2:

Введение в технологии разработки программного обеспечения

< Лекция 1 || Лекция 2 || Лекция 3 >
Аннотация: Рассматриваются содержание понятия "технология разработки программного обеспечения", жизненный цикл, методологические подходы к управлению созданием программного обеспечения, зрелость компаний по разработке программных продуктов, общее представление о формализованных и гибких методологиях разработки программных систем. Приводится кратких обзор инструментальных решений по управлению жизненным циклом программного обеспечения.

Презентацию к данной лекции Вы можете скачать здесь.

Цель лекции:

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

Введение

В соответствии с определением, данным в Википедии [2] технология - комплекс организационных мер, операций и приемов, направленных на изготовление, обслуживание, ремонт и/или эксплуатацию изделия с номинальным качеством и оптимальными затратами, и обусловленных текущим уровнем развития науки, техники и общества в целом. Технология разработки программного обеспечения(ПО) представляет собой комплекс организационных мер, операций и приемов, направленных на разработку программных продуктов высокого качества в рамках отведенного бюджета и в срок. Технологии включают методики, методологии, средства и процедуры разработки ПО.

Модели жизненного цикла программного обеспечения

В настоящее время существует достаточно много различных методик разработки программного обеспечения [3, 4]. Методики различаются используемой моделью жизненного цикла ПО и уровнем формализма при его создании. Жизненный цикл программного обеспечения (ПО) - период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации.

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

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

Развитием и усовершенствованием каскадной модели жизненного цикла ПО является итерационная спиральная модель, в которой разработка ПО осуществляется по спирали. Каждый виток (итерация) спирали предполагает реализацию определенного функционала программной системы. На каждом витке разработки реализуются такие же этапы создания ПО, как и в каскадной модели, то есть: анализ, проектирование, разработка и тестирование.Количество витков в спиральной модели не регламентировано и определяется разработчиком при выделении приоритетов пользовательских или функциональных требований к программной системе. Средняя продолжительность проектов 6 - 12 месяцев, а продолжительность итерации: 3 - 6 месяцев.

Спиральная модель жизненного цикла ПО лежит в основе методологии создания ИТ-решений компании Microsoft - MSF (MicrosoftSolutionFramework). В данной методологии компания Microsoft отразила свое видение на процессы создания программных систем различного назначения.

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

К итеративным методам разработки ПО относится методология, созданная компанией RationalSoftware - RationalUnifiedProcess (RUP). Унифицированный процесс RUP определяет виды деятельности, необходимые для проектирования программного продукта на основе требований пользователя, которые могут изменяться в процессе разработки системы. Данный процесс может быть адаптирован для разработки различных программных систем.

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

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

  • управление и мониторинг деятельности команды проекта;
  • распределение работ между участниками проекта;
  • формирование перечня требований к разрабатываемым элементам проекта и документации;
  • определение набора критериев качества программного продукта.

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

Зрелость процессов разработки ПО

Американским универсумом Карнеги-Меллон (SoftwareEngineeringInstitute, SEI) разработана модель CMMI (CapabilityMaturityModelIntegration), характеризующая уровни зрелости процесса разработки ПО [3]. Модель CMMI представляет описание идеального процесса разработки ПО. Базовым понятием модели СММI считается зрелость компании.

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

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

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

Для небольших команд (до 10 участников) альтернативой строго формализованных подходов к разработке ПО являются гибкие (agile)методологии. Гибкие методологии ориентированы на профессионалов, которые мотивированы на создание качественного программного продукта в кратчайшие сроки. Основными положениями гибкого подхода к созданию ПО являются [6]:

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

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

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

ИТ-решения по управлению жизненным циклом ПО

Улучшению процессов создания программного обеспечения служит методология управления жизненным циклом приложений (ALM - applicationlifecyclemanagement), которая представляет собой концепцию управления программным проектом на всех этапах его жизни. ALM определяет непрерывный процесс управления жизненным циклом приложения по его управлению, развитию и обслуживанию. Принципы ALM реализуются ИТ-решениями различных вендоров.

Решение HP ALM onSaaS компании Hewlett-Packard способствует ускорению процессов консолидации; в его рамках доступны услуги команды экспертов по платформе HP ALM, имеется упрощенная система управления, встроенная возможность осуществлять масштабирование по требованию, а также предоставляется поддержка, необходимая для того, чтобы сосредоточиться на инновациях.

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

Компания IBM для управления жизненным циклом приложений предлагает решение IBM® Rational® ClearQuest®. ИТ-решение поддерживает рационализированный, динамичный процесс разработки приложений, который одновременно является ориентированным на роли и управляемым процессами. Проекты определяют контекст выполнения заданий; их безопасность можно обеспечить через определение политик безопасности и ролей. Работа может быть распределена между членами коллектива, которые находятся в одном месте или в разных местах. Кроме того, работа является трассируемой до исходного запроса и до проекта, который реализуется по этому запросу.

Компания Microsoft предлагает набор средств в Visual Studio 2012 и объединения этих средств с Visual Studio Team Foundation Server для управления жизненным циклом приложений. В основе решений Microsoft по управлению жизненным циклом приложений лежат следующие принципы: продуктивность, интеграция и расширяемость. Продуктивность достигается обеспечением командной работы над проектом и управлением сложностью. Интеграция реализуется наличием полнофункциональных возможностей в единой среде проектирования, разработки, тестировании и сопровождении программного приложения, а также прозрачностью процесса создания ПО для всех участников проекта. Расширяемость поддерживается интегрированной средой разработки (IDE) и открытостью платформы для расширения и создания собственных инструментов, которые интегрируются с Team Foundation Server.

Ключевые термины

Технология комплекс организационных мер, операций и приемов, направленных на изготовление, обслуживание, ремонт и/или эксплуатацию изделия с номинальным качеством и оптимальными затратами.
Технология разработки программного обеспечения (ПО) комплекс организационных мер, операций и приемов, направленных на разработку программных продуктов высокого качества в рамках отведенного бюджета и в срок.
Жизненный цикл программного обеспечения (ЖЦПО) период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации.
Каскадная (водопадная) модель ЖЦПО последовательное выполнение этапов создания ПО.
Итерационная спиральная модель ЖЦПО разработка ПО осуществляется по спирали, каждый виток (итерация) которой предполагает реализацию определенного функционала программной системы.
Инкрементная итерационная модель ЖЦПО разработка ПО реализуется несколькими итерациями с постепенным наращиванием функциональности системы.
Управление жизненным циклом приложений концепция управления программным проектом на всех этапах его жизни.

Краткие итоги

Технология разработки программного обеспечения представляет собой комплекс организационных мер, операций и приемов, направленных на разработку программных продуктов высокого качества в рамках отведенного бюджета и в срок. Разработка ПО базируется на моделях жизненного цикла, которые характеризуют период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Классической моделью ЖЦ является каскадная или водопадная модели. В итерационной спиральной модели разработка ПО осуществляется по спирали, предполагая реализацию определенного функционала программной системы на каждом витке спирали. В инкрементной итерационной модели жизненного цикла ПО разработка реализуется несколькими итерациями с постепенным наращиванием функциональности системы. Модель CMMI характеризует уровни зрелости процесса разработки ПО и представляет описание идеального процесса разработки ПО. Гибкие методологии ориентированы на создание качественного программного продукта в кратчайшие сроки с минимумом сопроводительной документации. Методология управления жизненным циклом приложений определяет непрерывный процесс по управлению, развитию и обслуживанию программных продуктов. ИТ-решения в области ALM предлагаются различными поставщиками программных продуктов.

Набор для практики

Вопросы

  1. Что включает понятие "технология разработки программного обеспечения"?
  2. Что определяет жизненные цикл программного обеспечения?
  3. Поясните содержание каскадной модели разработки программного обеспечения.
  4. Поясните содержание итерационной спиральной модели разработки программного обеспечения.
  5. Поясните содержание итеративной модели разработки программного обеспечения.
  6. Что должен обеспечивать эффективный подход к управлению процессом разработки ПО?
  7. Что понимается под зрелостью процессов для компании, разрабатывающей ПО?
  8. Приведите основные положения гибкого подхода к созданию ПО.
  9. Приведите основное назначение методологии управления жизненным циклом приложений.
  10. Какие инструментальные средства предлагает компания Microsoft для управления жизненным циклом приложений?

Упражнения

  1. Проведите поиск в Интернет методик командной разработки программных приложений.
  2. Проведите поиск в Интернет решений по управлению жизненным циклом приложений.
  3. Подготовьте доклад по конкретной методике командной разработки приложений.
< Лекция 1 || Лекция 2 || Лекция 3 >
кайрат мухтаров
кайрат мухтаров
Мария Морозова
Мария Морозова

Здравствуйте!

В диалоговом окне Добавить Team Foundation Server введите имя или URL-адрес сервера TFS. Ввожу как в инструкции localhost, выдает ошибку, что невозможно соединиться с сервером. Что делать? Никакого администратора нет, что вводить?