Hiver 2002 Petko Valtchev 1 # Le processus de production # Concepts de base # Nature du processus et phases # Modèles de processus # Modèle en cascade # Modèle par prototypage # «Rapid Application Development» # Modèles évolutifs # Modèles avancés 2 1
Connaissances du domaine Jargon technique CLIENT Indécis, opinion variable Besoins ambigus, incomplets Document des besoins Connaissances en logiciel Langages, notations INGENIEUR DU LOGICIEL Spécifications ésotériques Incomplet Imprécis 3 Démarche : Pour corriger les spécifications du logiciel au construction d un prototype (maquette). fur et à mesure, Écouter le client Consulter/ réviser la maquette Faire tester la maquette par le client Une ou plusieurs itérations 4 2
&&&& Deux manières de construire des prototypes: $ Approche classique «prototypage jetable» : $ Réalisation rapide d un prototype dès le début du cycle de vie. Le prototype sert alors de référence pour la définition et la valid ation des spécifications, puis il est «jeté». $ Le système logiciel final ne contient pas d éléments du prototype. $ $ Approche évolutive «prototypage incrémental» : Réalisation dès le début du cycle de vie d un premier prototype (p 1 ). Ajouts progressif de fonctionnalités supplémentaires (raffinemen ts: p 2,p 3, ) jusqu à l obtention du prototype final p n (p n = système visé). 5 &&&& % Le client a tendance à vouloir faire du simple prototype son pro duit final. Il ignore que souvent la façade cache une conception très approximative, voire inexistante. % Les choix des développeurs pris lors du prototypage, et donc sou s fortes contraintes temporelles, ont des fortes chances de deveni choix définitifs. On oublie que ces choix n étaient peut meilleurs du point de vue de la qualité. r de -être pas les 6 3
# Le processus de production # Concepts de base # Nature du processus et phases # Modèles de processus # Modèle en cascade # Modèle par prototypage # «Rapid Application Development» # Modèles évolutifs # Modèles avancés 7 # Cycle de développement très court = 60 à 90 jours. # Adaptation «haute vitesse» du modèle en cascade. # Conception à base de composants. # Pré-conditions essentielles: 1. besoins logiciels bien saisis, 2. portée du projet bien définie, 3. projet facilement «modularisable». 8 4
Cinq grandes phases : 1. Modélisation des fonctions d affaires (business functions): Définition des fonctions du système (en termes d entrées - sorties) et du flot des informations à être manipulées et transformées. 2. Modélisation des données: Définition des structures de données qui vont accueillir les informations manipulées. 3. Modélisation des processus: Définition des processus qui traitent les informations. 4. Génération de l application: Construction de l application à partir des modèles produits auparavant. Utilisation d outils de 4e génération (ex. CASE) pour la généation. 5. Test et livraison de l application. 9 équipe #1 équipe #2 équipe #3 modéliser les fonctions d affaires modéliser les données business modeling data modeling modéliser les processus business modeling process modeling data mode ling process mode ling application generation application generation testing & turnover test & turnover Rapid Application Development 60-90 jours générer l application tester et livrer 10 5
&&&& &&&& &&&& &&&& $ Nécessite des ressources humaines importantes: $ Afin de pouvoir composer le nombre suffisant d équipes. $ Exige l engagement constant du client sous péril de faire échouer le projet. $ Supporte mal des niveaux de risque élevés: $ Le modèle RAD n est pas approprié lorsque des facteurs de risque importants sont présents car ceux -ci peuvent provoquer de retards non-négligeables dans le travail d une des équipes. $ Ex. utilisation de nouvelles technologies $ Portée limitée: $ Le modèle RAD ne se prête pas au développement de certains types de logiciel 11 # Le processus de production # Concepts de base # Nature du processus et phases # Modèles de processus # Modèle en cascade # Modèle par prototypage # «Rapid Application Development» # Modèles évolutifs Modèle incrémental Modèle en spirale # Modèles avancés 12 6
CONSTAT Au sein des modèles vus précédemment: Le système est divisé en composants séparés qui sont développés pour être intégrés à la fin (juste avant les tests et la livraison). $ Afin de permettre un retour de la part du client (usager) plus tôt dans le processus global: $ De versions successives du système sont livrées, avec chaque prochaine version possédant des fonctionnalités de plus en plus complètes vis à vis des besoins du client. $ Un processus global itératif est utilisé permettant de passer plusieurs fois par les différentes phases du développement. $ Ex. $ Modèle par «prototypage incrémental» - une approche évolutive ' Modèle incrémental ' Modèle en spirale 13 Modèles par incrément: le système est séparé en incréments qui sont constitués d un ensemble de composants, chaque incrément développé selon un modèle de processus complet: souvent un modèle en cascade, à la fin de leur cycle de vie (indépendante) des incréments vie nnent s'intégrer, dans l ordre, à un noyau développé au préalable (le plus souvent, l incrément 1) version 1 (noyau) version 2 version finale i1 i2 i1 i2 i1 i4 i3 14 7
incrément 1 (noyau) analyse concept. code test livraison du 1er incrément incrément 2 analysis design code test livraison du 2nd incrément incrément 3 analysis design code test livraison du 3eme incrément incrément 4 analysis design code test livraison du 4eme incrément temps 15 Avantages chaque développement est en soi moins complexe, l intégration des incréments se fait de manière progressive, possibilité (et non obligation!) d une livraison et de mise en service après le développement de chaque incrément, permet une meilleure gestion de l ensemble des ressources allou ées au projet: Risques du temps réduit par rapport au modèle en cascade du coût en effort humain réduit par rapport au RAD: recouvrement entre processus pour les incréments, mis pas de recouvrement entre phases. devoir remettre en cause le noyau ou les incréments précédents, une tâche ardue, ne pas pouvoir intégrer de nouveaux incréments. 16 8
# Le processus de production # Concepts de base # Nature du processus et phases # Modèles de processus # Modèle en cascade # Modèle par prototypage # «Rapid Application Development» # Modèles évolutifs Modèle incrémental Modèle en spirale # Modèles avancés 17 CONSTAT De facteurs comme l évolution des besoins ou leur remise en cause après la livraison, lesquels entraînent un passage supplémentaire par toutes les phases du cycle de vie, ne sont pas reflétés par les modèles vus précédemment. L inévitable remise en cause des résultats d un processus partie l est explicitée sous forme d une spirale dans le modèle du même nom. $ Projet global, divisé en un ensemble de sous-projets réalisés en séquence. $ Sous-projet = un circuit de la spirale de développement (1 ou + tours). $ Chaque tour de la spirale traverse six régions d activités. $ Région d activité = ensemble de tâches spécifiques à réaliser. Chaque tour de la spirale doit produire ses propres résultats: $ un document de spécification, $ un prototype initial, $ une version améliorée du prototype, etc. 18 9
Planification Analyse des risques Discussion avec le Client Évaluation par le Client Ingénierie Construction & Livraison Les itérations sont rendues explicites! 19 Avantages Combine les avantages des modèle en cascade, par prototypage et incrémental. De façon générale, le modèle est réaliste et bien adapté pour le développement de systèmes de taille large. Risques L analyse des risques d inquiéter le client. étant, elle aussi, «évolutive», cela risque Modèle moins connu que les modèles en cascade et par prototypage. Moins de recul, donc difficile d en évaluer l efficacité. 20 10
# Le processus de production # Concepts de base # Nature du processus et phases # Modèles de processus # Modèle en cascade # Modèle par prototypage # «Rapid Application Development» # Modèles évolutifs # Modèles avancés Modèle de développement par composants Modèles centrés sur des méthodes formelles 21 $ Processus de développement similaire à celui en spirale mais dan s lequel l activité d ingénierie a une forme particulière. $ Ingénierie = conception de l application à partir de composants logiciels prêts à l emploi (disponibles sous forme de librairies commerciales) 1. Identification des composants candidats. 2. Chercher composants dans les librairies. 3. Si disponible, extraire les composants. Sinon, les construire 4. soi-même et les ajouter à la librairie. 5. Intégrer les composants à la nième version du système. $ Certains Ateliers de génie logiciel offrent l environnement nécessaire pour ce type de processus. 22 11
# Le processus de production # Concepts de base # Nature du processus et phases # Modèles de processus # Modèle en cascade # Modèle par prototypage # «Rapid Application Development» # Modèles évolutifs # Modèles avancés Modèle de développement par composants Modèles centrés sur des méthodes formelles 23 Notations mathématiques et techniques d analyse rigoureuses pour la spécification, la conception et la vérification de systèmes informatiques. Plusieurs outils CASE disponibles pour les principales méthodes. $ Ex. ' VDM, B, Z, ' CTL, Lotos, etc. $ Avantages = Détection précise $ d ambiguïtés et d erreurs, $ de problèmes de complétude et de cohérence. $ Inconvénients: Coûteux en temps, expertise requise, moyen inadéquat pour communiquer avec le client. 24 12