Oprogramowanie szyte na miarę.

Jakiś czas temu wpadła mi w oko książka Michała Bartyzela “Oprogramowanie szyte na miarę. Jak rozmawiać z klientem, który nie wie, czego chce”.  Zdarza mi się przeglądać blog Michała i uważam, że jest to osoba znająca się na tematach o których mówi i z tego właśnie powodu zdecydowałem się sięgnąć po tą pozycję. Wiarygodność autora była dla mnie o tyle ważna, że książka o której mowa dotyka zagadnień związanych z pracą analityka o której nie mam zbyt dużego pojęcia.  Continue reading “Oprogramowanie szyte na miarę.”

Metryka LCOM4

Zasady SOLID  to zbiór pomocnych wskazówek dotyczących  projektowania klas zgodnych z kanonami Object Oriented. Pierwsza z nich (Single Responsibility Principle), mówi nam o tym, że każda klasa powinna mieć jedną, jasno zdefiniowaną odpowiedzialność.

Istnieje metryka, która powstała z zamysłem umożliwienia automatycznej oceny klas pod kątem ich spójności (co w pewnym sensie można utożsamiać z SRP). Nazwya się Lack of Cohesion in Methods. Zaprojektowanie jej nie było jednak łatwe – ewoluowała ona przez lata. Dziś skupię się na jej wersji znanej jako LCOM4, która to jest wykorzystywana w narzędziu Sonar. Continue reading “Metryka LCOM4”

Sonar Driven Development

Chyba każdy programista ma jakąś opinię na temat jakości oprogramowania. Tematyka ta jest bardzo złożona, gdyż jakość można oceniać z wielu różnych perspektyw:

  • Czy kod działa tak jak trzeba?
  • Czy jest dostatecznie czytelny?
  • Czy jest pokryty testami jednostkowymi?
  • Czy został poprawnie zaprojektowany?

Są to bardzo ogólne kryteria a przecież istnieje ich więcej. Z tego właśnie powodu bardzo ciężko jest arbitralnie określić, czym konkretnie powinien charakteryzować się wysokiej jakości kod. Jednym z podejść może być odrzucenie subiektywnych “odczuć”, na rzecz pomiarów odpowiednimi metrykami. Czy jednak takie podejście jest słuszne? Continue reading “Sonar Driven Development”