Birlashtirilgan kodlar soni (UCC) - Unified Code Count (UCC) - Wikipedia

Birlashtirilgan kodlar soni
USC Unified CodeCount (UCC) v.201007 yil. Ishlab chiquvchidan ishlab chiqilayotgan GUI vositasi ko'rsatilgan (hozircha chiqarilmagan).
USC Unified CodeCount (UCC) v.201007 yil. Ishlab chiquvchidan ishlab chiqilayotgan GUI vositasi ko'rsatilgan (hozircha chiqarilmagan).
Asl muallif (lar)Vu Nguyen
Tuzuvchi (lar)USC CSSE
Dastlabki chiqarilish2009; 11 yil oldin (2009)
YozilganC ++
Operatsion tizimO'zaro faoliyat platforma
Mavjud:Ingliz tili
TuriFayllarni taqqoslash vositasi
LitsenziyaUSC-CSSE cheklangan jamoat litsenziyasi
Veb-saytquyosh botishi.usc.edu/ tadqiqot/ CODECOUNT/

The Birlashtirilgan kod hisoblagichi (UCC) - bu USC Tizimlar va dasturiy ta'minot muhandisligi markazi tomonidan ishlab chiqarilgan kod hisoblagichining to'liq dasturiy ta'minot liniyalari. Sifatida keng jamoatchilikka taqdim etiladi ochiq manba kodi va har qanday standart bilan tuzilishi mumkin ANSI C ++ kompilyator.

Kirish

Ning asosiy muammolaridan biri dasturiy ta'minotni taxmin qilish dasturiy mahsulotning muhim xususiyatlaridan biri bo'lgan o'lchamlarni belgilashdir. Bu nafaqat dasturiy ta'minot narxi va vaqtining asosiy ko'rsatkichidir, balki loyiha holati va dasturiy ta'minot sifatini o'lchash uchun boshqa ko'rsatkichlarni olish uchun asosiy birlikdir. Hajmi metrikasi xarajatlarni taxmin qilish modellarining aksariyati uchun muhim kirish sifatida ishlatiladi[1] kabi KOKOMO, Ingichka, SEER-SEM va Dasturiy ta'minot uchun PRICE TruePlanning. Kod manba satrlari yoki SLOC keng miqyosda qabul qilingan o'lchov o'lchovidir, umuman SLOCni nimani va qanday hisoblashni izchilligini ta'minlaydigan standartlarning etishmasligi mavjud.

Tizimlar va dasturiy ta'minot muhandisligi markazi (CSSE) da Janubiy Kaliforniya universiteti kodlarni hisoblash vositalarini ishlab chiqdi va chiqardi Unified CodeCount (UCC) deb nomlandi, bu mustaqil tashkilotlar bo'ylab kodlarning dasturiy ta'minot satrlarini hisoblash uchun ishlatiladigan qoidalarga muvofiqligini ta'minlaydi.

UCC blok diagrammasi.
UCC blok diagrammasi

