Sommaire - les concepts importants du cours SEG 2501
1. Ingénierie des exigences et spécification de systèmes temps-réels
- la formalisation des exigences: diagrammes MSC ou
diagrammes de séquences de UML
- l'impact des exigences non fonctionnelles (voir
chapitre sur la conception de l'implantation)
- un système comme une composition de composantes (par
exemple, blocs de SDL) avec plusieurs canaux ("ports", "interfaces")
- spécification fonctionnelle en forme d'un modèle
exécutable (par exemple, spécification SDL)
- outils de vérification (par exemple, l'outil TAU
compare un diagramme MSC avec une spécification SDL)
- patrons de conception
- patron d'usine (en SDL: voir l'exemple du jeu du
daemon; en Java, voir exemple dans les notes de cours)
- patron du moniteur (en Java, voir l'exemple de "queue"
dans le livre de Sebesta)
2. Langages, grammaires et analyseurs
- différentes notations (formalismes) pour la définition
de langages (ensemble de séquences d'interactions/symboles)
- expressions régulières (pour séquences de "symboles")
- automates accepteurs (pour séquences de "symboles")
- grammaires (pour séquences de "symboles")
- spécifications SDL (pour séquences d' "interactions")
- MSC (pour séquences d' "interactions")
- équivalence
- entre deux définitions de langage utilisant le même
formalisme
- de même, utilisant des formalismes différents:
transformation d'un formalisme à l'autre (par exemple, expression régulière
vers automate accepteur)
- équivalence de différents formalismes ou définitions,
adaptés pour la génération ou l'analyse (par exemple, comment trouver une
grammaire équivalente qui satisfait les propriétés LL(1) )
- arbre syntaxique et attributs sémantiques
- analyse descendante par procédures récursives
- outils pour la construction de compilateurs: analyse
lexicale (par exemple: Lex), analyse syntaxique (par exemple: Yacc et autres)
- le non-déterminisme au niveau de la spécification
fonctionnelle
- automates non déterministes
- trouver un automate déterministe équivalent (chaqu'un
de ses états représente l'ensemble des états accessibles de l'automate non
déterministe pour la même chaîne d'entrée)
- ambiguïté de l'analyse syntaxique
3. La concurrence: spécification, vérification et implantation
- non-déterminisme au niveau de l'implantation:
interlacement des actions des processus concurrents indépendants (leur vitesse
d'exécution relative n'est pas déterminée): impact sur les tests - la séquence
d'exécution n'est pas contrôlable)
- vérification de systèmes avec concurrence (et
non-déterminisme par interlacement): analyse d'accessibilité
- processus concurrents (processus SDL, Thread en Java):
non-déterminisme par interlacement (voir ci-haut)
- partage de ressources, exclusion mutuelle, blocages,
mesure de prévention de blocages
- coopération entre processus et communication par
messages, files d'attentes (implicites en SDL, explicite en Java)
- le concept de Moniteur
- l'idée de couvrir les fautes possibles lors de la phase
de test
- procédures de récupération de fautes introduites dans
la phase de la conception de l'implantation
Dernière mise à
jour: le 1 avril, 2005