FAQ

Original: http://www.statestep.com/faq.html

 

 

     Statestep

 

Ce que je peux utiliser Statestep pour ?

______________________________________________________________________________

Ce que je peux utiliser Statestep pour ?
Il est difficile d’anticiper toutes les manières dans lesquelles il pourrait être utile. Dans le domaine du génie logiciel, il est conçu pour supporter une certaine méthode de spécification qui s’est révélée précieuse dans le cadre de systèmes interactifs intégrés (bien qu’il n’adaptera pas tous ces systèmes). Il pourrait également être utilisée, par exemple, pour produire un test oracle pour éviter de devoir valider le test sorties manuellement.
Plus généralement, il a des applications potentielles dans tous les domaines où vous voudra peut-être envisager de nombreuses combinaisons de circonstances – en particulier où, en raison du très grand nombre de combinaisons, vous ne pourriez pas précédemment imaginé telle une approche approfondie était même possible. Peut-être le meilleur moyen de se faire une idée de si et comment il peut être utile à vous est de parcourir les premières pages de deux ou trois du tutoriel.
______________________________________________________________________________
Quelle est la différence entre les outils de tableau Statestep et décision ?
Vous pouvez utiliser Statestep simplement comme un outil de table de décision. Utilisé de cette façon, Statestep possède une interface unique qui vous permet de créer facilement de nouvelles règles pour les cas non couverts, même si vous essayez de gérer des millions ou des milliards de combinaisons – alors qu’un outil de table de décision ordinaire peut commencer à devenir difficile à manier avec seulement des centaines de combinaisons. Statestep permet aussi, pour les cas impossibles à traiter beaucoup plus efficacement que la stratégie de la « règle de factice » table d’outils de décision. En outre, vous n’êtes pas encore limité à une représentation tabulaire de conditions de règle : vous pouvez utiliser des formules partout où il serait inefficace ou « dangereux » d’utiliser uniquement une table.
Cependant, Statestep peut également être utilisé pour créer un modèle de machine à états finis comme une manière de décrire le comportement du système ; en effet, c’est ce qu’il est conçu pour. Et il est également possible d’utiliser la table de la contrainte comme un élément autonome pour explorer les relations logiques, de trouver des contradictions, etc..
______________________________________________________________________________
Avons-nous le temps d’utiliser Statestep ?
Si elle est adaptée à la spécification de votre système, puis il devriez gagner vous du temps. En fait, l’approche que statestep prend en charge son origine dans l’industrie d’un besoin commercial pour développer des logiciels pour un système embarqué dans un échéancier très serré. Parce que les erreurs de spécification des coûts beaucoup plus de temps à réparer quand découvert plus tard dans un projet, un peu de temps supplémentaire passé créant une meilleure spécification signifie une grande économie en temps de développement global.
En outre, contrairement aux techniques qui nécessitent un gros investissement initial en formation, Statestep est relativement simple. Dans la pratique, les modèles finalisés ont retrouvé être compréhensible avec peu ou aucune explication. (Mise en garde : formules, qui sont facultatives, peuvent causer des difficultés. Si vous utilisez les formules puis c’est une bonne idée de les compléter avec des descriptions textuelles.)
______________________________________________________________________________
Comment Statestep comparer à « formal methods » ?
Statestep partage les avantages communs aux méthodes formelles, car elle aide à créer des spécifications qui sont précis, cohérent et non ambiguë. Toutefois, une faiblesse reconnue de méthodes formelles en général est qu’ils sont faibles à dénoncer les erreurs d’omission. Statestep répond à cette faiblesse en vous forçant à réfléchir à comment votre système doit répondre dans tous les cas, d’une manière globale explicitement.
Statestep est également beaucoup plus facile à apprendre et à utiliser que les méthodes plus formelles. Côté négatif, il est généralement moins évolutif, au moins dans sa forme élémentaire, et aussi plutôt plus spécialisé, qui réduit le nombre de situations dans lesquelles il y a lieu.
______________________________________________________________________________
Comment Statestep se compare-t-il aux autres méthodes sous forme de tableau ?
Il existe plusieurs autres méthodes sous forme de tableau pour spécifier des comportements tels que la réduction catalytique sélective et SpecTRM-RL. La principale différence est que chaque table dans ces méthodes décrit le comportement d’une petite partie du système ; la réponse de l’ensemble du système est déterminée par la composition des parties, en tenant compte de toutes les dépendances entre eux. Pour des cas particuliers, cette réponse peut être élaborée par le lecteur ou être vue par des essais ou de simuler le modèle. En revanche, chaque règle de Statestep montre la réponse de l’ensemble du système à la fois (ou une partie relativement importante de celui-ci) pour certains des cas. Ceci en fait une notation sensiblement plus simple. C’est d’ailleurs ce qui permet la prise en compte systématique du comporte de l’ensemble du système dans tous les cas possibles.
Ainsi, malgré la similitude superficielle, Statestep diffère des autres approches sous forme de tableau dans la même manière qu’il diffère des méthodes formelles en général (voir la question précédente).
______________________________________________________________________________
Est Statestep un model-checker ?
Si vous utilisez Statestep pour modéliser une machine à états finis alors vous trouverez qu’il effectue automatiquement la fonction plus utile d’un model-checker, c’est-à-dire, pour vérifier qu’aucun État indésirable ne peut être atteint. Contrairement à un vérificateur de modèle ordinaire, Statestep pouvez interactivement vérifier cette propriété de l’accessibilité (et d’autres propriétés) même si le modèle est toujours créé, sans signaler des erreurs. Un autre avantage est qu’il ne peut expliquer son raisonnement ainsi vous pouvez voir comment le problème se pose.
En revanche, un model-checker vous permettra de décrire (en logique temporelle) propriétés plus générales pour vérifier, par exemple, est-il possible d’obtenir de l’État X à état Y sans passer par l’état Z ? Ainsi, bien qu’il y a des chevauchements dans les fonctionnalités, Statestep n’est pas un « model-checker » comme on entend habituellement.
______________________________________________________________________________
Statestep devrait être utilisé pour les systèmes critiques pour la sécurité ?
Approche d’inhabituellement explicite et exhaustif de Statestep peut révéler des problèmes qui ne pourront pas être détectées au cours de tests ou même en utilisant des techniques plus sophistiquées comme le model checking. (Pour obtenir un exemple de ces anomalies subtiles qui se trouvent dans la même un petit modèle, voir le document sur le modèle de montre digitale). Ainsi, Statestep peut fournir une confiance dans la qualité des systèmes réactifs complexes destinés à des domaines critiques.
Naturellement, il y a les mises en garde habituelles. En particulier, on ne peut pas garantir que Statestep lui-même ou la plate-forme Java, sur lequel il roule sont sans bug : des accords de licence pour les deux déclinent toute garantie ou responsabilité pour les bogues. C’est pourquoi, et elle peut être utilisée en plus des autres procédures et d’outils pour aider à assurer la qualité, Statestep ne prétend pas à supplanter les.
______________________________________________________________________________
Ce qui Statestep vérifie que les autres outils ne ?
En termes de contrôle de correction, ce qui distingue particulièrement bien Statestep, c’est qu’il vous donne la puissance nécessaire pour valider la réponse du modèle en toutes circonstances – quelque chose qui, fondamentalement, ne peut être contrôlée automatiquement. Par exemple, si vous créez un modèle de machine à états finis standard qui inclut des composantes A, B,…, alors vous pouvez obtenir un model-checker pour vérifier un invariant, tels que « A est jamais en état a1 en même temps que B est en état b1 ». Toutefois, supposez qu’il existe un scénario inhabituel dans lequel le modèle passe à l’État [a1, b2,…]. Même si cet État est autorisé, il ne s’ensuit pas que pour le système pour y entrer est la réponse désirée ou correcte dans ce cas particulier. Le problème peut également manquer dans l’essai qui, pour des systèmes non négligeable, est nécessairement axée sur l’échantillon.
Avec Statestep, même si vous créez le modèle vous validez déjà la réponse globale du système dans tous les cas, y compris les scénarios plus obscurs.
______________________________________________________________________________
Ce qui est des plupart des combinaisons que statestep peut gérer ?

Statestep vérifie continuellement le modèle que vous utilisez et la puissance inhabituelle de son interface dépend de son spectacle beaucoup de calculs à vitesse interactive. Vous vous en doutez qu’il y aurait une limite fixée à la taille du modèle qui peut être gérée de cette façon, par exemple, que le programme serait soudainement bascule lorsque le nombre de combinaisons possibles dépassé certains nombre X. Cependant, il n’y a aucune limite fixe : Statestep opère symboliquement, autrement dit, il utilise le raisonnement pour éviter d’avoir à énumérer dehors toutes les possibilités dans la mémoire de l’ordinateur.

Cela signifie que si un modèle est trop « gros » pour Statestep sur un ordinateur donné est une fonction complexe des caractéristiques du modèle : combien il y a des contraintes et comment ils se rapportent à l’autre, combien de règles pour un événement donné, si les formules compliquées sont utilisés, etc.. Expérience donne à penser que le facteur limitant dans la pratique est plus susceptible d’être un désir de restreindre le nombre de variables, afin qu’ils s’inscrivent dans la largeur de l’écran. À titre d’exemple, un réel (c.-à-d., tiré de l’industrie) modèle a 16 variables dont les valeurs peuvent être combinées de 1,428,840,000 façon ; en cours d’exécution sur un PC de 1,4 GHz, Statestep fournit un feed-back instantané à toute opération de modification.
______________________________________________________________________________
Combien de variables (les valeurs, les règles…) Statestep permet-il ?
Il n’y a pas de limite fixe du nombre de variables, des valeurs, des contraintes, des événements ou des règles. Toutefois, le nombre maximal de valeurs par variable est 30 : si plusieurs que cela ont été autorisées, la hauteur des lignes de la table affichée deviendrait impraticable en tout cas – et faire respecter une limite fixe de taille variable permet de Statestep maximiser l’efficacité de la réactivité et la mémoire. (Notez qu’une limite inférieure peut éventuellement s’appliquer pour la génération de code, selon la mise en œuvre. C’est une bonne idée de vérifier quelque modèle de code, que vous envisagez d’utiliser avant de créer votre modèle.)
Ce n’est pas vraiment une restriction depuis la plupart des États finis ou autres variables énumérées du genre susceptible de faire partie d’un modèle de Statestep n’aura pas autant de valeurs. Dans les rares cas où une variable plus grande pourrait être utile, il peut toujours être remplacé par deux ou plusieurs variables avec moins de valeurs.
______________________________________________________________________________
Combien coûte le Statestep ?
Licences gratuites sont disponibles pour un usage éducatif et non commercial. Elles sont renouvelables annuellement, en échange de quoi une brève description sur comment vous avez utilisé des Statestep et autres commentaires sont appréciés (mais pas obligatoire).
Pour un usage commercial, licences sont flexible, par exemple, une licence peut être limitée aux utilisateurs nommés ou un projet nommé, etc.. Pour une licence d’évaluation et un devis, veuillez envoyer un courriel.
______________________________________________________________________________
Ne sont pas ces modèles sous forme de tableau très gros et inefficace ?
Grand, oui – au départ, un modèle peut être intimidant (impressionnant) et une impression ne fera pas les arbres des faveurs. Inefficace, non ! En fait, à tous les égards que les questions, les spécifications doivent être efficace : après tout, si vous avez pris un habitué, document texte, supprimé tous les sauts de paragraphe et utilisé la même petite police pour les titres et texte dans l’ensemble, vous pourriez enregistrer certaines pages mais personne n’appelle que « l’efficacité ».
Un imprimé modèle de Statestep est optimisé pour la référence, son utilisation la plus importante en tant que produit. Même si la lecture avec une couverture aux fins de l’examen, une page de tables peut être scannée beaucoup plus rapidement qu’une page de texte. En outre, le processus doit être considéré ainsi que le produit – et la méthode de Statestep est conçue pour assurer que vous considérez tout ce que vous devez considérer exactement une fois. Cela rend la spécification ainsi qu’au développement plus efficace : si la phase de spécification d’un projet prend plus de temps, c’est parce que vous avez fait tout ce que vous deviez faire dans cette phase ; et vous évitez des surprises plus tard lorsque les erreurs prendrait beaucoup plus de travail mettre droit.
______________________________________________________________________________
Mon client est sceptique, ce que je peux dire eux ?
Un intervenant a le droit de se méfier de convenir d’une spécification en cours de préparation d’une manière peu familier. Malheureusement, fashion et affirmations exagérées ne sont pas rares dans l’industrie du logiciel, et le scepticisme est donc naturelle et raisonnable.
Une chose à considérer est de créer un modèle de Statestep séparée de la spécification de livrer à votre client (en fait, un modèle de Statestep sera normalement qu’une partie de votre spécification livrables en tout cas ; voir le Guide de l’utilisateur). Cela peut sembler plus de travail que vous voulez faire. Toutefois, vous devriez trouver qu’à l’aide de Statestep vous permet d’améliorer considérablement la qualité du cahier des charges que vous livrez. En effet, il peut susciter autant de questions que vos clients commencent à s’interroger sur votre talent pour la pensée des scénarios qui n’ont jamais eu lieu pour eux. Ils apprécieront également mieux l’effort impliqué dans cette « petite » fonctionnalité supplémentaire qu’ils voulaient. Donc, même si le modèle n’est jamais livré, créant il peut être encore un avantage important pour vous ainsi que votre client.
______________________________________________________________________________
Ne devrait pas ces deux règles se chevauchent (ou conflit) ? Est-ce un bug ?
Règles pour le même événement se chevauchent (ou, si leurs résultats sont différents, en conflit) que si les cas couverts par les deux règles sont possibles. Si vous regardez à nouveau les deux règles, vous devriez trouver que, selon les contraintes, les cas dans lesquels les deux règles s’appliquent ne peuvent jamais survenir.
Pour confirmer ceci, tout d’abord changer une des règles afin qu’il couvre seulement les cas couverts par les deux règles. Toutes les valeurs doivent passer à une couleur orangée. Ensuite, faites un clic droit dans une des cellules du tableau et cliquez sur « Expliquer ». Si vous supprimez maintenant l’une des contraintes énumérées dans l’explication alors les couleurs des valeurs vont changer et le chevauchement sera signalé. (Remarque : si cela n’est pas arriver immédiatement il y a des raisons supplémentaires pour les cas étant impossible ; juste recliquez sur « Explain ».)
______________________________________________________________________________
Pourquoi fournissez-vous des liens vers des outils concurrents ?
Dans un sens, Statestep n’a vraiment pas tous les concurrents car il est unique à plusieurs égards. En particulier, aucun autre outil ne rend facile à traiter systématiquement un nombre potentiellement illimité de possibilités : Si vous utilisez quelque chose comme un outil de table de décision, le nombre de combinaisons qui peuvent pratiquement être gérés est probablement dans les centaines ; et considérant que les règles dans un moteur de règles peuvent répondre à un nombre énorme de possibilités, ils ne font pas cela de la manière explicite et systématique qui permet de Statestep.
En revanche, moteurs de règles (par exemple) sont conçus pour manipuler les grandes bases de données générales des faits, quelque chose qui Statestep n’était jamais à faire. En bref, les liens peuvent être utiles à ceux qui n’ont pas besoin (et donc ne sera pas apprécier) la puissance fournie par Statestep et à ceux qui recherchent tout à fait un autre type d’outil ou de la méthode.
______________________________________________________________________________
Pourquoi FreeMarker est utilisé pour la génération automatique de code ?
Il y a plusieurs façons possibles pour générer le code d’un modèle de Statestep en XML. Parmi les alternatives XSLT, Perl et Apache Velocity. XSLT, cependant, est plus approprié pour générer une sortie XML ou HTML que le texte ; comme XML bien formé lui-même, XSLT est également documentée et certaines personnes trouvent que la langue construit contre-intuitif. Perl, tandis que le puissant et concis, est intimidant pour le nouveau venu ; C’est une solution qui est beaucoup plus grande que le problème. Vélocité est similaire à FreeMarker mais ne dispose pas d’une norme équivalente à FreeMarker de PEF pour charger et traiter des données XML ; en outre, il n’est pas assez puissant pour une utilisation générale.
Tandis que PEF est normalement utilisé pour générer le contenu d’une page web, il fonctionne parfaitement comme un moteur de template générique. Utilisé pour la génération de code, il le bon équilibre : des choses simples sont assez simples à, tandis que des fonctionnalités plus puissantes, comme les macros récursives, sont disponibles au besoin.

Comments are closed.