Flexible software design : systems development for changing requirements /: systems development for changing requirements. (2005)