Atelier 1 : Description des besoins fonctionnels du projet
Les besoins fonctionnels :
• Gestion des utilisateurs :
Ce module se chargera de gérer les comptes utilisateurs, Authentification et
autorisation. Les utilisateurs peuvent s'inscrire, se connecter et gérer leurs profils à
travers ce module.
• Gestion des annonces :
Dans cette partie nous travaillerons à assurer aux utilisateurs la possibilité de
télécharger une annonce après avoir été vérifiée par un modèle de vérification, et
rechercher des offres immobilières, y compris des informations sur les propriétés,
l'emplacement et les prix. L'utilisateur peut également aimer et ne pas aimer les
annonces.
• Gestion de la publicité :
Ce module gérait le placement et l'affichage des publicités sur l'application, y compris
et suivi des performances d'une publicité.
• Gestion des visites :
Ici, l'utilisateur pourra gérer les visites des propriétés. Ils pourraient demander des
visites, consulter leur historique de rendez-vous ; ces visites qui peuvent être réelles
ou virtuelles.
• Gestion de forum :
Une plateforme pour discuter de sujets liés à l'immobilier et partager des
informations et des conseils entre eux.
Besoins non fonctionnels :
Les besoins non fonctionnels décrivent l'ensemble des aspects techniques,
ergonomiques et esthétiques auxquels le système sera soumis pour sa réalisation et
pour son bon fonctionnement. Et concernant notre application, nous avons identifié
les besoins non fonctionnels suivants :
• Performance :
Définissez dans quelle mesure le système logiciel accomplit certaines
fonctions dans des conditions spécifiques. Les exemples incluent la vitesse
de réponse, le débit, le temps d’exécution et la capacité de stockage du
logiciel.
• Sécurité :
Désigne la protection des applications et de leurs données contre les accès
non autorisés et attaques malveillantes. L’objectif est de maintenir la
confidentialité, l’intégrité.
• Maintenabilité :
Représente la facilité de compréhension du code en main par quelqu'un de
nouveau ou par quelqu'un qui ne l'a pas vu depuis un certain temps avec un
minimum d'effort. Dans notre cas, nous avons utilisé la documentation des
commentaires et des fonctions.
• Disponibilité :
Assurer la disponibilité de notre application immobilière est essentiel pour
garantir une bonne expérience utilisateur. Voici quelques outils et
fonctionnalités fournis par Spring Framework et Angular qui peuvent vous
aider : (Spring Data JPA, Monitors and Logging, Angular Router, Error
Handling)
· Framework de test unitaire pour les applications Java. Permet de créer et d'exécuter
des tests unitaires pour vérifier le bon fonctionnement des composants individuels, il
offre plusieurs avantages notamment :
● · Facilité d'Utilisation : JUnit est facile à apprendre et à utiliser. Il utilise des
annotations simples pour définir les cas de test, ce qui facilite la création et
l'exécution des tests.
● · Rapports de Tests : JUnit génère des rapports de tests clairs et détaillés. Ces
rapports indiquent quels tests ont réussi et lesquels ont échoué, ce qui permet aux
développeurs de comprendre rapidement quels aspects du code nécessitent des
corrections.
● · Améliore la qualité du logiciel et contribue à un processus de développement plus
efficace.
Exemple de test pour ‘Ajout Utilisateur’ :
Atelier 2 Elaboration d’un plan de tests fonctionnels
Cas de tests Résultats Validé(oui\non) Observations
attendues
Inscription d'un nouvel L'utilisateur est Oui Vérifiez que les
utilisateur enregistré avec informations de l'utilisateur
succès dans la base sont correctement stockées
de données. et validées.
Connexion d'un utilisateur L'utilisateur est Oui Vérifiez que l'authentification
existant authentifié et fonctionne correctement.
connecté avec
succès.
Inscription d'un nouvel utilisateur L'utilisateur ne peut Non L'application doit valider les
avec un email invalide pas s'inscrire avec adresses e-mail et refuser
un email invalide. l'inscription si l'e-mail est
incorrect
Mise à jour du profil utilisateur Les informations du Oui Assurez-vous que les
profil utilisateur sont modifications du profil sont
mises à jour. correctement enregistrées.
Atelier 3 travail de recherche : outils de test statique
Choix d’outil de test statique : SonarQube :
SonarQube est un outil de test statique ce qui signifie l’examination de code sans
l'exécuter et qui permet de mesurer la qualité du code. Il est utilisé pour identifier et
corriger les défauts de code, améliorer la documentation et la lisibilité du code, et suivre
l'évolution de la qualité du code au fil du temps.
les avantages de SonarQube sont les suivants :
● Détecter les problèmes de code dès leur apparition afin de réduire les coûts liés à
leur correction ultérieure.
● Améliorer la qualité du code en suivant les recommandations et en appliquant des
bonnes pratiques de programmation.
● Adapter les règles de qualité du code pour répondre aux besoins spécifiques du
projet.
● Automatiser l'analyse du code à chaque modification grâce à l'intégration continue.
● Suivre l'évolution de la qualité du code en assurant une traçabilité des problèmes.
● Communiquer efficacement grâce à des rapports et des tableaux de bord visuels.
● Prioriser les efforts de développement en gérant la dette technique.
● Soutenir plusieurs langages de programmation.
● Améliorer la sécurité du code grâce à la détection des vulnérabilités.
● Bénéficier d'une communauté active et d'une mise à jour fréquente grâce au
caractère open source.
SonarQube est un outil puissant pour garantir la qualité et la sécurité du code dans les
projets de développement logiciel.
Atelier 4 Elaboration d’un plan de tests structurels
public User login(String email, String password)
{ User user = userRepository.findByEmail(email);
if (user != null && passwordEncoder.matches(password, user.getPassword()))
{ return user; }
return null; }
Atelier 5 Outil de gestion des tests
Le Choix d’outil de gestion et de suivi d’activité de test :
:
C’est un outil puissant, flexible et facile à utiliser. Il prend en charge les tests
manuels et automatisés, et il est disponible en version gratuite et payante:
Principales fonctionnalités :
● Gestion des cas de test : Vous avez la possibilité de créer, organiser et
classer les cas de test dans Jira en utilisant des projets et des types de
problèmes spécifiques.
● Planification des tests : Les équipes peuvent planifier leurs tests en utilisant
les tableaux Kanban ou Scrum, attribuer les cas de test aux membres de
l'équipe et définir des délais.
● Suivi de l'exécution des tests : Les résultats des tests peuvent être entrés en
utilisant des flux personnalisés et des statuts prédéfinis pour suivre l'état
d'avancement des tests.
● Rapports et tableaux de bord : Jira propose une fonctionnalité de reporting
permettant la création de rapports personnalisés et de tableaux de bord pour
surveiller l'avancement des tests ainsi que d'autres aspects du projet.
● Intégration avec d'autres outils : Jira peut être intégré à plusieurs autres
applications, y compris les outils d'automatisation des tests et la gestion de
versions.
● Personnalisation : Vous avez la possibilité d'adapter les flux de travail, les
champs et les statuts pour répondre aux besoins spécifiques de votre équipe.
● Collaboration : Les équipes peuvent collaborer en ajoutant leurs
commentaires, en reliant les problèmes entre eux et en notifiant les membres
importants au sein du groupe sur les mises à jour importantes.
Avantages :
● Intégration fluide avec d'autres outils Atlassian tels que Confluence,
Bitbucket, etc.
● Grande communauté d'utilisateurs et de modules complémentaires
disponibles.
● Possibilité de personnalisation avancée pour répondre aux besoins
spécifiques de l'équipe.
● Excellente prise en charge des projets de développement Agile.
Inconvénients
● Le coût peut être élevé, surtout si vous utilisez des modules complémentaires
spécifiques.
● Il peut nécessiter un certain effort pour le configurer et le personnaliser selon
vos besoins.
Implémentation du jira software sur notre projet