2 research outputs found
Validation de spécifications de systèmes d'information avec Alloy
Le présent mémoire propose une investigation approfondie de l’analyseur Alloy afin de juger son adaptabilité en tant que vérificateur de modèles. Dans un premier temps, l’étude dresse un tableau comparatif de six vérificateurs de modèles, incluant Alloy, afin de déterminer lequel d’entre eux est le plus apte à résoudre les problématiques de sécurité fonctionnelle posées par les systèmes d’information. En conclusion de cette première phase, Alloy émerge comme l’un des analyseurs les plus performants pour vérifier les modèles sur lesquels se fondent les systèmes d’information. Dans un second temps, et sur la base des problématiques rencontrées au cours de cette première phase, l’étude rapporte une série d’idiomes pour, d’une part, présenter une manière optimisée de spécifier des traces et, d’autre part, trouver des recours afin de contourner les limitations imposées par Alloy. À ces fins, le mémoire propose deux nouveaux cas d’espèce, ceux d’une cuisinière intelligente et d’une boîte noire, afin de déterminer si oui ou non l’analyseur est capable de gérer les systèmes dynamiques possédant de nombreuses entités avec autant d’efficacité que les systèmes qui en possèdent moins. En conclusion, le mémoire rapporte que Alloy est un bon outil pour vérifier des systèmes dynamiques mais que sa version récente, DynAlloy, peut être encore mieux adapté pour le faire puisque précisément conçu pour faire face aux spécificités de ce type de système. Le mémoire s’achève sur une présentation sommaire de ce dernier outil
From natural language requirements to formal descriptions in Alloy through boilerplates
Dissertação de mestrado em Engenharia de InformáticaFormal Methods are usually applied by specialists in the final phases of software development.
They aim to identify programming errors, and through that reduce the probability of a future failure.
Usually, errors are more related with misinterpretation of requirements than with bad programming.
More than ever, requirements documents deal with complex terms, which programmers
aren’t familiar with, resulting in an increase of misinterpretation of requirements and increasing
the costs of the execution of a software project. The use of formal methods could reduce these
costs, if properly used to verify requirements and not source code. However, most companies
avoid using formal methods due to high costs associated with formal methods application. Programmers
or requirements engineers can’t apply formal methods efficiently without previously
having specific training, which implies hiring expensive specialists in formal methods.
This dissertation presents methods which aim to bring formal methods closer to requirements
descriptions. For such, formal modeling is used to verify and validate the descriptions of requirements,
and not source code. Initially it’s presented a standard to create formal models, which
makes a direct correspondence between each requirement and its model. This standard is supported
by a tool which, among other things, automatically generates graphics representations
of requirements using its models. Afterwards it’s presented a connection between requirements
boilerplates and Alloy models. This connection allows to generate formal models in an automatic
fashion, without the need of a specialist. This drastically reduces the costs of using formal
methods in software projects. It’s also presented the beginning of an algebra which allows to
aggregate these templates. This aggregation allows one to write its requirements documents
throught boilerplates and at the end have the complete model of all requirements, for free.
When one is modeling a requirements document in Alloy and at some point appears requirements
with explicit temporal restrictions, it’s necessary to recreate the whole model in a tool which
allows that kind of specification (eg. Uppaal). This process is highly error prone, because it’s a
manual transformation and highly dependent on the interpretation of who is modeling. In this
dissertation it’s presented a method which allows to automatically generate an Uppaal model
from an Alloy model. This transformation allows that at any point in the requirements document,
the requirements engineer can generate the correspondent Uppaal model and there specify the
temporal properties.Os métodos formais são normalmente aplicados por especialistas nas fases finais do desenvolvimento
de software. A sua aplicação visa identificar erros de programação, reduzindo assim
a probabilidade de uma falha futura. Tipicamente, os erros que se encontram prendem-se com
má interpretação de requisitos e não má programação. Cada vez mais os documentos de requisitos
tratam de termos complexos e fora do conhecimento do programador, o que leva a mais
erros de interpretação e consequentemente a um aumento dos custos de execução de um projeto
de software. A utilização de métodos formais poderia minimizar estes custos, caso eles
fossem utilizados não para verificar código, mas sim para verificar requisitos. No entanto, muitas
empresas evitam a utilização de métodos formais, devido ao custo elevado da sua aplicação.
Os programadores ou engenheiros de requisitos não conseguem aplicar métodos formais de
forma eficiente sem terem formação prévia e especÃfica na área, o que implica a contratação de
especialistas em métodos formais.
Nesta dissertação são apresentados métodos que visam aproximar os métodos formais da
escrita dos requisitos. Para tal, a modelação formal é utilizada não para verificar código, mas
para verificar a escrita de requisitos. Inicialmente é apresentado um standard para a criação de
modelos, que faz uma correspondência direta entre cada requisito e o seu modelo formal. Este
standard é suportado por uma ferramenta que, entre outras coisas, gera de forma automática
representações gráficas dos requisitos através dos seus modelos. Posteriormente é apresentada
uma conexão entre templates de requisitos (requirements boilerplates) e modelos Alloy. Esta
conexão permite a criação de modelos formais de forma automática, sem necessidade de um
especialista. Isto reduz drasticamente o custo de utilização de métodos formais. Apresenta-se
igualmente o começo de uma álgebra que permite agregar estes templates. Esta agregação
permite que um engenheiro de requisitos escreva o seu documento de requisitos através de
templates e no fim tenha de forma automática o modelo formal de todos os requisitos.
Quando se está a modelar um documento de requisitos em Alloy e a certo ponto aparecem
requisitos com restrições temporais explÃcitas, é necessário recriar todo o modelo numa ferramenta
que permita essa modelação (ex: Uppaal). Este processo está sujeito a erros, porque
esta transformação é manual e altamente dependente da interpretação de quem está a modelar.
Nesta dissertação é apresentado um método que permite a geração automática de um modelo
Uppaal a partir de um modelo Alloy. Esta transformação permite que a qualquer ponto da modelação
em Alloy, se crie o modelo Uppaal correspondente e se especifiquem as propriedades
temporais