Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Evaluation Of Code Quality

283 views

Published on

  • Be the first to comment

  • Be the first to like this

Evaluation Of Code Quality

  1. 1. Иванов Денис, Ай Ти Консалтинг Федоров Андрей, LG Electronics Способ оценки качества исходного кода или Code Review Reminder
  2. 2. <ul><li>Чего нельзя измерить, тем нельзя управлять. </li></ul><ul><li>Изречение американских менеджеров </li></ul><ul><li>Гораздо легче провести измерение, чем понять, что именно вы измеряете. </li></ul><ul><li>Дж. У. Н. Салливен (1886-1937), американский физик </li></ul>
  3. 3. Качество <ul><li>Качество ПО – это нефункциональное (желательное) требование . </li></ul><ul><li>Качество ПО влияет на </li></ul><ul><ul><li>отладку ( debugging) </li></ul></ul><ul><ul><li>тестирование ( testing ) </li></ul></ul><ul><ul><li>поддержку ( maintenance ) </li></ul></ul><ul><ul><li>внесение изменений (modification) </li></ul></ul><ul><ul><ul><li>исправление ошибок ( fixing) </li></ul></ul></ul><ul><ul><li>и т.д. </li></ul></ul><ul><li>Оценка качества ПО </li></ul><ul><ul><li>относительная </li></ul></ul>
  4. 4. The Stable Dependencies Principle
  5. 5. Неустойчивость (by Robert C. Martin) <ul><li>C a – количество классов вне пакета, которые зависят от классов, находящихся внутри пакета </li></ul><ul><li>C e – количество классов внутри пакета, которые зависят от классов, находящихся вне пакета </li></ul><ul><li>I – неустойчивость пакета </li></ul><ul><li>I = 1 – максимально неустойчивый пакет </li></ul><ul><li>I = 0 – максимально устойчивый пакет </li></ul>
  6. 6. Неустойчивость (by Robert C. Martin)
  7. 7. Неустойчивость (by Robert C. Martin) <ul><li>Относится к пакету, но не ко всей системе </li></ul><ul><li>Не учитывает косвенные зависимости </li></ul><ul><li>Хорошо или плохо ? </li></ul>
  8. 8. Один из признаков качества <ul><ul><li>У стойчивость к внесению изменений </li></ul></ul><ul><ul><li>Анализ отношений между модулями системы, т.е. анализ структуры </li></ul></ul><ul><ul><li>Модули: </li></ul></ul><ul><ul><li>Каталоги </li></ul></ul><ul><ul><li>Файлы </li></ul></ul><ul><ul><li>Пространства имен </li></ul></ul><ul><ul><li>Классы </li></ul></ul><ul><ul><li>Методы </li></ul></ul><ul><ul><li>Кооперации </li></ul></ul><ul><ul><li>… </li></ul></ul>
  9. 9. Неустойчивость <ul><li>Неустойчивость модуля к внесению изменений в программную систему – приблизительная вероятность того, что изменение в некотором другом модуле повлекут за собой изменения в исходном </li></ul><ul><li>Относится к модулю и может быть перенесено на всю систему (усреднено) </li></ul><ul><li>Учитывает косвенные зависимости </li></ul><ul><li>Хорошо или плохо </li></ul>
  10. 10. Пример
  11. 11. Пример
  12. 12. References <ul><li>http:// www.objectmentor.com </li></ul><ul><li>http:// ru.wikipedai.org </li></ul><ul><li>http:// blog .it-konsulting.spb.ru </li></ul><ul><li>Object-Oriented Metrics in Practice, ISBN: 978-3-540-24429-5 </li></ul>

×