SEARCH
0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Prev | Current Page 300 | Next

Jonathan Jacky, Margus Veanes, Colin Campbell, Wolfram Schulte

"Model-Based Software Testing and Analysis with C#"

10 and compose it with
Advanced Topics 233
namespace SP
{
enum Mode { Sent, CancelRequested }
enum Status { Cancelled, Completed }
[Feature]
class Cancellation
{
static Map mode = Map.EmptyMap;
[Action("ReqSetup(m,_)")]
[Action("ReqWork(m,_)")]
static void Req(int m) { mode = mode.Add(m, Mode.Sent); }
static bool ReqEnabled(int m) { return !mode.ContainsKey(m); }
[Action]
static void Cancel(int m)
{
if (mode.ContainsKey(m) && mode[m] == Mode.Sent)
mode = mode.Override(m, Mode.CancelRequested);
}
[Action("ResSetup(m,_,s)")]
[Action("ResWork(m,_,s)")]
public static void Res(int m, Status s)
{
mode = mode.RemoveKey(m);
}
public static bool ResEnabled(int m, Status s)
{
return mode.ContainsKey(m) &&
(s != Status.Cancelled || mode[m] == Mode.CancelRequested);
}
[AcceptingStateCondition]
static bool IsAcceptingState() { return mode.IsEmpty; }
}
}
Figure 14.7. Cancellation feature model program.
234 Compositional Modeling
FSM(0, AcceptingStates(0),
Transitions(t(0,Cancel(2),0), t(0,ReqSetup(2),0), t(0,ResSetup(2),0)),
Vocabulary("ResWork", "ReqWork"))
Figure 14.8. A scnenario used to restrict the cancellation model program.
Map() Cancel(2)
Map(2 -> Mode("Sent"))
ReqSetup(2,_) ResSetup(2, _, Status("Completed"))
Map(2 -> Mode("CancelRequested"))
Cancel(2)
ResSetup(2, _, Status("Cancelled"))
ResSetup(2, _, Status("Completed"))
Cancel(2)
Figure 14.


Pages:
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
hotel jelenia góra Russian bride Free English grammar and study guid powiekszenia wielkoformatowe counter strike 1.6