Tarkvaratehnika vs arvutiteadus
Kaasaegses ühiskonnas on arvutitest saanud lahutamatu ja vältimatu osa. Kuid me keskendume vähem nende tuttavate asjade sisemisele tööle. Arvutiteadus on arvutisüsteemide teoreetiline alus, samas kui tarkvaratehnika on nende põhimõtete rakendamine probleemide lahendamiseks tarkvaralahenduse väljatöötamiseks.
Arvutiteadus
Arvutiteadus on andmetöötluse riist- ja tarkvara alusteadus. See annab ülevaate nii tarkvara- kui ka riistvarakomponentide mehhanismidest ning arvutamise teoreetilistest alustest arvutisüsteemides rakendamiseks ja rakendamiseks.
Arvutiteadus koosneb paljudest peamistest aladistsipliinidest. Arvutusteooria, Info- ja kodeerimise teooria, algoritmid ja andmestruktuurid ning programmeerimiskeeleteooria kuuluvad teoreetilise arvutiteaduse alla. Rakendusarvutiteaduse alamvaldkonnad on tehisintellekt, arvutiarhitektuur ja -tehnika, arvutigraafika ja visualiseerimine, krüptograafia ja arvutiturve, arvutivõrgud, samaaegsed, paralleelsed ja hajutatud süsteemid, andmebaasid ja teabeotsing ning tarkvaratehnika.
Paljud neist aladistsipliinidest põhinevad matemaatilistel teooriatel. Mõned rakendusaspektid on seotud mehhatroonika ja muude rakendusteadustega.
Samuti laienevad need aladistsipliinid väiksematele õppevaldkondadele. Näiteks arvutiteooria sisaldab selliseid õppevaldkondi nagu automaatide teooria, arvutatavuse teooria, keerukuse teooria, krüptograafia ja kvantarvutusteooria.
Tarkvaratehnika
Tarkvaratehnoloogiat võib pidada rakendusliku arvutiteaduse üheks peamiseks alamvaldkonnaks. See keskendub tõhusate tarkvarasüsteemide loomisele, kasutades ranget insenerilähenemist. Seda võib kirjeldada kui süstemaatilist, distsiplineeritud, kvantifitseeritavat lähenemist tarkvara projekteerimisele, arendamisele, kasutamisele ja hooldamisele ning nende lähenemisviiside uurimisele. Tarkvaratehnikal pole ühtset aktsepteeritud määratlust, vaid selle eesmärgi tõlgendus.
Fritz Bauer määratles tarkvaratehnikat kui "tervete inseneripõhimõtete kehtestamist ja kasutamist, et saada majanduslikult arendatud tarkvara, mis on usaldusväärne ja töötab tõhus alt päris masinatel".
Tarkvara pole füüsiline; see on arvutisüsteemis töötavad loogilised üksused. Seetõttu peab see olema konstrueeritud nii, et see toimiks optimaalselt nii riistvara kui ka operatsioonide aspektides. Nende eesmärkide saavutamiseks kasutavad tarkvarainsenerid arendusmudeleid. Need mudelid sisaldavad tarkvaraarenduse põhietappe, nagu projekteerimine, kodeerimine, tõrkeotsing ja hooldus, ühtsesse raamistikku, mis võimaldab tarkvara süstemaatilist edenemist selle elutsükli jooksul.
Mis vahe on tarkvaratehnikal ja arvutiteadusel?
• Arvutiteadus keskendub andmetöötluse teoreetilistele aspektidele nii tarkvara kui ka riistvara osas.
• Tarkvaratehnoloogia keskendub tarkvara süstemaatilisele arendamisele. Kodeerimine või programmeerimine on tarkvaratehnika põhikomponent.
• Tarkvaratehnoloogiat võib vaadelda kui arvutusteooria rakendust (näiteks algoritmi efektiivsust saab mõõta keerukuse abil, mida kirjeldatakse arvutiteaduse teoorias, kuid selle rakendus kuulub tarkvara valdkonda projekteerimine, kus keerukuse põhjal valitakse sobivaim algoritm).