Software Engineering vs Computer Science
I moderne samfunn har datamaskiner blitt en integrert og uunngåelig del. Vi fokuserer imidlertid mindre på de kjente tingenees indre virkninger. Datavitenskap er det teoretiske grunnlaget for datasystemene, mens programvare engineering er en anvendelse av disse prinsippene i problemer for å utvikle en programvare løsning.
Datavitenskap
Datavitenskap er grunnleggende vitenskap for maskinvare og programvare. Det gir innsikt i mekanismen til både programvare og maskinvarekomponenter og teoretiske grunnlag for beregning for implementering og anvendelse i datasystemer.
Datavitenskap består av mange store deldisipliner. Beregningsteori, informasjon og kodingsteori, algoritmer og datastruktur og programmeringsspråksteori tilhører den teoretiske informatikk. Anvendte datavitenskapsunderdisipliner er kunstig intelligens, dataarkitektur og ingeniørfag, datagrafikk og visualisering, kryptering og datasikkerhet, datanettverk, samtidige, parallelle og distribuerte systemer, databaser og informasjonssøking og programvare engineering.
Mange av disse delfagene er basert på matematiske teorier. Noen applikasjonsaspekter er knyttet til mekatronikk og annen anvendt vitenskap.
Også disse underdisiplinene strekker seg til mindre studieområder. For eksempel inneholder Beretningsteorien studieområder som Automateteori, Beregnbarhetsteori, Kompleksitetsteori, Kryptografi og Quantum-beregningsteori.
Software Engineering
Programvareingeniør kan betraktes som en av de store deldisiplinene i anvendt datavitenskap. Det fokuserer på å bygge effektive programvare systemer ved hjelp av en streng engineering tilnærming. Det kan beskrives som en systematisk, disiplinert, kvantifiserbar tilnærming til design, utvikling, drift og vedlikehold av programvare og studiet av disse tilnærmingene. Det er ingen akseptert definisjon av programvare engineering, men en tolkning av dens formål.
Fritz Bauer definerte programvareteknikk som "Etablering og bruk av lydtekniske prinsipper for å skaffe økonomisk utviklet programvare som er pålitelig og fungerer effektivt på ekte maskiner".
Programvaren er ikke fysisk; Det er logiske enheter som arbeider i et datasystem. Derfor må den utformes for optimal ytelse både i maskinvare- og driftsaspekter. For å oppnå disse målene bruker programvareingeniører utviklingsmodeller. Disse modellene inneholder de viktigste trinnene i programvareutvikling som design, koding, feilsøking og vedlikehold i et sammenhengende rammeverk som muliggjør systematisk fremgang av programvaren gjennom livssyklusen.
Hva er forskjellen mellom Software Engineering og Computer Science?
• Datavitenskap fokuserer på de teoretiske aspektene av databehandlingen, både i programvare og maskinvare.
• Programvareutvikling fokuserer systematisk på utvikling av programvare. Koding eller programmering er en nøkkelkomponent i software engineering.
• Programvareutvikling kan sees som en applikasjon av beregningsteori (for eksempel kan en algoritms effektivitet måles ved hjelp av kompleksitet, som er beskrevet i datavitenskapsteori, men det er søknad innen programvareområdet hvor den mest egnede algoritmen er valgt ved hjelp av kompleksiteten).