Softwareontwikkelstraat
Een softwareontwikkelstraat of softwarefabriek is een gestructureerde verzameling van verwante softwarecomponenten die helpen bij het ontwikkelen van softwareproducten volgens specifieke gedefinieerde eisen door middel van een assemblageproces. Een ontwikkelstraat past de productietechnieken en beginselen toe op de ontwikkeling van software om de voordelen van de traditionele productie na te bootsen.

Beschrijving 
Gereedschappen waar een softwareontwikkelstraat gebruik van kan maken zijn onder andere een versiebeheersysteem, een build automatiseringssysteem (bv. Ant, Gradle, Maven, NPM), unittesten,  continue integratie/aflevering gereedschappen (bv. Jenkins, Gitlab CI), probleemmanagement, en een toepassing voor projectmanagement.

Doel 
Een ontwikkelstraat maakt dus gebruik van een reeks van gereedschappen en ingerichte processen die ervoor zorgen dat het ontwikkelproces van de software zoveel mogelijk wordt geautomatiseerd. De voordelen van een ontwikkelstraat zijn consistentie, kwaliteit en productiviteit.

Een softwareontwikkelstraat adresseert het probleem van traditionele softwareontwikkeling waarbij toepassingen worden ontwikkeld zonder optimaal gebruik te maken van de kennis en bronnen die al in eerdere vergelijkbare toepassingen zijn ontwikkeld. Training, documentatie, en frameworks worden gebruikt om dit probleem aan te pakken.

Echter, bij het ontwikkelen van meerdere toepassingen kan dit leiden tot een inefficiënt en foutgevoelig proces. De softwareontwikkelstraat voegt daarom bewezen routines samen in een pakket, dat als leidraad wordt gebruikt in projectteams.

Componenten 
Een softwareontwikkelstraat is uniek en bevat daarom ook een unieke verzameling bronnen die zijn ontwikkeld voor een specifiek type toepassing. Algemeen gezien bevat een softwareontwikkelstraat bronnen van de volgende types:

 Fabrieksschema, een document die de bronnen categoriseert en opsomt om een systeem te bouwen en onderhouden
 Referentie-implementatie, voorbeelden van eindproducten als hulpmiddel voor ontwikkelaars
 Leidraad en patronen voor architectuur, geeft uitleg en motivatie over ontwerpkeuzes
 Procedures en instructies voor taken
 Recepten, om snel taken af te ronden
 Sjablonen, vooraf gefabriceerde elementen
 Ontwerpers, informatie die ontwikkelaars kunnen gebruiken voor het modelleren van applicaties op een hoger abstract niveau
 Herbruikbare programmacode, voor vaak voorkomende functionaliteit en mechanismes

Zie ook 
 Softwareontwikkeling
 Softwareontwikkelmethode
 OTAP

Software engineering