- •1. Що включає в себе первинний статистичний аналіз?
- •2. Як побудувати гістограму?
- •3. Що таке гістограма?
- •Як перевірити точність отриманих даних?
- •Які статистичні характеристики використовуються для визначення відхилень?
- •Що таке математичне сподівання?
- •Що таке дисперсія?
- •Що таке середнє квадратичне відхилення?
- •9. Для чого використовується коефіцієнт асиметрії?
- •Що значить коефіцієнт ексцесу?
- •Як визначити, чи існує нормальний закон розподілу?
- •12. Що таке закон розподілу?
- •13. Які види гістограм ви знаєте?
- •14. Що таке коефіцієнт кореляції?
- •15. Які властивості коефіцієнта кореляції?
- •16. Які є види коефіціентів кореляції? Чим вони відрізняються?
- •17.Як розраховується парна рангова кореляція?
- •18. Як визначаэться, чи існує залежність між метриками?
- •1 9. Як можна розрахувати коефіцієнт кореляції?
- •20. Що таке регресія?
- •21. Для чого використовується регресія?
- •22. Які є передумови визначення регресії?
- •23. Які є методи побудови регресії?
- •24. Як побудувати регресію?
- •25. Як визначити функцію регресії?
- •26. Які визнаєте засоби автоматизації обробки даних?
- •27. Які визнаєте засоби автоматизації аналізу даних?
- •28. Що таке caesEзасоби?
- •29. Що таке експертне оцінювання?
- •30. Які ви знаєте властивості програмного забезпечення?
- •31. Як і коли може використовуватися експертне оцінювання програмного забезпечення?
- •32. Що таке рефакторинг?
- •33. Які дані можна отримати після проведення вимірювань в Visual Studio?
- •35. Які дані можна отримати після проведення вимірювань в iPlasma?
- •37. При рефакторингу використовуються наступні метрики пз
- •40. Які метрики краще використовувати при проведенні рефакторинга? Чому?
- •41. Як можна використати метрики при розробці нового пз?
- •42. Які метрики краще використовувати і для яких цілей при розробці нового пз?
35. Які дані можна отримати після проведення вимірювань в iPlasma?
Після проведення вимірювань даних в iplasma можно отримати такі дані:
NDD – метрика, що вказує на кількість прямих нащадків
NOP – кількість пакетів
NOC – кількість класів
NOM – кількість методів
LOC – кількість рядків коду
HIT - висота дерева наслідування
CYCLO – цикломатична складність - Число лінійно-незалижних шляхів через операцію
CALL – кількість викликів функцій
FOUT – кількість нестилізованих рядків - показує неформатовані рядкі.
ТСС – метрика, що вказує щільність згуртованості класу - Відносн а кількість пар методів класу, що отримують спільний доступ хоча б до одного атрибуту вимірюваного класу
CDІSP – метрика, що вказує на дисперсійний зв’язок
Істотним завданням в процесі аналізу програмного забезпечення є побудова моделі системи. Мета будівництва моделі - витягування з вихідного коду інформації, яка доречна з точки зору специфічної мети. Для цього використовується відкрита бібліотека для аналізу Recoder (для Java) та McC (Model Capture for C++).
36. Як використати дані вимірювань в iPlasma? Які висновки можна зробити? Використовуючи показники метрик в даній програмі ми можемо розрахувати середнє, низьке та максимальне значення метрик. Також кожна метрика фарбується окремим кольором що дає змогу нам побачити рівень показника. Показник може буди поганим та добрим в залежності від кольору. Також використовуючи дані показники метрик ми можемо побудувати спеціальні моделі та графіки розрахувати потрібні нам дані такі як(матиматичне сподівання, дисперсію, кореляцію тощо).
37. При рефакторингу використовуються наступні метрики пз
1. CYCLO – цикломатична складність. За допомогою цієї метрики, ми можемо побачити, чи потребує рефакторингу та частина коду, яка містить цикли
2. Maintainability index – індекс підтримки. Ця метрика показує нам, чи є програмний код легкий і зрозумілий для підтримки сторонньою групою розробників
3. NOAV - Кількість використаних змінних (Number of Accessed Variables) – за допомогою цієї метрики ми можемо дізнатися, скільки змінних було використано у методі і чи можливо зменшити їх кількість для зменшення використання пам’яті
4. AMW - Середня вага метода (Average Method Weight) – за допомогою цієї метрики ми можемо дізнатися, наскільки складний клас для розуміння іншим програмістом.
40. Які метрики краще використовувати при проведенні рефакторинга? Чому?
Maintainability Index
Це, на мій погляд, основна метрика - свого роду KPI для оцінки коду з точки зору підтримки. Решта метрики, на мою думку, варто використовувати просто як підказку при більш детальному аналізі проблем, локалізованих за допомогою Maintainability Index. Або ж, якщо з Maintainability Index все гаразд, а хочеться покращувати код далі, має сенс звернути увагу на метрики, які не є основою для його обчислення (Class Coupling + Depth of Inheritance).
Cyclomatic Complexity
Цикломатическая складність коду - це (спрощено) кількість різних непересічних маршрутів виконання коду. Наприклад, у методу без умовних операторів цикломатическая складність 1, а у методу з одним умовним оператором - 2. Детальніше про це можна прочитати за посиланням вище або в російськомовній вікіпедії.
Як неважко здогадатися, велике значення цикломатическая складності призводить до того, що метод складніше повністю покрити юніт-тестами.
Lines of Code (LOC)
Приблизно показує кількість рядків коду.
Важливе зауваження: рядки коду вважаються в IL. З цієї причини ви можете бути трохи здивовані, побачивши кількість рядків коду в невеликому LINQ-запиті.
Depth of Inheritance
Глибина спадкування поняття досить очевидне. Для класу успадкованого тільки від Object глибина спадкування дорівнює 1 і так далі. Для методів ця метрика не вважається.
Class Coupling
Кількість всіх можливих залежностей від інших класів. Кожен клас, природно, вважається один раз. Думаю не має сенсу пояснювати, що сильна зв'язність ні до чого доброго не приводить - незручно повторно використовувати код, писати юніт-тести.
