Способ оценки качества исходного кода или code review reminder

12
Иванов Денис, Ай Ти Консалтинг Федоров Андрей, LG Electronics Способ оценки качества исходного кода или Code Review Reminder

Upload: sqalab

Post on 16-Jun-2015

980 views

Category:

Technology


3 download

DESCRIPTION

Денис Иванов, uml2.ru, Ай Ти Консалтинг, Санкт-Петербург, Россия

TRANSCRIPT

Page 1: Способ оценки качества исходного кода или Code Review Reminder

Иванов Денис, Ай Ти КонсалтингФедоров Андрей, LG Electronics

Способ оценки качества исходного кода илиCode Review Reminder

Page 2: Способ оценки качества исходного кода или Code Review Reminder

Чего нельзя измерить, тем нельзя управлять.Изречение американских менеджеров

Гораздо легче провести измерение, чем понять, что именно вы измеряете.

Дж. У. Н. Салливен (1886-1937), американский физик

Page 3: Способ оценки качества исходного кода или Code Review Reminder

Качество

• Качество ПО – это нефункциональное (желательное) требование.

• Качество ПО влияет на– отладку (debugging) – тестирование (testing)– поддержку (maintenance)– внесение изменений (modification)

• исправление ошибок (fixing)

– и т.д.

• Оценка качества ПО– относительная

Page 4: Способ оценки качества исходного кода или Code Review Reminder

The Stable Dependencies Principle

Package A

Package B

Более устойчивый пакет

Менее устойчивый пакет

Page 5: Способ оценки качества исходного кода или Code Review Reminder

Неустойчивость (by Robert C. Martin)

• Ca – количество классов вне пакета, которые зависят от классов, находящихся внутри пакета

• Ce – количество классов внутри пакета, которые зависят от классов, находящихся вне пакета

• I – неустойчивость пакета

• I = 1 – максимально неустойчивый пакет• I = 0 – максимально устойчивый пакет

ea

a

CC

CI

Page 6: Способ оценки качества исходного кода или Code Review Reminder

Неустойчивость (by Robert C. Martin)

Package A

Package B

Максимально устойчивый пакет

Максимально неустойчивый пакет

Page 7: Способ оценки качества исходного кода или Code Review Reminder

Неустойчивость (by Robert C. Martin)

• Относится к пакету, но не ко всей системе• Не учитывает косвенные зависимости• Хорошо или плохо?

Page 8: Способ оценки качества исходного кода или Code Review Reminder

Один из признаков качества

Устойчивость к внесению изменений

Анализ отношений между модулями системы, т.е. анализ структуры

Модули:– Каталоги– Файлы– Пространства имен– Классы– Методы– Кооперации– …

Page 9: Способ оценки качества исходного кода или Code Review Reminder

Неустойчивость

Неустойчивость модуля к внесению изменений в программную систему – приблизительная вероятность того, что изменение в некотором другом модуле повлекут за собой изменения в исходном

• Относится к модулю и может быть перенесено на всю систему (усреднено)

• Учитывает косвенные зависимости• Хорошо или плохо

Page 10: Способ оценки качества исходного кода или Code Review Reminder

Пример

020 025

040

060 070

100

Page 11: Способ оценки качества исходного кода или Code Review Reminder

0

0,05

0,1

0,15

0,2

0,25

0,3

20 25 30 35 40 55 60 65 70 85 100 120 130 170

Revision

Isy

sПример

Page 12: Способ оценки качества исходного кода или Code Review Reminder

References

• http://www.objectmentor.com • http://ru.wikipedai.org• http://blog.it-konsulting.spb.ru• Object-Oriented Metrics in Practice,

ISBN: 978-3-540-24429-5