Site du prof cours/TP – foughali(at)irif.fr
Site du prof TD – bigeon(at)irif.fr
Moodle
Cours d’avant
Projet : Rendu vidéo (1min max par personne) + projet git
Groupe 3
Pour le projet, les profs vont regarder :
- code coverage
- magic numbers (nombre/str en dur)
- formatage consistant
- code duplication
- linter utilisé : sonarqube
- test formel sur le code : key?
- commentaire partout, même si les noms de fonctions sont clairs, parce que on utilises JavaDoc
- MVC
Cf. CM0
Définitions
Programme
Permet de résoudre une problématique exprimée en langage naturel
Programmation
Conversion de langages entre l’homme et la machine
Logiciel
Programme qui a l’utilisateur au cœur du processus, par exemple, il a une licence, des fichiers de configuration, des documentations…
V&V
- Validation : entre le besoin du client et la conception
- Vérification : entre la conception et l’implémentation
L’élémentarité
Une fonction fait une chose, sinon elle n’est pas réutilisable et elle est compliquée pour rien
V&V
Vérification
Méthodes formelles
- Modèle de système (S) \ra systèmes de transitions, code
- Modèle des exigences (\phi) \ra logiques (prédicats [premier ordre], temporelles, …)
Question posée : S = \phi ? \RA Model checking (explorer tous les chemins possibles pour vérifier des propriétés) ou Theorem proving (pareil mais différents, avec KeY par exemple pour les programmes java)
Principe d’élémentarité : on n’appelle pas de tests dans d’autres tests.