Asosiy maqsad tarixiy ma'lumotlarni yig'ish va hisobot berish uchun dasturiy ta'minotni hisoblash va o'lchovlarni o'lchashni qo'llab-quvvatlashdir. U amalga oshiradi a kodlarni hisoblash doirasi Software Engineering Institute (SEI) tomonidan nashr etilgan va moslashtirilgan KOKOMO. Mantiqiy va jismoniy SLOC asboblar to'plami tomonidan yaratilgan ko'rsatkichlar qatoriga kiradi. SLOC kodning manba satrlariga ishora qiladi va bir qator qoidalar asosida dasturiy ta'minot hajmini o'lchash uchun ishlatiladigan birlikdir.[2] SLOC loyihaning harakatini baholash uchun muhim ahamiyatga ega, shuningdek unumdorlik va boshqa o'lchovlarni hisoblash uchun ishlatiladi. SLOC ning ikki turi mavjud: jismoniy va mantiqiy sloc. Jismoniy SLOC (PSLOC) - bitta jismoniy SLOC birinchi belgidan boshlangan va aravachaning qaytishi yoki shu satrdagi fayl oxiridagi marker bilan tugagan bitta satrga to'g'ri keladi. Bo'sh va sharh satrlari hisobga olinmaydi. Mantiqiy SLOC (LSLOC) - odatda nuqta-vergul (C / C ++, Java, C #) yoki vagonni qaytarish (VB, Assambleya) va boshqalar bilan tugaydigan "bayonotlarni" o'lchash uchun mo'ljallangan kod satrlari, mantiqiy SLOC formatga sezgir emas. va uslub konventsiyalari, ammo ular tilga bog'liq.

Unified CodeCount (UCC) farqlash qobiliyati foydalanuvchiga dasturiy mahsulotning manba kodining ikkita versiyasi o'rtasida hisoblash, taqqoslash va mantiqiy farqlarni to'plash imkonini beradi. Farqlash qobiliyati foydalanuvchilarga joriy versiyaning qo'shilgan / yangi, o'chirilgan, o'zgartirilgan va o'zgartirilmagan mantiqiy SLOC sonini oldingi versiyaga nisbatan hisoblash imkonini beradi.

Tarix

Ko'p turli xil kodlarni hisoblash vositalari 2000 yillarning boshlarida mavjud edi. Biroq, hisoblashning standart qoidalari va dasturiy ta'minotga kirishning etishmasligi sababli, xarajatlarni tahlil qilishni yaxshilash guruhi (NCAIG) Milliy razvedka idorasi dasturiy ta'minot xarajatlarini tahlil qilish uchun yangi kodlarni hisoblash vositasiga ehtiyojni aniqladi. Hech qanday sanoat tarafkashliklarini oldini olish uchun CodeCount vositasi[3] rahbarligida markazda ishlab chiqilgan Doktor Barri Boem, Merilee Wheaton va A. Vinsor Braun, IV & V tomonidan taqdim etilgan Aerospace Corporation. Ko'plab tashkilotlar, shu jumladan Northrop Grumman va Boeing kompaniyasi bir nechta kodlarni hisoblash vositalarini USC CSSE-ga taqdim etdi. Maqsad a rivojlantirish edi jamoat mulki bir nechta tillarga ishlov beradigan va katta va kichik dasturiy ta'minot tizimlari uchun izchil natijalarni beradigan kodlarni hisoblash vositasi.

Loyiha rejalari har semestrda ishlab chiqiladi va yo'naltirilgan tadqiqotlarni olib boruvchi USC aspirantlariga kodlarni hisoblash vositasini yangilash uchun loyihalar beriladi. Vu Nguyen, USC doktoranti, talabalar loyihalarining bir necha semestrlarini olib bordi. Barcha o'zgarishlar Aerocace Corporation IV & V jamoasi tomonidan tasdiqlanadi va loyihalar bo'yicha USC Instructor bilan yaqin hamkorlik qiladi. Beta-versiyalar sanoat filiallari tomonidan sinovdan o'tkaziladi va keyin ochiq manba kodi sifatida ommaga taqdim etiladi.

2006 yilda ikkita dasturiy ta'minot tizimini taqqoslaydigan farqlash vositasini yaratish bo'yicha ishlar olib borildi asosiy yo'nalishlar dasturiy ta'minotning ikkita versiyasi o'rtasidagi farqlarni aniqlash. UCC ning kashfiyotchisi bo'lgan CodeCount asboblar to'plami 2007 yilda chiqarilgan. Bu kabi tillarda yozilgan manba kodini o'lchash uchun bitta tilda yozilgan mustaqil dasturlar to'plami. COBOL, Assambleya, PL / 1, Paskal va Jovial.

Nguyen Unified CodeCount (UCC) tizim dizaynini a ramka mavjud kod hisoblagichlari va farqlash vositasi unga birlashtirildi. Birlashtirilgan hisoblash va farqlash qobiliyatlari, takroriy fayllarni aniqlash, qo'llab-quvvatlash kabi qo'shimcha funktsiyalar matn va CSV chiqish fayllari va boshqalar ham qo'shildi. 2009 yil oktyabr oyida COCOMO bo'yicha 24-Xalqaro forumda "Funktsionallikni farqlovchi yagona kodlarni hisoblash" mavzusidagi taqdimot taqdim etildi.[4]

UCC vositasi litsenziya bilan jamoatchilikka e'lon qilindi[5] foydalanuvchilarga koddan foydalanish va o'zgartirish imkoniyatini berish; agar modifikatsiyalar tarqatilishi kerak bo'lsa, foydalanuvchi USC CSSE-ga o'zgartirishlar nusxasini yuborishi kerak.

Ahamiyati

Unified CodeCount (UCC) amalga oshirilgan ish bilan bevosita bog'liq bo'lgan jismoniy va mantiqiy SLOC hisoblash uchun mavjud loyihalarni tahlil qilish uchun ishlatiladi. Keyinchalik to'plangan ma'lumotlar dasturiy ta'minot xarajatlarini baholash modellari tomonidan muvaffaqiyatli yakunlanish uchun shunga o'xshash loyihalar uchun sarflangan vaqt va xarajatlarni aniq baholash uchun ishlatilishi mumkin. Bozorda ko'plab kodlarni hisoblash vositalari mavjud, ammo ularning aksariyati turli xil kamchiliklarga ega:

  • Ba'zilari mulkiy, boshqalari jamoat mulki
  • Mos kelmaydigan yoki nashr etilmagan hisoblash qoidalari
  • Ta'mirlash mumkin emas
  • Ko'pgina vositalar bir-biriga mos kelmaydigan natijalarni hisoblash uchun turli xil qoidalarga ega

CSSEga NCAIG tomonidan noaniq, sohada obro'li muassasa tomonidan ishlab chiqilgan va quyidagi xususiyatlarni taqdim etadigan kodlarni hisoblash echimini yaratish uchun murojaat qilingan:

  • Dastur kodlarini hisoblash
  • Doimiy ravishda
  • Hujjatlangan standartlar bilan
  • Yangi tillarni osongina qo'shish qobiliyati
  • Qo'llab-quvvatlash va texnik xizmat ko'rsatish
  • Dasturiy ta'minotning turli xil asoslarini solishtiring
  • Qo'shishni, o'zgartirishni, o'chirishni aniqlang
  • Ikki nusxadagi fayllarni aniqlang
  • Murakkablikni aniqlang
  • Platforma mustaqil
  • Buyruqlar satri interfeysi
  • Rejimlar: Faqat kodlarni hisoblash yoki hisoblash va farqlash
  • Bitta o'tish paytida bir nechta fayl va tillarni sanaydi
  • Hisobotlarni chiqarish
  • Sog'lom ishlov berish
  • Ishlashni yaxshilash variantlari
  • Xato jurnali

UCC ushbu sa'y-harakatlarning natijasidir va keng ommaga ochiq manba sifatida taqdim etiladi.

Xususiyatlari

Differentsial funktsional imkoniyatga ega bo'lgan yagona kodlash vositasi (UCC) - bu manba kodini o'lchamlarini yig'ishni avtomatlashtirish va ma'lumotni o'zgartirish uchun mo'ljallangan vositalar to'plami. UCC bir nechta dasturlash tillarida ishlaydi va ikkita mumkin bo'lgan kod kodlari (SLOC) ta'riflariga e'tiborni qaratadi, jismoniy va / yoki mantiqiy. Differentsial funksiyadan ikkitasini taqqoslash uchun foydalanish mumkin asosiy yo'nalishlar dasturiy ta'minot tizimlari va o'zgarish o'lchovlarini aniqlash: SLOC qo'shish, o'chirish, o'zgartirish va o'zgartirishsiz hisoblash.

UCC asboblar to'plami dasturiy ta'minot muhandisligi bo'yicha USC Center-ning mualliflik huquqiga ega, ammo cheklangan jamoat litsenziyasi bilan taqdim etiladi, bu esa har kimga kodni o'zgartirishi mumkin. Ammo, agar ular ushbu o'zgartirilgan kodni boshqalarga tarqatishsa, shaxs yoki agentlik nusxasini USC-ga qaytarishi kerak, shunda asboblar to'plami barchaning manfaati uchun yaxshilanadi.

CodeCount-dan foydalanish

  • Hisoblash imkoniyatlari - UCC foydalanuvchilarga quyidagilarni tahlil qilish va ishlab chiqarish orqali manba dasturining boshlang'ich hajmi haqidagi ma'lumotlarni o'lchashga imkon beradi:
a) Mantiqiy SLOC
b) jismoniy SLOC
c) izoh
d) bajariladigan, ma'lumotlar deklaratsiyasi
e) SLOC kompilyatori bo'yicha ko'rsatma
f) kalit so'zlar
  • Turli xil imkoniyatlar - UCC foydalanuvchilarga manba dasturlarining ikkita asosiy yo'nalishi o'rtasidagi farqlarni solishtirish va o'lchash imkonini beradi. Ushbu farqlar qo'shilgan / yangi, o'chirilgan, o'zgartirilgan va o'zgartirilmagan mantiqiy SLOC soni bo'yicha o'lchanadi. Ushbu farqlash natijalari oddiy matnli .txt yoki .csv fayllarida saqlanishi mumkin. Odatiy qiymati .csv, lekin .txt -ascii tugmachasi yordamida aniqlanishi mumkin.
  • Kataloglarni hisoblash va farqlash - UCC foydalanuvchilarga fayllar joylashgan kataloglarni ko'rsatish orqali manba fayllarini hisoblash yoki taqqoslash imkonini beradi.
  • Har xil dasturlash tillarini qo'llab-quvvatlash - hisoblash va farqlash qobiliyatlari yozilgan manba kodini qabul qiladi C / C ++, C #, Java, SQL, Ada, Perl, ASP.NET, JSP, CSS, HTML, XML, JavaScript, VB, Php, VbScript, Bosh, C Shell skript, ColdFusion, Fortran, Midas, NeXtMidas, Paskal, Yoqut, X-Midas va Python.
  • Buyruq argumentlari - asbob foydalanuvchi sozlamalarini buyruq argumentlari orqali qabul qiladi. UCC - bu buyruq satri dastur va u dastur konsolining rejimi ostida tuziladi.
  • Replikatsiya - har bir boshlang'ich satr uchun ikkita fayl bir xil tarkibga ega bo'lsa yoki ularning farqi -tdup buyruq satri kaliti orqali berilgan chegaradan kichik bo'lsa, takroriy hisoblanadi. Ikki fayl, ularning fayl nomlari turlicha bo'lishiga qaramay, nusxalari sifatida aniqlanishi mumkin. Ko'paytirishni qayta ishlash paytida sharhlar va bo'sh satrlar hisobga olinmaydi.
  • Matching - farqlashda, A satridagi fayllar B bazadagi fayllarga mos keladi. Ikki fayl, qaysi kataloglarga tegishli bo'lishidan qat'i nazar, bir xil nomga ega bo'lsa, mos keladi. Qolgan fayllar eng mos algoritm yordamida moslashtiriladi.
  • Murakkablikni hisoblash - UCC barcha manba kodlari fayllari uchun murakkablik sonini ishlab chiqaradi. Murakkablikni hisoblashda matematik, trig, logarifm funktsiyalari, hisob-kitoblar, shartli shartlar, mantiqiy, dastlabki protsessorlar, topshiriqlar, ko'rsatgichlar va siklomatik murakkablik. Hisoblashda murakkablik natijalari "outfile_cplx.csv" fayliga, farqlashda esa natijalar "Baseline-A-outfile_cplx.csv" va "Baseline-B- outfile_cplx.csv" fayllariga saqlanadi.
  • Fayl kengaytmalari. Asbob fayl kengaytmasidan har bir fayl uchun qaysi kod hisoblagichini ishlatishini aniqlaydi.

