Я должен использовать сплав в документе анализа требований и спецификации для университетского проекта. Я начал с простых вещей, только подписи и никаких фактов. Эти подписи, которые я использую:Подписи сплавов, не показанные в анализаторе сплавов 4.2
abstract sig Date{
year: one Int,
month: one Int,
day: one Int
}
abstract sig Time{
h: one Int,
m: one Int,
s: one Int
}
abstract sig Double{
leftPart: one Int,
rightPart: one Int
}
abstract sig Bool{
value: one String
}
sig DateBirth extends Date{}
sig DateRide extends Date{}
sig DateExpiry extends Date{}
abstract sig User {
email: one String,
name: one String,
surname: one String,
gender: one Bool,
address: one String,
password: one String,
dateOfBirth: one DateBirth,
IDRide: set Ride
}
sig TaxiDriver extends User{
taxiLicense: one String,
personalLicense: one String,
IBAN: one String,
positionInQueue: lone Int,
IDTaxi: set Taxi
}
sig Client extends User{
}
sig Zone {
numberOfZone: one Int,
vertexNorthWest: one Double,
vertexNorthEast: one Double,
vertexSouthWest: one Double,
vertexSouthEast: one Double,
currentQueue: set TaxiDriver
}
sig Taxi {
IDTaxi: one String,
plate: one String,
availablePlaces: one Int,
}
sig Ride {
IDRide: one String,
origin: one String,
destination: one String,
dateOfRide: one DateRide,
timeOfDeparture: one Time,
timeOfArrival: one Time,
price: one Double,
numberOfPeople: one Int,
accepted: one Bool,
userEmail: set User
}
sig Credit_Card {
number: Double,
owner: String,
expiryDate: DateExpiry,
ownerEmail: one Client
}
Затем я добавил предикат «шоу», чтобы veify ли оно соответствует или нет:
pred Show{}
run Show for 10
После запуска «Выполнить» на Alloy Analyzer 4.2 это это сообщение, которое я получаю:
Executing "Run Show for 10"
Solver=sat4j Bitwidth=4 MaxSeq=7 SkolemDepth=1 Symmetry=20
21067 vars. 3840 primary vars. 37164 clauses. 376ms.
Instance. found. Predicate is consistent. 375ms.
Нет проблем, не так ли? Но тогда, когда я нажимаю «Показать», на дисплее не отображаются экземпляры подписи «Пользователь» (и ее дочерние подписи), а все остальные. Я попытался щелкнуть «Далее», чтобы посмотреть, может ли я найти модель, в которой они были показаны, но их не было. Любая идея/предложение? Благодаря!
На самом деле, строки реализованы. Вам просто нужно указать «пул» атомов строк или точную область для String для тех, кто создает экземпляр, сгенерированный. Вы можете узнать больше о использовании строк в Q/A по адресу: http://stackoverflow.com/questions/27397887/provide-alloy-with-a-pool-of-custom-strings –