Heating element Heating element Controller Temperature sensor 220V AC I/O panel Requirements – natural language 1. The user shall be able to use a simple panel to define time intervals, consisting of – – – 2. 3. 4. 5. 6. 7. Starting time Ending time Temperature during this interval – Ta The time intervals are not allowed to overlap The user shall be able to use a simple panel to define a temperature tolerance value d. If the user don't set a temperature tolerance, the system shall use default value d = 2oC If the temperature falls below Ti – d, the heather shall be turned on If the temperature exceeds Ti + d, the heather shall be turned off If time is outside all defined intervals the temperature shall be set to a predefined default value T0. Requirements – boilerplates 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. <user> shall be able to <define> <time interval a = [ts, te]> <user> shall be able to <set> <temperature Ta for time interval a> <user> shall be able to <set> <temperature tolerance d> If <temperature tolerance not set>, <system> shall <set> <temperature tolerance = 2> <system> shall have <simple input / output panel> <system> shall have <heating unit> <system> shall have <default temperature = T0> In order to <measure temperature>, <system> shall have <temperature sensor> In order to <control temperature>, <heating unit> shall have <on / off switch> If <temperature sensor reading exceeds T + d>, <system> shall <switch off heating unit> If <temperature sensor reading is below T - d>, <system> shall <switch on heating unit> When <time in [ts, te] for interval a>, <system> shall <set> <T = Ta> <system> shall <sample> <temperature sensor> at least <3> times per <minute> <system> shall not allow <time intervals> to <overlap> If <time is outside all time intervals>, <system> shall <set> <T = T0>