A Pattern- and Component-Based Method to Develop Secure Software