
- •СОДЕРЖАНИЕ
- •1.1. Основные понятия и определения
- •1.2. Жизненный цикл программных средств
- •2.1. Стратегии разработки программных средств и систем
- •2.1.1. Базовые стратегии разработки программных средств и систем
- •2.1.2. Каскадная стратегия разработки программных средств и систем
- •2.1.3. Инкрементная стратегия разработки программных средств и систем
- •2.1.4. Эволюционная стратегия разработки программных средств и систем
- •2.2.1. Общие сведения о каскадных моделях
- •2.2.2. Классическая каскадная модель
- •2.2.3. Каскадная модель с обратными связями
- •2.2.5. V-образная модель
- •2.3.1. Базовая RAD-модель
- •2.4.1. Общие сведения об инкрементных моделях
- •2.4.2. Инкрементная модель с уточнением требований на начальных этапах разработки
- •2.5.1. Общие сведения об эволюционных моделях
- •2.5.3. Структурная эволюционная модель быстрого прототипирования
- •2.5.5. Спиральная модель Боэма
- •2.5.6. Упрощенные варианты спиральной модели
- •3.1. Классификация проектов по разработке программных средств и систем
- •3.2. Процедура выбора модели жизненного цикла разработки программных средств и систем
- •3.3. Адаптация модели жизненного цикла разработки ПС и систем к условиям конкретного проекта
- •4.1. Модульное проектирование программ
- •4.2. Метод нисходящего проектирования
- •4.2.1. Пошаговое уточнение
- •4.2.2. Кодирование программы с помощью псевдокода и управляющих конструкций структурного программирования
- •4.2.3. Использование комментариев для описания обработки данных
- •4.2.4. Анализ сообщений
- •4.3. Метод восходящего проектирования
- •4.4. Метод иерархического проектирования модулей (метод Джексона)
- •4.4.1. Основные конструкции построения структур данных
- •4.4.2. Построение структур данных
- •4.4.3. Проектирование структур программ
- •4.4.4. Этапы конструирования программы
- •4.5.1. Связность модуля
- •4.5.2. Сцепление модулей
- •5.1. Общие сведения о CASE-технологиях
- •5.2. Методология структурного анализа и проектирования SADT
- •5.2.2. Основные понятия IDEF0-модели
- •5.2.3. Синтаксис диаграмм
- •5.2.4. Синтаксис моделей
- •5.2.6. Процесс моделирования в IDEF0
- •5.3. Информационное моделирование
- •5.3.1. Сущности
- •5.3.2. Атрибуты
- •5.3.3. Способы представления сущностей с атрибутами
- •5.3.4. Классификация атрибутов
- •5.3.5. Правила атрибутов
- •5.3.6. Связи
- •5.3.7. Безусловные связи
- •5.3.8. Условные формы связи
- •5.3.9. Формализация связи
- •5.3.10. Подтипы и супертипы
- •5.3.11. Рабочие продукты информационного моделирования
- •6.1. Эволюция Case-средств
- •6.2. Концептуальные основы Case–средств
- •6.3.1. Поддержка графических моделей
- •6.3.2. Контроль ошибок
- •6.3.3. Организация и поддержка репозитория
- •6.3.4. Поддержка процесса проектирования и разработки
- •6.4. Классификация CASE–средств
- •6.4.1. Классификация по типам
- •6.4.2. Классификация по категориям
- •6.4.3. Классификация по уровням
- •6.5. Инструментальные средства компании Telelogic, предназначенные для автоматизации жизненного цикла программных средств и систем
- •6.5.1. Telelogic DOORS
- •6.5.2. Telelogic TAU
- •6.5.3. Telelogic SYNERGY
- •6.5.4. Telelogic DocExpress
- •6.5.5. Telelogic TAU Logiscope
- •7.2. Реализация процесса документирования в соответствии со стандартом ISO/IEC 15910:1999
- •7.2.2. Выполнение процесса документирования
- •7.2.3. Содержание плана документирования
- •7.2.4. Требования к содержанию спецификации стиля документации
- •ЛИТЕРАТУРА