CodeCount-ning funktsionalligi

  • Ijro tezligi:
CodeCount C / C ++ da yozilgan bo'lib, sharhlar va fizik / mantiqiy satrlarni aniqlash uchun nisbatan sodda algoritmlardan foydalanadi. Sinov UCC ni haddan tashqari holatlardan tashqari tezkor ravishda qabul qilinishini ko'rsatdi. Agar kerak bo'lsa, qayta ishlashning ayrim turlarini inhibe qilish uchun bir qator kalitlar mavjud. Foydalanuvchilar tezroq bajarish uchun optimallashtirish kalitlari yordamida kompilyatsiya qilishlari mumkin; ishlatilayotgan kompilyatorning foydalanuvchi qo'llanmasiga murojaat qiling.
  • Ishonchlilik va to'g'rilik
CodeCount laboratoriyada keng ko'lamda sinovdan o'tgan va global miqyosda qo'llanilmoqda. Qusurlar haqida xabar berish imkoniyati mavjud va bildirilgan har qanday nuqsonlar tezda tuzatiladi. Foydalanuvchilarga funktsiyalarni qo'shish yoki nuqsonlarni to'g'irlash va UCC menejerlarini o'zgartirish kodini taqdim etish bilan birga xabardor qilish odatiy hol emas.
  • Hujjatlar
