Лекции по курсу «Метрология и качество программного обеспечения» Лекция 3. Модели жизненного цикла разработки программных средств © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Фазы стандартного процесса разработки программного обеспечения Процесс разработки ПО включает в себя - нормативную документацию (процедуры, руководства, чек-листы); - базу данных для хранения количественных характеристик проектов - инструменты разработки, анализа и т.д. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Фазы стандартного процесса разработки программного обеспечения Принято выделять следующие стандартные фазы разработки ПО 1. Планирование (Planning); 2. Разработка требований (Requirements); 3. Дизайн (Design); 4. Кодирование (Coding); 5. Тестирование (Test). © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Фазы стандартного процесса разработки программного обеспечения П л а н и р о в а н и е Т р е б о в а н и я Д и з а й н Высокоуровневый Низкоуровневый К о д и р о в а н и е Т е с т и р о в а н и е Модульное Интеграционное Системное Разработка тестов © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Фазы стандартного процесса разработки программного обеспечения Классы проектов при разработке ПО 1. Класс 0 – исправление незначительных ошибок (1 неделя, код не меняется) 2. Класс 1 – незначительная доработка продукта (3 месяца, изменения кода до 25%) 3. Класс 2 - существенная доработка продукта (полгода, изменения кода до 75%) 4. Класс 3 – новый проект (более полугода, изменения кода свыше 75%) 5. Класс 4 – сопровождение продукта (время жизни не ограничено, код не меняется) © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Фазы стандартного процесса разработки программного обеспечения Стандартная проектная документация разработки ПО 1. На этапе планирования: SPMP, SCMP, SQAP, STMP. 2. На этапе разработки требований: MRS, SRS. 3. На этапе дизайна: SDS (HLD, LLD), ICD, RTM. 4. На этапе тестирования: ITP, STP, RTM, Test Logs. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Водопад - Водопад с перекрытиями - Водопад с возвратами - Водопад с возвратами и перекрытиями Инкрементная Итеративная Итеративно-инкрементная Спиральная © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Водопад (Waterfall) Планирование Разработка требований Дизайн Кодирование Тестирование Время © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Водопад с перекрытиями (Overlapping waterfall) Планирование Разработка требований Дизайн Кодирование Тестирование Время © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Водопад с возвратами (Waterfall with returns) Планирование Разработка требований Дизайн Кодирование Тестирование Время © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Достоинства и недостатки водопадной модели Достоинства: - простота и наглядность; - лёгкость определения контрольных фаз и этапов выполнения проекта. Недостатки: - процесс разработки требует очень точных и неизменных требований; - требуются значительные усилия и ресурсы на устранение ошибок и доработку продукта. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Инкрементная модель (Incremental) Планирование Разработка требований Окончательные требования © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Разработка требований инкремента 1 Разработка требований инкремента 2 Дизайн инкремента 1 Дизайн инкремента 2 Кодирование инкремента 1 Кодирование инкремента 2 Тестирование инкремента 1 Тестирование инкремента 2 Модели жизненных циклов разработки программного обеспечения Достоинства и недостатки инкрементной модели Достоинства: - отдельные инкременты могут выполнятся параллельно; - возможна оптимизация использования людских ресурсов; - на каждом инкременте рабочий продукт появляется в более короткие сроки; Недостатки: - сложность сохранения связанного дизайна на всех инкрементах; - высока вероятность изменения первоначальных требований. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Итеративная модель (Iterative) Итерация 1 Итерация 2 Планиров ание Итерация 3 Планиров ание Разработ ка т ребов аний Планиров ание Разработ ка т ребов аний Дизайн Разработ ка т ребов аний Дизайн Кодиров ание Тест иров ание Дизайн Кодиров ание Тест иров ание Кодиров ание Тест иров ание Время © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Итеративно-инкрементная модель (Incremental & Iterative) Сочетает в себе элементы инкрементной и итеративной моделей, когда проект разбивается на несколько инкрементов, каждый из которых реализует итеративную модель. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Достоинства и недостатки итеративной модели Достоинства: - более точное определение требований предшествует новым итерациям; - тестирование проводится на протяжении всего жизненного цикла продукта. Недостатки: - усложнение процесса разработки; - потенциально более долгие сроки разработки продукта. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Спиральная модель (Spiral) Оценка результатов Планирование следующей итерации Разработка рабочих продуктов Оценка целей, альтернатив и ограничений Идентификация рисков © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Модели жизненных циклов разработки программного обеспечения Достоинства и недостатки спиральной модели Достоинства: - работающий продукт выпускается на более ранних стадиях; - не требуется полного и детального набора требований для начала разработки. Недостатки: - требуется очень хорошее знание предметной области; - начало проекта с плохо определёнными целями неудобно для менеджеров проекта. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС