SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Analyse et Conception
de Systèmes
Enseignant : Hamza El Maadani
Unités d'apprentissage
• Rôle de l'analyste et cycles chronologiques de développement de systèmes
• Langage de modélisation unifié
• Techniques utilisant les méthodologies Agiles
1ère Unité
• Rôle de l'analyste et cycles chronologiques de développement de
systèmes
1ère Unité RÔLE DE L'ANALYSTE ET CYCLES
CHRONOLOGIQUES DE
DÉVELOPPEMENT DE
SYSTÈMES
1ère séance
Introduction
• Le Standish Group (société internationale indépendante de conseil en recherche
informatique) a posé les questions suivantes aux cadres de l'informatique
 D’où la nécessité d'un ensemble de méthodes et techniques pour augmenter les
chances de réussite d'un projet
Qu’est-ce qui fait qu’un projet IT réussit ? Qu’est-ce qui fait qu’un projet est mis à mal ?
Introduction
• Le génie logiciel est l'application de principes et de techniques de l'ingénierie pour le
développement de logiciels de manière efficace et fiable.
• Cela nécessite l'application de méthodes de développement de logiciels rigoureuses, telles
que la planification et la gestion de projet, l'analyse et la conception de logiciels,
l'implémentation et le test de logiciels, ainsi que la maintenance et la documentation
Le rôle de l'analyste
• L'analyste de systèmes est un professionnel chargé de comprendre les besoins des
utilisateurs et de définir les exigences pour les systèmes informatiques qui répondront à
ces besoins. Il travaille souvent en étroite collaboration avec les utilisateurs pour
comprendre leurs besoins et avec les développeurs de logiciels pour traduire ces besoins
en spécifications fonctionnelles et techniques.
• les compétences d'un analyste de systèmes incluent :
• La communication
• La connaissance des processus de développement de logiciels
• La connaissance des technologies de l'information
• La capacité à analyser et à résoudre les problèmes
• La capacité à travailler en équipe.
Le Cycle de vie de
développement des
logiciels
Le cycle de vie de développement
de logiciel (SDLC en anglais pour
Software Development Life Cycle)
est un processus qui définit les
étapes nécessaires pour
développer un logiciel de manière
efficace et fiable. Il existe de
nombreux modèles de cycle de
vie de développement de logiciel,
mais tous incluent généralement
les étapes suivantes
Exigences et Analyse
La phase d'exigences et d'analyse du cycle de vie du développement logiciel (SDLC)
consiste à déterminer et à analyser en détail les exigences fonctionnelles et non
fonctionnelles du logiciel à développer. Cette phase inclut la collecte des besoins des
utilisateurs finaux et la traduction de ces besoins en exigences précises et détaillées,
ainsi que l'analyse de la faisabilité technique et financière et l'identification de tout
risque potentiel associé au développement du logiciel. Cette phase est cruciale pour
élaborer un plan de développement solide et pour s'assurer que le logiciel répond
aux besoins des utilisateurs.
 Résultat : Cahier de charges
Conception
• La phase de conception du SDLC est l'étape durant laquelle on définit les spécifications du système et on crée les
plans de conception. Elle se divise généralement en plusieurs sous-étapes, qui incluent :
• Conception de la solution : pendant cette étape, on crée un modèle de la solution proposée qui décrit
comment le système répondra aux exigences recueillies en phase d'analyse des besoins.
• Planification de la réalisation : cette étape consiste à définir le calendrier et les ressources nécessaires pour
développer le système.
• Conception détaillée : pendant cette étape, on crée les plans de conception détaillés qui décrivent comment
chaque partie du système sera développée et comment elles interagiront entre elles.
• La phase de conception est cruciale car elle permet de définir les exigences du système et de créer un plan de
développement qui guidera la réalisation du projet.
Résultat :
• Document de spécifications des exigences logicielles
• Planning du projet
• Plan de test
Mise en œuvre
• Le codage des programmes consiste à traduire en code, compréhensible par un
ordinateur, l'architecture technique, qui a été conçue.
• Chaque programme, ou sous-programme, va être confié à un développeur qui le traduira
dans un langage de programmation qui sera fonction du projet (exemples de langage :
Cobol, Fortran, C, C++, Visual Basic, HTML, Java, DELPHI , C#...), compatible avec le
système d'exploitation (exemple de système d'exploitation : OS. UNIX, DOS,WINDOWS xx,
NT,XP, Linux...) et le matériel utilisé.
Résultat : Code source de l'application
Test
• Le code crée doit répondre à des critères de qualité : clarté, lisibilité, modularité... Il doit
être documenté avec des commentaires nombreux et explicites qui permettront une
compréhension aisée pour les personnels chargés de la maintenance ultérieurement.
• On peut parler de 3 types de test :
• Test unitaire : teste si le bout de code fonctionne de la façon dont elle a été conçue.
Exemple : une fonction qui fait la division ne permet pas de diviser sur zéro
• Test d'intégration : Teste si un bout de code n'impacte pas un autre code déjà existant.
Exemple : Changer une variable globale qui est utilisée dans une autre fonctionnalité
• Test d'acceptation utilisateur (recette) : Ensemble de tests réalisés par le les
utilisateurs du futur système afin de vérifier que les exigences formulées par le client
sont bien satisfaites avec le niveau de qualité requis.
Déploiement
• Lorsque le client confirme que le produit développé respecte les exigences fonctionnelles
et techniques, le fournisseur déploie la nouvelle solution en la rendant disponible chez
tous les utilisateurs cibles (serveur web, google play, appStore,)
Maintenance
L’objectif de cette septième étape est de conserver le système/logiciel dans un état tel qu'il
pourra continuer d'être exploité, longtemps après son installation. En fait avec le temps, des
événements surgissent qui viennent perturber plus ou moins gravement l'exploitation. Ces
événements, sont générateurs de modifications. Il est possible de, les classer en deux
catégories :
• Les anomalies de fonctionnement : Maintenance corrective
• Les évolutions fonctionnelles ou techniques : Maintenance évolutive
Les modèles de cycle de vie logiciel
Le modèle en cascade
Le modèle en cascade
• Chaque phase doit se terminer pour commencer la suivante.
• Des documents sont produits pour concrétiser la réalisation de chaque phase.
• La production de documents entre chaque phase améliore le suivi du projet.
• Impose une importante réflexion sur les choix faits car le coût de la correction d’une
erreur est important.
• Adapte pour des projets de petite taille, et dont le domaine est bien maitrisé.
Le modèle en cascade
• Problèmes
• Il est difficile de séparer les étapes
• On peut l’utiliser quand les besoins sont bien définis et ils sont stables.
• Avantages
• Bien documenté à chaque phase
• Inconvénients
• Rigide (on ne peut pas de répondre au besoins nouveaux ou modifiés des clients)
Modèle en V
Modèle incrémental
Modèle incrémental
• Concevoir et livrer au client un sous-ensemble minimal et fonctionnel du système
autrement dit, le produit est délivré en plusieurs fois, de manière incrémentale, c’est à
dire en le complétant au fur et à mesure et en profitant de l’expérimentation
opérationnelle des incréments précédents.
• Procéder par ajouts d'incréments minimaux jusqu'a la fin du processus de développement
• Avantages : meilleure intégration du client dans la boucle, produit conforme a ses attentes
Présentation du travail
L'étudiant devra travailler dans une grande équipe pour organiser le début d'un projet de
développement fictif. Le projet sera fait en développement continu et devra respecter un
échéancier de livrable. Durant le processus, les étudiants pourront demander la rétroaction
du professeur pour pouvoir améliorer leur projet. Après la remise du livrable, l'enseignant
corrigera les différentes étapes de la planification, gestion et création du projet, comme la
création des tâches, la séparation des tâches, la création des différents environnements de
travail, les traces du travail, la documentation du projet ainsi que la documentation du
livrable.
Organisation du travail
• Se répartir en groupe de 6.
• M'envoyer un email avec les membres et le responsable du groupe au plus tard dans deux
jours
• Les TAF feront foi d'évaluation sommative
TAF : Le métier d'analyste concepteur
• Enoncé : L'analyste concepteur joue un rôle essentiel dans le développement de
systèmes informatiques et de logiciels. Ecrire un document sur les qualités essentielles
requises pour un analyste concepteur, en mettant l'accent sur:
• les compétences techniques
• les compétences en communication
• Les compétences interpersonnelles.
• Livrable : Dresser une liste des cinq qualités les plus importantes pour un analyste
concepteur dans chaque catégorie de compétences en justifiant vos réponses (1
document par groupe)
• Délai de livraison : Semaine prochaine. Un pigeonnier sera créé pour cette fin