UCC ochiq manbali tarqatish tarkibiga quyidagilar kiradi Izohlarni chiqarish, Foydalanuvchi uchun qo'llanma va Kodlarni hisoblash standartlari til taymerlari uchun. Manba kodida fayl sarlavhalari va qator ichidagi izohlar mavjud. UCC dasturiy ta'minotini ishlab chiqish rejasi, dasturiy ta'minotga talablarning spetsifikatsiyasi va dasturiy ta'minotni sinovdan o'tkazish rejasi so'rov bo'yicha mavjud.
  • Umumiy texnik xizmat ko'rsatish qulayligi
UCC a monolitik, ob'ektga yo'naltirilgan unga xizmat ko'rsatishni soddalashtirish uchun mo'ljallangan asboblar to'plami.
  • Kengaytma qulayligi
"CSCI" CodeCount lazzati kengayishni osonlashtiradi. Foydalanuvchilar o'zlari boshqa til hisoblagichini osongina qo'shishlari mumkin. Foydalanuvchilar, shuningdek, qaysi fayl kengaytmalari ma'lum bir hisoblagichni tanlashini belgilashlari mumkin.
  • Moslik
CodeCount mos keladigan tarzda ishlab chiqilgan KOKOMO taxmin mexanizmi talab qilinadi yoki kerakli.
  • Portativlik
