Главная » Просмотр файлов » RUP и другие методологии разработки ПО. Часть 1

RUP и другие методологии разработки ПО. Часть 1 (1013952)

Файл №1013952 RUP и другие методологии разработки ПО. Часть 1 (Профессиональные программные среды)RUP и другие методологии разработки ПО. Часть 1 (1013952)2017-06-17СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

RUP и другие методологии разработки ПО

Часть 1. Принципы сравнения методологий разработки ПО

Алексей Закис

Как «измерить» методологию

Итеративная или каскадная разработка

Каскадный подход

Итеративный подход

Почему это важно

Уровень формализма

Что такое формализм в проекте

Почему важна степень формализма

Что будем сравнивать

В наше время руководителю проекта разработки программного обеспечения (ПО) нет необходимости с нуля выдумывать собственную методологию разработки программного обеспечения. Он может выбирать из достаточно широкого набора готовых методологий, предлагаемых различными авторами. Но как выбрать методологию «по размеру» и все ли они пригодны для любого проекта?
Настоящая статья адресована всем, кто собирается внедрять методологию RUP. Она посвящена сравнению RUP с другими популярными методологиями. В первой части статьи обсуждаются принципы сравнения различных методологий. Вторая часть будет посвящена собственно сравнению этих методологий. В третьей части будут даны рекомендации по выбору и настройке методологий под конкретные проекты.

Как «измерить» методологию

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

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

Но что реально даст нам такое сравнение? Как можно сравнивать по этим показателям современные методологии, которые, строго говоря, не регламентируют жестко ни то, ни другое, ни третье? Методология А, скажем, предполагает оформление требований в форме сценариев использования (use case), методология Б — в форме историй, а методология В — в форме технического задания (ТЗ). И как в этом случае можно сравнить их между собой? Тем более что автору приходилось, например, включать в ТЗ сценарии использования. Так что название документов — явно не самая принципиальная характеристика методологии. Каковы же те ключевые принципы, которые позволили бы сказать, что методологии А и Б близки, а методология В, напротив, существенно отличается от А?

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

Итеративная или каскадная разработка

Что представляют собой предложенные для сравнения принципы?

Начнем с каскадной разработки («водопада») и с того, чем она отличается от итеративной.

Каскадный подход

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

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

Итеративный подход

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

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

Почему это важно

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

Состав команды

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

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

Повторные работы

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

Уровень формализма

Что такое формализм в проекте

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

Почему важна степень формализма

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

Что будем сравнивать

Теперь, когда определены критерии для сравнения методологий, можно переходить к выбору методологий для сравнения.

Поскольку автор является почитателем методологии RUP (Rational Unified Process)3, в качестве базовой методологии в следующей части статьи будет использоваться RUP. С какими методологиями имеет смысл сравнивать RUP? Конечно, с теми, которые наиболее распространены или про которые, как минимум, что-нибудь можно прочитать.

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

Структурные методологии, в частности основанные на подходах Эдварда Йордона, на диаграммах «сущность-отношение» и потоках данных, были первыми активно продвигаемыми в нашей стране методологиями. Зачастую они связывались (по крайней мере у слушателей презентаций) с реализующими их CASE-средствами и не рассматривались как самостоятельные методологии, но, тем не менее, они приобрели достаточную известность, хотя нельзя сказать, что стали широко используемыми. Так что сравнение с ними вполне оправданно. По крайней мере оно должно показать, насколько RUP отличается от них.

Наибольший интерес в настоящее время, видимо, представляет сравнение с гибкими (Agile) методологиями4, которые в последние годы активно развиваются и завоевали определенную популярность. Так называется группа относительно новых методов, развиваемых участниками Agile Manifest5 — объединения в поддержку гибких методов. Общее число подобных методологий достаточно велико, но не все из них широко известны и не по всем можно найти материалы на русском языке. Поэтому для сравнения были выбраны уже упоминавшееся выше экстремальное программирование (XP), Crystal Clear6 и Функционально ориентированная разработка7 (Feature Driven Development, FDD).

Помимо методологий, описывающих, что, как и в каком порядке следует делать, существует еще один тип документов, регламентирующих разработку ПО. Речь идет о международных и государственных стандартах и о других документах, определяющих требования к процессам разработки. Среди стандартов наибольший интерес для отечественного производителя, несомненно, представляют ГОСТы 19-й и 34-й серий и ГОСТ 12207 Р ИСО МЭК. А из других регламентирующих документов наиболее известна модель зрелости процессов разработки ПО CMM, разработанная Software Engineering Institute8.

Но обо всем этом мы поговорим в следующей части нашей статьи.

1 Пример использования этих показателей для сравнения методологий можно найти, например, в книге «RUP Made it easy» Пера Кролла и Филиппа Крачтена (Addison-Wesley, 2003) (есть русский перевод: Кролл П., Крачтен Ф. Rational Unified Process — это легко: Руководство по RUP для практиков. Кудиц, 2004). Однако эти авторы, естественно, ориентируются на методологии и стандарты, используемые западными разработчиками.

2 Довольно полный обзор методологии сделан в кн.: Бек К. Экстремальное программирование. СПб.: Питер, 2002.

3 Описание RUP можно найти, например, в упоминавшейся выше книге Кролла и Крачтена.

4 Agile иногда переводят как «быстрые методы», но автор поддерживает ту точку зрения, что перевод «быстрые методы» лучше использовать для RAD (Rapid Application Development) методологий.

5 См.: http://www.agilemanifesto.org.

6 Описание этой и других методологий из семейства Crystal можно найти в кн.: Коберн А. Быстрая разработка программного обеспечения. М.: Лори, 2002.

7 Детальное описание методологии можно найти в кн.: Пальмер С.Р., Фелсинг Д.Ф. Практическое руководство по функционально ориентированной разработке ПО. Вильямс, 2002.

8 http://www.sei.cmu.edu/about/about.html.

КомпьютерПресс 8'2006

Характеристики

Тип файла
Документ
Размер
61,5 Kb
Тип материала
Высшее учебное заведение

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

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

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

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7066
Авторов
на СтудИзбе
258
Средний доход
с одного платного файла
Обучение Подробнее