Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Экстремальное программирование
Наиболее часто используемой адаптивной моделью является модель экстремального программирования (eXtreme Programming, XP-процесс). XP-процесс ориентирован на группы малого и среднего размера, разрабатывающих ПС в условиях неопределенных или быстро меняющихся требований. Основная идея XP-процесса – устранить высокую стоимость внесения изменений. Это достигается путем резкого (до двух недель) сокращения длительности отдельных итераций. Базовыми действиями являются: -кодирование, -тестирование, -выслушивание заказчика, -проектирование. Принципы XP Высокий динамизм разработки обеспечивается следующими принципами: -непрерывная связь с заказчиком, -простота выбираемых решений, -быстрая обратная связь на основе оперативного тестирования, -профилактика рисков. Практики XP Реализация этих принципов достигается за счет использования следующих методов: -Метафора – вся разработка ведется на основе простой, общедоступной истории о том, как работает система. -Простое проектирование – принимаются наиболее простые. -Непрерывное тестирование как отдельных модулей, так и системы в целом; входным критерием для написания кода является отказавший тестовый вариант -Реорганизация ( Refactoring ) – улучшение структуры системы при сохранении ее поведения -Парное программирование – код пишется двумя программистами на одном компьютере -Коллективное владение кодом – любой разработчик может улучшить код любого модуля системы -Непрерывная интеграция – система интегрируется как можно чаще; непрерывное регрессионное тестирование гарантирует сохранение функциональности при изменении требований -Локальный заказчик – в группе все время должен находиться компетентный представитель заказчика -Стандарты кодирования – должны выдерживаться правила, обеспечивающие одинаковое представление кода во всех частях системы Прогнозирующие процессы Все рассмотренные выше модели соответствуют так называемым прогнозирующим ( тяжеловесным ) процессам разработки ПС. Они предполагают планирование всего объема работ и, соответственно, достаточно большой объем документации. Основная цель таких процессов –отделить успешные практики разработки и сопровождения ПО от конкретных людей, умеющих их применять. Многочисленные вспомогательные действия выполнить успешную разработку с помощью имеющихся работников, не обязательно являющихся суперпрофессионалами. Адаптивные процессы В настоящее время все большее распространение получают адаптивные или облегченные, «живые» (agile) процессы разработки. Они не требуют столь жесткой регламентации, допускают возможность частых и существенных изменений требований заказчиков. Адаптивные процессы делают упор на использовании хороших разработчиков, а не хорошо отлаженных процессов разработки. Они избегают фиксации четких схем действий, чтобы обеспечить большую гибкость в каждом конкретном проекте и не требуют разработки дополнительных промежуточных документов. Scrum-модель Является еще одним примером адаптивного процесса разработки. Основные идеи модели сформулировали Хиротака Такеути и Икудзиро Нонака в 1986 году. Основная идея Экспериментальный факт: проекты, над которыми работают небольшие, кросс-функциональные команды, обычно систематически производят лучшие результаты. Такеуки и Ноната объяснили это как «подход регби» и ввели и сам термин «scrum» - «толкотня; схватка вокруг мяча (в регби)» . Впервые метод Scrum был представлен в документированном виде в 1996 году совместно Сазерлендом и Швабером. Роли Главные действующие роли: -ScrumMaster, тот кто занимается процессами и работает в качестве руководителя проекта, -Владелец Продукта, человек, который представляет интересы конечных пользователей и других заинтересованных в продукте сторон, -Команда, которая включает разработчиков. Этапы разработки: -Процесс разработки разбивается на отдельные этапы определенной длительности – спринты (обычно,15-30 дней). -Каждому спринту предшествует этап, который называется product backlog –документирование запросов на выполнение работ. Планирование спринта: -Запросы на выполнение работ определяются на этапе совета по планированию спринта – sprint planning meeting. -На протяжении этого собрания Владелец Продукта информирует о заданиях, которые должны быть выполнены. -Команда определяет, сколько из желаемого они могут выполнить, чтобы завершить необходимые части на протяжении следующего спринта. Выполнение спринта: Во время спринта команда выполняет определенный фиксированный список заданий - backlog items, наращивая функциональность программного продукта. На протяжении этого периода никто не имеет права менять список требований к работе, что следует понимать, как заморозку требований (requirements) во время спринта. Руководство проектом Руководство проектом определяет сущность процесса разработки от его начала до конца. Оно обеспечивает : -оценку объема предстоящих работ -оценку требуемых ресурсов -оценку возможных рисков -составляет или корректирует план работ -определяет первоочередные задачи -устанавливает вехи – точки контроля промежуточных результатов В начале работы над проектом необходимо: -установить цели и проблемную область проекта; -рассмотреть и обсудить возможные варианты решения; -выявить технические, организационные и материальные ограничения Планирование процесса разработки Основная задача планирования – определение структуры распределения работ. Типовая структура распределения работ включает: -системный анализ -анализ требований -предварительное проектирование -детальное проектирование -разработку модулей -тестирование интеграции -аттестацию продукта Границы времени выполнения Распараллеливание задач требует согласования процессов их выполнения во времени. Для каждой из них должно быть запланировано приемлемое время решения Tproc, а также раннее Tmin и позднее Tmax время начала решения. Необходимо выделить задачи, образующие основу проекта, и определяющие временные рамки его выполнения. Рекомендуемое распределение времени выполнения проекта: -на анализ и проектирование 40% временных затрат (из них 5% на анализ и планирование) -на кодирование – 20% -на тестирование и отладку – 40% Оценки, меры и метрики Для оценки различных свойств процесса создания программного продукта, а также и самого продукта, применяются количественные характеристики, называемые мерами. Путем непосредственного измерения определяются опорные свойства. Остальные свойства оцениваются путем вычисления функций от опорных значений. Такие функции называются метриками. Основаны на LOC-оценках, т.е. на количестве строк в текстах программ (Lines Of Code). К числу размерно-ориентированных метрик относятся: -производительность(Производительность = Длина [тыс. LOC]/Затраты [чел.-мес.]) -качество(Качество = Ошибки [Единиц]/Длина [тыс. LOC]) -удельная стоимость(Удельная Стоимость = Стоимость [Тыс. руб.]/Длина [LOC]) -документированность(Документированность = Страниц Документа/Длина [тыс. LOC]) Достоинтства: -основаны на объективных данных; -просты и легко вычислимы; Недостатки: -зависят от языка программирования; -трудновыполнимы на начальной стадии проекта; -не приспособлены к непроцедурным языкам программирования. |
||
Последнее изменение этой страницы: 2018-05-29; просмотров: 222. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |