ПЛАН-КОНСПЕКТ УРОКА
«ОСНОВНЫЕ МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»
1. Общая информация:
Специальность: 09.02.07 Информационные системы и программирование
Дисциплина: МДК 01.02 Поддержка и тестирование программных модулей
Курс изучения: III
Длительность урока: 90 минут
2. Дидактическая информация:
Цели урока: познакомиться с моделями и методологиями разработки ПО; определить место тестирования в процессе разработки ПО
Задачи урока:
дать понятие модели и методологии разработки ПО
продолжить формирование научного мировоззрения, расширять словарный запас по теме «Тестирование программного обнспечения»
формировать интерес к выбранной специальности, воспитывать настойчивость в преодолении трудностей в учебной работе.
Тип урока: урок получения новых знаний
Методы преподавания: практический, частично-поисковый, словесный.
Методическое и материальное обеспечение учебного занятия: компьютер, проектор, презентация по теме, дидактический материал.
План урока:
I Организационный этап.
II Подготовка студентов к работе на основном этапе.
III Постановка задачи.
IV Этап усвоения новых знаний и способов действий.
V Этап первичной проверки понимания изученного, закрепления новых знаний и способов действий.
VI Этап контроля и самоконтроля знаний и способов действий.
VII Этап информации о домашнем задании.
VIII Подведение итогов урока. Рефлексия.
КОНСПЕКТ УРОКА
Прежде чем перейти к теории тестирования, для дальнейшего обучения важно узнать, какие процессы есть в командах разработки, с чего начинается разработка и когда именно подключается тестировщик. Начнем с определения жизненного цикла ПО.
Жизненный цикл программного обеспечения - это период времени, который начинается с момента принятия решения о создании программного продукта и заканчивается в момент его полного изъятия из эксплуатации.
Основные этапы ЖЦ ПО: анализ требований; проектирование; кодирование; тестирование и отладка; эксплуатация и сопровождение.
Также необходимо дать определения понятиям «модель» и «методология».
Модель жизненного цикла - общее описание того, как происходит процесс разработки.
Методология - более детализированный набор правил, практик и принципов, как способ реализации той или иной модели.
На практике в разных командах разработки могут применяться разные модели разработки. Основные из них следующие:
Code and fix
Применяется фрилансерами или в маленьких командах до 3-4-х человек. Есть только заказчик и разработчики, других ролей нет, следовательно, нет ни дизайна, ни требований. Разработчик делает первый вариант продукта, передает заказчику на проверку, если заказчику необходимы правки, код изменяется и снова отдается заказчику и так до тех пор, пока заказчик не примет продукт.
Waterfall Model (каскадная/водопад)
Все этапы ЖЦ по этой модели должны идти строго друг за другом.
Достоинствами данной модели являются: полное документирование каждого этапа; четкое планирование сроков и затрат; прозрачность процессов для заказчика.
Недостатки каскадной модели: необходимость утверждения полного объема требований к системе еще на первом этапе; в случае необходимости внесения изменений требований позднее - возврат к первой стадии и переделка заново всей проделанной работы; увеличение затрат средств и времени в случае необходимости изменения требований.
Применение модели максимально действенно при: создании проектов с четкими требованиями не изменяющимися во время ЖЦ, доступной реализацией и техническими методиками; создании проекта, направленного на разработку системы или продукта уже существующего типа; выполнении крупных проектов, в которых задействованы несколько крупных команд разработчиков; реализации некоторых сложных систем, которые связаны с жизнью и здоровьем людей.
V-model
V-модель основана на объединении фазы тестирования с каждой соответствующей стадией разработки. Является улучшенным вариантом каскадной модели.
Iterative Model
Суть итеративной или итерационной модели - это создание базового функционала и постепенное его улучшение.
Плюсы итеративной модели: раннее создание работающего ПО; гибкость - готовность к изменению требований на любом этапе разработки; каждая итерация - маленький этап, для которого тестирование и анализ рисков обеспечить проще, чем для всего жизненного цикла продукта.
Минусы: каждая фаза - самостоятельна, отдельные итерации не накладываются; могут возникнуть проблемы с реализацией общей архитектуры системы, поскольку не все требования известны к началу проектирования.
Итеративная модель подходит для: работы над большими проектами с не определёнными заранее требованиями; реализации задач с инновационным подходом, когда заказчик не уверен в результате.
Incremental Model
Похожа на итеративную, но итерациями разрабатываются модули продукта, готовые модули сразу можно использовать.
Инкрементная: добавляем с каждой итерацией новые элементы и в итоге собираем машину. Каждый модуль попадает в общую систему уже полностью готовым.
Итеративная: имеем в самом начале первую версию продукта, затем доводим её до желательного результата путем улучшения всего продукта. Каждая итерация — новый улучшенный продукт.
Spiral Model
В спиральной модели разработки ЖЦ продукта закручен в виде спирали и разделен на фазы. Последующая стадия основывается на предыдущей, а в конце каждого витка — цикла итераций — принимается решение, продолжать ли проект.
Ориентирована на учет рисков, после каждого витка оцениваются риски и делается вывод, стоит ли вообще продолжать разработку.
Chaos model
Стратегия хаоса — это стратегия разработки программного обеспечения, основанная на модели хаоса. Главное правило - всегда решать в первую очередь самый важный вопрос.
Эффективно применяется: при одновременной работе с множеством проектов; если компания разрабатывает свой продукт; если компания специализируется на типичных, не инновационных проектах средней сложности.
Prototype Model
Модель-прототип используется для разработки неполной программы и ее версий. Он используется для сборки и тестирования более ранней версии конечного продукта. Это итеративный процесс, и эта модель в основном работает в ситуациях, когда требования доступны заранее.
Гибкие методологии
Все модели, которые мы изучили выше, являются стандартными моделями разработки. Однако в последнее время всё чаще можно услышать об использовании гибких методологий или Agile.
Agile — это итеративный подход к управлению проектами и разработке программного обеспечения, который помогает командам быстрее и с меньшими проблемами поставлять ценность клиентам.
Вместо того чтобы выпускать весь продукт целиком, команда, следующая принципам Agile, выполняет работу в рамках небольших, но удобных инкрементов. Требования, планы и результаты оцениваются непрерывно, благодаря чему команды могут быстро реагировать на изменения.
Основные ценности Agile:
люди и взаимодействие важнее процессов и инструментов.
работающий продукт важнее исчерпывающей документации.
сотрудничество с клиентом важнее согласования условий контракта.
готовность к изменениям важнее следования первоначальному плану.
Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.
ЗАДАНИЯ К ЛЕКЦИИ
Ознакомиться с теоретическим материалом лекции.
Законспектировать в тетради основные понятия и термины.
Устно ответить на контрольные вопросы.
ВОПРОСЫ ТЕСТОВОГО КОНТРОЛЯ