Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
Проектирование ИС
Циклы в процессеразработки ИС
1 Из 27 Лекция 2
Жизненный цикл
2 Из 27 Лекция 2
Это последовательность определенных событий или шаблонов поведения , повторяющихся регулярно в заданный период времени
Идеализированные модели процесса разработки ИС
3 Из 27 Лекция 2
● Code-and-fix● Waterfall● Evolutionary● Spiral
● пользователь = разработчик● простейшая модель ЖЦ● прототипы ИС ● мета-модель
Фазы ЖЦ в модели Royce (1970)
4 Из 27 Лекция 2
Devis and Olson 1985, Sage 1995
5 Из 27 Лекция 2
● Определение (анализ)● Разработка (дизайн и программирование)● Развертывание (установка, обеспечение
функционирования)
Обратные связи в модели Boehm (1981)
6 Из 27 Лекция 2
7 Из 27 Лекция 2
Основные проблемы водопадной модели
8 Из 27 Лекция 2
● Растянутое интегрирование и преувеличенный дизайн
● Запоздалая оценка рисков● Управляемая требованиями
функциональная декомпозиция● Контрактные отношения между
заинтересованными сторонами
10 правил Boehm (1987)
9 Из 27 Лекция 2
(1) позднее исправление ошибок стоит в 100 раз дороже, чем исправление на ранних фазах дизайна
(2) можно сжать сроки разработки ИС на 25%, но не больше
(3) на каждый 1$, потраченный на разработку, приходится 2$ - для поддержки системы
(4) стоимость разработки и поддержки ИС является функцией от SLOC (Source Lines of Code)
10 правил (прод.)
10 Из 27 Лекция 2
(5) производительность сильно различается для разных людей
(6) отношение стоимости софта к аппаратной части все еще растет
(7) около 15% разработки ИС посвящено программированию
(8) программная система и программный продукт стоят в 3 раза дороже индивидуальной программы, а продукт программной системы еще 3 раза дороже
10 правил (прод.)
11 Из 27 Лекция 2
(9) проверка от начала до конца позволяет обнаружить до 60% ошибок
(10) 80% отдачи обусловлено 20% затрат
Роль модели
12 Из 27 Лекция 2
● Все фазы и соответствующие цели необходимы● любая перестановка фаз приведет к менее
успешному проекту● модель указывает — что делать● заставляет планировать взаимодействие
компонент● систематизирует управление проектом● документы проектирования необходимы для этапов
тестирования и поддержки● снижает стоимость
Критика водопадной модели
13 Из 27 Лекция 2
● Модель жесткая: вывод одной фазы фиксируется перед передачей на вход следующей фазе
● Модель монолитная: при планировании определяется срок завершения разработки
● Модель диктует разрабатываемые документы (ТЗ, отчеты и т.п.) - бюрократическая.
Эволюционная модель процесса разработки ИС
14 Из 27 Лекция 2
Две формы:
● нарастающая (incremental)● пртотипная (prototyping)
15 Из 27 Лекция 2
пример нарастающей модели
плюсы и минусы
16 Из 27 Лекция 2
● заказчик может вносить предложения даже на поздних стадиях
● разработчики сначала реализуют наиболее существенную функциональность
● результаты разработки демонстрируются заказчику раньше
● тестирование и исправление ошибок ведется постоянно
● архитектура должна быть определена заранее, и все добавления должны отвечать архитектуре
● контрактная разработка почти невозможна
Прототипы
17 Из 27 Лекция 2
● Прототип (prototype) это экспериментальный вариант ИС предоставляемый заказчику для обратной связи
● Два типа прототипов:– быстрый прототип для выбрасывания– эволюционный прототип
18 Из 27 Лекция 2
19 Из 27 Лекция 2
Достоинства прототипов
20 Из 27 Лекция 2
● разрешение проблем взаимопонимания● раннее обнаружение упущений● подгонка интерфейса пользователя● обнаружение противоречивых требований● порождает уверенность у заказчика● помогает создать спецификации ИС● снижает стоимость разработки● ускоряет обучение пользователей● упрощает тестирование
Руководство по созданию прототипа
21 Из 27 Лекция 2
● Цель прототипа должна быть ясна заказчику (пользовательский интерфейс, функциональность и т.п.)
● игнорируются нефункциональные требования (обработка ошибок, стандарты качества и надежности и т.д)
● используйте спец.язык для быстрого построения прототипа
Языки для быстрого построения прототипа ИС
22 Из 27 Лекция 2
● Языки очень высокого уровня: Smalltalk, Prolog, APL, Lisp
● 4GL языки: SQL, генераторы отчетов, табличные процессоры, экранные генераторы (CASE средства)
● Компоненты для повторного использования из библиотек, допускающие быструю сборку прототипа
● Формальные языки: напр. Z.● Языки функционального программирования: Miranda,
ML
Спиральная модель Boehm (1988)
23 Из 27 Лекция 2
Спиральная модель
24 Из 27 Лекция 2
● разработка по спирали по часовой стрелке● один цикл спирали = фаза разработки
(ограничений на кол-во фаз нет)● каждая четверть плоскости спирали =
определенный вид деятельности для всех фаз:
– определить цели, альтернативы, ограничения– оценить альтернативы и риски с помощью прототипов– разработать и проверить продукт нового уровня– запланировать новую фазу
Спиральная модель (прод.)
25 Из 27 Лекция 2
● радиус спирали представляет общую стоимость проекта, а угловая размерность — прогресс проекта
● явная оценка рисков — особенность спиральной модели
● кол-во циклов спирали зависит от рассматриваемых рисков
Другие модели процесса
26 Из 27 Лекция 2
● Компонентная модель● RUP — Rational Unified Process● Win-win Spiral Model● RAD — Rapid Application Development● Agile Development Process
Литература
27 Из 27 Лекция 2
● Pratar K.J. Mohaparta Software Engineering (A Lifecycle Approach) New Age International, 2010
● S.Donaldson, S.J.Siegel Successful Software Development 2 ed. Prentice Hall 2000
● Steve McConnell Professional Software Development Addison Wesley 2003