27
Проектирование ИС Циклы в процессе разработки ИС 1 Из 27 Лекция 2

Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Проектирование ИС

Циклы в процессеразработки ИС

1 Из 27 Лекция 2

Page 2: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Жизненный цикл

2 Из 27 Лекция 2

Это последовательность определенных событий или шаблонов поведения , повторяющихся регулярно в заданный период времени

Page 3: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Идеализированные модели процесса разработки ИС

3 Из 27 Лекция 2

● Code-and-fix● Waterfall● Evolutionary● Spiral

● пользователь = разработчик● простейшая модель ЖЦ● прототипы ИС ● мета-модель

Page 4: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Фазы ЖЦ в модели Royce (1970)

4 Из 27 Лекция 2

Page 5: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Devis and Olson 1985, Sage 1995

5 Из 27 Лекция 2

● Определение (анализ)● Разработка (дизайн и программирование)● Развертывание (установка, обеспечение

функционирования)

Page 6: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Обратные связи в модели Boehm (1981)

6 Из 27 Лекция 2

Page 7: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

7 Из 27 Лекция 2

Page 8: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Основные проблемы водопадной модели

8 Из 27 Лекция 2

● Растянутое интегрирование и преувеличенный дизайн

● Запоздалая оценка рисков● Управляемая требованиями

функциональная декомпозиция● Контрактные отношения между

заинтересованными сторонами

Page 9: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

10 правил Boehm (1987)

9 Из 27 Лекция 2

(1) позднее исправление ошибок стоит в 100 раз дороже, чем исправление на ранних фазах дизайна

(2) можно сжать сроки разработки ИС на 25%, но не больше

(3) на каждый 1$, потраченный на разработку, приходится 2$ - для поддержки системы

(4) стоимость разработки и поддержки ИС является функцией от SLOC (Source Lines of Code)

Page 10: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

10 правил (прод.)

10 Из 27 Лекция 2

(5) производительность сильно различается для разных людей

(6) отношение стоимости софта к аппаратной части все еще растет

(7) около 15% разработки ИС посвящено программированию

(8) программная система и программный продукт стоят в 3 раза дороже индивидуальной программы, а продукт программной системы еще 3 раза дороже

Page 11: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

10 правил (прод.)

11 Из 27 Лекция 2

(9) проверка от начала до конца позволяет обнаружить до 60% ошибок

(10) 80% отдачи обусловлено 20% затрат

Page 12: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Роль модели

12 Из 27 Лекция 2

● Все фазы и соответствующие цели необходимы● любая перестановка фаз приведет к менее

успешному проекту● модель указывает — что делать● заставляет планировать взаимодействие

компонент● систематизирует управление проектом● документы проектирования необходимы для этапов

тестирования и поддержки● снижает стоимость

Page 13: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Критика водопадной модели

13 Из 27 Лекция 2

● Модель жесткая: вывод одной фазы фиксируется перед передачей на вход следующей фазе

● Модель монолитная: при планировании определяется срок завершения разработки

● Модель диктует разрабатываемые документы (ТЗ, отчеты и т.п.) - бюрократическая.

Page 14: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Эволюционная модель процесса разработки ИС

14 Из 27 Лекция 2

Две формы:

● нарастающая (incremental)● пртотипная (prototyping)

Page 15: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

15 Из 27 Лекция 2

пример нарастающей модели

Page 16: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

плюсы и минусы

16 Из 27 Лекция 2

● заказчик может вносить предложения даже на поздних стадиях

● разработчики сначала реализуют наиболее существенную функциональность

● результаты разработки демонстрируются заказчику раньше

● тестирование и исправление ошибок ведется постоянно

● архитектура должна быть определена заранее, и все добавления должны отвечать архитектуре

● контрактная разработка почти невозможна

Page 17: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Прототипы

17 Из 27 Лекция 2

● Прототип (prototype) это экспериментальный вариант ИС предоставляемый заказчику для обратной связи

● Два типа прототипов:– быстрый прототип для выбрасывания– эволюционный прототип

Page 18: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

18 Из 27 Лекция 2

Page 19: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

19 Из 27 Лекция 2

Page 20: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Достоинства прототипов

20 Из 27 Лекция 2

● разрешение проблем взаимопонимания● раннее обнаружение упущений● подгонка интерфейса пользователя● обнаружение противоречивых требований● порождает уверенность у заказчика● помогает создать спецификации ИС● снижает стоимость разработки● ускоряет обучение пользователей● упрощает тестирование

Page 21: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Руководство по созданию прототипа

21 Из 27 Лекция 2

● Цель прототипа должна быть ясна заказчику (пользовательский интерфейс, функциональность и т.п.)

● игнорируются нефункциональные требования (обработка ошибок, стандарты качества и надежности и т.д)

● используйте спец.язык для быстрого построения прототипа

Page 22: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Языки для быстрого построения прототипа ИС

22 Из 27 Лекция 2

● Языки очень высокого уровня: Smalltalk, Prolog, APL, Lisp

● 4GL языки: SQL, генераторы отчетов, табличные процессоры, экранные генераторы (CASE средства)

● Компоненты для повторного использования из библиотек, допускающие быструю сборку прототипа

● Формальные языки: напр. Z.● Языки функционального программирования: Miranda,

ML

Page 23: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Спиральная модель Boehm (1988)

23 Из 27 Лекция 2

Page 24: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Спиральная модель

24 Из 27 Лекция 2

● разработка по спирали по часовой стрелке● один цикл спирали = фаза разработки

(ограничений на кол-во фаз нет)● каждая четверть плоскости спирали =

определенный вид деятельности для всех фаз:

– определить цели, альтернативы, ограничения– оценить альтернативы и риски с помощью прототипов– разработать и проверить продукт нового уровня– запланировать новую фазу

Page 25: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Спиральная модель (прод.)

25 Из 27 Лекция 2

● радиус спирали представляет общую стоимость проекта, а угловая размерность — прогресс проекта

● явная оценка рисков — особенность спиральной модели

● кол-во циклов спирали зависит от рассматриваемых рисков

Page 26: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Другие модели процесса

26 Из 27 Лекция 2

● Компонентная модель● RUP — Rational Unified Process● Win-win Spiral Model● RAD — Rapid Application Development● Agile Development Process

Page 27: Циклы в процессе разработки ИСsvv/swe/l2se.pdf · Жизненный цикл 2 Из 27 Лекция 2 ... 12 Из 27 Лекция 2 Все фазы и соответствующие

Литература

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