- •Обучающий курс
- •Основные понятия и определения
- •Модели жизненного цикла разработки программных средств и систем
- •Стратегии
- •Каскадная модель жизненного цикла разработки программных средств и систем
- •Преимущества каскадной модели жизненного цикла
- •Недостатки каскадной модели жизненного цикла
- •Область применения каскадной модели
- •V-образная модель жизненного цикла разработки программных средств и систем
- •Преимущества V-образной модели жизненного цикла
- •Недостатки V-образной модели жизненного цикла
- •Область применения V-образной модели
- •Структурная эволюционная модель быстрого прототипирования жизненного цикла разработки программных средств и систем
- •Преимущества структурной эволюционной модели быстрого прототипирования
- •Недостатки структурной эволюционной модели быстрого прототипирования
- •Область применения структурной эволюционной модели быстрого прототипирования
- •Модель быстрой разработки приложений rad
- •Преимущества модели быстрой разработки
- •Недостатки модели быстрой разработки
- •Область применения модели быстрой разработки rad
- •Инкрементная модель жизненного цикла разработки программных средств и систем
- •Преимущества инкрементной модели жизненного цикла
- •Недостатки инкрементной модели жизненного цикла
- •Область применения инкрементной модели
- •Спиральная модель жизненного цикла разработки программных средств и систем
- •Преимущества спиральной модели жизненного цикла
- •Недостатки спиральной модели жизненного цикла
- •Область применения спиральной модели
- •Упрощенные варианты спиральной модели
- •Классические технологии проектирования программ
- •Модульное проектирование программ
- •Метод нисходящего проектирования
- •Пошаговое уточнение
- •Анализ сообщений
- •Связность модуля
- •Типы и силы связности модулей.
- •Сцепление модулей
- •Типы и степени сцепления модулей.
- •Метод восходящего проектирования
- •Методы расширения ядра
- •Метод иерархического проектирования модулей (метод Джексона)
- •Case-технологии проектирования программного обеспечения
- •Общие сведения о case-технологиях
- •Информационное моделирование
- •Сущности
- •Атрибуты
- •Способы представления сущностей с атрибутами
- •5. Студент (с)
- •Классификация атрибутов
- •Правила атрибутов
- •Безусловные связи
- •Условные формы связи
- •Формализация связи
- •Подтипы и супертипы
- •Рабочие продукты информационного моделирования
- •Пример информационной модели
- •Методология структурного анализа и проектирования sadt
- •Синтаксис и применение диаграмм
- •Синтаксис моделей и работа с ними
- •Стратегии декомпозиции при sadt-моделировании
- •Процесс sadt-моделирования
- •Инструментальные средства проектирования программного обеспечения
- •Классификация case средств
Область применения структурной эволюционной модели быстрого прототипирования
Применение структурной эволюционной модели быстрого прототипирования эффективно в следующих ситуациях:
при разработке проектов, для которых требования не известны заранее;
при разработке проектов, для которых требования не постоянны, могут быть неверно истолкованы или неправильно сформулированы;
при разработке проектов, для которых требования следует уточнить;
при разработке проектов, в которых существует потребность в разработке пользовательских интерфейсов;
при разработке проектов, для которых нужна проверка концепции;
при разработке проектов, для которых необходимы демонстрации промежуточных продуктов;
при разработке больших систем, в которых некоторые компоненты следует подвергать прототипированию, а некоторые можно разрабатывать более традиционным образом;
при разработке проектов по созданию новых, не имеющих аналогов продуктов или систем;
при разработке проектов, для которых требуется уменьшить неточности в определении требований;
при разработке проектов, в которых требования подвержены быстрым изменениям, а заказчик неохотно соглашается на фиксированный набор требований;
при отсутствии у разработчиков уверенности в выборе оптимальной архитектуры или применяемых алгоритмов;
при разработке проектов, в которых алгоритмы или системные интерфейсы усложнены;
при разработке проектов, в которых требуется продемонстрировать техническую осуществимость;
при разработке проектов, в которых нельзя точно сформулировать требования, лежащие за пределами главных характеристик системы;
при разработке проектов со средней и высокой степенью риска;
при объектно-ориентированной разработке систем и продуктов в сочетании с элементами анализа и проектирования;
при разработке интенсивно используемых систем пользовательского интерфейса, интерактивных систем, систем обеспечения принятия решений (например, систем подачи команд, управления, медицинской диагностики).
Модель быстрой разработки приложений rad
Модель быстрой разработки приложений (Rapid Application Development, RAD), как и структурная эволюционная модель быстрого прототипирования (см. предыдущий подраздел), поддерживает эволюционную стратегию разработки системы.
При ее использовании пользователь задействован на всех этапах жизненного цикла разработки проекта. Это обеспечивается использованием мощных инструментальных средств разработки, позволяющих дать оценку продукту на всех стадиях его разработки. Такими средствами являются языки 4-го поколения 4GL и CASE-средства, благодаря наличию в них сред визуальной разработки и кодогенераторов.
Характерной чертой RAD является короткое время перехода от анализа требований до создания полной системы. Модель основывается на последовательности итераций прототипов, при анализе которых формируются требования к продукту. Разработка прототипа ограничивается четко определенным периодом времени (временным блоком; обычно 60 дней) [9, 10].При полностью определенных требованиях и ограниченной проектной области использование RAD позволяет за временной блок создать полностью функциональную систему.
В процессе RAD-разработки основное внимание уделяется не программированию и тестированию, а анализу требований и проектированию.
На рис.2.6 приведен вариант базовой модели быстрой разработки приложений RAD для отдельной итерации, ориентированный на работы СТБ ИСО/МЭК 12207-2003.
Рис.2.6. Модель быстрой разработки приложений RAD
На этапе анализа требований к системе совместно с заказчиком (пользователем) выполняется разработка требований. При этом в качестве базового обычно используется метод структурного анализа.
На этапе проектирования системы выполняется совместное проектирование системной архитектуры и анализ требований к программным средствам. При этом, как правило, используются автоматические инструментальные средства, обеспечивающие сбор пользовательской информации.
На этапе проектирования программных средств, программирования и квалификационных испытаний осуществляется проектирование программной архитектуры, техническое проектирование программных средств, их программирование и тестирование, сборка и квалификационные испытания системы. При этом используются соответствующие инструментальные средства.
На этапе ввода в действие и обеспечения приемки системы выполняются установка системы, приемочные испытания и обучение пользователей.
В RAD-модели обычно используются моделирование предметной области, моделирование данных, моделирование процесса, автоматическая кодогенерация. С учетом этого разработан другой вариант модели RAD, приведеный на рис.2.7 [9].В данной модели выделяется пять этапов.
Основу этапа моделирования предметной области составляет определение и анализ ее информационных потоков и функций.
На этапе моделирования данных на базе информационных потоков, определенных на предыдущем этапе, разрабатывается информационная модель предметной области.
На этапе моделирования обработки выполняется функциональное моделирование предметной области.
На этапе автоматической кодогенерации на основе информационной и функциональной моделей выполняется кодогенерация текстов программных компонентов. При этом используются языки программирования 4-го поколения (4GL) и CASE-средства. Широко применяются повторно используемые программные компоненты.
На этапе сборки и квалификационных испытаний выполняется сборка программных компонентов и испытания результирующей системы или подсистемы.
Зачастую используется вариант модели, приведенной на рис.2.7, в котором реализуется параллельная разработка базовых функций различными группами разработчиков и их последующая интеграция в единую систему.