Wymogi formalne projektów

 

Nie zastosowanie się do wymogów formalnych będzie prowadzić do znaczącego obniżenia oceny z projektu, a (w skrajnych przypadkach) nawet do niezaliczenia projektu.

Paczka z projektem

Projekt znajduje się w paczce o nazwie pl.edu.pw.fizyka.pojava.* gdzie * jest identyfikatorem waszego zespołu. 

Nazwy klas

Nazwy klas, interfejsów, typów wyliczeniowych muszą spełniać następujące wymagania:

  • Z dużej litery
  • Pisane UpperCamelCase
  • Nazwy opisują klasę --- nazwa klasy musi informować o jej przeznaczeniu
  • Po angielsku

Poprawne przykłady

  • JButtonOK
  • JFreeChartVelocity
  • DriverManager
  • ComptonExperiment

Niepoprawne przykłady

  • MojaKlasaEskperymentComptona --- nazwy po polsku
  • FrameMyFrame --- nazwa nic nie mówi o klasie
  • compton_experiment --- nie pisane camelCase.

Nazwy zmiennych i metod

Nazwy zmiennych i metod powinny spełniać następujące wymagania:

  • Z małej litery
  • Pisane camelCase.
  • Nazwy opisują zmienną
  • Po angielsku

Przykłady poprawne (zmienne)

  • photonEnergyMeVscatteringAngleDeg
  • ii -- w przypadku zmiennych używanych w pętlach (polecane jest indeksowanie zmiennych zmiennymi dwuznakowymi, ponieważ bardzo ułatwia to wszukanie zmiennej w kodzie).

Przykłady błędne (zmienne)

  • zmiennai --- nic nie mówi

  • gamma_angle --- nie camelCase

  • katGamma --- po polsku

Nazwy poprawne (metody)

  • computePhotonEnergyMev

Poprawna struktura kodu

Program posiada dobrą strukturę, w której jest podział przynajmniej na:

  • Elementy interfejsu graficznego
  • Model obliczeniowy

Dodatkowo:

  • Funkcje są małe (~ max. 50 linii)
  • Program stosuje się do zasady DRY, czyli struktury danych oraz fragmenty kodu, które są wykorzystywane w wielu miejscach programu, zdefiniowane są w dokładnie jednym miejscu. Potocznie mówiąc: nie ma kopiuj-wklej.

 

Podpisywanie klas

Każda klasa powinna mieć oznaczona autora (jedną z osób w projekcie):

  • Osoba nie będąca autorem będzie otrzymywać prostsze pytania dotyczące danej klasy przy oddawaniu projektu.
  • Dwie osoby mogą być autorem klasy.
  • Klasy nieoznaczone są traktowane tak, jakby autorami były obie osoby.

 

Estetyczny wygląd programu

Program wygląda estetycznie - elementy ułożone tam gdzie powinny być, a nie tam gdzie chciał je ułożyć Layout Manager.

Częste błędy:

  • Pole do wprowadzania danych wejściowych do modelu jest nieproporcjonalnie duże.

  • Program ustawiony jest do działania w okienku o stałym rozmiarze np. 640x480 i nie da się go powiększyć - albo przy powiększaniu powiększają się nie te elementy co trzeba.

    Założenie, że program ma minimalny rozmiar okna jest OK, o ile minimalny rozmiar okna nie jest zbyt duży.

 

Intuicyjność interfejsu

Użytkownik siadając do programu bez czytania instrukcji potrafiłby się nim posłużyć.

Przykłady nieintuicyjnych programów (rzeczywiste błędy studentów):

  • Po wprowadzeniu danych należy w każdym polu wcisnąć klawisz Enter, a dopiero potem guzik start symulacji.
  • Dane należy wprowadzać w konkretnej kolejności inaczej program nie dziala poprawnie.
  • Po włączeniu symulacji, nowe parametry da się wprowadzić dopiero po restarcie programu.
  • Pola tekstowe do wprowadzania danych są nieoznaczone.

 

Dodatkowe uwagi

Należy ponadto unikać poniższych błędów:

W projekcie widać niewyczyszczone ślady pracy nad nim:

  • Dużo zakomentowanego kodu.
  • Program wyświetla na konsolę dużo śmieci.

Program korzysta z wątków niepoprawnie i tą niepoprawność widać bez zaglądania do kodu programu. Na przykład:

  • Długotrwałej symulacji nie da się przerwać bez zamykania programu.
  • Podczas wykonywania obliczeń program się "zacina".

 

 

Wymogi na podstawie opracowania przygotowanego przez J. Bzdak.