Faculty of Science
Master Thesis Software Engineering
Testability of Dependency injection
An attempt to find out how the testability of source code is affected when the dependency injection principle is applied to it.
Dr. Jurgen J. Vinju
Drs. Johan van Vulpen
10 September 2007
Dear reader, the document you are reading right now is my final thesis with which I conclude the one year during Software Engineering master program that is offered to students by the University of Amsterdam.
The reason to sign myself up for this master program was the fact that after two years working fulltime as a developer I came to the conclusion that there was more to creating a good software product than just writing the code for it. This conclusion made me realize that in order to increase my skills and professionalism I had to increase my awareness of the aspects that together form the complete software engineering process.
While I’m writing this as the last part of my final thesis document I truly believe that my awareness of the software engineering process has increased. I hope that my final thesis document proofs this awareness to you, the reader.
For me there is no doubt this could have been a more complete document, especially when it comes to the actual research I’ve performed to base my conclusion on. The reason for this, is that during the available period of time that students have to work on their final thesis research I decided to change my research subject because I believed the research subject I started out with did not have a concrete link with the software engineering process. I was convinced that when I continued my original research it would result in writing a final thesis document that I could not ever be satisfied with.
This meant I had to find a new research subject as well as a company giving me the change to perform a new research within the limited available amount of time that was still left.
Because of this limited available amount of time, it took a lot of hard work to complete my final thesis document before the original deadline. And although it may not be as complete as it might have been if I had started with my second research subject right away, I’m still reasonably satisfied with the content that I was able to produce.
Working on my thesis research was a true learning experience for me. It has given me a better understanding of what scientific research actually is. It especially has given me a lot of respect for people that dedicate themselves to collecting facts about any research subject and sharing these with other people in the world making it possible to learn from.
At the beginning of the program all students were warned that it was going to require a lot of work from them to successfully complete the Software Engineering master program within one year. Looking back on this year I can confirm it really did require a lot of work, dedication and motivation. But not only from the students! The driving force behind the Software Engineering master program are people that are truly dedicated to offer it in the form of a one year program and also in the best way possible.
Therefore I would like to thank the following persons for investing their time in the Software Engineering master program; prof.dr. Paul Klint – course: Software Evolution, prof. dr. Hans van Vliet – course: Software Architecture, dr. Patricia Lago – course: Software Architecture, prof. dr. Jan van Eijck – course: Software Testing and Peter van Lith – courses: Software Construction and Software Process. In particularly I would like to thank drs. Hans Dekkers, Msc. – course: Requirements engineering and dr. Jurgen J. Vinju – course: Software Evolution. I would like to thank Hans for his...