21
Автоматизированный контроль Автоматизированный контроль процесса разработки ПО процесса разработки ПО Вадим Савкин Вадим Савкин

Автоматизированный контроль процесса разработки ПО

  • Upload
    heath

  • View
    43

  • Download
    1

Embed Size (px)

DESCRIPTION

Автоматизированный контроль процесса разработки ПО. Вадим Савкин. Сведения об авторе. Вадим Савкин Инженер по процессам разработки ПО в компании CQG Участник CQG SEPG (Software Engineering Process Group) [email protected]. О компании CQG. - PowerPoint PPT Presentation

Citation preview

Page 1: Автоматизированный контроль процесса разработки ПО

Автоматизированный контроль Автоматизированный контроль процесса разработки ПО процесса разработки ПО

Вадим СавкинВадим Савкин

Page 2: Автоматизированный контроль процесса разработки ПО

Slide Slide 22

Сведения об автореСведения об авторе

Вадим СавкинВадим Савкин Инженер по процессам разработки ПО в Инженер по процессам разработки ПО в

компании компании CQGCQG Участник Участник CQG SEPGCQG SEPG (Software Engineering (Software Engineering

Process Group)Process Group) [email protected]@cqg.com

Page 3: Автоматизированный контроль процесса разработки ПО

Slide Slide 33

О компании О компании CQGCQG

Компания Компания CQGCQG является поставщиком данных и является поставщиком данных и сервисов для биржевой торговли на основе сервисов для биржевой торговли на основе разрабатываемых в компании программных разрабатываемых в компании программных систем.систем.

Штат департамента разработки насчитывает Штат департамента разработки насчитывает порядка 300 сотрудников, распределённых порядка 300 сотрудников, распределённых между 6 офисами в разных странах.между 6 офисами в разных странах.

Разработчики объединены в команды размером Разработчики объединены в команды размером от 3 до 7 человек каждая.от 3 до 7 человек каждая.

Page 4: Автоматизированный контроль процесса разработки ПО

Slide Slide 44

План презентацииПлан презентации

ТеорияТеория Необходимость контроля процессаНеобходимость контроля процесса Инфраструктура для автоматизации контроля Инфраструктура для автоматизации контроля

процессапроцесса Контроль корректности собираемых данныхКонтроль корректности собираемых данных Процесс контроляПроцесс контроля и улучшения процесса разработкии улучшения процесса разработки

Практика — опыт автоматизации контроля Практика — опыт автоматизации контроля процесса разработки в компании процесса разработки в компании CQGCQG Инфраструктура сбора данныхИнфраструктура сбора данных CQG Dashboards demoCQG Dashboards demo Автоматизированный контроль процесса в Автоматизированный контроль процесса в CQGCQG

Page 5: Автоматизированный контроль процесса разработки ПО

Slide Slide 55

Необходимость контроля процессаНеобходимость контроля процесса

Формальный контроль процесса разработки:Формальный контроль процесса разработки:

гарантигарантируетрует выполнени выполнениее стандартов и правил стандартов и правил установленного процесса разработки ПОустановленного процесса разработки ПО

помогает оценить эффективность процессапомогает оценить эффективность процесса помогает усовершенствовать процесс и оценить помогает усовершенствовать процесс и оценить

эффект от измененийэффект от изменений необходим средним и крупным компаниям-необходим средним и крупным компаниям-

разработчикам ПОразработчикам ПО

Page 6: Автоматизированный контроль процесса разработки ПО

Slide Slide 66

Структура контроля процессаСтруктура контроля процесса

Контроль соблюдения заданного процесса.Контроль соблюдения заданного процесса. Проверка согласованности, полноты и корректности данных, Проверка согласованности, полноты и корректности данных,

собираемых различными системами поддержки разработки;собираемых различными системами поддержки разработки; Проверка соблюдения стандартов процесса разработки, Проверка соблюдения стандартов процесса разработки,