Weitere ähnliche Inhalte

Ähnlich wie RA et CCDS - Séance 1.pptx

Cours Séance 2 4th (2).pdf
Cours Séance 2 4th (2).pdfCours Séance 2 4th (2).pdf
Cours Séance 2 4th (2).pdf
OumaimaZiat
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
informatiquehageryah
 

Ähnlich wie RA et CCDS - Séance 1.pptx (20)

Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptx
 
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
 
Qualité logiciel - Generalités
Qualité logiciel - GeneralitésQualité logiciel - Generalités
Qualité logiciel - Generalités
 
La Conduite de projet
La Conduite de projetLa Conduite de projet
La Conduite de projet
 
cours-gratuit.com--id-12146.ppt
cours-gratuit.com--id-12146.pptcours-gratuit.com--id-12146.ppt
cours-gratuit.com--id-12146.ppt
 
Expression des besoins pour le SI
Expression des besoins pour le SIExpression des besoins pour le SI
Expression des besoins pour le SI
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 
Conduite d'un projet informatique - Assurance Qualité et Aspects Juridiques
Conduite d'un projet informatique - Assurance Qualité et Aspects JuridiquesConduite d'un projet informatique - Assurance Qualité et Aspects Juridiques
Conduite d'un projet informatique - Assurance Qualité et Aspects Juridiques
 
E-business - développement
E-business - développementE-business - développement
E-business - développement
 
Cours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptCours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.ppt
 
Gestion de projet #2 : méthodes
Gestion de projet #2 : méthodesGestion de projet #2 : méthodes
Gestion de projet #2 : méthodes
 
Cours Séance 2 4th (2).pdf
Cours Séance 2 4th (2).pdfCours Séance 2 4th (2).pdf
Cours Séance 2 4th (2).pdf
 
Assurance qualité
Assurance qualitéAssurance qualité
Assurance qualité
 
Rad
RadRad
Rad
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
 
Method XP
Method XP Method XP
Method XP
 
12 agile
12 agile12 agile
12 agile
 

