Momenat ...
Posljednji postovi:

post

Učenje evolucije softvera

Kako srednjoškolske tako i visokoškolske ustanove, kako kod nas tako i u svijetu, već dugi niz godina praktikuju jedan vid standardizovanog načina predavanja predmeta iz informacionih nauka. Međutim, grupa naučnika (između ostalih Margot Postema, Jan Miller i Martin Dick) već nekoliko godina istražuje nove metode predavanja koje bi studentima dale mnogo ozbiljnije i realnije znanje, te koje bi ih mnogo kvalitetnije pripremile za konkretne radne poslove u industriji. Nove metode se zasnivaju na opštepoznatoj činjenici da više od 90% inženjera, u svojim svakodnevnim radnim aktivnostima, ne vrši pisanje izvornog koda od početka već vrši modifikacije ili nadogradnje već postojećih, relativno kompleksnih, sistema.


Naime, u više od 90% slučajeva, studenti koji, nakon završetka studija, počnu raditi u IT industriji, neće pisati ili projektovati rješenja od nule, već će raditi na doradama, izmjenama, nadogradnjama i prilagođavanju već postojećih rješenja i to po ustaljenim radnim praksama firme u kojoj se zaposle. Kada se ima u vidu da preko 65% ukupne cijene softvera čini takozvana evolucija softvera (nadogradnje, prilagođavanje i usavršavanje), postaje pčigledno zašto fokusiranje samo na čisti razvoj više nije dovoljno. Upravo ova činjenica je navela naučnike i nastavno osoblje da obrate pažnju na ovaj procjep te se, sve više, evolucija softvera, uvodi u redovne nastavne planove i programe.

Evolucija softvera zahtijeva shvatanje i modifikovanje postojećeg softvera čija sama veličina ograničava softverske inženjere na rad samo sa nekim izabranim dijelovima koji su najvažniji za aktuelni radni zadatak. Takođe, ona može zahtijevati i određene specifične poslove kao što je sistemska i tzv. impact analiza, refaktoring i drugo. Poznavanje ovakvih metoda i alata je zbog toga ključno. Trenutno, postojeća literatura i prakse nude samo niz smijernica kako učiti softversku evoluciju. Primjera radi, Michael Gnatz sa kolegama je pokušao da u okvir svojih standardnih predavanja uvede i koncepte evolucije softvera. Ipak, kako je originalni kurs razvoja softvera uzeo najveći dio vremena predviđenog za kurs, teme vezane za evoluciju softvera nisu dobile dovoljno vremena te nisu bile dovoljno istražene i obrađene. S druge strane, druga grupa profesora se odlučila posvetiti više pažnje osnovnim aktivnostima za održavanje softvera: korekcijama, usavršavanjima, adaptacijama i prevenciji. U okviru kursa koji su držali, studentima su dali oko 2,000 linija koda koji je prethodno nezavisno razvijen, te koji su onda studenti, u toku kursa, razvijali, nadograđivali, ispravljali greške i slično.

Pored spomenutih aktivnosti, studenti su učeni radu u timovima, radu na softverskim rješenjima za kolaboraciju, centralizovano čuvanje izvornog koda, zajedničkih agendi, kalendara i drugo. Kombinacija metoda i alata korištenih za vrijeme kurseva uveliko je poboljšala međusobnu komunikaciju između studenata te je, pored poboljšanog timskog duha, unaprijedila i timski rad. Sve prethodno spomenute studije rezultovale su značajnim poboljšanjima u realnom znanju studenata te skraćenom vremenu prilagođavanja na nove projekte i radne zadatke. Pored toga, suočeni sa veličinom i kompleksnošću realnih projekata, studenti su dobili realniji pogled na svoje znanje te znanje potrebno za aktivno zaposlenje u industriji. Pored toga, nači izvođenja nastave te korišteni alati značajno su olakšali posao i profesorima jer sve aktivnosti studenata ostaju zabilježene te je praćenje rada, razvoja i napretka studenata u značajnoj mjeri pojednostavljeno.

Sve spomenute studije su organizovane i izvođene na univerzitetima u Sjedinjenim Američkim Državama počevši od 2004. godine, a dobijeni rezultati ukazali su na jasnu potrebu da se evolucija softvera uvrsti u obavezni nastavni plan i program. Ostaje još da se vidi kada će ovakve ideje da zažive u našem školskom sistemu, i kada će i naši studenti početi dobijati obrazovanje koje će im dati realno znanje te ih adekvatno pripremiti za rad u industriji.

Komentari (Bez komentara)