РАЗДЕЛ 2. МОДЕЛИ ЖИЗНЕННОГО
ЦИКЛА РАЗРАБОТКИ
ПРОГРАММНЫХ СРЕДСТВ
ИСИСТЕМ
2.1.Стратегии разработки программных средств и систем
2.1.1.Базовые стратегии разработки программных средств и систем
На начальном этапе развития вычислительной техники программное обеспечение разрабатывалось по принципу«кодирование – устранение ошибок». Модель такого процесса разработки ПС иллюстрирует рисунок2.1 [19].
Требования |
|
|
|
ПС |
|
Кодирование |
Тестирование |
||||
|
|
|
|||
|
|
|
|
|
Делать, пока не будет сделано
Рисунок 2.1 – Модель «Делать, пока не будет сделано»
Очевидно, что недостатками такой модели являются:
·неструктурированность процесса разработки программных средств;
·ориентация на индивидуальные знания и умения программиста;
·сложность управления и планирования проекта;
·большая длительность и стоимость разработки;
·низкое качество программных продуктов;
·высокий уровень рисков проекта.
В настоящее время наиболее широко используютсятри базовые стратегии разработки программного обеспечения, предназначенные для устранения или сокращения вышеназванных недостатков:
10
·каскадная;
·инкрементная;
·эволюционная.
Некоторые характеристики каскадной, инкрементной и эволюционной стратегий разработки ПС и предъявляемые к ним требования приведены в стандарте ГОСТ Р ИСО/МЭК ТО 15271-2002 – Информационная технология
– Руководство по применению ISO/IEC 12207 (Процессы жизненного цикла программных средств) [6].
Выбор той или иной стратегии определяется характеристиками:
·проекта;
·требований к продукту;
·команды разработчиков;
·команды пользователей.
Каждая из стратегий разработки имеет как достоинства, так и недостатки, определяемые правильностью выбора данной стратегии по отношению к конкретному проекту.
Следует подчеркнуть, что одни и те же свойства стратегии могут проявлять себя как достоинства при выборе стратегии к соответствующему ей проекту и как ее недостатки, если стратегия выбрана неверно.
Три базовых стратегии могут быть реализованы различными моделями
ЖЦ.
2.1.2.Каскадная стратегия разработки программных средств и систем
Каскадная стратегия представляет собой однократный проход этапов разработки.
Данная стратегия основана наполном определении всех требований к разрабатываемому программному средству в начале процесса разработки. Возврат к уже выполненным этапам разработки не предусматривается. Промежуточные результаты в качестве версии программного средства не
распространяются. |
|
|
|
|
|
|
|
|
|
|
Основными |
|
представителями |
|
моделей, реализующих |
каскадную |
|
||||
стратегию, являются каскадная и V-образная модели. |
|
|
|
|
|
|||||
Основными достоинствами каскадной стратегии, проявляемыми при |
|
|||||||||
разработке соответствующего ей проекта, являются: |
|
|
|
|
|
|||||
1) стабильность |
требований |
в |
течение |
всего |
|
жизненного |
цик |
|||
разработки; |
|
|
|
|
|
|
|
|
|
|
2) простота |
применения |
стратегии; необходимость |
только |
одного |
|
прохода этапов разработки; 3) простота планирования, контроля и управления проектом;
11
4)возможность достижения высоких требований к качеству проекта в случае отсутствия жестких ограничений затрат и графика работ;
5)доступность для понимания заказчиками.
Кнедостаткам каскадной стратегии, проявляемым при ее выборе к несоответствующему проекту, следует отнести:
1)сложность четкого формулирования требований в начале жизненного цикла ПС и невозможность их динамического изменения на протяжении ЖЦ ПС;
2)последовательность линейной структуры процесса разработки; на практике разрабатываемые ПС (или система) обычно слишком велики, чтобы все работы по их созданию выполнить однократно; в результате возврат к
предыдущим |
шагам |
для |
решения |
возникающих |
проблем |
приводит |
увеличению затрат и нарушению графика работ; |
|
|
3)проблемность финансирования проекта, связанная со сложностью единовременного распределения больших денежных средств;
4)непригодность промежуточного продукта для использования;
5)недостаточное участие пользователя в разработке системы или ПС– только в самом начале(при разработке требований) и в конце(во время приемочных испытаний), что приводит к невозможности предварительной оценки пользователем качества ПС или системы.
Области применения каскадной стратегииограничены недостатками данной стратегии. Ее использование наиболее эффективно в следующих случаях:
1)при разработке проектов с четкими, неизменяемыми в течение ЖЦ требованиями, понятными реализацией и техническими методиками;
2)при разработке проекта, ориентированного на построение системы или продукта такого же типа, как уже разрабатывались разработчиками ранее;
3)при разработке проекта, связанного с созданием и выпуском новой версии уже существующего продукта или системы;
4)при разработке проекта, связанного с переносом уже существующего продукта на новую платформу;
5) при выполнении больших проектов, которых задействовано несколько больших команд разработчиков (например, см. рисунок 2.5).
2.1.3.Инкрементная стратегия разработки программных средств и систем
Инкрементная стратегия представляет собой многократный проход этапов разработки с запланированным улучшением результата.
Данная стратегия основана наполном определении всех требований к разрабатываемому ПС в начале процесса разработки. Однако полный набор
12
требований |
реализуется |
постепенно |
в |
соответствии |
с |
план |
последовательных циклах разработки. |
|
|
|
|
||
Результат каждого цикла называется инкрементом. |
|
|
|
|||
Первый |
инкремент реализует базовые |
функции . ПСВ последующих |
|
|||
инкрементах функции ПС постепенно расширяются, пока не будет реализован |
|
|||||
весь набор требований к ПС. Различия между инкрементами соседних циклов в |
|
|||||
ходе разработки постепенно уменьшаются. |
|
|
|
|
Результат каждого цикла разработки может распространяться в качестве |
|
|||||
очередной поставляемой версии ПС. |
|
|
|
|
||
Особенностью инкрементной стратегии разработки является большое |
|
|||||
количество циклов разработки при незначительной продолжительности цикла и |
|
|||||
небольших различиях между инкрементами соседних циклов. |
|
|
||||
Например, данная стратегия разработки программных средств и систем |
|
|||||
используется |
в |
компанииMicrosoft. Здесь |
на |
каждую |
версию |
ПС |
разрабатывается около тысячи инкрементов. Период разработки инкремента |
|
|||||||||
составляет один день [10]. В ряде организаций используется недельный период |
|
|||||||||
разработки инкремента. |
|
|
|
|
|
|
|
|
||
Инкрементная стратегия обычно основана на объединении элементов |
|
|||||||||
каскадной |
модели |
и |
прототипирования. При |
этом |
|
использование |
||||
прототипирования |
позволяет |
существенно |
сократить |
продолжительность |
||||||
разработки каждого инкремента и всего проекта в целом. |
|
|
|
|
||||||
Под прототипом понимается легко поддающаяся модификации и |
||||||||||
расширению рабочая модель предполагаемой системы(или программного |
|
|||||||||
средства), позволяющая пользователю получить представление о ключевых |
|
|||||||||
свойствах системы (или ПС) до ее полной реализации. |
|
|
|
|
||||||
Представителями |
моделей, |
реализующих |
инкрементную |
стратегию, |
|
|||||
являются, например, инкрементная и RAD-модель (см. п. ). Следует отметить, |
|
|||||||||
что RAD-модель может использоваться как при инкрементной, так и при |
|
|||||||||
эволюционной стратегиях разработки. |
|
|
|
|
|
|
||||
Современной |
|
реализацией |
инкрементной |
стратегии |
явл |
экстремальное программирование.
Основными достоинствами инкрементной стратегии, проявляемыми при разработке соответствующего ей проекта, являются:
1)возможность получения функционального продукта после реализации каждого инкремента;
2)короткая продолжительность создания инкремента (за счет небольших
функциональных |
различий |
между |
соседними |
инкрементами |
и |
за |
сч |
|||
использования разработанных ранее компонентов); это приводит к ускорению |
|
|||||||||
начального графика поставки и графика всего проекта в цел, позволяетм |
|
|
||||||||
сократить |
общее |
количество |
разработчиков |
и |
снизить |
|
затраты |
|||
первоначальную и последующие поставки программного продукта; |
|
|
|
|
||||||
3) предотвращение |
|
реализации |
громоздких |
перечней |
требований; |
|||||
стабильность требований во время создания определенного инкремента (за счет |
|
|
13
короткой продолжительности цикла разработки инкремента и возможности отодвигания неважных изменений на последующие инкременты); возможность учета изменившихся требований;
4)снижение риска неудачи и изменения требований по сравнению с каскадной моделью; возможность пересмотра рисков, связанных с затратами и соблюдением установленного графика, в конце каждого цикла разработки;
5)включение в процесс пользователей, что позволяет оценить самые
важные функциональные возможности продукта на |
более ранних |
этапах |
||||
разработки и в конечном итоге приводит к повышению качества программного |
||||||
продукта, снижению затрат и времени на его разработку; |
|
|
|
|||
6) возможность |
поддержки |
постоянного |
прогресса , |
прод |
||
разработчиков и технологий в ходе выполнения проекта; |
|
|
|
|||
7) возможность управляемого распределения денежных средств с учетом |
|
|||||
важности реализуемых в инкременте функций; |
|
|
|
|
|
|
8) упрощение |
тестирования |
инкрементов |
по |
сравнению |
||
промежуточными |
продуктами, создаваемыми |
при |
каскадной |
стратегии |
||
разработки. |
|
|
|
|
|
|
К недостаткам инкрементной стратегии, проявляемым при ее выборе к несоответствующему проекту, следует отнести:
1)необходимость полного функционального определения системы или
программного |
средства |
в |
начале |
жизненного |
цикла |
для |
обеспече |
|||||
определения инкрементов, планирования и управления проектом; |
|
|
|
|
||||||||
2) |
возможность |
текущего |
изменения |
требований |
к |
системе |
ил |
|||||
программному средству, которые уже реализованы в предыдущих инкрементах; |
|
|||||||||||
3) |
необходимость |
хорошего |
планирования |
и |
|
проектирован, |
||||||
грамотного распределения работы; |
|
|
|
|
|
|
|
|
|
|||
4) |
непредусмотренность |
итераций |
в |
рамках |
каждого |
|
инкремента |
|||||
модели; |
|
|
|
|
|
|
|
|
|
|
|
|
5)необходимость в четко определенных интерфейсах между модулями, связанная с различными сроками их создания;
6)наличие тенденции к оттягиванию решения трудных проблем на поздние инкременты, что может нарушить график работ.
Области применения инкрементнойстратегии ограничены недостатками данной стратегии. Ее использование наиболее эффективно в следующих случаях:
1)при разработке проектов, в которых большинство требований можно сформулировать заранее, но часть из них могут быть сформулированы через определенный период времени;
2)при необходимости быстро поставить на рынок продукт, имеющий функциональные базовые свойства;
3)для выполнения проектов с большим периодом разработки (один год и
более);
14