Что такое rad технологии
RAD (программирование)
RAD (от англ. rapid application development — быстрая разработка приложений) — концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы. Практическое определение: RAD — это жизненный цикл процесса проектирования, созданный для достижения более высокой скорости разработки и качества ПО, чем это возможно при традиционном подходе к проектированию. С конца XX века RAD получила широкое распространение и одобрение. Концепцию RAD также часто связывают с концепцией визуального программирования.
Содержание
История
Концепция RAD стала ответом на неуклюжие методы разработки программ 1970-х и начала 1980-х годов, такие как «модель водопада» (англ. Waterfall model ). Эти методы предусматривали настолько медленный процесс создания программы, что зачастую даже требования к программе успевали измениться до окончания разработки. Основателем RAD считается сотрудник IBM Джеймс Мартин, который в 1980-х годах сформулировал основные принципы RAD, основываясь на идеях Барри Бойма и Скотта Шульца. А в 1991 году Мартин опубликовал известную книгу, в которой детально изложил концепцию RAD и возможности её применения. В настоящее время RAD становится общепринятой схемой для создания средств разработки программных продуктов.
Назначение
RAD предполагает, что разработка ПО осуществляется небольшой командой разработчиков за срок порядка трех-четырех месяцев путем использования инкрементного прототипирования с применением инструментальных средств визуального моделирования и разработки. Технология RAD предусматривает активное привлечение заказчика уже на ранних стадиях – обследование организации, выработка требований к системе. Последнее из указанных свойств подразумевает полное выполнение требований заказчика как функциональных, так и нефункциональных, с учетом их возможных изменений в период разработки системы, а также получение качественной документации, обеспечивающей удобство эксплуатации и сопровождения системы. Это означает, что дополнительные затраты на сопровождение сразу после поставки будут значительно меньше. Таким образом, полное время от начала разработки до получения приемлемого продукта при использовании этого метода значительно сокращается.
Применение
Технологию RAD целесообразно применять, когда четко определены некоторые приоритетные направления разработки проекта.
RAD-технология не является универсальной, то есть ее применение целесообразно не всегда. Например, в проектах, где требования к программному продукту четко определены и не должны меняться, вовлечение заказчика в процесс разработки не требуется и более эффективной может быть иерархическая разработка (каскадный метод). То же касается проектов, ПО, сложность которых определяется необходимостью реализации сложных алгоритмов, а роль и объем пользовательского интерфейса невелик.
Основные принципы
Принципы RAD технологии направлены на обеспечение трех основных ее преимуществ – высокой скорости разработки, низкой стоимости и высокого качества. Достигнуть высокого качества программного продукта весьма непросто и одна из главных причин возникающих трудностей заключается в том, что разработчик и заказчик видят предмет разработки (ПО) по-разному.
Принципы RAD применяются не только при реализации, но и распространяются на все этапы жизненного цикла, в частности на этап обследования организации, построения требований, анализ и дизайн.
Фазы разработки
Преимущества
Технология быстрой разработки приложений (RAD) позволяет обеспечить:
Среды разработки, частично использующие принципы RAD
См. также
Кент Бек • Гради Буч • Фред Брукс • Barry Boehm • Уорд Каннингем • Оле-Йохан Даль • Том Демарко • Эдсгер Вибе Дейкстра • Дональд Кнут • Мартин Фаулер • Чарльз Энтони Ричард Хоар • Watts Humphrey • Майкл Джексон • Ивар Якобсон • Craig Larman • James Martin • Мейер Бертран • Дэвид Парнас • Winston W. Royce • James Rumbaugh • Никлаус Вирт • Эдвард Йордан • Стив Макконнелл
Моделирование данных • Архитектура ПО • Функциональная спецификация • Язык моделирования • Парадигма • Методология • Процесс разработки • Качество • Обеспечение качества • Структурный анализ)
CMM • CMMI • Данных • Function model • IDEF • Информационная • Metamodeling • Object model • View model • UML
Полезное
Смотреть что такое «RAD (программирование)» в других словарях:
Программирование — Эта статья должна быть полностью переписана. На странице обсуждения могут быть пояснения. У этого термина существуют и другие значения, см. Программи … Википедия
Экстремальное программирование — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
Ретроспектива в программирование — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Реализация • Тестирование • … Википедия
Объектно-ориентированное программирование — Эта статья во многом или полностью опирается на неавторитетные источники. Информация из таких источников не соответствует требованию проверяемости представленной информации, и такие ссылки не показывают значимость темы статьи. Статью можно… … Википедия
Аспектно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия
DSDM — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
Гибкая методология разработки — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Документирование • … Википедия
Delphi (язык программирования) — У этого термина существуют и другие значения, см. Delphi. Эта статья о языке программирования. Об интегрированной среде разработки см. Delphi (среда разработки). Delphi … Википедия
Процесс разработки программного обеспечения — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • … Википедия
Спиральная модель — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия
Методологии разработки ПО: RAD
Меньше слов, больше дела!
Идея RAD зародилась в 1980-х годах как альтернатива устаревающей методологии Waterfall, о которой мы уже писали. Каскадная модель программирования уже тогда воспринималась как перегруженная формальностями и недостаточно гибкая. Заказчик выдавал разработчику техническое задание и не видел результата до тех пор, пока программа не «сходила с конвейера» уже готовой, — и ожидания пользователя зачастую не оправдывались. Продукт мог оказаться слишком сложным, неудобным, а мог и устареть за время разработки.
В каскадной модели на ранних этапах работы проводится тщательное планирование, но это не помогает предусмотреть все риски и сложности. Поэтому проект дорожает, а время — уходит впустую.
В 1988 году американский инженер-программист Барри Боэм (Barry Boehm) опубликовал статью «Спиральная модель разработки и совершенствование программного обеспечения», в которой предложил создавать не цельную программу, а выпускать ряд прототипов, каждый из которых содержит дополнительную или расширенную функциональность по сравнению с предыдущим. Пользователь может изучить и попробовать в деле каждый прототип. Получая обратную связь, разработчик дорабатывает приложение, пока заказчик не получит готовый продукт, который полностью его устраивает.
Идея оказалась перспективной. Ее проработал специалист IBM Джеймс Мартин — в 1991 году вышла его книга «Быстрая разработка приложений» с изложением оригинальной методики применения RAD или Rapid Application Development. Спустя два года Джеймс Керр и Ричард Хантер написали книгу «Внутри RAD: как построить полностью функциональную систему за 90 дней или меньше», где проанализировали подводные камни и возможности, которые они выявили при планировании и реализации успешного проекта RAD.
Эти книги заложили фундамент для практического применения RAD, и с тех пор эта методология остается в арсенале IT-разработчиков.
Нарисуйте мне программу
Плохие программы, не отвечающие потребностям пользователей, появляются потому, что заказчик и разработчик по-разному понимают задачу. Даже если будущий пользователь заранее составит подробное техническое задание и напишет спецификации, все равно остается шанс, что программист поймет их не так, как предполагалось. Пользователь и разработчик смотрят на программу с разных сторон: снаружи и изнутри. Заказчик зачастую хорошо понимает, что именно он хочет получить, но не очень ясно представляет, как этого достичь. Программист, напротив, отлично разбирается в устройстве программы, но не имеет четкого представления, что нужно пользователю.
RAD предлагает вести разработку так, чтобы заказчик мог увидеть практические результаты на самых ранних этапах — и скорректировать техническое задание, если это будет необходимо. Очередной цикл разработки начинается не раньше, чем пользователь оценил результаты предыдущего.
Изначально программист создает приложение в черновом варианте. Это могут быть наброски интерфейса и несколько пунктов меню. Если заказчика устраивает первый прототип, программа дорабатывается: добавляются новые элементы интерфейса, функциональность. С каждой итерацией приложение обрастает возможностями, и пользователь постоянно уточняет требования и задает вектор развития.
Методологию быстрой разработки RAD можно сравнить с работой художника. Сначала живописец делает эскиз. Потом создает черновой вариант картины. Затем он начинает прорабатывать элементы, добавляет детали, исправляет недочеты. Разумеется, не каждый заказчик способен по первому наброску представить себе, как будет выглядеть готовая картина, — возможно, он вообще не имеет понятия о перспективе или композиции. Но по крайней мере художнику не придется переписывать весь холст — ведь к завершению работы уже не окажется, что клиент перепутал натюрморт с пейзажем: «Нет-нет, я имел в виду сельский вид, а не корзину с фруктами!» Куда проще внести исправления в эскиз, чем в завершенное полотно.
RAD гарантирует, что в результате заказчик получит именно то, что ему нужно, — если в ходе разработки он последовательно одобрял каждый шаг, добавленные в проект детали и функциональные модули.
Быстро, качественно, дешево — выберите три из трех
Три кита, на которых покоится RAD, — это скорость разработки, качество программного кода и дешевизна. Да, это та самая методология, которая предлагает не выбрать два пункта из трех, а получить все сразу.
Почему быстро?
Методология RAD требует, чтобы работающие прототипы создавались максимально часто. Продолжительность одного производственного цикла — от выработки требований до демонстрации пользователю (то есть одной итерации) — от одного дня до трех недель.
Во многих случаях разумным вариантом будет разделить приложение на функциональные модули, каждый из которых можно создавать и тестировать отдельно. Модули разрабатываются параллельно разными командами, но по общей схеме: от простых прототипов к более сложным, с регулярным контролем со стороны заказчика. В конце работы или каждой итерации модули соединяют в цельное программное решение.
Полезны инструменты автоматизации разработки — они помогают переводить пожелания пользователя в формализованные требования и спецификации, на основании которых формируется модель программы.
Почему качественно?
Пользователь может определять, какую функциональность он хочет видеть реализованной в следующей итерации. Постоянное взаимодействие заказчика и разработчика гарантирует, что приложение будет развиваться в нужном направлении, интерфейс будет удобным, а функциональность востребованной. Такая схема избавляет программиста от лишней работы и исключает ситуации, когда часть программы приходится переделывать с нуля из-за неверно понятых вводных.
Почему дешево?
Деньги — странный предмет: вот они есть, а вот их нет. Бывает, что их не хватает, и приходится прерывать разработку, когда написана еще далеко не вся запланированная функциональность. Что получит заказчик в этом случае?
Если разработчик использует методологию Waterfall, то техническое задание и спецификации на программу он получает в самом начале работы. Какую из задач решать в первую очередь, а что оставить «на десерт», решает сам разработчик — при этом не всегда четко понимая, что для пользователя важно, а что не очень. В итоге заказчик, у которого внезапно закончились средства на проект, может получить программу, в которой реализованы второстепенные задачи, но отсутствует ключевая функциональность.
При Rapid Application Development пользователь сам решает, что ему требуется в первую очередь, и постоянно получает все более функциональные прототипы — то есть, фактически, работающие версии программы. Если финансирование внезапно иссякнет — пользователь не останется у разбитого корыта.
Разработка идет быстро, и заказчик получает программу существенно раньше — а это и экономия финансов.
Инструментарий RAD
Методология RAD еще с конца 1980-х была нацелена на использование новейших технологий ускорения разработки — и этот фокус на инструментах автоматизации по-прежнему актуален.
Средства автоматизации разработки программ (Computer-Aided Software Engineering), или CASE-инструменты — это программные продукты для проектирования приложений. Такая система позволяет быстро создать модель программы, а затем автоматически сгенерировать программный код. Получается прототип — запускаемый модуль, который можно продемонстрировать заказчику.
От одноклеточного к развитому: эволюция программы
Разработка приложения по методологии RAD проходит в несколько этапов.
Первый — анализ и планирование. Здесь определяются цели и задачи проекта — что и для чего будет делать приложение. Совместными усилиями заказчик и разработчик выявляют риски, устанавливают сроки и бюджет, определяют ключевые моменты разработки.
Затем начинается пользовательское проектирование. На этом этапе создается серия работающих прототипов программы. Каждый очередной прототип отличается от предыдущего дополненной функциональностью, изменениями дизайна и производительности. Процесс создания одного прототипа называется итерацией. RAD не накладывает жестких временных рамок на продолжительность одной итерации, но рекомендует, чтобы она была максимально быстрой.
В начале очередного цикла разработки заказчик и программист вместе формулируют требования, которым должна соответствовать очередная версия. Преимущество RAD в том, что не надо заранее продумывать каждую мелочь: сначала разрабатывается самая общая концепция, которая на следующих итерациях будет дополняться и уточняться.
Затем в дело вступают программисты. С помощью инструментов CASE они воплощают требования в виде модели, создавая очередной прототип. Его показывают пользователю и получают обратную связь. Уточняя пожелания и требования к программе, заказчик фактически руководит разработкой.
Прототип зачастую создается на скорую руку, только для проверки концепций. Это нормально: если пользователя устраивает новая функциональность и все работает как следует, в следующей итерации разработчик «отполирует» интерфейс и код. Перфекционизм может даже вредить — на очередном этапе любую доработку пользователь может посчитать неудачной. Если программист стремится сразу сделать все идеально, его усилия окажутся напрасными.
Как только заказчик дал обратную связь, цикл начинается заново. Вырабатывается план на следующую итерацию. Если пользователя что-то не устроило в прототипе, на новом витке цикла изменения откатывают назад и реализуют альтернативный вариант.
Если заказчик принял прототип — уточняем требования к функциональности, прорабатываем ее более детально, планируем новую. Обговариваем визуальные элементы и интерфейсы.
От прототипа к прототипу программный продукт приобретает вид завершенного приложения. Итерации выполняются, пока не будут реализованы последние требования.
Когда моделирование завершено, начинается конструирование: автоматически сгенерированный код дорабатывается и совершенствуется.
Финальный этап разработки — переключение. Готовый программный продукт тестируют, развертывают на пользовательских машинах, конвертируют информацию в новый формат или «заливают» в новые базы данных, подготавливают документацию и обучают операторов работе в системе.
Когда мы рады RAD’у, а когда не рады
У методологии RAD есть и преимущества, и недостатки, а также области применения, в которых она показывает себя лучше или хуже.
Эффективные варианты применения RAD
Преимущества RAD — кратко
Недостатки RAD
RAD уже не молодая методология — ей слегка за 30, — но она по-прежнему используется в разработке программного обеспечения и сдавать свои позиции не собирается. Ведь для методологии главное — не возраст, а эффективность.
Сегодня расскажем о RAD — Rapid Application Development, или быстрой разработке приложений.
Меньше слов, больше дела!
Идея RAD зародилась в 1980-х годах как альтернатива устаревающей методологии Waterfall, о которой мы уже писали. Каскадная модель программирования уже тогда воспринималась как перегруженная формальностями и недостаточно гибкая. Заказчик выдавал разработчику техническое задание и не видел результата до тех пор, пока программа не «сходила с конвейера» уже готовой, — и ожидания пользователя зачастую не оправдывались. Продукт мог оказаться слишком сложным, неудобным, а мог и устареть за время разработки.
В каскадной модели на ранних этапах работы проводится тщательное планирование, но это не помогает предусмотреть все риски и сложности. Поэтому проект дорожает, а время — уходит впустую.
В 1988 году американский инженер-программист Барри Боэм (Barry Boehm) опубликовал статью «Спиральная модель разработки и совершенствование программного обеспечения», в которой предложил создавать не цельную программу, а выпускать ряд прототипов, каждый из которых содержит дополнительную или расширенную функциональность по сравнению с предыдущим. Пользователь может изучить и попробовать в деле каждый прототип. Получая обратную связь, разработчик дорабатывает приложение, пока заказчик не получит готовый продукт, который полностью его устраивает.
Идея оказалась перспективной. Ее проработал специалист IBM Джеймс Мартин — в 1991 году вышла его книга «Быстрая разработка приложений» с изложением оригинальной методики применения RAD или Rapid Application Development. Спустя два года Джеймс Керр и Ричард Хантер написали книгу «Внутри RAD: как построить полностью функциональную систему за 90 дней или меньше», где проанализировали подводные камни и возможности, которые они выявили при планировании и реализации успешного проекта RAD.
Эти книги заложили фундамент для практического применения RAD, и с тех пор эта методология остается в арсенале IT-разработчиков.
Нарисуйте мне программу
Плохие программы, не отвечающие потребностям пользователей, появляются потому, что заказчик и разработчик по-разному понимают задачу. Даже если будущий пользователь заранее составит подробное техническое задание и напишет спецификации, все равно остается шанс, что программист поймет их не так, как предполагалось. Пользователь и разработчик смотрят на программу с разных сторон: снаружи и изнутри. Заказчик зачастую хорошо понимает, что именно он хочет получить, но не очень ясно представляет, как этого достичь. Программист, напротив, отлично разбирается в устройстве программы, но не имеет четкого представления, что нужно пользователю.
RAD предлагает вести разработку так, чтобы заказчик мог увидеть практические результаты на самых ранних этапах — и скорректировать техническое задание, если это будет необходимо. Очередной цикл разработки начинается не раньше, чем пользователь оценил результаты предыдущего.
Изначально программист создает приложение в черновом варианте. Это могут быть наброски интерфейса и несколько пунктов меню. Если заказчика устраивает первый прототип, программа дорабатывается: добавляются новые элементы интерфейса, функциональность. С каждой итерацией приложение обрастает возможностями, и пользователь постоянно уточняет требования и задает вектор развития.
Методологию быстрой разработки RAD можно сравнить с работой художника. Сначала живописец делает эскиз. Потом создает черновой вариант картины. Затем он начинает прорабатывать элементы, добавляет детали, исправляет недочеты. Разумеется, не каждый заказчик способен по первому наброску представить себе, как будет выглядеть готовая картина, — возможно, он вообще не имеет понятия о перспективе или композиции. Но по крайней мере художнику не придется переписывать весь холст — ведь к завершению работы уже не окажется, что клиент перепутал натюрморт с пейзажем: «Нет-нет, я имел в виду сельский вид, а не корзину с фруктами!» Куда проще внести исправления в эскиз, чем в завершенное полотно.
RAD гарантирует, что в результате заказчик получит именно то, что ему нужно, — если в ходе разработки он последовательно одобрял каждый шаг, добавленные в проект детали и функциональные модули.
Быстро, качественно, дешево — выберите три из трех
Три кита, на которых покоится RAD, — это скорость разработки, качество программного кода и дешевизна. Да, это та самая методология, которая предлагает не выбрать два пункта из трех, а получить все сразу.
Почему быстро?
Методология RAD требует, чтобы работающие прототипы создавались максимально часто. Продолжительность одного производственного цикла — от выработки требований до демонстрации пользователю (то есть одной итерации) — от одного дня до трех недель.
Во многих случаях разумным вариантом будет разделить приложение на функциональные модули, каждый из которых можно создавать и тестировать отдельно. Модули разрабатываются параллельно разными командами, но по общей схеме: от простых прототипов к более сложным, с регулярным контролем со стороны заказчика. В конце работы или каждой итерации модули соединяют в цельное программное решение.
Полезны инструменты автоматизации разработки — они помогают переводить пожелания пользователя в формализованные требования и спецификации, на основании которых формируется модель программы.
Почему качественно?
Пользователь может определять, какую функциональность он хочет видеть реализованной в следующей итерации. Постоянное взаимодействие заказчика и разработчика гарантирует, что приложение будет развиваться в нужном направлении, интерфейс будет удобным, а функциональность востребованной. Такая схема избавляет программиста от лишней работы и исключает ситуации, когда часть программы приходится переделывать с нуля из-за неверно понятых вводных.
Почему дешево?
Деньги — странный предмет: вот они есть, а вот их нет. Бывает, что их не хватает, и приходится прерывать разработку, когда написана еще далеко не вся запланированная функциональность. Что получит заказчик в этом случае?
Если разработчик использует методологию Waterfall, то техническое задание и спецификации на программу он получает в самом начале работы. Какую из задач решать в первую очередь, а что оставить «на десерт», решает сам разработчик — при этом не всегда четко понимая, что для пользователя важно, а что не очень. В итоге заказчик, у которого внезапно закончились средства на проект, может получить программу, в которой реализованы второстепенные задачи, но отсутствует ключевая функциональность.
При Rapid Application Development пользователь сам решает, что ему требуется в первую очередь, и постоянно получает все более функциональные прототипы — то есть, фактически, работающие версии программы. Если финансирование внезапно иссякнет — пользователь не останется у разбитого корыта.
Разработка идет быстро, и заказчик получает программу существенно раньше — а это и экономия финансов.
Инструментарий RAD
Методология RAD еще с конца 1980-х была нацелена на использование новейших технологий ускорения разработки — и этот фокус на инструментах автоматизации по-прежнему актуален.
Средства автоматизации разработки программ (Computer-Aided Software Engineering), или CASE-инструменты — это программные продукты для проектирования приложений. Такая система позволяет быстро создать модель программы, а затем автоматически сгенерировать программный код. Получается прототип — запускаемый модуль, который можно продемонстрировать заказчику.
От одноклеточного к развитому: эволюция программы
Разработка приложения по методологии RAD проходит в несколько этапов.
Первый — анализ и планирование. Здесь определяются цели и задачи проекта — что и для чего будет делать приложение. Совместными усилиями заказчик и разработчик выявляют риски, устанавливают сроки и бюджет, определяют ключевые моменты разработки.
Затем начинается пользовательское проектирование. На этом этапе создается серия работающих прототипов программы. Каждый очередной прототип отличается от предыдущего дополненной функциональностью, изменениями дизайна и производительности. Процесс создания одного прототипа называется итерацией. RAD не накладывает жестких временных рамок на продолжительность одной итерации, но рекомендует, чтобы она была максимально быстрой.
В начале очередного цикла разработки заказчик и программист вместе формулируют требования, которым должна соответствовать очередная версия. Преимущество RAD в том, что не надо заранее продумывать каждую мелочь: сначала разрабатывается самая общая концепция, которая на следующих итерациях будет дополняться и уточняться.
Затем в дело вступают программисты. С помощью инструментов CASE они воплощают требования в виде модели, создавая очередной прототип. Его показывают пользователю и получают обратную связь. Уточняя пожелания и требования к программе, заказчик фактически руководит разработкой.
Прототип зачастую создается на скорую руку, только для проверки концепций. Это нормально: если пользователя устраивает новая функциональность и все работает как следует, в следующей итерации разработчик «отполирует» интерфейс и код. Перфекционизм может даже вредить — на очередном этапе любую доработку пользователь может посчитать неудачной. Если программист стремится сразу сделать все идеально, его усилия окажутся напрасными.
Как только заказчик дал обратную связь, цикл начинается заново. Вырабатывается план на следующую итерацию. Если пользователя что-то не устроило в прототипе, на новом витке цикла изменения откатывают назад и реализуют альтернативный вариант.
Если заказчик принял прототип — уточняем требования к функциональности, прорабатываем ее более детально, планируем новую. Обговариваем визуальные элементы и интерфейсы.
От прототипа к прототипу программный продукт приобретает вид завершенного приложения. Итерации выполняются, пока не будут реализованы последние требования.
Когда моделирование завершено, начинается конструирование: автоматически сгенерированный код дорабатывается и совершенствуется.
Финальный этап разработки — переключение. Готовый программный продукт тестируют, развертывают на пользовательских машинах, конвертируют информацию в новый формат или «заливают» в новые базы данных, подготавливают документацию и обучают операторов работе в системе.
Когда мы рады RAD’у, а когда не рады
У методологии RAD есть и преимущества, и недостатки, а также области применения, в которых она показывает себя лучше или хуже.
Эффективные варианты применения RAD
Преимущества RAD — кратко
Недостатки RAD
RAD уже не молодая методология — ей слегка за 30, — но она по-прежнему используется в разработке программного обеспечения и сдавать свои позиции не собирается. Ведь для методологии главное — не возраст, а эффективность.