A UML Profile for Automatic Code Generation of Optimistic Graceful Degradation Features at the Application Level