Project

General

Profile

Metrics » History » Revision 18

Revision 17 (Никита Давыдовский, 05/27/2012 05:07 PM) → Revision 18/27 (Никита Давыдовский, 05/29/2012 02:55 PM)

h1. Метрики проекта Geo-Events 

 h2. Метрики кода 

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

 Метрики сложности программ принято разделять на три основные группы: 
 * метрики размера программ; 
 * метрики сложности потока управления программ; 
 * метрики сложности потока данных программ. 

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

 Метрики второй группы базируются на анализе управляющего графа программы. Управляющий граф программы (_*УГП) отображает поток управления программы. Это граф _*G(V, A)*_, где _*V(V1,… Vm) – множеств вершин (операторов), _*A(A1,… An) – множество дуг (управлений), соединяющих вершины. 

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

 Основные размерно - ориентированные метрики (показатели оценки объема) 

 _*LOC-оценка (Lines Of Code) 

 Размерно-ориентированные метрики прямо измеряют программный продукт и процесс его разработки. Основываются такие метрики на LOC-оценках. 

 Этот вид метрик косвенно измеряет программный продукт и процесс его разработки. Вместо подсчета LOC-оценок при этом рассматривается не размер, а функциональность или полезность продукта. 

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

 * общие трудозатраты (в человеко-месяцах, человеко-часах); 
 * объем программы (в тысячах строках исходного кода - _*LOC); 
 * стоимость разработки; 
 * объем документации; 
 * ошибки, обнаруженные в течение года эксплуатации; 
 * количество людей, работавших над изделием; 
 * срок разработки. 

 На основе этих данных обычно подсчитываются простые метрики для оценки производительности труда (KLOC/человеко-месяц) и качества изделия. 

 Эти метрики не универсальны и спорны, особенно это относится к такому показателю как LOC, который существенно зависит от используемого языка программирования. 

 Количество строк исходного кода (Lines of Code – LOC, Source Lines of Code – SLOC) является наиболее простым и распространенным способом оценки объема работ по проекту. 

 Метрики Qt/C++ кода получены с помощью инструмента "SourceMonitor":http://www.campwoodsw.com/sourcemonitor.html 
 Базовые метрики кода для QtQuick приложений получены с помощью утилиты "CLOK":http://cloc.sourceforge.net/ 

 h3. Модуль *core* 23.04.2012 (общие) 

 |_.Дата|_.Файлы|_.Строки кода (LOC)|_.Операторы (Statements)|_.% Комментариев (% Comments)|_.Классы (Class Defs)|_.% Методы/Класс (% Methods/Class)|_.% Операторы/Метод (% Statements/Methods)| 
 |=.23.04.12|=.80|=.19744|=.9773|=.18,3|=.68|=.15,21|=.7,7| 
 |=.07.05.12|=.81|=.19337|=.9587|=.18,1|=.70|=.14,58|=.7,5| 
 |=.21.05.12|=.81|=.19352|=.9596|=.18,1|=.70|=.14,56|=.7,5| 

 *Подробный отчёт (по файлам)*: 
 * "Метрики модуля *core* (ядро) 23.04.2012":/attachments/download/179 
 * "Метрики модуля *core* (ядро) 07.05.2012":/attachments/download/198 
 * "Метрики модуля *core* (ядро) 21.05.2012":/attachments/download/199 

 *Отчёты по временным промежуткам*: 
 * [[core-metric-results-27.05.2012| Отчёт по модулю *core* 23.04.2012-21.05.2012]] 

 h3. Приложение Events 

 |_.Дата|\4=.*05.05.12*| 
 |_.Язык|_.Файлы|_.Строки кода (Code)|_.Комментарии (comment)|_.Пустые строки (blank)| 
 |=.QML|=.27|=.3237|=.358|=.530| 
 |=.JavaScript|=.3|=.194|=.62|=.37| 
 |=.C++|=.2|=.175|=.29|=.29| 
 |=.C/C++ Headers|=.1|=.24|=.10|=.12| 
 |\5=.| 
 |=.*Всего*|=.33|=.3630|=.459|=.608| 

 h3. Приложение Places 

 |_.Дата|\4=.*15.05.12*| 
 |_.Язык|_.Файлы|_.Строки кода (Code)|_.Комментарии (comment)|_.Пустые строки (blank)| 
 |=.QML|=.23|=.2854|=.45|=.490| 
 |=.JavaScript|=.3|=.185|=.10|=.32| 
 |=.C++|=.2|=.196|=.12|=.44| 
 |=.C/C++ Headers|=.1|=.21|=.3|=.10| 
 |\5=.| 
 |=.*Всего*|=.29|=.3054|=.80|=.576| 

 h2. Временные метрики 

 |_.Участник|_.8|_.9|_.10|_.11|_.12|_.13|_.14|_.15|_.16|_.17|_.18|_.19|_.20|_.21|_.Всего|_.Среднее| 
 |=.Никита Артемов|=.|=.|=.9|=.11|=.8|=.12|=.5|=.10|=.9|=.|=.1|=.1,5|=.4|=.3|=.73,5|=.5,250| 
 |=.Никита Давыдовский|=.2|=.10|=.|=.17|=.24|=.|=.7,5|=.12|=.6,5|=.11,5|=.8,5|=.7,5|=.|=.5|=.111,5|=.7,964| 
 |=.Александр Дремин|=.|=.|=.|=.4|=.|=.|=.|=.|=.|=.|=.|=.|=.|=.|=.4|=.0,286| 
 |=.Александр Шитнев|=.|=.|=.18|=.19|=.9|=.4,5|=.6,5|=.2|=.2|=.5,5|=.6|=.7,5|=.4,5|=.|=.84,5|=.6,036| 
 |=.Алексей Филиппов|=.|=.|=.38|=.16|=.|=.6,5|=.7|=.4|=.|=.12,5|=.5,5|=.5,5|=.3|=.|=.98|=.7,000| 
 |=.Всего|=.2|=.10|=.65|=.67|=.17|=.47|=.26|=.28|=.18,5|=.29,5|=.21|=.22|=.11,5|=.8|=.372,5|=.26,607| 	


 * "Общее время затраченное на проект(10.05.2012)":/attachments/180/timelog.pdf 

 h2. Ссылки 

 * http://www.ibm.com/developerworks/ru/edu/0108novich/section2.html