Week 1
We got our project assigned late in the week and started to review papers to gain basic knowledge in the area. Also got introduced to Khalid, Dr. Ming's Ph.D. student. He has experience with TAJS, the tool we are going to use, and can help us to understand the tool.
Week 2
We started to get a clearer view and more profound scope of the methodology that were going to use in order to achieve our goal. Koby found a Finite State Automaton library for Java developed by the same people that created TAJS. Also, Dr. Lu asked us to analyse a paper on static analysis of string values.
Week 3
Got more familiar with TAJS. Found important parts in the source code that we might need to change. Also recognized the importance of widening operators in our analysis.
Week 4
Koby started doing changes to TAJS, incorporating the finite state automaton class and methods while Christian worked on testing and validating the methods. Dr. Lu pointed out some papers on widening operators that might me of use.
Week 5
We read some papers in which widening operators are discussed and prepared for our mid-term presentation.
Week 6
We decided on which widening operator we are going to use. It uses equivalence classes and Dr. Lu found an efficient way to get them. We worked implementing the operator in the Automaton package, under the SpecialOperators class. Some difficulties were encountered with the implementation of one of the conditions of the widening operator. Dr. Lu gave us a a possible solution but we might have to consider using brute force.
Week 7
All possible solutions to our problem are not feasible within the amount of time that we have left so we ended up doing brute force with memoization to improve efficiency. Tests were developed to ensure the soundness and accuracy of the widening operator.
Week 8
The widening operator was implemented in TAJS. Benchmark tests were used on the modified tool to debug and prove correctness.
Week 9
Final changes to TAJS were made. Some of the tests are not passed. We have problems with the "for-in" statement due to incompatibility of our widening operator and the way TAJS handles this statements. We also finished our poster and worked on the final report (paper).
Week 10
- Cleaned and commented code.
- Gave a poster presentation in OU and at MID-SURE.
- Finished with all deliverable (including the report/paper) and finished the program.
- Gave a poster presentation in OU and at MID-SURE.
- Finished with all deliverable (including the report/paper) and finished the program.