принятого в компании.принятого в компании. Контроль эффективности и качества процесса.Контроль эффективности и качества процесса.

Оценка качества разрабатываемых продуктов;Оценка качества разрабатываемых продуктов; Оценка продуктивности разработки;Оценка продуктивности разработки; Оценка точности планирования;Оценка точности планирования; Интервьюирование разработчиков и менеджеров относительно Интервьюирование разработчиков и менеджеров относительно

процесса.процесса. Принятие решений.Принятие решений.

Принятие проектных решений по результатам проверок (в Принятие проектных решений по результатам проверок (в случае проектных аудитов);случае проектных аудитов);

Принятие решений о необходимости внесения изменений в Принятие решений о необходимости внесения изменений в процесс разработки.процесс разработки.

Page 7: Автоматизированный контроль процесса разработки ПО

Slide Slide 77

Стоимость контроля процессаСтоимость контроля процесса

Формальный контроль процесса разработки ПО:Формальный контроль процесса разработки ПО: эффективен, когда проводится регулярноэффективен, когда проводится регулярно довольно дорогая процедурадовольно дорогая процедура

Вывод – необходима автоматизация:Вывод – необходима автоматизация: Автоматизированный сбор метрик процесса разработкиАвтоматизированный сбор метрик процесса разработки Автоматизация формальных проверокАвтоматизация формальных проверок

Page 8: Автоматизированный контроль процесса разработки ПО

Slide Slide 88

Инфраструктура для автоматизации контроля Инфраструктура для автоматизации контроля процессапроцесса

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

ЕдинаяБаза Данных

Отчёт о проверке

ALM-система (Application

Lifecycle Management)

Система контроля версий

Метрики процесса и продуктов, Инструмен-

тальные панели

Автома-тический

анализатор

Программисты-разработчики

Руководство

Page 9: Автоматизированный контроль процесса разработки ПО

Slide Slide 99

Содержимое единой базы данныхСодержимое единой базы данных

Иерархия департамента разработки ПО с данными обо всех Иерархия департамента разработки ПО с данными обо всех разработчиках и менеджерах.разработчиках и менеджерах.

Иерархия продуктов и проектов с разбивкой на задачи.Иерархия продуктов и проектов с разбивкой на задачи. Данные о Данные о временивремени, потраченном разными сотрудниками на , потраченном разными сотрудниками на

ту или иную активность или задачу.ту или иную активность или задачу. Данные о созданных артефактах (требования, дизайн, тест-Данные о созданных артефактах (требования, дизайн, тест-

планы, код, проектная документация и т.п.) с планы, код, проектная документация и т.п.) с подсчитанными подсчитанными размерамиразмерами ( (необходимы стандарты необходимы стандарты оформления и подсчётаоформления и подсчёта))

Данные о найденных Данные о найденных дефектахдефектах со всеми необходимыми со всеми необходимыми атрибутами и историей изменений.атрибутами и историей изменений.

Прочие данные, специфичные для процесса разработки, Прочие данные, специфичные для процесса разработки, принятого в компании.принятого в компании.

Вспомогательные данные.Вспомогательные данные.

Page 10: Автоматизированный контроль процесса разработки ПО

Slide Slide 1010

ОрганизационныйОрганизационный Возложение ответственности на исполнителей за Возложение ответственности на исполнителей за

корректность данных, относящихся к их работекорректность данных, относящихся к их работе

АвтоматизированныйАвтоматизированный Контроль полноты данных в момент вводаКонтроль полноты данных в момент ввода Контроль с помощью автоматических нотификацийКонтроль с помощью автоматических нотификаций Периодические проверки с помощью Периодические проверки с помощью

автоматизированных средств при участии независимых автоматизированных средств при участии независимых экспертов (раз в неделю или несколько недель)экспертов (раз в неделю или несколько недель)

Контроль корректности и полноты собираемых Контроль корректности и полноты собираемых данныхданных

Page 11: Автоматизированный контроль процесса разработки ПО