CodeCount turli xil operatsion tizimlar va apparat platformalarida sinovdan o'tgan va ANSI standart C ++ kompilyatoriga ega bo'lgan har qanday muhit uchun ko'chma bo'lishi kerak.
  • Manba kodining mavjudligi
CodeCount uchun manba kodi yuklab olinadigan zip fayli sifatida mavjud.
  • Litsenziyalash
CodeCount uchun manba kodi USC-CSE Limited Public License litsenziyasi shartlarida taqdim etiladi, bu har kimga kodga o'zgartirishlar kiritish imkoniyatini beradi. Ammo, agar ular ushbu o'zgartirilgan kodni boshqalarga tarqatishsa, shaxs yoki agentlik nusxasini USC-ga qaytarishi kerak, shunda asboblar to'plami barchaning manfaati uchun yaxshilanadi. Litsenziyaning to'liq matnini ko'rish mumkin UCC litsenziyasi.

Til uchun standartlar

Unified CodeCount (UCC) uchun asosiy maqsad izchil va takrorlanadigan SLOC o'lchovini aniqlaydigan hisoblash usullarini taqdim etishdir. 20 dan ortiq SLOC hisoblash dasturlari mavjud, ularning har biri har xil jismoniy va mantiqiy SLOC hisobini ishlab chiqaradi, bugungi bozorda mavjud bo'lgan 75 ta sotuvga mo'ljallangan dasturiy ta'minot xarajatlarini baholash vositalari mavjud. Turli xil vositalardan kelib chiqadigan xarajatlarning farqlari kodning hajmini baholashda, ayniqsa katta hajmdagi loyihalar uchun amaldagi texnikaning kamchiliklarini ko'rsatadi,[6] bu erda xarajatlarni baholash oqilona aniq bashorat qilish uchun avtomatik protseduralarga bog'liq. Bu izchil natijalarni beradigan universal SLOC hisoblash standarti zarurligiga olib keldi.

