Software Engineering vs Computer Science
I det moderne samfund er computere blevet en integreret og uundgåelig del. Men vi fokuserer mindre på den indre funktion af disse velkendte ting. Datalogi er det teoretiske grundlag for computersystemerne, hvorimod software engineering er en anvendelse af disse principper i problemer for at udvikle en softwareløsning.
Computer Science
Computervidenskab er den grundlæggende videnskab inden for computerhardware og -software. Det giver indsigt i mekanismen for både software- og hardwarekomponenter og teoretiske grundlag for beregning til implementering og anvendelse i computersystemer.
Computervidenskab består af mange store underdiscipliner. Beregningsteori, Informations- og kodningsteori, algoritmer og datastruktur samt programmeringssprogsteori hører til den teoretiske datalogi. Anvendte datalogi-underdiscipliner er kunstig intelligens, computerarkitektur og -teknik, computergrafik og visualisering, kryptografi og computersikkerhed, computernetværk, samtidige, parallelle og distribuerede systemer, databaser og informationssøgning og softwareudvikling.
Mange af disse underdiscipliner er baseret på matematiske teorier. Nogle anvendelsesaspekter er forbundet med mekatronik og andre anvendte videnskaber.
Disse underdiscipliner strækker sig også til mindre studieområder. For eksempel indeholder beregningsteorien studieområder såsom automatteori, regneevneteori, kompleksitetsteori, kryptografi og kvanteberegningsteori.
Software Engineering
Softwareteknik kan betragtes som en af de vigtigste underdiscipliner inden for anvendt datalogi. Det fokuserer på at bygge effektive softwaresystemer ved hjælp af en streng ingeniørtilgang. Det kan beskrives som en systematisk, disciplineret, kvantificerbar tilgang til design, udvikling, drift og vedligeholdelse af software og studiet af disse tilgange. Der er ingen accepteret definition af software engineering, men en fortolkning af dens formål.
Fritz Bauer definerede software engineering som "Etablering og brug af sunde tekniske principper for at opnå økonomisk udviklet software, der er pålidelig og fungerer effektivt på rigtige maskiner".
Softwaren er ikke fysisk; det er logiske enheder, der arbejder i et computersystem. Derfor skal den designes til optimal ydeevne i både hardware- og driftsaspekter. For at opnå disse mål bruger softwareingeniører udviklingsmodeller. Disse modeller inkorporerer hovedtrin i softwareudvikling såsom design, kodning, fejlfinding og vedligeholdelse i en sammenhængende ramme, som tillader systematisk fremskridt for softwaren gennem dens livscyklus.
Hvad er forskellen mellem Software Engineering og Computer Science?
• Datalogi fokuserer på de teoretiske aspekter af computeren, både i software og hardware.
• Software engineering fokuserer på udvikling af software systematisk. Kodning eller programmering er en nøglekomponent i softwareudvikling.
• Software engineering kan ses som en anvendelse af beregningsteorien (for eksempel kan en algoritmes effektivitet måles ved hjælp af kompleksitet, som er beskrevet i computervidenskabsteori, men dens anvendelse er inden for softwaredomænet teknik, hvor den bedst egnede algoritme vælges ved hjælp af kompleksiteten).