Автоматизация формальных проверок

Программный код:

analyseActivitiesConsistency "Requirements","Requirement Records", 2 * 7analyseActivitiesConsistency "Design","Model Elements", 2 * 7analyseActivitiesConsistency "Test CasesDevelopment", "Test Cases", 2 * 7analyseActivitiesConsistency "Code & UnitTest", "Lines of Code", 2 * 7

If .Cells(i, oCols("Inspection")) = "" And _ .Cells(i, oCols("LOCs")) > 20 Then

addTaskAnalysisIssue oRawSheet, oCols, i, .Cells(i, oCols("LOCs")) & " LOCs have not been inspected?"

End If

If GetVal("Integration Testing") < GetVal("System Testing") Then

addAnalysisIssue "There were more defects found during ...“ ...

End If...

Примеры формальных проверок из практики Примеры формальных проверок из практики компании CQG:компании CQG:

«Каждая активность типа «разработка «Каждая активность типа «разработка требований», «проектирование», требований», «проектирование», «разработка тест-плана», «разработка тест-плана», «кодирование» приводит к созданию «кодирование» приводит к созданию артефактов соответствующего типа с артефактов соответствующего типа с задержкой не более 2-х недель» - задержкой не более 2-х недель» - пример проверки на полноту и пример проверки на полноту и согласованность данных.согласованность данных.

«Каждое изменение кода размером, «Каждое изменение кода размером, превышающим 20 строк, прошло через превышающим 20 строк, прошло через формальный процесс инспекций» - формальный процесс инспекций» - пример проверки на соблюдение пример проверки на соблюдение стандартов процесса.стандартов процесса.

«Количество дефектов, найденных в «Количество дефектов, найденных в ходе системного тестирования, меньше ходе системного тестирования, меньше количества дефектов, найдённых в количества дефектов, найдённых в ходе интеграционного тестирования, ходе интеграционного тестирования, которое, в свою очередь, меньше которое, в свою очередь, меньше количества дефектов, найденных в количества дефектов, найденных в ходе инспекций» - пример проверки ходе инспекций» - пример проверки качества процесса. качества процесса.

Page 12: Автоматизированный контроль процесса разработки ПО

Slide Slide 1212

Процесс контроляПроцесс контроля и улучшения процесса и улучшения процесса разработкиразработки

Проверка данных на полноту и

корректность [automated]

Исправление проблем в

данных

Проверка соблюдения стандартов процесса

[automated]

Проверка эффективно-сти процесса [automated]

Обсуждение результатов

проверок

Выполнение принятых решений

Page 13: Автоматизированный контроль процесса разработки ПО

Опыт автоматизации контроля Опыт автоматизации контроля процессов в компании процессов в компании CQGCQG

Вадим СавкинВадим Савкин

Page 14: Автоматизированный контроль процесса разработки ПО

Slide Slide 1414

CQG: CQG: Инфраструктура сбора данныхИнфраструктура сбора данных о о процессе разработкипроцессе разработки ПОПО

CCреднее суммарное время, которое тратит разработчик на реднее суммарное время, которое тратит разработчик на работу со всеми программными инструментами сбора работу со всеми программными инструментами сбора данных вданных в CQG CQG, составляет около , составляет около 15 минут в день15 минут в день..

ЕдинаяБаза Данных

CVS(чекины,

LOCs)

PV Tool(время,

размеры) CQG Dashboards

(+ встроенный анализатор)

Программисты-разработчики

Руководство

Tracker(задачи,

инспекции)

CQGenie(дефекты,

требования)

Page 15: Автоматизированный контроль процесса разработки ПО

Slide Slide 1515

CQG: CQG: Инструменты сбора данныхИнструменты сбора данных

PV Tool: PV Tool: Система учёта рабочего времени и Система учёта рабочего времени и размеров произведённых артефактов с привязкой размеров произведённых артефактов с привязкой к конкретным проектам (собственная разработка)к конкретным проектам (собственная разработка)

