Can an OO approach be used to develop any system?
What are the strengths of object orientation?
What are its weaknesses? Give an example of a system where object orientation would not be an appropriate development strategy.
There is stamp coupling between two software units if one of those units passes complex data structures to the other unit (e.g., as parameters in a method call). Suggest a way to refine such a design to avoid stamp coupling.