
Originally Posted by
martincastell
Let me explain the reason for my question:
I'm doing a master degree and I currently taking a class called: Families of Software Products. For the final project we were divided in teams and each team got a technique we have to investigate and in the end we need to create an application using this technique.
Ours it's AOP, we needed to come up with ideas for the final project, and so we did: I proposed a "Web Archive", it would be a basic storage application, and we would use AOP to check payments, storage limit, authentication, authorization, transactions, among some other things. But the teacher said: "Where is the concept of Families of Software Products?...". It wasn't there.
So we proposed to do a series of security aspects that you could combine in order to get different levels of security for a generic application, something like: BasicAuthentication, BasicAuthorization, RoleBasedAuthorization, BasicLoggingXX ..., but the he said: "But that's not an application", we said we could create a couple of generic applications to demonstrate our security with different sets of aspects and he said: "But what's the percentage of the code of the APPLICATION that will be made with AOP?". It wouldn't be much, since AOP is all about cross-cutting concerns.
After a couple more of suggestions we found out what the problem was: He wants us to create a set of n aspects and you can tie them together to create an application. After explaining that software has functional and non functional requirements, and AOP is usually used to take care of the non functional stuff and OOP is what you most likely use to handle the functional and not having success, we asked him for an example of such application.
He said the Spring Framework... I didn't agree with that, starting with the fact that the Spring Framework it's... well a framework... not an application. Then he said: Spring is based on AOP... I didn't agree... again... Knowing that Spring it's actually based on the principle of IoC. I asked him for a reference of that fact, and he told me to search the Web... I haven't found such reference yet. So any ideas on what's Spring based on? or what to do about my project are appreciated?
Regards