RA et CCDS - Séance 1.pptx

  • 1. Analyse et Conception de Systèmes Enseignant : Hamza El Maadani
  • 2. Unités d'apprentissage • Rôle de l'analyste et cycles chronologiques de développement de systèmes • Langage de modélisation unifié • Techniques utilisant les méthodologies Agiles
  • 3. 1ère Unité • Rôle de l'analyste et cycles chronologiques de développement de systèmes
  • 4. 1ère Unité RÔLE DE L'ANALYSTE ET CYCLES CHRONOLOGIQUES DE DÉVELOPPEMENT DE SYSTÈMES
  • 6. Introduction • Le Standish Group (société internationale indépendante de conseil en recherche informatique) a posé les questions suivantes aux cadres de l'informatique  D’où la nécessité d'un ensemble de méthodes et techniques pour augmenter les chances de réussite d'un projet Qu’est-ce qui fait qu’un projet IT réussit ? Qu’est-ce qui fait qu’un projet est mis à mal ?
  • 7. Introduction • Le génie logiciel est l'application de principes et de techniques de l'ingénierie pour le développement de logiciels de manière efficace et fiable. • Cela nécessite l'application de méthodes de développement de logiciels rigoureuses, telles que la planification et la gestion de projet, l'analyse et la conception de logiciels, l'implémentation et le test de logiciels, ainsi que la maintenance et la documentation
  • 8. Le rôle de l'analyste • L'analyste de systèmes est un professionnel chargé de comprendre les besoins des utilisateurs et de définir les exigences pour les systèmes informatiques qui répondront à ces besoins. Il travaille souvent en étroite collaboration avec les utilisateurs pour comprendre leurs besoins et avec les développeurs de logiciels pour traduire ces besoins en spécifications fonctionnelles et techniques. • les compétences d'un analyste de systèmes incluent : • La communication • La connaissance des processus de développement de logiciels • La connaissance des technologies de l'information • La capacité à analyser et à résoudre les problèmes • La capacité à travailler en équipe.
  • 9. Le Cycle de vie de développement des logiciels Le cycle de vie de développement de logiciel (SDLC en anglais pour Software Development Life Cycle) est un processus qui définit les étapes nécessaires pour développer un logiciel de manière efficace et fiable. Il existe de nombreux modèles de cycle de vie de développement de logiciel, mais tous incluent généralement les étapes suivantes
  • 10. Exigences et Analyse La phase d'exigences et d'analyse du cycle de vie du développement logiciel (SDLC) consiste à déterminer et à analyser en détail les exigences fonctionnelles et non fonctionnelles du logiciel à développer. Cette phase inclut la collecte des besoins des utilisateurs finaux et la traduction de ces besoins en exigences précises et détaillées, ainsi que l'analyse de la faisabilité technique et financière et l'identification de tout risque potentiel associé au développement du logiciel. Cette phase est cruciale pour élaborer un plan de développement solide et pour s'assurer que le logiciel répond aux besoins des utilisateurs.  Résultat : Cahier de charges
  • 11. Conception • La phase de conception du SDLC est l'étape durant laquelle on définit les spécifications du système et on crée les plans de conception. Elle se divise généralement en plusieurs sous-étapes, qui incluent : • Conception de la solution : pendant cette étape, on crée un modèle de la solution proposée qui décrit comment le système répondra aux exigences recueillies en phase d'analyse des besoins. • Planification de la réalisation : cette étape consiste à définir le calendrier et les ressources nécessaires pour développer le système. • Conception détaillée : pendant cette étape, on crée les plans de conception détaillés qui décrivent comment chaque partie du système sera développée et comment elles interagiront entre elles. • La phase de conception est cruciale car elle permet de définir les exigences du système et de créer un plan de développement qui guidera la réalisation du projet. Résultat : • Document de spécifications des exigences logicielles • Planning du projet • Plan de test
  • 12. Mise en œuvre • Le codage des programmes consiste à traduire en code, compréhensible par un ordinateur, l'architecture technique, qui a été conçue. • Chaque programme, ou sous-programme, va être confié à un développeur qui le traduira dans un langage de programmation qui sera fonction du projet (exemples de langage : Cobol, Fortran, C, C++, Visual Basic, HTML, Java, DELPHI , C#...), compatible avec le système d'exploitation (exemple de système d'exploitation : OS. UNIX, DOS,WINDOWS xx, NT,XP, Linux...) et le matériel utilisé. Résultat : Code source de l'application
  • 13. Test • Le code crée doit répondre à des critères de qualité : clarté, lisibilité, modularité... Il doit être documenté avec des commentaires nombreux et explicites qui permettront une compréhension aisée pour les personnels chargés de la maintenance ultérieurement. • On peut parler de 3 types de test : • Test unitaire : teste si le bout de code fonctionne de la façon dont elle a été conçue. Exemple : une fonction qui fait la division ne permet pas de diviser sur zéro • Test d'intégration : Teste si un bout de code n'impacte pas un autre code déjà existant. Exemple : Changer une variable globale qui est utilisée dans une autre fonctionnalité • Test d'acceptation utilisateur (recette) : Ensemble de tests réalisés par le les utilisateurs du futur système afin de vérifier que les exigences formulées par le client sont bien satisfaites avec le niveau de qualité requis.
  • 14. Déploiement • Lorsque le client confirme que le produit développé respecte les exigences fonctionnelles et techniques, le fournisseur déploie la nouvelle solution en la rendant disponible chez tous les utilisateurs cibles (serveur web, google play, appStore,)
  • 15. Maintenance L’objectif de cette septième étape est de conserver le système/logiciel dans un état tel qu'il pourra continuer d'être exploité, longtemps après son installation. En fait avec le temps, des événements surgissent qui viennent perturber plus ou moins gravement l'exploitation. Ces événements, sont générateurs de modifications. Il est possible de, les classer en deux catégories : • Les anomalies de fonctionnement : Maintenance corrective • Les évolutions fonctionnelles ou techniques : Maintenance évolutive
  • 16. Les modèles de cycle de vie logiciel
  • 17. Le modèle en cascade
  • 18. Le modèle en cascade • Chaque phase doit se terminer pour commencer la suivante. • Des documents sont produits pour concrétiser la réalisation de chaque phase. • La production de documents entre chaque phase améliore le suivi du projet. • Impose une importante réflexion sur les choix faits car le coût de la correction d’une erreur est important. • Adapte pour des projets de petite taille, et dont le domaine est bien maitrisé.
  • 19. Le modèle en cascade • Problèmes • Il est difficile de séparer les étapes • On peut l’utiliser quand les besoins sont bien définis et ils sont stables. • Avantages • Bien documenté à chaque phase • Inconvénients • Rigide (on ne peut pas de répondre au besoins nouveaux ou modifiés des clients)
  • 22. Modèle incrémental • Concevoir et livrer au client un sous-ensemble minimal et fonctionnel du système autrement dit, le produit est délivré en plusieurs fois, de manière incrémentale, c’est à dire en le complétant au fur et à mesure et en profitant de l’expérimentation opérationnelle des incréments précédents. • Procéder par ajouts d'incréments minimaux jusqu'a la fin du processus de développement • Avantages : meilleure intégration du client dans la boucle, produit conforme a ses attentes
  • 23. Présentation du travail L'étudiant devra travailler dans une grande équipe pour organiser le début d'un projet de développement fictif. Le projet sera fait en développement continu et devra respecter un échéancier de livrable. Durant le processus, les étudiants pourront demander la rétroaction du professeur pour pouvoir améliorer leur projet. Après la remise du livrable, l'enseignant corrigera les différentes étapes de la planification, gestion et création du projet, comme la création des tâches, la séparation des tâches, la création des différents environnements de travail, les traces du travail, la documentation du projet ainsi que la documentation du livrable.
  • 24. Organisation du travail • Se répartir en groupe de 6. • M'envoyer un email avec les membres et le responsable du groupe au plus tard dans deux jours • Les TAF feront foi d'évaluation sommative
  • 25. TAF : Le métier d'analyste concepteur • Enoncé : L'analyste concepteur joue un rôle essentiel dans le développement de systèmes informatiques et de logiciels. Ecrire un document sur les qualités essentielles requises pour un analyste concepteur, en mettant l'accent sur: • les compétences techniques • les compétences en communication • Les compétences interpersonnelles. • Livrable : Dresser une liste des cinq qualités les plus importantes pour un analyste concepteur dans chaque catégorie de compétences en justifiant vos réponses (1 document par groupe) • Délai de livraison : Semaine prochaine. Un pigeonnier sera créé pour cette fin

Hinweis der Redaktion

  1. La phase d'exigences et d'analyse du cycle de vie du développement logiciel (SDLC, pour Software Development Life Cycle) est une étape cruciale dans le processus de développement de logiciels. Elle consiste à déterminer les exigences fonctionnelles et non fonctionnelles du logiciel à développer et à les analyser de manière détaillée afin de pouvoir élaborer un plan de développement solide. Pendant cette phase, il est important de recueillir les besoins des utilisateurs finaux et de les traduire en exigences précises et détaillées. Ces exigences peuvent être documentées sous forme de spécifications fonctionnelles, qui décrivent les fonctionnalités du logiciel et comment elles doivent être implémentées. Il est également important de tenir compte des exigences non fonctionnelles du logiciel, telles que les exigences de performance, de fiabilité, de sécurité et de scalabilité. Ces exigences peuvent être documentées sous forme de spécifications non fonctionnelles. Pendant cette phase, il est recommandé de procéder à une analyse approfondie des exigences pour s'assurer qu'elles sont complètes, précises et réalisables. Cela peut inclure l'analyse de la faisabilité technique et financière, ainsi que l'identification de tout risque potentiel associé au développement du logiciel. Une fois que les exigences et l'analyse sont terminées, le projet peut passer à la phase de conception, où le plan de développement détaillé est élaboré et où le logiciel est conçu en utilisant des techniques de conception telles que le modèle MVC (Model-View-Controller).