Wat is software engineering?

Software-ingenieurs en computerprogrammeurs ontwikkelen beide softwaretoepassingen die nodig zijn voor werkende computers. Het verschil tussen de twee posities ligt in de verantwoordelijkheden en de benadering van de baan. Softwareingenieurs gebruiken goed gedefinieerde wetenschappelijke principes en procedures om een ​​efficiënt en betrouwbaar softwareproduct te leveren.

Software engineering 

Software engineering beschouwt de benadering van het ontwikkelen van software als een formeel proces, net zoals bij traditionele engineering. Software-ingenieurs beginnen met het analyseren van gebruikersbehoeften. Ze ontwerpen software, implementeren, testen deze op kwaliteit en onderhouden deze. Ze instrueren computerprogrammeurs hoe ze de code moeten schrijven die ze nodig hebben. Software-ingenieurs kunnen de code al dan niet zelf schrijven, maar ze hebben sterke programmeervaardigheden nodig om met de programmeurs te communiceren en zijn vaak vloeiend in verschillende programmeertalen.

Softwareingenieurs ontwerpen en ontwikkelen computerspelletjes, zakelijke applicaties, netwerkcontrolesystemen en software-besturingssystemen. Ze zijn experts in de theorie van computersoftware en de beperkingen van de hardware waarvoor ze ontwerpen. 

Computerondersteunde software-engineering

Het hele software-ontwerpproces moet formeel worden beheerd lang voordat de eerste regel code wordt geschreven. Softwareingenieurs produceren lange ontwerpdocumenten met behulp van computerondersteunde software engineering tools. De software-engineer converteert vervolgens de ontwerpdocumenten naar ontwerpspecificaties, die worden gebruikt om code te ontwerpen. Het proces is georganiseerd en efficiënt. Er is geen officiële programmering gaande.

Papierwerk

Een onderscheidend kenmerk van software engineering is het papieren spoor dat het produceert. Ontwerpen worden afgetekend door managers en technische autoriteiten, en de taak van kwaliteitsborging is om het papieren spoor te controleren. Veel software-ingenieurs geven toe dat hun taak 70% papierwerk en 30% code is. Het is een dure maar verantwoorde manier om software te schrijven, en dat is een reden waarom elektronische luchtvaartuigen in moderne vliegtuigen zo duur zijn.

Uitdagingen voor software engineering

Fabrikanten kunnen geen complexe levenskritische systemen zoals vliegtuigen, nucleaire reactorbesturingen en medische systemen bouwen en verwachten dat de software bij elkaar wordt gegooid. Ze vereisen dat het hele proces grondig wordt beheerd door software-ingenieurs, zodat budgetten kunnen worden geschat, personeel kan worden aangeworven en het risico op storingen of dure fouten kan worden geminimaliseerd.

Op veiligheidskritieke gebieden zoals luchtvaart, ruimte, kerncentrales, medicijnen, branddetectiesystemen en achtbaanritten, kunnen de kosten van softwarefalen enorm zijn omdat levens in gevaar zijn. Het vermogen van de software-engineer om op problemen te anticiperen en ze te elimineren voordat ze zich voordoen, is van cruciaal belang.

Certificering en onderwijs

In sommige delen van de wereld en in de meeste Amerikaanse staten kun je jezelf geen software-ingenieur noemen zonder formeel onderwijs of certificering. Verschillende grote softwarebedrijven, waaronder Microsoft, Oracle en Red Hat, bieden cursussen voor certificeringen. Veel hogescholen en universiteiten bieden graden in software engineering. Aspirant software-ingenieurs kunnen major in informatica, software engineering, wiskunde of computerinformatiesystemen.

Computer programmeurs

Programmeurs schrijven code volgens de specificaties die hun door software-ingenieurs zijn gegeven. Ze zijn experts in de belangrijkste computerprogrammeertalen. Hoewel ze meestal niet betrokken zijn in de vroege ontwerpfasen, kunnen ze betrokken zijn bij het testen, wijzigen, bijwerken en repareren van de code. Ze schrijven code in een of meer van de veelgevraagde programmeertalen, waaronder:

  • SQL
  • JavaScript
  • Java
  • C #
  • Python
  • PHP
  • Ruby on Rails
  • Snel
  • Doelstelling C
  • PHP

Ingenieurs versus programmeurs

  • Software engineering is een teamactiviteit. Programmeren is vooral een eenzame activiteit. 
  • Een software-ingenieur is betrokken bij het volledige proces. Programmering is een aspect van softwareontwikkeling. 
  • Een software-ingenieur werkt aan componenten met andere ingenieurs om een ​​systeem te bouwen. Een programmeur schrijft een compleet programma.