This component existed already, so we reengineered it. This was mainly due to the component having to print all the reports – the problem was that, being a sole component, it attended to large demands to a point when the servers had to be restarted every three hours, as the component saturated.
To solve this issue, our work consisted of making the new component match the same tasks as the original one, but in a better way. For this, we used design patterns and better programming practices. It also had to be faster, and to optimize memory use when compared to the previous one. So we developed an architecture that would support concurrence and improvements of all sorts. The result was very satisfactory, with the possibility of generating up to 20 reports per second, while the original supported 2 reports per second.
I was in charge of the component reengineering from beginning to end.