Software-engineering versus informatica
In de moderne samenleving zijn computers een integraal en onvermijdelijk onderdeel geworden. We concentreren ons echter minder op de innerlijke werking van deze bekende dingen. Informatica is de theoretische basis van de computersystemen, terwijl software engineering een toepassing is van die principes in problemen om een softwareoplossing te ontwikkelen.
Computertechnologie
Computerwetenschap is de basiswetenschap van computerhardware en -software. Het geeft inzicht in het mechanisme van zowel software- als hardwarecomponenten en theoretische grondslagen van berekening voor implementatie en toepassing in computersystemen.
Computerwetenschappen bestaan uit veel grote subdisciplines. Computationele theorie, informatie- en coderingstheorie, algoritmen en datastructuur, en programmeertaaltheorie behoren tot de theoretische informatica. Toegepaste informatica-subdisciplines zijn kunstmatige intelligentie, computerarchitectuur en -techniek, computergraphics en -visualisatie, cryptografie en computerbeveiliging, computernetwerken, gelijktijdige, parallelle en gedistribueerde systemen, databases en het ophalen van informatie, en software-engineering.
Veel van deze subdisciplines zijn gebaseerd op wiskundige theorieën. Sommige toepassingsaspecten zijn verbonden met mechatronica en andere toegepaste wetenschappen.
Deze subdisciplines strekken zich ook uit tot kleinere studiegebieden. De computertheorie omvat bijvoorbeeld studiegebieden zoals automaattheorie, berekenbaarheidstheorie, complexiteitstheorie, cryptografie en kwantumcomputertheorie.
Software-engineering
Software engineering kan worden beschouwd als een van de belangrijkste subdisciplines van toegepaste informatica. Het richt zich op het bouwen van effectieve softwaresystemen met behulp van een rigoureuze technische benadering. Het kan worden omschreven als een systematische, gedisciplineerde, kwantificeerbare benadering van het ontwerp, de ontwikkeling, de bediening en het onderhoud van software, en de studie van deze benaderingen. Er is niet één geaccepteerde definitie van software engineering, maar een interpretatie van het doel ervan.
Fritz Bauer definieerde software engineering als "Het vaststellen en gebruiken van degelijke technische principes om economisch ontwikkelde software te verkrijgen die betrouwbaar is en efficiënt werkt op echte machines".
Software is niet fysiek; het zijn logische entiteiten die binnen een computersysteem werken. Daarom moet het worden ontworpen voor optimale prestaties in zowel hardware- als operationele aspecten. Om deze doelen te bereiken, gebruiken software-ingenieurs ontwikkelingsmodellen. Deze modellen omvatten de belangrijkste stappen van softwareontwikkeling, zoals ontwerp, codering, probleemoplossing en onderhoud, in een samenhangend raamwerk dat systematische voortgang van de software gedurende zijn levenscyclus mogelijk maakt.
Wat is het verschil tussen Software Engineering en Computer Science?
• Informatica richt zich op de theoretische aspecten van het computergebruik, zowel in software als hardware.
• Software engineering richt zich op het systematisch ontwikkelen van software. Codering of de programmering is een belangrijk onderdeel van software engineering.
• Software engineering kan worden gezien als een toepassing van de computationele theorie (de efficiëntie van een algoritme kan bijvoorbeeld worden gemeten met behulp van complexiteit, die wordt beschreven in de informatica-theorie, maar de toepassing ervan valt binnen het domein van software-engineering waar de meest geschikte algoritme wordt geselecteerd door middel van de complexiteit).