SLOC xarajatlarni hisoblash texnikasi uchun asosiy omil bo'lib xizmat qiladi. Garchi u dasturiy ta'minot xarajatlarini baholashda yagona ishtirokchi bo'lmasa-da, dasturiy ta'minotni ishlab chiqish davomida ishlab chiqarilgan bir qator ko'rsatkichlar uchun asos yaratadi. SLOC hisoblash protsedurasi avtomatlashtirilishi mumkin, bu ko'rsatkichlarni ishlab chiqarish uchun kam vaqt va kuch sarflashni talab qiladi. To'g'ri belgilangan qoidalar to'plami SLOC hisoblash choralariga nimalarni kiritish va chiqarib tashlashni aniqlaydi. SLOC uchun eng ko'p qabul qilingan ikkita chora - bu jismoniy va mantiqiy kod satrlari soni.

UCC-da mantiqiy SLOC kod blokidagi manba so'zlarining umumiy sonini o'lchaydi. Uch turdagi bayonotlar: bajariladigan, deklaratsiya va kompilyator ko'rsatmalari. Amalga oshiriladigan bayonotlar oxir-oqibat tarjima qilinadi mashina kodi sabab bo'lmoq ish vaqti harakatlar, deklaratsiya va kompilyator ko'rsatmalariga ta'sir qiladi kompilyatorning harakatlar.

UCC manba bayonotlarini manba kodlari darajasida mustaqil birliklar sifatida ko'rib chiqadi, bu erda dasturchi bayonot va uning pastki bayonotlarini to'liq tuzadi. UCC manba kodi tuzilishini taxmin qiladi; aks holda natijalar ishonchli emas. Mantiqiy SLOCni hisoblash uchun har bir bayonotning oxirini belgilash katta muammo edi. Vertikal varianti jozibali tuyulishi mumkin, ammo hamma mashhur tillarda nuqta-vergul (masalan, SQL, JavaScript, UNIX skript tillari va boshqalar) ishlatilmaydi. Karnegi Mellon Universitetidagi Dasturiy ta'minot muhandisligi instituti (SEI) va COCOMO II SLOC "dasturning qaysi elementlaridan qanchasini" hisoblash usulini aniqladilar. 1 va 2-jadval SLOC hisoblash qoidalarining qisqacha mazmunini aks ettiradi[7] C / C ++, Java va C # dasturlash tillari uchun mantiqiy kod satrlari uchun. UCC kodlarini hisoblash qoidalari har bir til uchun ochiq manba versiyasi bilan tarqatiladi.

O'lchov bo'limiAfzallik tartibiJismoniy SLOC
Bajariladigan qatorlar
Bayonotlar1Har bir satrda bittadan
Bajarilmaydigan qatorlar
Deklaratsiya (Ma'lumotlar) satrlari2Har bir satrda bittadan
Tuzuvchi direktivalari3Har bir satrda bittadan
Jadval 1. Jismoniy SLOC hisoblash qoidalari


TuzilishiAfzallik tartibiMantiqiy SLOC
TANLASH BAYDONLARI:1Har bir hodisa uchun bir marta hisoblang.
agar, bo'lmasa, agar, bo'lmasa, "?" operator, sinab ko'ring, ushlang, almashtiringIchki bayonotlar xuddi shunday tarzda hisoblanadi.
ITERASYON BAYoNLARI:2Har bir hodisa uchun bir marta hisoblang.
Uchun, while, do.. while"For" konstruktsiyasi ichidagi initsializatsiya, shart va o'sish hisobga olinmaydi. ya'ni
uchun (i = 0; i <5; i ++)…

Bundan tashqari, "for" konstruktsiyasidagi har qanday ixtiyoriy iboralar ham hisobga olinmaydi, masalan.

uchun (i = 0, j = 5; i <5, j> 0; i ++, j -)…

"Do.. while" tarkibida "while" dan keyin takrorlanadigan takrorlash bayonotlari va vergul bilan qo'shib qo'yilgan qavslar {…} hisoblanmaydi.

O'tish haqidagi bayonotlar:3Har bir hodisa uchun bir marta hisoblang.
Qaytish, sindirish, ketish, chiqish, davom etish, otish"Goto" so'zlari bilan ishlatiladigan yorliqlar hisobga olinmaydi.
BOShQA BELGILAR:4Har bir hodisa uchun bir marta hisoblang.
Funktsiyani chaqirish, tayinlash, bo'sh bayonotBo'sh bayonotlar dastur mantig'iga ta'sir qilmaydi va odatda joyni to'ldiruvchi vazifasini bajaradi yoki vaqtni aniqlash maqsadida CPU iste'mol qiladi.
Umumiy bayonotlar:5Har bir hodisa uchun bir marta hisoblang.
Vertikal bilan tugaydigan bayonotlar"For" iborasidagi yoki "do.. while" so'zining sharh qismida ko'rsatilgan nuqta-veranlar hisobga olinmaydi.
BLOCK DELIMITERS, BRACESES6Qavslar juftiga bir marta hisoblang {..},
yopilish qavsidan keyin nuqta-vergul, ya'ni ya'ni.
 };.
