- Главная
- Информатика
- ТРПО. Лекция 1
Содержание
- 2. Начало проекта Ожидание Реальность
- 3. План Контекст разработки программного продукта Этапы разработки программного обеспечения Стратегии разработки 10 правил промышленного создания ПО
- 4. Контекст разработки программного продукта Технология разработки программных продуктов — это по определению одна из областей инженерной
- 5. Контекст разработки программного продукта Много труда было вложено в развитие инженерной науки еще до рождения первого
- 6. Этапы разработки программного обеспечения В 80-е и 90-е годы в области разработки программного обеспечения (ПО) преобладали
- 7. Этапы разработки программного обеспечения Система разработки программного обеспечения включает в себя персонал, процесс, проект и продукт.
- 8. Процесс Итак, мы определили, что в основе разработки программного обеспечения лежит проект, который может рассматриваться как
- 9. Процесс В создании продукта принимает участие множество различных людей, т.е. персонал. Персонал — это реальные люди,
- 10. Процесс Хорошие разработчики программного обеспечения избегают повторения ошибок предыдущих проектов за счет документирования и совершенствования своего
- 11. Процесс Типичная схема разработки программного обеспечения: Понять природу и сферу применения предлагаемого продукта. Выбрать процесс разработки
- 12. Процесс 1. Понять природу и сферу применения предлагаемого продукта. Прежде всего, необходимо уяснить суть проекта. Это
- 13. Процесс 2. Выбрать процесс разработки и создать план. С самого начала проекта должна вестись документация, которая,
- 14. Процесс 3. Собрать требования. Следующий шаг состоит в сборе требований к приложению. Он включает в себя,
- 15. Стратегии разработки Каскадная V-модель Итеративная модель Спиральная модель Модель быстрой разработки RAD
- 16. Каскадная модель Однажды, на заре эпохи программирования, единственными участниками процесса разработки были программисты. Они писали программные
- 17. Каскадная модель Каскадная модель проста и понятна, но не так практична как раньше. В условиях динамично
- 18. Каскадная модель Недостатки модели: ложность чёткого формулирования требований и невозможность их динамического изменения на протяжении пока
- 19. Каскадная модель Несмотря на то, что каскадная модель все еще используется, она уже утратила былые позиции.
- 20. V-модель V-модель – это улучшенная версия классической каскадной модели. Здесь на каждом этапе происходит контроль текущего
- 21. V-модель Плюсы и минусы V-модели: + строгая этапизация; + планирование тестирования и верификация системы производятся на
- 22. Итеративная модель Не все модели жизненного цикла последовательны. Существуют также итеративные (или инкрементальные) модели, в которых
- 23. Итеративная модель В несколько упрощенном виде, итеративная модель состоит из четырех основных стадий, которые повторяются в
- 24. Итеративная модель В математических терминах, итеративная модель представляет реализацию методики последовательной аппроксимации – то есть, постепенное
- 25. Итеративная модель Достоинства: затраты, которые получаются в связи с изменением требований пользователей, уменьшаются, повторный анализ и
- 26. Итеративная модель Когда использовать итеративную модель: – для крупных проектов; – когда известны, по крайней мере,
- 27. Спиральная модель Спиральная модель представляет шаблон процесса разработки ПО, который сочетает идеи итеративной и каскадной моделей.
- 28. Спиральная модель Данная модель представляет собой процесс разработки программного обеспечения, сочетающий в себе как проектирование, так
- 29. Спиральная модель Жизненный цикл на каждом витке спирали — могут применяться разные модели процесса разработки ПО.
- 30. Спиральная модель Достоинства модели: позволяет быстрее показать пользователям системы работоспособный продукт, тем самым, активизируя процесс уточнения
- 31. Спиральная модель Недостатки модели: если проект имеет низкую степень риска или небольшие размеры, модель может оказаться
- 32. Спиральная модель Основная проблема спирального цикла — определение момента перехода на следующий этап. Для её решения
- 33. Модель быстрой разработки RAD Модель быстрой разработки приложений (Rapid Application Development, RAD) появилась в 80-е годы
- 34. Модель быстрой разработки RAD Характерной чертой RAD-модели является короткое время перехода от анализа требований до создания
- 35. Модель быстрой разработки RAD Жизненный цикл программного обеспечения в соответствии с подходом RAD включает четыре стадии,
- 36. Модель быстрой разработки RAD На стадии анализа и формирования требований: • определяют функции, которые должна выполнять
- 37. Модель быстрой разработки RAD На стадии проектирования часть пользователей также принимает участие в проектировании системы под
- 38. Модель быстрой разработки RAD На стадии реализации непосредственно происходит быстрая разработка приложения. Разработчики производят итеративное построение
- 39. Модель быстрой разработки RAD На стадии внедрения производятся обучение пользователей, организационные изменения и параллельно с внедрением
- 40. Модель быстрой разработки RAD Следует заметить, что подход RAD не может претендовать на универсальность. Он хорош
- 41. Модель быстрой разработки RAD При использовании RAD-модели в соответствующем ей проекте проявляются следующие ее достоинства: •
- 42. Модель быстрой разработки RAD Основными недостатками RAD-модели при использовании в неподходящем для нее проекте являются: •
- 43. Модель быстрой разработки RAD RAD-модель может эффективно применяться в следующих случаях: • при разработке программных продуктов,
- 44. 10 правил промышленного создания ПО 10 правил промышленного создания ПО или принципы традиционного управления программными проектами
- 45. 10 правил промышленного создания ПО 3. На каждый доллар, вложенный в разработку, приходится тратить два доллара
- 46. 10 правил промышленного создания ПО 5. Различия в уровне квалификации разработчиков приводят к огромной разнице в
- 47. 10 правил промышленного создания ПО 7. При создании ПО всего лишь около 15% усилий затрачивается собственно
- 49. Скачать презентацию
Слайд 2Начало проекта
Ожидание
Реальность
Начало проекта
Ожидание
Реальность
Слайд 3План
Контекст разработки программного продукта
Этапы разработки программного обеспечения
Стратегии разработки
10 правил промышленного создания ПО
План
Контекст разработки программного продукта
Этапы разработки программного обеспечения
Стратегии разработки
10 правил промышленного создания ПО
Слайд 4Контекст разработки программного продукта
Технология разработки программных продуктов — это по определению одна
Контекст разработки программного продукта
Технология разработки программных продуктов — это по определению одна
С начала развития компьютерных технологий работу по созданию программных продуктов относили к разработке, для которой требуются в основном навыки программирования, а не знания инженерной науки. Аккредитационный совет по инженерной науке и технологии (ABET — Accreditation Board for Engineering and Technology) определяет профессию инженера следующим образом:
«Профессия, в которой математические и естественно-научные знания, полученные исследованиями, опытом и практикой, мудро применяются для разработки путей экономного использования природных ресурсов и сил на пользу человечеству.»
Слайд 5Контекст разработки программного продукта
Много труда было вложено в развитие инженерной науки еще
Контекст разработки программного продукта
Много труда было вложено в развитие инженерной науки еще
В чем сходство и различие между разработкой программного продукта и другими областями инженерной науки? Один общий для них элемент — это необходимость подробного описания того, что должно быть создано, так называемый анализ требований. С другой стороны, программные проекты особенно часто подвергаются изменениям, включая те, которые необходимо сделать, пока продукт находится еще на стадии разработки.
Слайд 6Этапы разработки программного обеспечения
В 80-е и 90-е годы в области разработки программного
Этапы разработки программного обеспечения
В 80-е и 90-е годы в области разработки программного
Однако, несмотря на появление новых тенденций, основные этапы разработки программного обеспечения остались неизменными, как показано ниже.
Определение процесса разработки ПО, который будет использоваться в дальнейшем.
Управление проектом разработки.
Описание целевого программного продукта.
Проектирование продукта.
Разработка продукта, то есть его программирование.
Тестирование частей продукта.
Интеграция частей и тестирование продукта в целом.
Сопровождение продукта.
Разработчики меняют последовательность проработки этих направлений и долю внимания, уделяемого каждому направлению. В реальности разработка программного обеспечения обычно определяется требуемым набором функций или сроком сдачи проекта, что диктуется ситуацией на рынке. В результате только хорошо организованные группы инженеров, владеющие методами разработки программного обеспечения, способны правильно построить работу. В противном случае разработчиков обычно ожидает хаос и крах.
Слайд 7Этапы разработки программного обеспечения
Система разработки программного обеспечения включает в себя персонал, процесс,
Этапы разработки программного обеспечения
Система разработки программного обеспечения включает в себя персонал, процесс,
Слайд 8Процесс
Итак, мы определили, что в основе разработки программного обеспечения лежит проект, который
Процесс
Итак, мы определили, что в основе разработки программного обеспечения лежит проект, который
Итогом проекта по разработке программного обеспечения является продукт. Понятие продукта не ограничивается программным кодом. Продукт – это артефакты, создаваемые в течение всей жизни проекта, такие как модели, тексты программ, исполняемые файлы и документация.
Слайд 9Процесс
В создании продукта принимает участие множество различных людей, т.е. персонал. Персонал —
Процесс
В создании продукта принимает участие множество различных людей, т.е. персонал. Персонал —
Усилия людей, вовлеченных в проект, направляет процесс разработки программного обеспечения. Процесс создания программного обеспечения — это полный набор видов деятельности, необходимых для преобразования требований пользователя в продукт. Процесс, направляющий разработку программного обеспечения, должен быть ориентирован на персонал. Иначе говоря, людям, работающим с этим процессом, должно быть удобно это делать.
Слайд 10Процесс
Хорошие разработчики программного обеспечения избегают повторения ошибок предыдущих проектов за счет документирования
Процесс
Хорошие разработчики программного обеспечения избегают повторения ошибок предыдущих проектов за счет документирования
Проектирование программного обеспечения представляет собой процесс построения приложений реальных размеров и практической значимости, удовлетворяющих заданным требованиям функциональности и производительности.
Программирование — это один из видов деятельности, входящих в цикл разработки программного обеспечения.
По масштабам работы, требуемым профессиональным знаниям и общественной значимости различие между просто программированием и проектированием программного обеспечения можно сравнить с различием между изготовлением скамейки у ворот своего загородного дома и возведением моста. Эти две задачи различаются на порядок по значимости и требуемым профессиональным знаниям. В отличие от постройки скамейки возведение моста включает в себя как профессиональную, так и социальную ответственность.
Слайд 11Процесс
Типичная схема разработки программного обеспечения:
Понять природу и сферу применения предлагаемого продукта.
Выбрать процесс
Процесс
Типичная схема разработки программного обеспечения:
Понять природу и сферу применения предлагаемого продукта.
Выбрать процесс
Собрать требования.
Спроектировать и собрать продукт.
Выполнить тестирование продукта.
Выпустить продукт и обеспечить его сопровождение.
Слайд 12Процесс
1. Понять природу и сферу применения предлагаемого продукта.
Прежде всего, необходимо уяснить суть
Процесс
1. Понять природу и сферу применения предлагаемого продукта.
Прежде всего, необходимо уяснить суть
Нужно составить представление о масштабах проекта и с этой целью оценить, какими сроками, финансами и персоналом мы располагаем. Если, например, для построения видеоигры нам предоставляется 10 тыс. долларов, один разработчик и один месяц срока, можно говорить разве что о реализации прототипа игры. Если же мы располагаем бюджетом в 5 млн долларов, 20 разработчиками и сроком в 18 месяцев, то речь уже может идти о создании полноценного конкурентоспособного программного продукта и совсем других масштабах производственной деятельности.
Слайд 13Процесс
2. Выбрать процесс разработки и создать план.
С самого начала проекта должна вестись
Процесс
2. Выбрать процесс разработки и создать план.
С самого начала проекта должна вестись
После этого обычно составляется общий план проекта, включающий в себя план-график (расписание проекта). Этот план будет уточняться на протяжении жизненного цикла проекта, по мере того как будут уточняться требования к проекту и детали реализации. Например, детали плана-графика не могут быть проработаны, пока не будет определена архитектура приложения.
Слайд 14Процесс
3. Собрать требования.
Следующий шаг состоит в сборе требований к приложению. Он включает
Процесс
3. Собрать требования.
Следующий шаг состоит в сборе требований к приложению. Он включает
4. Спроектировать и собрать продукт.
Затем наступает черед проектирования и реализации самого продукта.
В зависимости от используемого процесса разработки шаги 3 и 4 могут быть выполнены несколько раз.
5. Выполнить тестирование продукта.
Программный продукт, как окончательный, так и промежуточный, подлежит тщательному тестированию
6. Выпустить продукт и обеспечить его сопровождение.
Наконец, когда продукт выпущен, наступает фаза его сопровождения, включающая внесение в него исправлений и улучшений.
Слайд 15Стратегии разработки
Каскадная
V-модель
Итеративная модель
Спиральная модель
Модель быстрой разработки RAD
Стратегии разработки
Каскадная
V-модель
Итеративная модель
Спиральная модель
Модель быстрой разработки RAD
Слайд 16Каскадная модель
Однажды, на заре эпохи программирования, единственными участниками процесса разработки были программисты.
Каскадная модель
Однажды, на заре эпохи программирования, единственными участниками процесса разработки были программисты.
Самой старой и известной моделью построения многоуровневого процесса разработки является каскадная (или попросту водопадная) модель: в ней каждый этап разработки, соответствующий стадии жизненного цикла ПО, продолжает предыдущий. То есть, для того, чтобы перейти на новый этап, мы полностью должны завершить текущий.
Слайд 17Каскадная модель
Каскадная модель проста и понятна, но не так практична как раньше.
Каскадная модель
Каскадная модель проста и понятна, но не так практична как раньше.
Достоинства модели:
стабильность требований в течение всего жизненного цикла разработки;
на каждой стадии формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;
определенность и понятность шагов модели и простота её применения;
выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения всех работ и соответствующие ресурсы (денежные. материальные и людские).
Каскадная модель хорошо зарекомендовала себя при построении относительно простых ПО, когда в самом начале разработки можно достаточно точно и полно сформулировать все требования к продукту.
Слайд 18Каскадная модель
Недостатки модели:
ложность чёткого формулирования требований и невозможность их динамического изменения на
Каскадная модель
Недостатки модели:
ложность чёткого формулирования требований и невозможность их динамического изменения на
низкая гибкость в управлении проектом;
последовательность линейной структуры процесса разработки, в результате возврат к предыдущим шагам для решения возникающих проблем приводит к увеличению затрат и нарушению графика работ;
непригодность промежуточного продукта для использования;
невозможность гибкого моделирования уникальных систем;
позднее обнаружение проблем, связанных со сборкой, в связи с одновременной интеграцией всех результатов в конце разработки;
недостаточное участие пользователя в создании системы — в самом начале (при разработке требований) и в конце (во время приёмочных испытаний);
пользователи не могут убедиться в качестве разрабатываемого продукта до окончания всего процесса разработки. Они не имеют возможности оценить качество, т.к.нельзя увидеть готовый продукт разработки;
у пользователя нет возможности постепенно привыкнуть к системе. Процесс обучения происходит в конце жизненного цикла, когда ПО уже запущено в эксплуатацию;
каждая фаза является предпосылкой для выполнения последующих действий, что превращает такой метод в рискованный выбор для систем, не имеющих аналогов, т.к. он не поддается гибкому моделированию.
Реализовать Каскадную модель жизненного цикла затруднительно ввиду сложности разработки ПС без возвратов к предыдущим шагам и изменения их результатов для устранения возникающих проблем.
Слайд 19Каскадная модель
Несмотря на то, что каскадная модель все еще используется, она уже
Каскадная модель
Несмотря на то, что каскадная модель все еще используется, она уже
Область применения Каскадной модели
Ограничение области применения каскадной модели определяется её недостатками. Её использование наиболее эффективно в следующих случаях:
при разработке проектов с четкими, неизменяемыми в течение жизненного цикла требованиями, понятными реализацией и техническими методиками;
при разработке проекта, ориентированного на построение системы или продукта такого же типа, как уже разрабатывались разработчиками ранее;
при разработке проекта, связанного с созданием и выпуском новой версии уже существующего продукта или системы;
при разработке проекта, связанного с переносом уже существующего продукта или системы на новую платформу;
при выполнении больших проектов, в которых задействовано несколько больших команд разработчиков.
Слайд 20V-модель
V-модель – это улучшенная версия классической каскадной модели. Здесь на каждом этапе
V-модель
V-модель – это улучшенная версия классической каскадной модели. Здесь на каждом этапе
Для каждого уровня тестирования разрабатывается отдельный тест-план, то есть во время тестирования текущего уровня, мы также занимаемся разработкой стратегии тестирования следующего. Создавая тест-планы, мы также определяем ожидаемые результаты тестирования и указываем критерии входа и выхода для каждого этапа.
В V-модели каждому этапу проектирования и разработки системы соответствует отдельный уровень тестирования. Здесь процесс разработки представлен нисходящей последовательностью в левой части условной буквы V, а стадии тестирования – на ее правом ребре. Соответствие этапов разработки и тестирования показано горизонтальными линиями.
Слайд 21V-модель
Плюсы и минусы V-модели:
+ строгая этапизация;
+ планирование тестирования и верификация системы производятся
V-модель
Плюсы и минусы V-модели:
+ строгая этапизация;
+ планирование тестирования и верификация системы производятся
+ улучшенный, по сравнению с каскадной моделью, тайм-менеджмент;
+ промежуточное тестирование.
— недостаточная гибкость модели;
— собственно создание программы происходит на этапе написания кода, то есть уже в середине процесса разработки;
— недостаточный анализ рисков;
— нет работы с параллельными событиями и возможности динамического внесения изменений.
Когда использовать V-модель:
– В проектах, в которых существуют временные и финансовые ограничения;
– Для задач, которые предполагают более широкое, по сравнению с каскадной моделью, тестовое покрытие.
Слайд 22Итеративная модель
Не все модели жизненного цикла последовательны. Существуют также итеративные (или инкрементальные)
Итеративная модель
Не все модели жизненного цикла последовательны. Существуют также итеративные (или инкрементальные)
Итеративная модель не предполагает полного объема требований для начала работ над продуктом. Разработка программы может начинаться с требований к части функционала, которые могут впоследствии дополняться и изменяться. Процесс повторяется, обеспечивая создание новой версии продукта для каждого цикла.
Слайд 23Итеративная модель
В несколько упрощенном виде, итеративная модель состоит из четырех основных стадий,
Итеративная модель
В несколько упрощенном виде, итеративная модель состоит из четырех основных стадий,
– определение и анализ требований;
– дизайн и проектирование – согласно требованиями. Причем дизайн может как разрабатываться отдельно для данной функциональности, так и дополнять уже существующий;
– разработка и тестирование – кодирование, интеграция и тестирование нового компонента;
– фаза ревью – оценка, пересмотр текущих требований и предложения дополнений к ним.
По результатам каждой итерации принимается решение – будут ли использованы ее результаты для дополнения существующей функциональности в качестве входной точки для начала следующей итерации (т.н. инкрементальное прототипирование). В конечном итоге, достигается точка, в которой все требования были воплощены в продукте – происходит релиз.
Слайд 24Итеративная модель
В математических терминах, итеративная модель представляет реализацию методики последовательной аппроксимации –
Итеративная модель
В математических терминах, итеративная модель представляет реализацию методики последовательной аппроксимации –
Ключ к успешному использованию этой модели – строгая валидация требований и тщательная верификация разрабатываемой функциональности в каждой из итераций.
Основные стадии процесса разработки в итеративной модели фактически повторяют модель водопада. В каждой итерации создается программное обеспечение, требующее тестирования на всех уровнях.
Слайд 25Итеративная модель
Достоинства:
затраты, которые получаются в связи с изменением требований пользователей, уменьшаются, повторный
Итеративная модель
Достоинства:
затраты, которые получаются в связи с изменением требований пользователей, уменьшаются, повторный
легче получить отзывы от клиента о проделанной работе — клиенты могут озвучить свои комментарии в отношении готовых частей и могут видеть, что уже сделано. Т.к. первые части системы являются прототипом системы в целом.
у клиента есть возможность быстро получить и освоить программное обеспечение — клиенты могут получить реальные преимущества от системы раньше, чем это было бы возможно с каскадной моделью.
Недостатки модели:
менеджеры должны постоянно измерять прогресс процесса. в случае быстрой разработки не стоит создавать документы для каждого минимального изменения версии;
структура системы имеет тенденцию к ухудшению при добавлении новых компонентов — постоянные изменения нарушают структуру системы. Чтобы избежать этого требуется дополнительное время и деньги на рефакторинг. Плохая структура делает программное обеспечение сложным и дорогостоящим для последующих изменений. А прерванный Жизненный цикл ПО приводит еще к большим потерям.
Слайд 26Итеративная модель
Когда использовать итеративную модель:
– для крупных проектов;
– когда известны, по крайней
Итеративная модель
Когда использовать итеративную модель:
– для крупных проектов;
– когда известны, по крайней
– когда требования к проекту могут меняться в процессе разработки.
Итеративная модель является ключевым элементом так называемых «гибких» (Agile) подходов к разработке программного обеспечения, основные из которых мы рассмотрим в следующих разделах.
Слайд 27Спиральная модель
Спиральная модель представляет шаблон процесса разработки ПО, который сочетает идеи итеративной
Спиральная модель
Спиральная модель представляет шаблон процесса разработки ПО, который сочетает идеи итеративной
В спиральной модели жизненный путь разрабатываемого продукта изображается в виде спирали, которая, начавшись на этапе планирования, раскручивается с прохождением каждого следующего шага. Таким образом, на выходе из очередного витка мы должны получить готовый протестированный прототип, который дополняет существующий билд. Прототип, удовлетворяющий всем требованиям – готов к релизу.
Слайд 28Спиральная модель
Данная модель представляет собой процесс разработки программного обеспечения, сочетающий в себе
Спиральная модель
Данная модель представляет собой процесс разработки программного обеспечения, сочетающий в себе
На этапах анализа и проектирования реализуемость технических решений и степень удовлетворения потребностей заказчика проверяется путем создания прототипов. Каждый виток спирали соответствует созданию работоспособного фрагмента или версии системы. Это позволяет уточнить требования, цели и характеристики проекта, определить качество разработки, спланировать работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который удовлетворяет действительным требованиям заказчика и доводится до реализации.
Слайд 29Спиральная модель
Жизненный цикл на каждом витке спирали — могут применяться разные модели
Спиральная модель
Жизненный цикл на каждом витке спирали — могут применяться разные модели
Разработка итерациями отражает объективно существующий спиральный цикл создания системы. Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем.
Главная задача — как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Слайд 30Спиральная модель
Достоинства модели:
позволяет быстрее показать пользователям системы работоспособный продукт, тем самым, активизируя
Спиральная модель
Достоинства модели:
позволяет быстрее показать пользователям системы работоспособный продукт, тем самым, активизируя
допускает изменение требований при разработке программного обеспечения, что характерно для большинства разработок, в том числе и типовых;
в модели предусмотрена возможность гибкого проектирования, поскольку в ней воплощены преимущества каскадной модели, и в то же время разрешены итерации по всем фазам этой же модели;
позволяет получить более надежную и устойчивую систему. По мере развития программного обеспечения ошибки и слабые места обнаруживаются и исправляются на каждой итерации;
эта модель разрешает пользователям активно принимать участие при планировании, анализе рисков, разработке, а также при выполнении оценочных действий;
уменьшаются риски заказчика. Заказчик может с минимальными для себя финансовыми потерями завершить развитие неперспективного проекта;
обратная связь по направлению от пользователей к разработчикам выполняется с высокой частотой и на ранних этапах модели, что обеспечивает создание нужного продукта высокого качества.
Слайд 31Спиральная модель
Недостатки модели:
если проект имеет низкую степень риска или небольшие размеры, модель
Спиральная модель
Недостатки модели:
если проект имеет низкую степень риска или небольшие размеры, модель
жизненный цикл модели имеет усложненную структуру, поэтому может быть затруднено её применение разработчиками, менеджерами и заказчиками;
спираль может продолжаться до бесконечности, поскольку каждая ответная реакция заказчика на созданную версию может порождать новый цикл, что отдаляет окончание работы над проектом;
большое количество промежуточных циклов может привести к необходимости в обработке дополнительной документации;
использование модели может оказаться дорогостоящим и даже недопустимым по средствам, т.к. время. затраченное на планирование, повторное определение целей, выполнение анализа рисков и прототипирование, может быть чрезмерным;
могут возникнуть затруднения при определении целей и стадий, указывающих на готовность продолжать процесс разработки на следующей итерации
Слайд 32Спиральная модель
Основная проблема спирального цикла — определение момента перехода на следующий этап.
Спиральная модель
Основная проблема спирального цикла — определение момента перехода на следующий этап.
Область применения спиральной модели
Применение спиральной модели целесообразно в следующих случаях:
при разработке проектов, использующих новые технологии;
при разработке новой серии продуктов или систем;
при разработке проектов с ожидаемыми существенными изменениями или дополнениями требований;
для выполнения долгосрочных проектов;
при разработке проектов, требующих демонстрации качества и версий системы или продукта через короткий период времени;
при разработке проектов. для которых необходим подсчет затрат, связанных с оценкой и разрешением рисков.
Слайд 33Модель быстрой разработки RAD
Модель быстрой разработки приложений (Rapid Application Development, RAD) появилась
Модель быстрой разработки RAD
Модель быстрой разработки приложений (Rapid Application Development, RAD) появилась
Данная модель, исходя из особенностей ее реализации и целей ее использования, может поддерживать как инкрементную, так и эволюционную стратегию разработки программного обеспечения. Как правило, RAD-модели используются в составе другой модели для ускорения цикла разработки прототипа системы или программного средства. При невысокой сложности проектов RAD-модели могут применяться как независимые.
Слайд 34Модель быстрой разработки RAD
Характерной чертой RAD-модели является короткое время перехода от анализа
Модель быстрой разработки RAD
Характерной чертой RAD-модели является короткое время перехода от анализа
• небольших групп профессиональных разработчиков (до 7 чел.), выполняющих работы по проектированию отдельных подсистем программного обеспечения;
• хорошо проработанного производственного графика;
• циклической реализации в программном продукте требований, получаемых в результате взаимодействия с заказчиком.
Слайд 35Модель быстрой разработки RAD
Жизненный цикл программного обеспечения в соответствии с подходом RAD
Модель быстрой разработки RAD
Жизненный цикл программного обеспечения в соответствии с подходом RAD
1) анализ и формирование требований;
2) проектирование;
3) реализация;
4) внедрение и сопровождение.
Слайд 36Модель быстрой разработки RAD
На стадии анализа и формирования требований:
• определяют функции, которые
Модель быстрой разработки RAD
На стадии анализа и формирования требований:
• определяют функции, которые
• выделяют наиболее приоритетные функции, требующие проработки в первую очередь;
• описывают информационные потребности.
Формулирование требований к системе осуществляется в основном совместными усилиями пользователей и специалистов-разработчиков. Кроме того, на данной стадии:
• устанавливаются границы проекта;
• определяются временные рамки для каждой из последующих стадий;
• решается сама возможность реализации проекта в заданных размерах финансирования, с имеющимся техническим обеспечением и т.п.
В результате завершения стадии должен быть сформулирован перечень функций будущего программного обеспечения и построены предварительные модели ПО.
Слайд 37Модель быстрой разработки RAD
На стадии проектирования часть пользователей также принимает участие в
Модель быстрой разработки RAD
На стадии проектирования часть пользователей также принимает участие в
Для быстрого получения работающих прототипов приложений используются соответствующие инструментальные средства — CASE-средства*. Пользователи, непосредственно взаимодействуя с разработчиками, уточняют и дополняют требования в техническом проектировании к системе, которые не были выявлены на предыдущей стадии.
На данной стадии более детально рассматриваются процессы системы, создаются частичные прототипы (экранная форма, диалог, отчет), определяется состав необходимой документации.
*CASE средства (Computer - Aided Software Engineering) – это инструмент, который позволяет автоматизировать процесс разработки информационной системы и программного обеспечения. Разработка и создание информационных систем управления предприятием связаны с выделением бизнес-процессов, их анализом, определением взаимосвязи элементов процессов, оптимизации их инфраструктуры и т.д. Основной целью применения CASE средств является сокращение времени и затрат на разработку информационных систем, и повышение их качества.
Слайд 38Модель быстрой разработки RAD
На стадии реализации непосредственно происходит быстрая разработка приложения. Разработчики
Модель быстрой разработки RAD
На стадии реализации непосредственно происходит быстрая разработка приложения. Разработчики
Пользователи оценивают получаемые результаты и вносят коррективы, если в процессе разработки ПО перестает удовлетворять определенным ранее требованиям. Тестирование программного обеспечения осуществляется в процессе разработки.
Результатом стадии является готовый программный продукт, удовлетворяющий всем согласованным требованиям.
Слайд 39Модель быстрой разработки RAD
На стадии внедрения производятся обучение пользователей, организационные изменения и
Модель быстрой разработки RAD
На стадии внедрения производятся обучение пользователей, организационные изменения и
Планирование и подготовка к внедрению должны начинаться на стадии проектирования программного продукта.
Слайд 40Модель быстрой разработки RAD
Следует заметить, что подход RAD не может претендовать на
Модель быстрой разработки RAD
Следует заметить, что подход RAD не может претендовать на
Подход RAD не применим также для построения сложных расчетных программ, операционных систем или программ управления сложными объектами в реальном масштабе времени, т.е. программ, содержащих большой объем кода. Быстрая разработка не используется для приложений, от которых зависит безопасность людей (например, управление самолетом или атомной электростанцией), так как итеративный подход предполагает, что первые несколько версий наверняка не будут полностью работоспособны, что в данном случае исключается.
Рассмотренный подход можно применять при разработке программных продуктов, которые хорошо поддаются моделированию, когда требования к ПО достаточно хорошо определены.
Слайд 41Модель быстрой разработки RAD
При использовании RAD-модели в соответствующем ей проекте проявляются следующие
Модель быстрой разработки RAD
При использовании RAD-модели в соответствующем ей проекте проявляются следующие
• сокращение продолжительности цикла разработки и всего проекта в целом;
• сокращение количества разработчиков;
• вследствие предыдущих факторов — снижение стоимости проекта (также и за счет использования мощных инструментальных средств);
• сокращение риска несоблюдения графика;
• сокращение риска, связанного с неудовлетворенностью заказчика полученным программным продуктом, за счет привлечения его к циклу разработки;
• возможность повторного использования разработанных компонентов; это достоинство проявляется при использовании RAD-модели в составе инкрементной или эволюционной модели. В этом случае наращивание функциональных возможностей осуществляется на базе разработанных ранее компонентов.
Слайд 42Модель быстрой разработки RAD
Основными недостатками RAD-модели при использовании в неподходящем для нее
Модель быстрой разработки RAD
Основными недостатками RAD-модели при использовании в неподходящем для нее
• необходимость постоянного участия пользователей в процессе разработки, что не всегда выполнимо и может повлиять на качество конечного продукта;
• жесткость временных ограничений на разработку прототипа;
• сложность определения и ограничения затрат и сроков завершения работы над продуктом.
Слайд 43Модель быстрой разработки RAD
RAD-модель может эффективно применяться в следующих случаях:
• при разработке
Модель быстрой разработки RAD
RAD-модель может эффективно применяться в следующих случаях:
• при разработке
• требования для программного обеспечения хорошо известны;
• имеются пригодные к повторному использованию в разрабатываемом ПО компоненты;
• пользователь может принимать постоянное участие в процессе разработки;
• в проекте заняты разработчики, обладающие достаточными навыками в использовании инструментальных средств разработки;
• при разработке ПП, для которых требуется быстрое наращивание функциональных возможностей;
• при невысокой степени технических рисков;
• в составе других моделей жизненного цикла.
Слайд 4410 правил промышленного создания ПО
10 правил промышленного создания ПО или принципы
10 правил промышленного создания ПО
10 правил промышленного создания ПО или принципы
В 1988 году вышла статья Барри Боэма «Список 10 правил промышленного создания ПО», которые наиболее полно отражают основные принципы традиционного управления программными проектами.
1. Поиск и обнаружение ошибки в ПО после его сдачи в эксплуатацию обходится в 100 раз дороже, чем поиск и обнаружение ошибки на ранних стадиях разработки.
Эта оценка не является уникальной для разработки ПО. По отношению к любому продукту материального производства вполне справедливо можно утверждать, что исправление дефекта, обнаруженного после продажи, может стоить намного дороже, чем выявление дефекта на стадии разработки или производства.
2. Можно сократить срок разработки ПО на 25% от номинального, но не более.
Чтобы понять причину этого ограничения, следует вспомнить утверждение Ф. Брукса о том, что для сокращения времени разработки на n% требуется увеличить количество персонала на m% (в предположении, что другие параметры остаются неизменными). Т.е. любой рост числа работников требует увеличения затрат на управление. Оптимальным для работы, требующей 100 человеко-месяцев, может быть выполнение ее за 10 месяцев 10-ю работниками. В соответствии с правилом 25%-ного сокращения сроков вы можете выполнить данную работу за 7,5 месяцев, но для этого возможно потребуется увеличение трудозатрат (около 20 человеко-месяцев). Любое дальнейшее сокращение сроков работ обречено на неудачу.
Слайд 4510 правил промышленного создания ПО
3. На каждый доллар, вложенный в разработку,
10 правил промышленного создания ПО
3. На каждый доллар, вложенный в разработку,
Боэм назвал это правило «железным законом разработки ПО». Независимо от того, создается ли продукт долговременного использования, у которого выходят по две коммерческие версии в год, или единственное в своем роде ПО для конкретного заказчика, количество денег, затрачиваемых на весь цикл сопровождения, будет с некоторой вероятностью в два раза больше суммы, истраченной за весь цикл разработки. На первый взгляд трудно понять, хорошее это соотношение или плохое. Для сектора коммерческих продуктов оно определяется, прежде всего, коммерческим успехом на рынке. Успешные программные продукты (такие, как Oracle, приложения Microsoft, Rational Rose или операционная система UNIX) существуют в течение очень долгого времени, что может приводить к более высокому значению отношения стоимости сопровождения к стоимости разработки. С другой стороны, менеджеры проектов по созданию «одноразового» ПО редко планируют большие затраты на его сопровождение. В любом случае каждому, работает в IT-индустрии следует помнить, что ПО всегда трудно сопровождать.
4. Стоимость разработки и сопровождения программного обеспечения является, прежде всего, функцией числа строк исходного кода.
Это правило справедливо по отношению к заказному ПО, которое преобладало в 70-80 г.г. прошлого века. Оно не учитывает наличия коммерчески распространяемых компонентов, возможности повторного использования кода, которые характеризуют современные технологии разработки программ.
Слайд 4610 правил промышленного создания ПО
5. Различия в уровне квалификации разработчиков приводят
10 правил промышленного создания ПО
5. Различия в уровне квалификации разработчиков приводят
Это самая главная мудрость традиционного процесса: нанимайте хороших работников. Данному правилу зачастую придается как недостаточное, так и чрезмерное значение. Когда отсутствуют объективные сведения относительно причин успеха или неудачи, очевидным козлом отпущения становится квалификация персонала. Это суждение субъективно, и его трудно оспаривать.
6. Общее отношение стоимости программного обеспечения к стоимости аппаратного обеспечения продолжает расти. В 1955 г. оно составляло 15:85; в 1985 г. - 85:15.
Тот факт, что на ПО приходится 85% стоимости большинства систем, является не столько следствием продуктивности создания ПО, сколько следствием того уровня функциональных задач, выполнение которых возлагается на программное обеспечение при принятии решений о системе в целом. Потребность в программном обеспечении, широта его использования и его сложность продолжают безгранично расти.
Слайд 4710 правил промышленного создания ПО
7. При создании ПО всего лишь около
10 правил промышленного создания ПО
7. При создании ПО всего лишь около
Для успешного осуществления проекта приходится помимо кодирования выполнять много других задач. Управление требованиями, проектирование, тестирование, планирование, контроль за ходом проекта, управление изменениями — одинаково важные задачи, на которые тратится приблизительно 85% ресурсов.
8. Программные системы и продукты обычно стоят в три раза дороже в пересчете на одну строку исходного кода, чем отдельные программы. Продукты, состоящие из программных систем (т.е. системы систем), стоят дороже в девять раз.
Эта экспоненциальная зависимость лежит в основе того, что называют платой за масштаб (diseconomy of scale). В отличие от других товаров, чем больше объем создаваемого программного обеспечения, тем дороже оно обходится в пересчете на одну строку исходного кода.