Tracker: Tracker: Система учёта отдельных задач и Система учёта отдельных задач и поддержки инспекций (собственная разработка, поддержки инспекций (собственная разработка, поддерживает методологию поддерживает методологию PSPPSP))

CQGenie:CQGenie: Система bug-tracking и репозиторий Система bug-tracking и репозиторий требований (разработка на базе Siebel)требований (разработка на базе Siebel)

CVS: CVS: Система контроля версийСистема контроля версий

Page 16: Автоматизированный контроль процесса разработки ПО

Slide Slide 1616

CQG Dashboards - CQG Dashboards - структураструктура

Page 17: Автоматизированный контроль процесса разработки ПО

Slide Slide 1717

CQG: CQG: Основные метрики процессаОсновные метрики процесса

Метрики производительности:Метрики производительности: Производительность (число строк кода в неделю)Производительность (число строк кода в неделю) Скорость кодированияСкорость кодирования

Метрики качества:Метрики качества: Плотности дефектов разных типовПлотности дефектов разных типов Объём переделокОбъём переделок Покрытие кода требованиямиПокрытие кода требованиями

Метрики формального процесса инспекций:Метрики формального процесса инспекций: Скорость просмотра кодаСкорость просмотра кода Плотность найденных замечанийПлотность найденных замечаний Процент дефектов от общего числа замечаний.Процент дефектов от общего числа замечаний. Покрытие кода инспекциямиПокрытие кода инспекциями

Метрики точности планирования:Метрики точности планирования: Отклонение реальных значений затрат от запланированныхОтклонение реальных значений затрат от запланированных

Себестоимость проектаСебестоимость проекта

Page 18: Автоматизированный контроль процесса разработки ПО

Slide Slide 1818

CQGCQG:: Project Dashboard (demo) Project Dashboard (demo)

Page 19: Автоматизированный контроль процесса разработки ПО

Slide Slide 1919

CQG: Team Dashboard (demo)CQG: Team Dashboard (demo)

Page 20: Автоматизированный контроль процесса разработки ПО

Slide Slide 2020

CQG:CQG: Автоматизированный контроль процесса Автоматизированный контроль процесса разработки ПОразработки ПО

В компании CQG автоматизированный контроль В компании CQG автоматизированный контроль процесса разработки применяется на нескольких процесса разработки применяется на нескольких уровнях:уровнях: Периодический контроль стандартного процесса Периодический контроль стандартного процесса

разработки в командах (раз в 2-3 недели).разработки в командах (раз в 2-3 недели). Периодический аудит проектов (раз в 4-6 недель).Периодический аудит проектов (раз в 4-6 недель). Периодический контроль процесса поддержки Периодический контроль процесса поддержки

((maintenancemaintenance) продуктов (в зависимости от частоты ) продуктов (в зависимости от частоты релизов).релизов).

Контроль проводится независимыми экспертами, Контроль проводится независимыми экспертами, которые совмещают роль разработчика с ролью которые совмещают роль разработчика с ролью инженера по процессам разработки ПО.инженера по процессам разработки ПО.

Page 21: Автоматизированный контроль процесса разработки ПО

Slide Slide 2121

ЗаключениеЗаключение

Для автоматизации контроля процесса необходимо:Для автоматизации контроля процесса необходимо: Постоянно собирать требуемые данные о Постоянно собирать требуемые данные о

процессе всем разработчикампроцессе всем разработчикам Накапливать данные в единой базе данныхНакапливать данные в единой базе данных Периодически контролировать корректность и Периодически контролировать корректность и

полноту данныхполноту данных Регулярно подсчитывать метрики на основе Регулярно подсчитывать метрики на основе

собранных данныхсобранных данных

При выполнении вышеперечисленных условийПри выполнении вышеперечисленных условий Формальные проверки различных показателей Формальные проверки различных показателей

процесса могут быть легко автоматизированыпроцесса могут быть легко автоматизированы