Tanlash va takrorlash so'zlari bilan ishlatiladigan qavslar hisoblanmaydi. Funktsiya ta'rifi bir marta hisoblanadi, chunki undan keyin qavslar to'plami mavjud.
KOMPILER YO'NALISHI7Har bir hodisa uchun bir marta hisoblang.
Ma'lumotlar deklaratsiyasi8Har bir hodisa uchun bir marta hisoblang.
Funktsiya prototiplari, o'zgaruvchan deklaratsiyalar, typedef bayonotlar. Kabi kalit so'zlar tuzilmaviy, sinf hisoblamang.
Jadval 2. C / C ++, Java va C # uchun SLOC hisoblashning mantiqiy qoidalari.

Dasturiy ta'minot dizayni

Unified CodeCount (UCC) har bir til uchun yaratilgan hisoblash spetsifikatsiyasi hujjati asosida LSLOC satrlarini fayldan olish orqali hisoblashni amalga oshiradi; ushbu spetsifikatsiya standart sifatida taklif qilingan. Farqlash xususiyati LSLOC satrlarini umumiy dvigatel yordamida hisoblash jarayonida olingan ikkita fayldan taqqoslaydi.

UCC Architecture

UCC ning asosiy arxitekturasini quyidagi tarkibiy qismlarning ierarxik tuzilishi sifatida ko'rish mumkin:

UCC Architecture
UCC ning boshlang'ich sinflari.

1. Asosiy mavzu

MainObject - bu buyruq satrini ajratishni amalga oshiradigan, fayllar ro'yxatini buyruq parametrlaridan ajratib oladigan va keyin har bir faylni hisoblash yoki farqlash uchun xotiraga o'qiydigan yuqori darajadagi sinf. MainObject o'rnatilgan tillarni qayta ishlash uchun CodeCounters-ni chaqiradi. Hisoblash funktsiyasining natijasi takrorlash va hisoblash / murakkablik natijalari uchun quyidagi fayllar to'plamini (.txt) beradi:

_outfile.txt, bu ning manba fayllarini hisoblash natijalarini aks ettiradigan fayl. - manba fayllari tilining nomi, masalan, C / C ++ fayllari uchun C_CPP va Java fayllari uchun Java.
outfile_cplx.txt, bu manba fayli uchun murakkablik natijalarini ko'rsatadi.
Dublikatlar - _outfile.txt, tili uchun takrorlanadigan fayllar ro'yxatini ko'rsatadi.
Duplicates-outfile_cplx.txt, takrorlangan fayllar uchun murakkablik natijalarini o'z ichiga oladi.
DuplicatePairs.txt, bu manba fayli va uning takroriy fayli o'rtasidagi mos keluvchi matnli fayl.

2. DiffTool

DiffTool - bu buyruq satri parametrlarini tahlil qiladigan va har bir boshlang'ich satr uchun fayllar ro'yxatini qayta ishlaydigan MainObject lotinidir. DiffTool klassi quyidagi fayllar to'plamini (.txt, .csv) bazaviy satrlar bo'yicha taqdim etadi:

