Annotated Source Code:
1: // $Id: CruiseControl.java,v 1.6 1998/04/08 13:00:09 black Exp $
2: // *created "Thu Mar 19 11:52:01 1998" *by "Paul E. Black"
3: // *modified "Wed Apr 8 08:56:17 1998" *by "Paul E. Black"
4: /* Cruise Control class. Taken from
5: A Logic-Model Semantics for SCR Software Requirements
6: Joanne M. Atlee and Michael A. Buckley
7: */
8:
9: // the cruise control module
10: class CruiseControl extends Object {
11: private int mode = ccMode.OFF;
12:
13: public int getMode() {
14: return mode;
15: }
16:
17: public void nextState(boolean IgOn, boolean EngRun, boolean Brake,
18: int lever, boolean Fast) {
19: if (! IgOn) {
20: mode = ccMode.OFF;
21: return;
22: }
23:
24: if (! EngRun) {
25: mode = ccMode.INACTIVE;
26: return;
27: }
28:
29: switch (mode) {
30: case ccMode.OFF:
31: if (IgOn) {
>>>>> ^
>>>>> false branch at line 31 column 17 is NOT covered.
>>>>>
32: mode = ccMode.INACTIVE;
33: }
34: break;
35:
36: case ccMode.INACTIVE:
37: if (IgOn && EngRun && !Brake && !Fast && lever==ccLever.Activate){
>>>>> ^
>>>>> false left operand at line 37 column 32 is NOT covered.
>>>>>
>>>>> ^
>>>>> true left operand, false right operand at line 37 column 22 is NOT covered.
>>>>>
>>>>> ^
>>>>> false left operand at line 37 column 22 is NOT covered.
>>>>>
38: mode = ccMode.CRUISE;
39: }
40: break;
41:
42: case ccMode.CRUISE:
43: if (Fast) {
44: mode = ccMode.INACTIVE;
45: return;
46: }
47: if (Brake || lever == ccLever.Deactivate) {
48: mode = ccMode.OVERRIDE;
49: }
50: break;
51:
52: case ccMode.OVERRIDE:
53: if (! Fast && ! Brake) {
54: if (lever == ccLever.Activate || lever == ccLever.Resume) {
>>>>> ^
>>>>> false branch at line 54 column 21 is NOT covered.
>>>>>
>>>>> ^
>>>>> false left operand, false right operand at line 54 column 47 is NOT covered.
>>>>>
55: mode = ccMode.CRUISE;
56: }
57: }
58: break;
59: }
60: }
61: }
62:
63: // end of $Source: /home/black/Java/RCS/CruiseControl.java,v $
64: