Développement logiciel

Le développement de logiciel est l'activité de créér un logiciel ou plus précisément d'étudier, de concevoir, réaliser, modifer, finaliser, maintenir et améliorer des logiciels. Les acteurs du développement logiciel sont amenés à créer des interfaces utilisateurs pour exploiter de l'information (jeux, bases de données, calculs, multimédia, ...) : Les enjeux sont différents au niveau de ces deux populations d'acteurs, même s'ils se rejoignent au final (heureusement !).

Les enjeux du développement sont donc bien sûr d'ordre qualitatif mais aussi la plupart du temps financiers, en fonction de la répartition des responsabilités.

La création d'un logiciel et son développement sont souvent collaboratifs, répartis entre ingénieurs informaticiens et donneurs d'ordre disposant de la connaissance des besoins dits "métiers". Un développement logiciel réussi dépend donc de l'implication des techniciens et des usagers. Cette création du logiciel (ou évolution) est une succession d'étapes jalons à franchir, dans un processus qui recouvre des activités dont le périmètre est bien plus large que le développement proprement dit. Elles sont certes nécessaires au développement du logiciel, mais aussi à l'estimation des coûts de réalisation, d'exploitation et donc de retour sur investissement. Une charte de développement de qualité pourrait avoir pour but de réaliser des logiciels fiables, de qualité, correspondant aux attentes de l'usager. Les étapes du processus à respecter sont alors issues du génie logiciel :

Analyse logicielle

Une étape préliminaire primordiale est nécessaire. Pour décrire le logiciel à créer, un modèle théorique est défini en analysant le besoin utilisateur. Cette analyse dresse la liste des fonctions logicielles que le logiciel doit être capable de mettre en oeuvre pour répondre au besoin émis. L'analyse logicielle est une étape de questionnement, d'enquête, de compréhension et de reformulation des besoins, objectifs et gains attendus par l'utilisateur (par des méthodes telles que l'UML, ...). Ce "plan logiciel" ( encore appelé analyse fonctionnelle ) doit être le plus précis possible :

Livrables de l'analyse

Conception logicielle

La conception logicielle détermine les solutions techniques théoriques pour pour satisfaire le cahier des charges. L'ingénierie logicielle emploie diverses méthodes et modèles de solutions déjà éprouvés pour fournir les réponses aux besoins logiciels les plus courants. En ce qui concerne les besoins utrilisateurs d'exception, il peut être nécessaire de réaliser des prototypes. Le résultat du travail effectué sont des documents tels que les diagrammes d'architecture, la description du modèle de données et le diagramme de classes. Les diagrammes utilisent souvent la notation UML1.

Livrable de la conception

Développement logiciel

C'est la phase cruciale du développement d'un logiciel, aussi appelée pahse de réalisation. Les ressources investies dans cette phases seront donc naturellement maximum, et le développement méticuleusement rigoureux. Hors la réalisation dépend du savoir faire des développeurs et chefs de projets, mais aussi trés étroitement des étapes précédentes du processus, dont la précision des réponses sera garante de l'efficacité des équipes de développement.

Livrable du développement logiciel

Déploiement logiciel

C'est dans cette phase que les méthodes d'industrialisation logicielle prennent tout leur sens. Le déploiement logiciel est souvent un processus continu et pas un objectif ponctuel. Il fait appel notemment à la notion de mise à jour. Donc les meilleures pratiques consistent à ne pas le considérer comme final et unique mais plutôt comme répétitif autant de fois que nécessaire, au moment de livraisons "itératives" :

Recette

La reccete fait suite à toute livrasion. L'utilisateur doit prendre le temps de valider que le logiciel créé répond bien aux attentes et sans défaut. Il s'agit souvent de suivre un plan de test du logiciel et pour valider que chaque fonction développée est bien conforme au cahier des charges.

Exploitation

L'exploitation est la phase de vie du logiciel où il est utilisé. Cette phase met souvent en lumière des besoins de correction ou d'évolution :

Maintenance corrective

La maintenance corrective est nécessaire si on décèle un comportement du logiciel en décalage avec ce qui est annoncé dans le cahier des charges. Il s'agit alors de reproduire le bug pour pouvoir déceler précisément le défaut logiciel et corriger la fonction mal développé.

Maintenance évolutive

La maintenance évolutive fait suite à une évolution du besoin, en tout cas une nouvelle demande de fonction. Il s'agit alors d'inscrire la mise en oeuvre de cette nouvelle fonction dans le logiciel, ce qui peut être couteux si son architecture initiale ne le prévoie pas dans son développement.

Informatique : optimisation des coûts | Mentions légales | prestataire informatique