Tarkvaratehnika vs arvutiteadus
Kaasaegses ühiskonnas on arvutitest saanud lahutamatu ja vältimatu osa. Kuid me keskendume vähem nende tuttavate asjade sisemisele toimimisele. Arvutiteadus on arvutisüsteemide teoreetiline alus, samas kui tarkvaratehnika on nende põhimõtete rakendamine probleemideks tarkvaralahenduse väljatöötamisel.
Arvutiteadus
Arvutiteadus on riist- ja tarkvara arvutamise põhiteadus. See annab ülevaate nii tarkvara- kui ka riistvarakomponentide mehhanismist ning arvutusteoreetilistest alustest rakendamiseks ja rakendamiseks arvutisüsteemides.
Arvutiteadus koosneb paljudest peamistest aladistsipliinidest. Arvutusteooria, info- ja kodeerimisteooria, algoritmid ja andmestruktuur ning programmeerimiskeeleteooria kuuluvad arvutiteoreetilisse teooriasse. Rakendatavad arvutiteaduse aladistsipliinid 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 rakenduse aspektid on seotud mehhatroonika ja teiste rakendusteadustega.
Need aladistsipliinid laienevad ka väiksematele õppealadele. Näiteks sisaldab arvutusteooria selliseid uurimisvaldkondi nagu automaatteooria, arvutatavuse teooria, keerukuse teooria, krüptograafia ja kvantarvutusteooria.
Tarkvaraarendus
Tarkvaratehnikat võib pidada rakenduse arvutiteaduse üheks peamiseks aladistsipliiniks. See keskendub tõhusate tarkvarasüsteemide loomisele, kasutades ranget insenerikäsitlust. Seda võib kirjeldada süsteemse, distsiplineeritud, kvantifitseeritava lähenemisena tarkvara kujundamisele, arendamisele, kasutamisele ja hooldusele ning nende lähenemisviiside uurimisele. Tarkvaratehnikas pole ühest aktsepteeritud määratlust, vaid selle eesmärgi tõlgendamine.
Fritz Bauer määratles tarkvaratehnika kui „usaldusväärsete inseneriprintsiipide kehtestamise ja kasutamise, et saada majanduslikult välja töötatud tarkvara, mis oleks usaldusväärne ja töötaks tõhusalt reaalsetes masinates“.
Tarkvara ei ole füüsiline; loogilised üksused töötavad arvutisüsteemis. Seetõttu peab see olema kavandatud optimaalseks jõudluseks nii riistvara kui ka operatsioonide osas. Nende eesmärkide saavutamiseks kasutavad tarkvarainsenerid arendusmudeleid. Need mudelid hõlmavad tarkvara arendamise peamisi etappe, nagu kujundamine, kodeerimine, tõrkeotsing ja hooldus ühtsesse raamistikku, mis võimaldab tarkvara süstemaatiliselt edasi arendada kogu selle elutsükli jooksul.
Mis vahe on tarkvaratehnikal ja arvutiteadusel?
• Arvutiteadus keskendub arvutamise teoreetilistele aspektidele nii tarkvara kui ka riistvara osas.
• Tarkvaratehnika keskendub tarkvara süstemaatilisele arendamisele. Kodeerimine või programmeerimine on tarkvaraarenduse põhikomponent.
• Tarkvaratehnikat võib vaadelda kui arvutusteooria rakendust (näiteks saab algoritmi efektiivsust mõõta keerukuse abil, mida on kirjeldatud arvutiteaduste teoorias, kuid selle rakendus kuulub tarkvaratehnika valdkonda, kus on kõige sobivam algoritm valitakse keerukuse abil).