Développement logiciel
Le terme développement logiciel représente tous les processus impliqués collectivement dans la création de programmes et incarnant chacun une des phases du cycle de développement des systèmes (SDLC, systems development life cycle).
Les méthodologies SDLC couvrent : la conception du logiciel (pour répondre à un besoin métier), le développement du logiciel (pour répondre à une conception précise) et le déploiement du logiciel en production. Une méthodologie doit également prendre en charge la maintenance, bien que cette option reste facultative en fonction du projet.
Le modèle en cascade, méthode SDLC d'origine, est linéaire et séquentiel et suit généralement les étapes dans l'ordre :
1) Identification des logiciels requis 2) Analyse des exigences des logiciels 3) Caractéristiques détaillées des exigences des logiciels 4) Conception des logiciels 5) Programmation 6) Test 7) Maintenance
Les modèles en cascade ou similaires sont considérés comme des méthodologies prédictives, par opposition aux modèles adaptatifs que sont le développement agile de logiciels (ASD, agile software development), le développement rapide d'applications (RAD), le développement conjoint d'applications (JAD), le modèle en fontaine, le modèle en spirale, le modèle build and fix (création/réparation) et le modèle synchronize-and-stabilizesynchronisation/stabilisation. Il arrive fréquemment que plusieurs modèles soient combinées au sein d'une méthodologie quelque peu hybride, cas du développement de logiciels open source (OSSD, open-source software development), par exemple.
Le développement logiciel remonte aux environs de 1810, lorsque Joseph Marie Jacquard a eu l'idée d'utiliser des cartes perforées pour guider les motifs tissés dans ses métiers. Ce n'est toutefois qu'en 1949 que John Mauchly a mis au point le premier langage de programmation, Brief Code (connu par la suite sous le nom de Short Code).