In this section I will be reviewing what I achieved with my project. To determine any achievements I need to detail what I wanted from the project at the outset. These would be the following:
· A working program
· To learn about the intelligent agent paradigm
· To make some conclusions on the intelligent agent paradigm
· To learn more about ActiveX
· To practice and improve my programming skills
I will now look at each of these points in turn.
By 'working program' I mean one that may not necessarily have implemented every feature I wanted but have a base functionality that is fully implemented. I feel that my program has achieved this. I have tested it on a wide variety of web-sites and it has performed fine. There were some features I would have liked to implemented but didn't have time (see 6.3 above), but none of these features affect the main functionality of the program.
In studying this area I came across a wide variety of different projects that draw upon many different disciplines. I must admit I found it quite overwhelming at first but after applying myself I was able to sort the good stuff from the bad and to see some common themes. I have already made my conclusions on this in 3.3 above so I won't repeat them here. At the outset of this project all I knew of Intelligent Agents was the hype, now I feel a little more educated on the subject but there is always more to learn.
7.1.2. TO LEARN ABOUT THE INTELLIGENT AGENT PARADIGM
One of my goals with this project was to implement an ActiveX control and thereby gain some experience with it. On this I failed but I did manage to learn more about how ActiveX controls work in conjunction with a program. If I was to do the project again I would probably have another attempt at implementing the ActiveX filter but I would try out one of the MSVC tutorials first.
7.1.3. TO LEARN MORE ABOUT ACTIVEX
I have previously had 15 months experience of C++ whilst on my work placement and a further year of writing small projects at home and for publication on the Internet. However, I don't feel this makes me a C++ expert in any way. I still have a lot to learn in many areas. I did though learn a lot from this project, including some multithreading techniques, how to communicate with web servers, and several other techniques. This project has definitely made me more confident about tackling these kinds or problems now.
7.1.4. TO PRACTICE AND IMPROVE MY PROGRAMMING SKILLS
This section represents my thoughts on the project as a whole. I would like to think that this project has helped me to improve in all the above mentioned areas and hopefully can help me in my future career. I have enjoyed it although it was a little hectic towards the end. I certainly intend to do more reading in this area and to keep tabs on future developments also.
7.2. MY THOUGHTS ON THE PROJECT
This is certainly the largest project I have ever undertaken and I think I have learned many things from it. Things such as:
This can be the most difficult thing to do. Having 8 months to complete the project seems like an eternity at the start but when considered with exams and courseworks it is not that long a time at all. Like most people I have spoken to I spent more time on my project in the second semester than in the first, but this was helped by the new guidelines on reduced coursework load for final year students which were only implemented in the second semester. However, I feel quite happy about the way that the project has worked out and have no regrets about doing it the way I did.
7.2.1. HOW TO MANAGE MY TIME BETTER
This for me was quite difficult at first as there are so many sources of information on the subject. It is easy to be overwhelmed by the mass of information, I found this to be slightly ironic as that is the problem my project is trying to find solutions to. However, as I read more and more I began to detect some common themes. I was also able to see that it was not necessary to try and consider every project undertaken in this area but to review a cross-section instead. This would hopefully allow me to draw some meaningful conclusions.
7.2.2. UNDERTAKING EFFECTIVE RESEARCH AND DRAWING SOME MEANINGFUL CONCLUSIONS
It was also important for me not to be totally Internet dependent for my research. Although the Internet is the primary source for much of my information (this is due to both the relative newness of the subject matter and the fact that much of it is related to the Internet), the journals I read were also highly relevant and provided much background material. I still feel that if I had looked for longer I would have found more information but I would imagine that is inevitable with a project of this scope.
I found this to be the hardest part of my report. As I was writing my report I was writing about various projects and such. When I re-read what I had written I found that all I was doing was summarising existing information. I then had to force myself to be more critical with what I was writing. To do this I had to consider why a writer had said a particular thing in a certain way. What a writer doesn't say is often just as important as what they say in some cases. Considering things like this helped me in my critical writing and I hope that this has shown in my writing.
7.2.3. HOW TO BE CRITICAL IN MY WRITING
Remaining focused was difficult at times, especially when other courseworks and exams took priority. It was also difficult given the length of time to complete the project. At times other things in life take priority and it was then difficult to return to the project and pick up exactly where I left off. Keeping focused though is a primary requirement when managing any kind of project, and that is very much the case with this project. The key to keeping focused is to always try to devote a set amount of time to the project every week and then use this as the minimum amount of time for the project. Of course during exams this is not possible but it is useful at other times.
7.2.4. REMAINING FOCUSED ON THE PROJECT
I also want to say a few words on my choice of methodology. I am happy with my choice and felt that I particularly benefited from the ability to create a simple program at first then add code as required by the project. This iterative method enabled me to create a program that bore little visual resemblance to the initial prototype yet still contained much of the core code. This I found to be the real advantage of prototyping compared to a more traditional methodology.