Software-engineering versus informatica
In de moderne samenleving zijn computers een integraal en onvermijdelijk onderdeel geworden. We richten ons echter minder op de innerlijke werking van deze vertrouwde dingen. Informatica is de theoretische basis van de computersystemen, terwijl software-engineering een toepassing is van die principes in problemen om een software-oplossing te ontwikkelen.
Informatica
Computerwetenschap is de basiswetenschap van computerhardware en -software. Het geeft inzicht in het mechanisme van zowel software- als hardwarecomponenten en theoretische grondslagen van berekeningen voor implementatie en toepassing in computersystemen.
Informatica bestaat uit vele grote subdisciplines. Computationele theorie, informatie- en coderingstheorie, algoritmen en datastructuur, en programmeerta altheorie behoren tot de theoretische informatica. Toegepaste informatica-subdisciplines zijn kunstmatige intelligentie, computerarchitectuur en -engineering, 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 kleine studiegebieden. De computationele theorie bevat bijvoorbeeld studiegebieden zoals automatiseringstheorie, 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 engineeringbenadering. Het kan worden omschreven als een systematische, gedisciplineerde, kwantificeerbare benadering van het ontwerp, de ontwikkeling, de exploitatie en het onderhoud van software en de studie van deze benaderingen. Er is geen 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 ontwerpen, coderen, 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 Computerwetenschappen?
• Informatica richt zich op de theoretische aspecten van computergebruik, zowel in software als hardware.
• Software engineering richt zich op het systematisch ontwikkelen van software. Coderen of programmeren 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 computerwetenschapstheorie, maar de toepassing ervan v alt binnen het domein van software engineering waarbij het meest geschikte algoritme wordt geselecteerd door middel van de complexiteit).