i. Identification of base and cross-cutting themes ii. Generation of Intermediate code iii. Identification of Interferences iv. Definition of rules to resolve data and control-flow Interferences
A. Identification of base and cross-cutting themes The main aim of analyzing the requirements is to find the base and the cross-cutting themes using the Theme approach. From the above stated requirements, five actions can be identified. (i.e.) register, unregister, give marks, log and flag. It is clear from requirements R1, R2 and R8 that the actions register, unregister and give marks represent independent themes since they handle independent …show more content…
Generation of intermediate code After identifying the base and the cross-cutting themes, intermediate code is generated from the requirements. The intermediate code consists of prototypes of function declarations and function calls. For the case study application, the intermediate code is generated with the prototype of the functions register, unregister, give marks, flag and log. The tool generated intermediate code for the case study is given in Fig 3. The intermediate code will be further analyzed to identify the occurrence of …show more content…
The screen grab of the tool execution identifying the occurrence of data-flow interference is given in Fig. 4. In the case study application, a variable no_of_students is used by both register and unregister functionalities. The value of no_of_students is incremented when a new student registers for a course and gets decremented when a student unregisters from the course. The data-flow interference occurs when variable no_of_students is not updated according to the functionalities (i.e) if the value giveed to no_of_students is not correctly updated, then marks may be giveed to an unregistered student by the Professor during the execution of give marks