Podejscie b) jest "metodologicznie" poprawne, tylko ze mediana czasami
"ukrywa" istotne wlasnosci rozkladu. Np. dla 5 klas o nastepujacych
wartosciach CBO {1, 1, 1, 10, 10} mediana wynosi 1.
Podejscie c) wydaje sie niesluszne, poniewaz w implementacji bardziej
elastycznej, przewidujacej przyszle rozszerzenia bedzie zwykle wiecej
klas (Po sumowaniu CBO wyjdzie duze, choc poszczegolne klasy moga miec
CBO niski). Poza tym tak samo jak w podejsciu b) nic nie wiemy o
rozrzucie CBO.
W podejsciu a) CBO klas "malutkich" i "duzych" w rownym stopniu wplywa
na srednia. Wydaje mi sie, ze lepszym rozwiazaniem byloby obliczenie
sredniej i odchylenia wazonego. Jako wagi mozna by przyjac np. LOCC
(Lines of Class Code) poszczegolnych klas.
Moze spotkaliscie sie z badaniami naukowymi w tym kierunku, albo macie
wlasne doswiadczenie?
Pozdrawiam,
Adam
>Problem wyglada nastepujaco. Na podstawie tej samej specyfikacji wymagan
>zrealizowano dwie implementacje. Chce porownac te implementacje pod
[..]
>
>Moze spotkaliscie sie z badaniami naukowymi w tym kierunku, albo macie
>wlasne doswiadczenie?
>
>Pozdrawiam,
>Adam
Tak,. Mam wlasne doswiadczenie, mianowicie takie ze tego rodzaju
dialalnosc to bicie piany i dowod na to ze nie ma sie prawdziwych
problemow, a firma zatrudnia za duzo ludzi i powinna troche ich
wywalic.
A.L.
U nas jeszcze kaligrafię sprawdzamy. :)
Nie widzę sensu w działaniach, o których piszesz... ale może byś
potrafił
to mi przybliżyć?
Pozdrawiam,
Wit
Ale ja nie firma. Ja sie nad tym zastanawiam na poziomie "research"
(patrz odpowiedz nizej).
Konkretnie to chce porownac pod wzgledem metryk przykladowe
implementacje GoF design patterns
(http://hannemann.pbworks.com/Design-Patterns) w wersji obiektowej i
aspektowej. A tutaj narzedzie, ktore wylicza podstawowe metryki
(uwzgledniajac konstrukcje aspektowe): http://aopmetrics.tigris.org.
Ok, ja zrozumiałem co chcesz zrobić. Zastanawiam się po co komu takie
statystyki,
oprócz powodów, które wskazał A.L. (są ludzie, którzy coś muszą robić,
więc robią
nic). Możesz wytłumaczyć?
Pozdrawiam,
Wit
Kiczales i Hannemann pisza, ze za pomoca paradygmatu aspektowego udalo
im sie poprawic wiekszosc implementacji GoF. Jak dla mnie implementacje
w wersji aspektowej sa w wiekszosci gorsze. Co prawda separacja
zagadnien na poziomie fizycznym jest lepsza, ale "ogolny coupling"
wydaje sie byc wiekszy. Chcialem zobaczyc co w tym temacie powiedza metryki.
>A.L. napisaďż˝(a):
No to proponuje zeby sei zajal jakmis "recearch" ktory ma jakis sens
A.L.
>Wit Jakuczun napisaďż˝(a):
>> Ok, ja zrozumia�em co chcesz zrobi�. Zastanawiam si� po co komu takie
>> statystyki,
>> opr�cz powod�w, kt�re wskaza� A.L. (s� ludzie, kt�rzy co� musz� robi�,
>> wi�c robi�
>> nic). Mo�esz wyt�umaczy�?
>>
>
>Kiczales i Hannemann pisza,
Sorry, oni przewaznie pieprza.
A.L.
> On 27 Sie, 15:32, Adam Przybylek <adamp...@vp.pl> wrote:
>> Wit Jakuczun napisaďż˝(a):
>>
>>> U nas jeszcze kaligrafiďż˝ sprawdzamy. :)
>>> Nie widz� sensu w dzia�aniach, o kt�rych piszesz... ale mo�e by�
>>> potrafiďż˝
>>> to mi przybli�y�?
>>
>> Konkretnie to chce porownac pod wzgledem metryk przykladowe
>> implementacje GoF design patterns
>> (http://hannemann.pbworks.com/Design-Patterns) w wersji obiektowej i
>> aspektowej. A tutaj narzedzie, ktore wylicza podstawowe metryki
>> (uwzgledniajac konstrukcje aspektowe):http://aopmetrics.tigris.org.
>
> Ok, ja zrozumia�em co chcesz zrobi�. Zastanawiam si� po co komu takie
> statystyki,
> opr�cz powod�w, kt�re wskaza� A.L. (s� ludzie, kt�rzy co� musz� robi�,
> wi�c robi�
> nic). Mo�esz wyt�umaczy�?
Celem metryk mo�e by� np:
- niezale�ne por�wnanie ze sob� np. dw�ch projekt�w,
- okre�lenie jakie potencjalne problemy podczas rozwoju projektu mog�
nast�pi�,
- badanie (podczas dzia�ania Continuous Integration), czy wprowadzone
zmiany nie psujďż˝ struktury projektu,
- badanie zale�no�ci pomi�dzy jednostkami,
- etc.
My�l�, �e s� one w znacznym stopniu podobne do wska�nik�w gie�dowych,
marker�w krwi, itp. itd - zale�� od interpretacji.
Nastomiast co do usuwania skrajnych warto�ci: je�li jaka� metryka ma
nieprawid�ow� warto��, to prawdopodobnie co� jest nie tak z badanym
zestawem danych (zbyt du�a ilo�� metod na klas�, linii kodu w metodzie,
itp.) i usuwanie tych mniej przyjemnych chyba nie jest najlepszym
rozwi�zaniem ;-) Najlepiej by�oby doprowadzi� zestaw do takiego stanu, aby
metryki spe�nia�.
pozdrawiam,
--
http://moznalepiej.pl - ta�sze ksi��ki
http://lepszalokata.pl - optymalizacja lokat
Przepraszam, ale to jest nonsens totalny.. ..
A.L.
Tak na marginesie, przypominaja mi sie czasy gdy teorie informacji
probowano uzywac do oceny dziel literackich. To w tamtych czasach
"badania naukowe" pokazalu ze najlepsy utwor literacki to taki gdzie
zdanie ma nie wiecej niz iles tam slow, paragraf nie wiecej niz iles
tam zdan, a rozdziel nie wiecej iles tam paragrafow. Stanislaw Lem
bezlitosnie wyszydzal te idiotyzmy
"Metryki" programow maja wiecej ma taki sam sens.
Niedawno mialem dyskusje z jednym zwolennikeim metryk ktory wyliczyl
ze jedna moja klasa ma za duzo metod. I rzeczywiscie, ma ich 400. Ale
ta klasa to jest "API holder" (do serwera napisanego w innym jezyku) i
musi miec te wszystkie metody. Guru zaproponowal zebym rozbil klase na
mniejsze. "A jak podzielic metody miedzy te klasy?" zapytalem.
"Alfabetycznie, na przyklad" odpowiedzial guru.
Odczepili sie dopiero jak zapodalem ze per...lne to wszystko i pojde
do kunkurencji
Takie rzeczy sa chwytliwe dla:
1. Cynicznych facetow ktorzy pragna zostac "guru"
2. Managerow ktorzy nie maja pojecia i szukaja cudownyh srodkow
3. Akademikow ktorzy tez nie maja pojecia, a szukaja "nosnych" a
latwych tematow do "badan naukowych"
A.L.
Nie bardzo za�apa�em powy�sze zdanie :-).
Mo�e ta teoria informacji w ocenie dzie� literackich ma sens dla
zmniejszania koszt�w druku ;-). Mo�e podobny sens maj� te� metryki
program�w - ma�o wci��, metoda na kartk� papieru itp :-).
> Niedawno mialem dyskusje z jednym zwolennikeim metryk ktory wyliczyl
> ze jedna moja klasa ma za duzo metod. I rzeczywiscie, ma ich 400. Ale
> ta klasa to jest "API holder" (do serwera napisanego w innym jezyku) i
> musi miec te wszystkie metody. Guru zaproponowal zebym rozbil klase na
> mniejsze. "A jak podzielic metody miedzy te klasy?" zapytalem.
> "Alfabetycznie, na przyklad" odpowiedzial guru.
>
> Odczepili sie dopiero jak zapodalem ze per...lne to wszystko i pojde
> do kunkurencji
>
[...]
A tak na powa�nie, to chcia�em doda�, �e mnie lepiej si� konserwuje i
rozwija programy o dobrych metrykach (mo�e po prostu dlatego, �e s�
prostsze) i �e powy�szy przyk�ad doskonale pokazuje i� poprawa metryk na
si�� nie ma sensu.
Pozdrawiam
--
gregorius
>A.L. pisze:
>[...]
>> Tak na marginesie, przypominaja mi sie czasy gdy teorie informacji
>> probowano uzywac do oceny dziel literackich. To w tamtych czasach
>> "badania naukowe" pokazalu ze najlepsy utwor literacki to taki gdzie
>> zdanie ma nie wiecej niz iles tam slow, paragraf nie wiecej niz iles
>> tam zdan, a rozdziel nie wiecej iles tam paragrafow. Stanislaw Lem
>> bezlitosnie wyszydzal te idiotyzmy
>>
>> "Metryki" programow maja wiecej ma taki sam sens.
>>
>
>Nie bardzo za�apa�em powy�sze zdanie :-).
>Mo�e ta teoria informacji w ocenie dzie� literackich ma sens dla
>zmniejszania koszt�w druku ;-). Mo�e podobny sens maj� te� metryki
>program�w - ma�o wci��, metoda na kartk� papieru itp :-).
>
Sens jest taki ze ocena ilosciowa "wygladu" programu bez oceny
funkcjonalnosci nie ma sensu. Okreslone rzeczy sie robi w okreslonym
celu, aby program robil okreslone rzeczy dobrze i szybko, a nie po to
zeby metryki dobrze wygladaly.
Podobnie jak nie mozna ocenic dziela literackiego na podstawie analizy
czestosci wystepowanai wyrazow. Tzreba dzielo pzreczytac i zrozumiec.
Jak sie pzreczyta, zrozumie i oceni, to nikt sie nei bedzie pytal o
czestotliwosc slow.
>> Niedawno mialem dyskusje z jednym zwolennikeim metryk ktory wyliczyl
>> ze jedna moja klasa ma za duzo metod. I rzeczywiscie, ma ich 400. Ale
>> ta klasa to jest "API holder" (do serwera napisanego w innym jezyku) i
>> musi miec te wszystkie metody. Guru zaproponowal zebym rozbil klase na
>> mniejsze. "A jak podzielic metody miedzy te klasy?" zapytalem.
>> "Alfabetycznie, na przyklad" odpowiedzial guru.
>>
>> Odczepili sie dopiero jak zapodalem ze per...lne to wszystko i pojde
>> do kunkurencji
>>
>[...]
>
>A tak na powa�nie, to chcia�em doda�, �e mnie lepiej si� konserwuje i
>rozwija programy o dobrych metrykach (mo�e po prostu dlatego, �e s�
>prostsze) i �e powy�szy przyk�ad doskonale pokazuje i� poprawa metryk na
>si�� nie ma sensu.
Nie ma.
A.L.
> On Fri, 28 Aug 2009 07:13:11 +0200, Bogus�aw Faja
> <zymen_out_@_out_zymen.net> wrote:
>
>>
>>Celem metryk mo�e by� np:
>>- niezale�ne por�wnanie ze sob� np. dw�ch projekt�w,
>>- okre�lenie jakie potencjalne problemy podczas rozwoju projektu mog�
>>nast�pi�,
>>- badanie (podczas dzia�ania Continuous Integration), czy wprowadzone
>>zmiany nie psujďż˝ struktury projektu,
>>- badanie zale�no�ci pomi�dzy jednostkami,
>>- etc.
>>
>>My�l�, �e s� one w znacznym stopniu podobne do wska�nik�w gie�dowych,
>>marker�w krwi, itp. itd - zale�� od interpretacji.
>>
>
> Tak na marginesie, przypominaja mi sie czasy gdy teorie informacji
> probowano uzywac do oceny dziel literackich. To w tamtych czasach
> "badania naukowe" pokazalu ze najlepsy utwor literacki to taki gdzie
> zdanie ma nie wiecej niz iles tam slow, paragraf nie wiecej niz iles
> tam zdan, a rozdziel nie wiecej iles tam paragrafow. Stanislaw Lem
> bezlitosnie wyszydzal te idiotyzmy
Tak, bo to by�a pr�ba zamkni�cia sztuki (literatura) w jakie� ramy. To tak
samo jak z nowďż˝ maturďż˝ z PL: nie trafisz w klucz, jesteďż˝ kiepski. Problem w
tym, �e w dziedzinie nauk "mi�kkich" im mniej przewidywalny/szablonowy
jeste�, tym bardziej Ci� ceni�. Nie jest dziwne, �e nikt nie ma uwag do
klucza z matematyki/fizyki?
> "Metryki" programow maja wiecej ma taki sam sens.
Pozwolďż˝ sobie nie zgodziďż˝ siďż˝ z tym.
> Niedawno mialem dyskusje z jednym zwolennikeim metryk ktory wyliczyl
> ze jedna moja klasa ma za duzo metod. I rzeczywiscie, ma ich 400. Ale
> ta klasa to jest "API holder" (do serwera napisanego w innym jezyku) i
> musi miec te wszystkie metody. Guru zaproponowal zebym rozbil klase na
> mniejsze. "A jak podzielic metody miedzy te klasy?" zapytalem.
> "Alfabetycznie, na przyklad" odpowiedzial guru.
Chcesz na podstawie jednostkowego przypadku oceniďż˝ sens pewnej metodologii?
API jest bardzo specyficznym kawa�kiem ka�dego systemu.
Metryki s� dobre, ale nie s� idealne. M�wi si�, �e gdy RSI=30 to czas kiedy
nale�y na gie�dzie kupowa�, a gdy RSI=70 to nale�y sprzedawa�.
Np. dla WIG20
2007-08-16, RSI=29,01 warto��=3329.
2009-04-09, RSI=70,94, wartosc=1784.
Chyba nie musz� pisa� jak ogromny zysk mog�y przynie�� dwie operacje
wykonane przy pe�nym zaufaniu do wska�nika :)
Obliczanie metryk:
- ilo�ci linii w metodzie,
- ilo�ci metod w klasie,
- ilo�ci komentarzy,
- cyclomatic complexity (z�o�ono�ci cyklomatycznej?),
- itp. itd.
dla automatu jest proste, a mo�e da� relatywnie sporo informacji o kodzie.
> Odczepili sie dopiero jak zapodalem ze per...lne to wszystko i pojde
> do kunkurencji
Opr�cz wiedzy czasem trzeba mie� jaja :-)
> Takie rzeczy sa chwytliwe dla:
>
> 1. Cynicznych facetow ktorzy pragna zostac "guru"
> 2. Managerow ktorzy nie maja pojecia i szukaja cudownyh srodkow
> 3. Akademikow ktorzy tez nie maja pojecia, a szukaja "nosnych" a
> latwych tematow do "badan naukowych"
Czy mog� przyj��, �e uwa�asz i� markery krwi, wska�niki gie�dowe s� r�wnie�
tego typu "pierdo�ami"?
- o ilo�ci linii w metodzie,
- o ilo�ci metod w klasie,
- o ilo�ci komentarzy,
- o cyclomatic complexity (z�o�ono�ci cyklomatycznej?),
Tyle tylko ze to nie jest "informacja". To sa liczby ktore nic nie
mowia o tym czy program robi to co powinien, czy program robi to tak
jak pownien, czy robi to szybko i czy jest niezawodny.
Program to cos w rodzaelu dziela literackiego, a na pewno produkt
tworczej dzialalnosci intelektualnej. Ocenianie programu po owych
liczbach to tak jak ocenianie dziela literackiego po analizie
dystrybucji wyrazow.
>Czy mog� przyj��, �e uwa�asz i� markery krwi, wska�niki gie�dowe s� r�wnie�
>tego typu "pierdo�ami"?
>
Nie. Bo owe markety niosa INFORMACJE, a metryki nie niosa zadnej.
A.L.
P.S. Proponuje na tym zakonczyc dyskusje bo sie nie prozumiemy i
bedziemy bic piane. Pozostane przy swej opinii ze ocenianie programu
przy pomocy owych "wskaznikow" to przejaw zwyrodnialej aberracjii,
podobnie jak inne "nowoczesne" paradygmaty w rodzaju "agile", "xm"
czy "code first think later"
Zycze Koledze powodzenia i radosci z obliczania cyclomatic complexity
> On Sat, 29 Aug 2009 15:55:45 +0200, Bogus�aw Faja
> <zymen_out_@_out_zymen.net> wrote:
>
>>
>>Obliczanie metryk:
>>
>>- ilo�ci linii w metodzie,
>>- ilo�ci metod w klasie,
>>- ilo�ci komentarzy,
>>- cyclomatic complexity (z�o�ono�ci cyklomatycznej?),
>>- itp. itd.
>>
>>dla automatu jest proste, a mo�e da� relatywnie sporo informacji o kodzie.
>
> Tak, dostarcza sporo "informacji"
>
> - o ilo�ci linii w metodzie,
- je�li np. warto�� > 40 to metoda jest zbyt d�uga, jej utrzymanie mo�e by�
problematyczne, wprowadzanie zmian co najmniej nieprzyjemne, a szukanie
b��d�w utrudnione, mo�e wskazywa� na niepe�ne u�ycie technik
obiektowych/wzorc�w,
> - o ilo�ci metod w klasie,
- je�li zbyt ma�o, to klasa ma niewielki zakres odpowiedzialno�ci (by� mo�e
zbyt ma�y?), je�li zbyt du�o, to jest to sugestia do podzia�u klasy na
mniejsze (prawdopodobnie du�y stopie� zale�no�ci z innymi klasami),
> - o ilo�ci komentarzy,
> - o cyclomatic complexity (z�o�ono�ci cyklomatycznej?),
Mo�na wymienia� podobnie jak powy�ej.
XYZ:
> Tyle tylko ze to nie jest "informacja". To sa liczby ktore nic nie
> mowia o tym czy program robi to co powinien, czy program robi to tak
> jak pownien, czy robi to szybko i czy jest niezawodny.
> Program to cos w rodzaelu dziela literackiego, a na pewno produkt
> tworczej dzialalnosci intelektualnej. Ocenianie programu po owych
> liczbach to tak jak ocenianie dziela literackiego po analizie
> dystrybucji wyrazow.
Uwa�am, �e programista jest bardziej wyrobnikiem, in�ynierem ni� artyst�.
To, �e nie wynaleziono jeszcze sposobu na pisanie bezb��dnego
oprogramowania, w taki spos�b, aby zmie�ci� si� w terminach to zupe�nie
inna kwestia.
---
Je�li na to pytanie kto� odpowie, �e wynaleziono, to poprosz� o linki. Z
g�ry dzi�ki.
>>Czy mog� przyj��, �e uwa�asz i� markery krwi, wska�niki gie�dowe s� r�wnie�
>>tego typu "pierdo�ami"?
>>
>
> Nie. Bo owe markety niosa INFORMACJE, a metryki nie niosa zadnej.
My�l�, �e mog� tutaj odnie�� si� jednocze�nie do Twojego stwierdzenia,
kt�re pozwoli�em sobie oznaczy� poprzez 'XYZ'. Same warto�ci wska�nik�w nie
nios� informacji, ich prawid�owa interpretacja natomiast ju� tak.
> P.S. Proponuje na tym zakonczyc dyskusje bo sie nie prozumiemy i
> bedziemy bic piane. Pozostane przy swej opinii ze ocenianie programu
> przy pomocy owych "wskaznikow" to przejaw zwyrodnialej aberracjii,
> podobnie jak inne "nowoczesne" paradygmaty w rodzaju "agile", "xm"
> czy "code first think later"
Zgadzam siďż˝. Negocjacje w zakresie przekonaďż˝ sďż˝ nierozstrzygalne i nie
nale�y ich prowadzi�.
> Zycze Koledze powodzenia i radosci z obliczania cyclomatic complexity
Nie potraktuj� tego jako ironii i r�wnie� �ycz� wszystkiego dobrego.
Mi�ego dnia �ycz�,
>
>- je�li np. warto�� > 40 to metoda jest zbyt d�uga, jej utrzymanie mo�e by�
>problematyczne, wprowadzanie zmian co najmniej nieprzyjemne, a szukanie
>b��d�w utrudnione, mo�e wskazywa� na niepe�ne u�ycie technik
>obiektowych/wzorc�w,
>
Acha... "Wzorce" to nastepne "magiczne slowo"
>> - o ilo�ci metod w klasie,
>
>Uwa�am, �e programista jest bardziej wyrobnikiem, in�ynierem ni� artyst�.
Wiele osob uwaza odwrotnie. Proponuje ksiazke Paula Grahama "Hackers
and Painters" .
>To, �e nie wynaleziono jeszcze sposobu na pisanie bezb��dnego
>oprogramowania, w taki spos�b, aby zmie�ci� si� w terminach to zupe�nie
>inna kwestia.
>
Oliczanie "cyclomatic complexity" rzeczywiscie spowoduje ze zmiescimy
sie w terminach. Bez tego - nie ma mowy.
A.L.
E tam, bierze pan metrykďż˝ i wrzuca metody alfabetycznie do
klas, kt�re maj� zbyt ma�y zakres odpowiedzialno�ci ;).
To by siďż˝ guru ucieszyďż˝.
Pozdrawiam
KK
i nazywa _1_metoda, _2_metoda itp
Pozdrawiam,
Wit
> Niedawno mialem dyskusje z jednym zwolennikeim metryk ktory wyliczyl
> ze jedna moja klasa ma za duzo metod. I rzeczywiscie, ma ich 400. Ale
> ta klasa to jest "API holder" (do serwera napisanego w innym jezyku) i
> musi miec te wszystkie metody. Guru zaproponowal zebym rozbil klase na
> mniejsze. "A jak podzielic metody miedzy te klasy?" zapytalem.
> "Alfabetycznie, na przyklad" odpowiedzial guru.
He, he, he ...
Trzeba by�o powiedzie�, �e te� wydawa�o Ci si� to oczywiste, ale policzy�e�
dok�adnie i wysz�o, �e jest ich 401 (liczba pierwsza), a nie wyobra�asz
sobie,�e
by dzieliďż˝ niesprawiedliwie ;)
To żeczywiście, bezsensowna propozycja "guru". Ale jako kontr przykład
mogłeś podać im bibliotekę Qt gdzie są klasy co mają ponad 200 funkcji...