Projekti on ladattu 22.8. kello 22.00.
RAKENNE
Projektin kansiorakenne on kohtalaisen selkeä. Pakkauksien ja luokkien nimet ovat kuvaavia. Testitkin ovat omissa pakkauksissaan. Luokat on myös selkeästi ja ytimekkäästi toteutettuja ja selkeitä lukea. Niillä on omat vastuunsa.
KOMMENTOINTI
Koodi on pääsääntöisesti hyvin kommentoitua. Joissakin kohdissa kommentteja voisi lisätä metodien alkuun ja myös välillä keskelle metodia, jotta lukiessa ja etsiessä tiettyä ominaisuutta pysyisi paremmin mukana. Näistä kohdista huomasin ainakin seuraavat:
- IDAStar: search-metodi
- IDDFS-luokan metodit
- Solver: solve-metodi
- UI-luokkaan vosi myös laittaa muutaman kommentit keskelle metodeja, ne ovat aika pitkiä
Joitakin turhia importeja löytyy, ne voisi poistaa.
SOVELLUKSEN TOIMINTA
Sovellus käynnistyi hyvin komentoriviltä ja Netbeansissa. Ensimmäiseen näkymään voisi lisätä validoinnin, nyt onnistuin rikkomaan sovelluksen syöttämällä liian suuren kaaren pituuden. Virheilmoitus tulee kuitenkin, jos ei syötä intiä. KÄynnistettyäni sovelluksen uudelleen ja syötettyäni sopivan pituuden pääsin jatkamaan.
Käyttöliittymä tuntui melko käyttäjäystävälliseltä. Tuntui kuitenkin hieman työläältä syöttää arvoja ruutuihin, joten arvoin ruudukon. Ruutujen syöttäminen manuaalisesti on kuitenkin hyvä pitää tallessa, jos haluaa ratkaista tietyn ruudukon. Sovellus kaatui kun en syöttänyt kaikkiin ruutuihin arvoa. Kun ruuduissa oli arvot, sovellus toimi odotetusti ja tehokkaasti IDA*-algoritmilla. IDDFS-algoritmi ei näyttänyt toimivan tai oli liian hidas omissa testeissäni. Lopputuloksen kanssa voisi näkyä samassa näkymässä myös alkuperäinen ruudukko, jotta ohjeet käsittäisi paremmin.
OMAT TIETORAKENTEET
Omia tietorakenteita ei ole tällä hetkellä kuin Stack ja Pair. Ne on kuitenkin hienosti ja tehokkaasti toteutettu sekä helppolukuisia ja kommentoituja. En löytänyt tietorakenteista mitään suurempia huomioita. Ne ovat varmaankin toimivia ja testattuja.
TESTAUS
JUnit-testit näyttävät suhteellisen järkeviltä ja koodikattavuudeltaan riittäviltä. Kaikki testit menivät odotetusti läpi. En saanut luotua testikattavuusraporttia, ilmeisesti jacoco ei ole käytössä eikä githubista löydy raporttia.
Suorituskykytestausta ei ilmeisesti ole vielä aloitettu. Myöhemmin testausdokumenttiin voisi laittaa jonkun taulukon algoritmien suoritusajoista.
Checkstyle näyttää olevan kunnossa, vain 2 virhettä löytyi.
DOKUMENTAATIO
Dokumentaatio on tiivistä ja selkeää. Perusasiat löytyvät.
Määrittelydokumenttiin voisi laittaa tietoa algoritmien aikavaativuuksista ja niiden toteutumisista. Testaus- ja toteutusdokumentaatiota ei ole vielä aloitettu. Tuntilistaus on kiva!
Dokumentaatioon voisi laittaa graafeja ja kuvia esim. sovelluksen luokkarakenteesta, testikattavuudesta, yms. Edit: Nyt löysin luokkarakenteesta kaavion, sen voisi myöhemmin lisätä toteutusdokumentaatioon.
Viikkoraportit ovat asiallisia ja antavat kokonaiskuvan edistymisestä.
Kaiken kaikkiaan hyvällä mallilla oleva projekti, mutta vaatii vielä työtä jonkin verran. Uskon, että lopputuloksesta tulee hieno.
Projekti on ladattu 22.8. kello 22.00.
RAKENNE
Projektin kansiorakenne on kohtalaisen selkeä. Pakkauksien ja luokkien nimet ovat kuvaavia. Testitkin ovat omissa pakkauksissaan. Luokat on myös selkeästi ja ytimekkäästi toteutettuja ja selkeitä lukea. Niillä on omat vastuunsa.
KOMMENTOINTI
Koodi on pääsääntöisesti hyvin kommentoitua. Joissakin kohdissa kommentteja voisi lisätä metodien alkuun ja myös välillä keskelle metodia, jotta lukiessa ja etsiessä tiettyä ominaisuutta pysyisi paremmin mukana. Näistä kohdista huomasin ainakin seuraavat:
Joitakin turhia importeja löytyy, ne voisi poistaa.
SOVELLUKSEN TOIMINTA
Sovellus käynnistyi hyvin komentoriviltä ja Netbeansissa. Ensimmäiseen näkymään voisi lisätä validoinnin, nyt onnistuin rikkomaan sovelluksen syöttämällä liian suuren kaaren pituuden. Virheilmoitus tulee kuitenkin, jos ei syötä intiä. KÄynnistettyäni sovelluksen uudelleen ja syötettyäni sopivan pituuden pääsin jatkamaan.
Käyttöliittymä tuntui melko käyttäjäystävälliseltä. Tuntui kuitenkin hieman työläältä syöttää arvoja ruutuihin, joten arvoin ruudukon. Ruutujen syöttäminen manuaalisesti on kuitenkin hyvä pitää tallessa, jos haluaa ratkaista tietyn ruudukon. Sovellus kaatui kun en syöttänyt kaikkiin ruutuihin arvoa. Kun ruuduissa oli arvot, sovellus toimi odotetusti ja tehokkaasti IDA*-algoritmilla. IDDFS-algoritmi ei näyttänyt toimivan tai oli liian hidas omissa testeissäni. Lopputuloksen kanssa voisi näkyä samassa näkymässä myös alkuperäinen ruudukko, jotta ohjeet käsittäisi paremmin.
OMAT TIETORAKENTEET
Omia tietorakenteita ei ole tällä hetkellä kuin Stack ja Pair. Ne on kuitenkin hienosti ja tehokkaasti toteutettu sekä helppolukuisia ja kommentoituja. En löytänyt tietorakenteista mitään suurempia huomioita. Ne ovat varmaankin toimivia ja testattuja.
TESTAUS
JUnit-testit näyttävät suhteellisen järkeviltä ja koodikattavuudeltaan riittäviltä. Kaikki testit menivät odotetusti läpi. En saanut luotua testikattavuusraporttia, ilmeisesti jacoco ei ole käytössä eikä githubista löydy raporttia.
Suorituskykytestausta ei ilmeisesti ole vielä aloitettu. Myöhemmin testausdokumenttiin voisi laittaa jonkun taulukon algoritmien suoritusajoista.
Checkstyle näyttää olevan kunnossa, vain 2 virhettä löytyi.
DOKUMENTAATIO
Dokumentaatio on tiivistä ja selkeää. Perusasiat löytyvät.
Määrittelydokumenttiin voisi laittaa tietoa algoritmien aikavaativuuksista ja niiden toteutumisista. Testaus- ja toteutusdokumentaatiota ei ole vielä aloitettu. Tuntilistaus on kiva!
Dokumentaatioon voisi laittaa graafeja ja kuvia esim. sovelluksen luokkarakenteesta, testikattavuudesta, yms. Edit: Nyt löysin luokkarakenteesta kaavion, sen voisi myöhemmin lisätä toteutusdokumentaatioon.
Viikkoraportit ovat asiallisia ja antavat kokonaiskuvan edistymisestä.
Kaiken kaikkiaan hyvällä mallilla oleva projekti, mutta vaatii vielä työtä jonkin verran. Uskon, että lopputuloksesta tulee hieno.