Traceability from Use Case to .NET Assembly via Design Patterns