Boshlang'ich- - _outfile.txt, boshlang'ich A va boshlang'ich B uchun manba fayllari natijalarini hisoblaydi.
Boshlang'ich- - _cplx.txt, A va B darajalari uchun murakkablik natijalari.
Uyg'un juftliklar, A va B boshlang'ich chiziqlaridagi fayllar o'rtasida mos keladigan matnli fayl.
outfile_diff_results.txt, Oddiy matn formatida asosiy farqlash natijalari.
outfile_diff_results.csv, MS Excel yordamida ochiladigan .csv formatidagi asosiy farq natijalari.

DiffTool "CmpMngr" sinfining yordami bilan bazaviy ko'rsatkichlarni taqqoslashni amalga oshiradi.

3. CmpMngr

CmpMngr farqlarni LSLOC ning ikkita ro'yxatini taqqoslash yo'li bilan hisoblab chiqadi va ikkala ro'yxat tarkibiga qo'shilgan, o'chirilgan, o'zgartirilgan va o'zgartirilmagan LSLOC jami hisoblash orqali o'zgarishlarni aniqlaydi.

4. CCodeCounter

CCodeCounter oldindan hisoblash uchun ishlatiladi, bu erda quyidagi operatsiyalarni bajaradi:

• bo'sh satrlarni va sharhlarni hisoblaydi,
• Harf satrlarini filtrlaydi,
• kalit so'zlar, operatorlar va boshqalarning murakkabligini hisoblaydi
• SLOC kompilyatori direktivasini sanaydi (CountDirectiveSLOC usuli yordamida).
• Tilga xos ishlov berishni amalga oshiradi (kichik sinflar yaratadi).

Kelajakdagi yaxshilanishlar va nashr

UCC uchun kelgusi rejalar murakkablik ko'rsatkichlarini hisoblashni yaxshilash, mavjud kod hisoblagichlarini qo'llab-quvvatlash va qo'shimcha tillar uchun yangi hisoblagichlarni qo'shish, yaxshiroq hisobot berish va ish faoliyatini yaxshilashni o'z ichiga oladi. Matn, yig'ish, Cobol, Jovial, Matlab va Paskal hisoblagichlari ishlab chiqilmoqda. Shuningdek, joriy buyruq satri interfeysi o'rniga ishlatilishi mumkin bo'lgan foydalanuvchi grafik interfeysi ishlab chiqarilmoqda.

Tizim talablari

A. Uskuna

B. Dasturiy ta'minot operatsion tizimlari

C. Qo'llab-quvvatlanadigan kompilyatorlar

Shuningdek qarang

Adabiyotlar

  1. ^ B. Boem; C. Abts; S. Chulani. "Dasturiy ta'minotni ishlab chiqish xarajatlarini baholash yondashuvlari: So'rovnoma". Dasturiy injiniring yilnomalari, 2000 yil.; B. Boem; E. Horovits; R. Madachi; D. Rifer; B. K. Klark; B. Steece; A. V. Braun; S. Chulani va C. Abts. "COCOMO II bilan dasturiy ta'minot narxini baholash".
  2. ^ Dasturiy ta'minot muhandisligi instituti. "Dasturiy ta'minot hajmini o'lchash: manba bayonotlarini hisoblash uchun asos" (PDF). Texnik hisobot CMU / SEI-92-TR-20 ESC-TR-92-020, 1992 y.
  3. ^ "CodeCount, USC tizimlar va dasturiy ta'minot muhandisligi markazi". Csse.usc.edu.
  4. ^ "CSSE - Bosh sahifa". Csse.usc.edu. Olingan 28 dekabr 2018.
  5. ^ "Arxivlangan nusxa". Arxivlandi asl nusxasi 2011-03-06 da. Olingan 2010-11-30.CS1 maint: nom sifatida arxivlangan nusxa (havola)
  6. ^ G. E. Kalb. "Kod, chalkashliklar, xulosalar va tavsiyalar qatorlarini hisoblash" (PDF). 1990 yilgi 3 yillik yillik REVIC foydalanuvchi guruh konferentsiyasiga brifing.
  7. ^ "SLOC hisoblash standarti" (PDF). Sunset.usc.edu. Olingan 28 dekabr 2018.

Tashqi havolalar