Muszę przeprowadzić audyt dużej aplikacji WWW Java/J2ee, która rozwinęła się przez kilka kolejnych lat. Została napisana przez inną firmę, nie tę, dla której pracuję. W jest to stan, w którym trudno jest się rozwijać i utrzymywać, nowe funkcje są trudne do dodania i często prowadzą do błędów, które kiedyś pojawią się w produkcji . Wydaje się, że jest jakiś skopiowany/wklejony kod, który spowodował duplikację kodu. Obecna aplikacja to coś w rodzaju zakupów online z treściami podobnymi do cms tu i tam. To głównie Struts i trochę wiosny w nowszych częściach kodu, może niektóre ejbs wrzucone na dobre pomiary w postaci . Dostępnych jest kilka testów jednostkowych, ale nie wiele z nich. To są rzeczy, o których mi mówiono, nie widziałem jeszcze prawdziwego kodu.Jakie jest najlepsze podejście do audytu dużej aplikacji WWW java/j2ee?
Moja firma przedstawi propozycję przepisania części tej aplikacji, aby zmniejszyć złożoność, poprawić jakość i modułowość oraz umożliwić łatwiejsze dodawanie nowych funkcji bez zniekształceń. Przed dokonaniem jakiegokolwiek zatwierdzenia, chcieliby Państwo uzyskać pewien szacunek jakości istniejącego kodu i ocenić, ile jego części można ponownie wykorzystać, aby uzyskać więcej niż domysły na temat tego, co będzie konieczne. done - przepisanie pełne lub częściowe przepisanie na .
Połów jest taki, że będę musiał to zrobić w bardzo krótkim czasie (kilka dni), więc jestem próbuje opracować plan, co można zrobić w tak krótkim czasie. Co jestem thiking jest:
- check out "podstawowe" rzeczy - obróbka wyjątki zalogowaniu
- Sprawdź poziom licowania (widoki, kontrolery, warstwy DAO)
- zmierzenia rzeczywistego pokrycia urządzenie testuje
- może uruchomić jakąś Checkstyle, Findbugs i PMD nad projektami
- ...
więc rzeczywisty pytanie, co inne rzeczy sh Czy powinienem wziąć pod uwagę/sprawdzić/zmierzyć/etc?
Nie jestem pewien, jakie numery mogę uzyskać z tego i jeśli to naprawdę znaczy coś, mam wrażenie, że to, co pyta kierownictwo jest rodzaju niewłaściwego podejścia , więc drugie pytanie byłoby: czy ktoś ma lepszy pomysł?
Doceniam każdy pomysł, sugestię, komentarz na ten temat.
Edit: będę dodanie dwóch martwych detektory kodu do mieszanki: UCD i DCD
Naprawdę masz pełne ręce roboty. Nie ufałbym istniejącym testom jednostkowym bez ich weryfikacji. Zdecydowanie będziesz potrzebował jakiś testów regresji, aby upewnić się, że przepisany kod nadal spełnia wymagania funkcjonalne.Przedmioty na twojej liście to dobry początek, szczególnie wspomniane narzędzia do analizy statycznej. – rich