Programmatūras inženierija pret datorzinātnēm
Mūsdienu sabiedrībā datori ir kļuvuši par neatņemamu un nenovēršamu sastāvdaļu. Tomēr mēs mazāk koncentrējamies uz šo pazīstamo lietu iekšējo darbību. Datorzinātne ir datorsistēmu teorētiskais pamats, turpretī programmatūras inženierija ir šo principu piemērošana problēmu risināšanā, lai izstrādātu programmatūras risinājumu.
Datorzinātne
Datorzinātne ir aparatūras un programmatūras skaitļošanas pamatzinātne. Tas sniedz ieskatu gan programmatūras, gan aparatūras komponentu mehānismā un aprēķina teorētiskos pamatus ieviešanai un piemērošanai datorsistēmās.
Datorzinātne sastāv no daudzām galvenajām apakšnozarēm. Skaitļošanas teorija, informācijas un kodēšanas teorija, algoritmi un datu struktūra, kā arī programmēšanas valodas teorija pieder pie teorētiskās datorzinātnes. Lietišķās datorzinātnes apakšnozares ir mākslīgais intelekts, datoru arhitektūra un inženierija, datorgrafika un vizualizācija, kriptogrāfija un datoru drošība, datortīkli, vienlaicīgas, paralēlas un izkliedētas sistēmas, datu bāzes un informācijas izguve, kā arī programmatūras inženierija.
Daudzas no šīm apakšdisciplīnām ir balstītas uz matemātikas teorijām. Daži lietojuma aspekti ir saistīti ar mehatroniku un citām lietišķajām zinātnēm.
Arī šīs apakšnozares attiecas uz mazāk svarīgām studiju jomām. Piemēram, Skaitļošanas teorija satur tādas studiju jomas kā Automātikas teorija, Skaitāmības teorija, Sarežģītības teorija, Kriptogrāfija un Kvantu skaitļošanas teorija.
Programmatūras inženierijas
Programmatūras inženieriju var uzskatīt par vienu no galvenajām lietišķās datorzinātnes apakšnozarēm. Tā koncentrējas uz efektīvu programmatūras sistēmu izveidi, izmantojot stingru inženiertehnisko pieeju. To var raksturot kā sistemātisku, disciplinētu, kvantitatīvi vērtējamu pieeju programmatūras projektēšanai, izstrādei, darbībai un uzturēšanai, kā arī šo pieeju izpētei. Nav vienas pieņemtas programmatūras inženierijas definīcijas, bet gan tās mērķa interpretācija.
Frics Bauers programmatūras inženieriju definēja kā “pareizas inženierijas principu izveidošanu un izmantošanu, lai iegūtu ekonomiski izstrādātu programmatūru, kas ir uzticama un efektīvi darbojas uz reālām mašīnām”..
Programmatūra nav fiziska; tas ir loģiskas entītijas, kas darbojas datorsistēmā. Tāpēc tas ir jāizveido optimālai veiktspējai gan aparatūras, gan darbības aspektos. Šo mērķu sasniegšanai programmatūras inženieri izmanto attīstības modeļus. Šajos modeļos iekļauti galvenie programmatūras izstrādes soļi, piemēram, projektēšana, kodēšana, problēmu novēršana un uzturēšana vienotā struktūrā, kas ļauj sistemātiski progresēt programmatūrai visā tās dzīves ciklā..
Kāda ir atšķirība starp programmatūras inženieriju un datorzinātnēm?
• Datorzinātne koncentrējas uz skaitļošanas teorētiskajiem aspektiem gan programmatūrā, gan aparatūrā.
• Programmatūras inženierija koncentrējas uz programmatūras izstrādi sistemātiski. Kodēšana vai programmēšana ir programmatūras inženierijas galvenā sastāvdaļa.
• Programmatūras inženieriju var uzskatīt par skaitļošanas teorijas pielietojumu (piemēram, algoritma efektivitāti var izmērīt, izmantojot sarežģītību, kas aprakstīta datorzinātņu teorijā, taču tā pielietojums ietilpst programmatūras inženierijas jomā, kur vispiemērotākais algoritms ir izvēlēts pēc sarežģītības principa).