Метрика програмного забезпечення (англ. software metric) — це міра, що дозволяє отримати числове значення деяких властивостей програмного забезпечення та його специфікацій. Кількісні методи оцінювання добре показали себе в інших сферах науки, а тому багато теоретиків та практиків в галузі інформаційних технологій, спробували перенести цей підхід в розробку програмного забезпечення. В загальному випадку застосування метрик дозволяє визначити складність розробленого проєкта, або проєкта, що перебуває у розробці, оцінити об'єм робіт, стилістику розроблюваного проєкту і зусилля, витрачені кожним розробником для реалізації того чи іншого рішення, однак метрики можуть служити лише рекомендаційними характеристиками.
Метрики
Набір метрик складається з:
- порядок зростання (мається на увазі аналіз алгоритмів, в термінах теорії складності обчислень)
- кількість рядків коду
- цикломатична складність
- ООП - метрики коду
- аналіз функціональних точок
- кількість помилок на рядок коду
- ступінь покриття коду тестуванням
- покриття вимог
- кількість класів та інтерфейсів
- метрики від Роберта Сесіль Мартіна. ([en])
- зв'язність (англ. coupling)
- пов'язаність (англ. cohesion)
- час завантаження програми
- час виконання програми
- розмір бінарних файлів
- та інше.
Критика
Потенційні недоліки підходу, на які націлена критика:
- Неетичність: стверджується, що неетично зводити оцінку роботи людини до декількох числових параметрів та за ними судити про продуктивності. Менеджер може назначити найталановитішого програміста на дуже важку частину роботи; це не значить, що розробка цієї частини займе найбільше часу та буде зроблено найбільше помилок, через складність роботи. Інший менеджер, що не знає про ці деталі, може вирішити, що програміст зробив свою роботу погано.
- Заміна «управління людьми» на «управління цифрами», які не враховують досвід програмістів та інші якості.
- Спотворення процесу. Процес розробки може бути перекрученим через те, що програмісти знають про метрики та намагаються оптимізувати ці показники, а не свою роботу. Наприклад, якщо кількість рядків вихідного коду є важливим показником, то програмісти зможуть писати неоптимальні рішення, які займають багато місця на екрані. Так, в середовищі програмістів є фразеологізм «індуський код».
- Неточність: нема метрик, які б були одночасно значущими та досить точними. Наприклад, кількість рядків коду — це просто кількість рядків, цей показник не демонструє складність рішення проблеми. Аналіз функціональних точок був розроблений з метою кращого вимірювання складності коду та специфікацій, але він використовує особисті оцінки оцінювача, тому різні люди отримують різні результати.
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Metrika programnogo zabezpechennya angl software metric ce mira sho dozvolyaye otrimati chislove znachennya deyakih vlastivostej programnogo zabezpechennya ta jogo specifikacij Kilkisni metodi ocinyuvannya dobre pokazali sebe v inshih sferah nauki a tomu bagato teoretikiv ta praktikiv v galuzi informacijnih tehnologij sprobuvali perenesti cej pidhid v rozrobku programnogo zabezpechennya V zagalnomu vipadku zastosuvannya metrik dozvolyaye viznachiti skladnist rozroblenogo proyekta abo proyekta sho perebuvaye u rozrobci ociniti ob yem robit stilistiku rozroblyuvanogo proyektu i zusillya vitracheni kozhnim rozrobnikom dlya realizaciyi togo chi inshogo rishennya odnak metriki mozhut sluzhiti lishe rekomendacijnimi harakteristikami MetrikiNabir metrik skladayetsya z kilkisni metriki kodu poryadok zrostannya mayetsya na uvazi analiz algoritmiv v terminah teoriyi skladnosti obchislen kilkist ryadkiv kodu ciklomatichna skladnist OOP metriki kodu analiz funkcionalnih tochok kilkist pomilok na ryadok kodu stupin pokrittya kodu testuvannyam pokrittya vimog kilkist klasiv ta interfejsiv metriki vid Roberta Sesil Martina en zv yaznist angl coupling pov yazanist angl cohesion chas zavantazhennya programi chas vikonannya programi rozmir binarnih fajliv ta inshe KritikaPotencijni nedoliki pidhodu na yaki nacilena kritika Neetichnist stverdzhuyetsya sho neetichno zvoditi ocinku roboti lyudini do dekilkoh chislovih parametriv ta za nimi suditi pro produktivnosti Menedzher mozhe naznachiti najtalanovitishogo programista na duzhe vazhku chastinu roboti ce ne znachit sho rozrobka ciyeyi chastini zajme najbilshe chasu ta bude zrobleno najbilshe pomilok cherez skladnist roboti Inshij menedzher sho ne znaye pro ci detali mozhe virishiti sho programist zrobiv svoyu robotu pogano Zamina upravlinnya lyudmi na upravlinnya ciframi yaki ne vrahovuyut dosvid programistiv ta inshi yakosti Spotvorennya procesu Proces rozrobki mozhe buti perekruchenim cherez te sho programisti znayut pro metriki ta namagayutsya optimizuvati ci pokazniki a ne svoyu robotu Napriklad yaksho kilkist ryadkiv vihidnogo kodu ye vazhlivim pokaznikom to programisti zmozhut pisati neoptimalni rishennya yaki zajmayut bagato miscya na ekrani Tak v seredovishi programistiv ye frazeologizm induskij kod Netochnist nema metrik yaki b buli odnochasno znachushimi ta dosit tochnimi Napriklad kilkist ryadkiv kodu ce prosto kilkist ryadkiv cej pokaznik ne demonstruye skladnist rishennya problemi Analiz funkcionalnih tochok buv rozroblenij z metoyu krashogo vimiryuvannya skladnosti kodu ta specifikacij ale vin vikoristovuye osobisti ocinki ocinyuvacha tomu rizni lyudi otrimuyut rizni rezultati Div takozhYakist programnogo zabezpechennya