NFComp (Non-functional Composition) is a model-driven approach for the composition of non-functional concerns (NFC) such as security, performance, reliability etc. NFComp has been applied to Web Services which can be regarded from different views. In the black box view only the WSDL interface of the service is known whereas the implementation of this interface is hidden. In the white box view all implementation details of a web services are visible such as consumed resources, source code and so on. The gray box view is in between black and white box view. In this view the WSDL interface and the process logic of composite web services is visible. On one hand, NFComp currently supports the black and the gray box respecting the platform independence of web services. On the other hand, NFComp supports the specification of NFCs and also the enforcement of the specified concerns. This is achieved by a specification model and a code generator which generates code that enforces the modeled concerns at runtime. In the specification, three types of compositions can be modeled: the composition of NFCs with web services, the composition order of superimposing NFCs being applied at the same exectution point, and the composition of composite process-like NFCs such as secure conversations or monitoring. NFComp enables advanced and fine-grained composition of multiple NFCs at the same execution point.