Loading AI tools
persoon die zich bezighoudt met het programmeren van software Van Wikipedia, de vrije encyclopedie
Een softwareontwikkelaar is een persoon die zich bezighoudt met het programmeren van software. Met de term kan ook een volledig bedrijf bedoeld worden. Een softwareontwikkelaar wordt ook wel programmeur, computerprogrammeur of applicatieontwikkelaar genoemd.
Een bedrijf dat software uitgeeft wordt een softwarebedrijf of een softwarehuis genoemd. De term applicatieontwikkelaar wordt bijna uitsluitend gebruikt voor een persoon die op een toegepast niveau programmeert, waar het aanspreken van bestaande software-componenten belangrijker is dan het begrijpen van technische details achter software.
In de begindagen van de computer hield een programmeur zich nog bezig met de hardware en programmeerde zij (het waren meestal vrouwen)[bron?] de computer door het maken van de verbindingen, bijvoorbeeld door het plaatsen en verwijderen van stekkers en verbindingen. Tegenwoordig bestaan er programmeertalen die de programmeur veel hulpmiddelen aanreiken.
Het wetenschappelijk veld dat zich bezighoudt met softwareontwikkeling wordt software engineering genoemd. Dit is een vakgebied binnen de informatica.
Het ontwikkelen van software is het totale proces van het schrijven van software. Dit bestaat uit een aantal stappen waarvan het eigenlijke programmeren stap twee, drie en vier beslaat. Niet voor ieder te ontwikkelen programma zijn alle stappen gebruikelijk, of zelfs maar relevant (lang niet ieder programma heeft een zo uitgebreide gebruiksinterface dat deze afzonderlijk geëvalueerd zal worden).
Deze stappen worden in grotere projecten doorgaans niet door dezelfde personen genomen. Bovendien worden niet al deze stappen uitgevoerd voor elk stuk software. Voor typische server software geldt over het algemeen dat er geen gebruikersinterface is in de betekenis zoals die hierboven wordt gebruikt.
De ervaring leert dat in dit traject het feitelijk programmeren, ook wel de implementatie genoemd, slechts 30 tot 35% van de tijd in beslag neemt. Een andere ervaring is dat waar 1 programmeur 1 maand voor nodig heeft, doen 2 programmeurs in 2 maanden; de stap naar teamwerk is een heel grote stap die in een niet al te groot project vaak averechts werkt. Een veelgebruikte benaming voor dit verschijnsel is de 'mythical man month'. Een vergelijking die vaak wordt gebruikt is dat 1 zwangerschap niet sneller kan verlopen door 9 vrouwen tegelijkertijd zwanger te laten zijn. Dit verschijnsel is een manifestatie van de onmogelijkheid om een bepaalde taak in kleinere taken onder te verdelen. Op een bepaald moment is de inspanning om te communiceren met de andere leden van een team zo groot dat de productiviteit van het totale team terugloopt als er meer mensen aan het team worden toegevoegd.
Berucht is ook de 80/20-regel: 80% van de applicatie wordt geschreven in 20% van de tijd. 80% van de tijd is nodig om de resterende 20% functionaliteit te ontwikkelen. In de praktijk betekent dit ook zoveel als: software is nooit af.
Een softwareontwikkelmethode wordt gebruikt om het ontwikkelproces systematisch aan te pakken. De hierboven beschreven stappen hebben binnen de verschillende ontwikkelmethodes hun eigen plaats. Ontwikkelmethodes zijn in te delen in categorieën:
Een watervalmethode bestaat uit een aantal stappen die na elkaar worden doorlopen. Het eindresultaat van een stap is het beginpunt voor de volgende stap. Dit is de klassieke manier om automatiseringsprojecten aan te pakken. Een nadeel van deze methode is de doorlooptijd die nodig is om tot het eindresultaat te komen. Bovendien wordt uitgegaan van de veronderstelling dat bij de start van een project alle eisen en wensen bekend zijn. In de praktijk is dit over het algemeen niet het geval.
Iteratieve methodes lijken op watervalmethodes, maar gebruiken iteraties om delen van de functionaliteit te bouwen. Zo kan bijvoorbeeld eerst de functionaliteit rond de invoer van gegevens worden gemaakt en getest, waarna verder wordt gegaan met een iteratie waarin de uitvoer wordt gebouwd. Door deze onderverdeling in kleinere delen is het gemakkelijker om in te spelen op wijzigende eisen en wensen. Daarbij is de planning beter te controleren.
In de praktijk zijn verschillende methodes te combineren. Niet elke stap uit een bepaalde methode is verplicht. Wel wordt elke stap methodisch uitgevoerd, het mag nooit zoiets zijn als 'we rommelen maar wat aan, en als het werkt zijn we blij', wat bij amateur-programmeurs wel regelmatig voorkomt.
Voorbeelden van softwareontwikkelmethodes zijn eXtreme Programming en Rapid Application Development.
Voor het maken van de software gebruikt de programmeur verschillende hulpmiddelen:
Een programmeur maakt vaak gebruik van een geïntegreerde ontwikkelomgeving (IDE) waarin teksteditor, compiler, debugger en vele andere softwareontwikkelgereedschappen geïntegreerd zijn.
Veel IDE's zijn voor slechts één technologie, vaak van dezelfde leverancier, geschikt. Enkele IDE leveranciers bieden hiervoor een oplossing, waarmee in één IDE met verschillende compilers of debuggers gewerkt kan worden.
Om het hele softwareontwikkelproces te beheersen wordt vaak gebruikgemaakt van algemene projectmanagementsoftware, zoals programma's om Gantt-charts te maken, kosten te beheersen en communicatie binnen een groep te faciliteren (Group Support Systems). Om bij te houden welke fouten zijn gevonden en opgelost wordt vaak een issue tracker gebruikt.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.