Processus de développement de logiciel

Le cycle de vie d’un produit - depuis la création d'une idée pour un produit à travers ...

Problèmes de qualité et de coût du logiciel:

Les raisons:

Développement de logiciel - vu comme une boite noire - - comme une boite blanche

blacckbox whitebox

Problèmes avec l'approche boite noire:

Avantages de l'approche boite blanche:

Processus en cascade

waterfallstepwise QA

Exemple d'activités: activities

Points forts du processus en cascades:

Points faibles du processus en cascades:

Quand utiliser le processus en cascades . . .

Processus itératif

Aussi appelé processus de développement incrémental. Il s'agit de développer le système par cycles répétés (itérations)

iteratif

Processus agile

Insatisfaction avec les processus de développement des années 1980 et 1990 (après des faillites successives) a résulté dans la création de méthodes agiles. Ces méthodes:

L'objectif de ces méthodes est de réduire les frais généraux (overhead) dans le processus de développement (par exemple limiter la documentation) et à être en mesure de répondre rapidement à l'évolution des exigences

MANIFESTO: Nous découvrons des meilleures façons pour développement de logiciels en le faisant et en aidant les autres à le faire. Grâce à ce travail, nous nous sommes rendu-compte que (c'est à dire, les items sur la droite sont utiles, main nous accordant plus d’importance sur les items à gauche):

Principe

Description

Participation du client

Les clients devraient être impliqués tout au long du processus de développement. Leur rôle est de fournir et de prioriser les exigences et d'évaluer les itérations déjà complétées.

Livraison incrémentielle

Le logiciel est développé par incréments avec le client spécifiant les exigences à inclure dans chaque incrément.

Individus et non processus

Les compétences de l'équipe de développement doivent être reconnues et exploitées. Les membres de l'équipe ont la liberté de développer leurs propres méthodes de travail sans processus normatifs.

Acceptez les changements

On suppose que les exigences du système vont changer et on conçoit alors le système pour accommoder ces changements futurs.

Maintenez la simplicité

Concentrer sur la simplicité dans l’architecture du logiciel que vous développez et  dans le processus de développement. Lorsque c’est possible, éliminer les complexités de votre système.

Problèmes avec les méthodes agiles:

Vue vers le futur

De plus en plus, les activités du développement de logiciel peuvent être automatisées en utilisant des outils CASE appropriés. Ce cours donne une introduction à certains de ces outils:

Les diagrammes suivants, proposés par David Harel (l'auteur de Hierachical State Charts), indiquent comment il voit le développement de logiciels dans les décennies qui viennent:

1 2

3


Notes de cours - Gregor v. Bochmann - University of Ottawa. Créées: January 9, 2015 - Note: cette page contient beaucoup de matériel copié des diagrammes Powerpoiont utilisés par Hussein Al Osman pour ce cours en 2014