Sự phức tạp của các hệ thống phần mềm ngày tăng lên, người ta tìm kiếm những cách tiếp cận để làm thuận tiện cho sự phát triển ứng dụng phần mềm, mẫu thiết kế (Design Patterns) [17, 18] và khung làm việc thiết kế (design frameworks) [16] [Johnson & Foote 1998; Fayad & Schmidt 1997; Pree 1996; Fayad & Schmidt 1999] là một trong số những cách tiếp cận đầy triển vọng này. mẫu thiết kế cho phép sử dụng lại tài sản phần mềm một cách rất sớm trong vòng đời phát triển phần mềm. Để gặt hái những lợi ích của việc phát triển những giải pháp thiết kế đã được chứng minh, chúng ta cần xác định kỹ thuật thiết kế cấu thành để xây dựng những ứng dụng sử dụng mẫu. Những mô hình thiết kế tổng thể cần phát triển để hỗ trợ cho kỹ thuật này.
Khi sử dụng lại phần mềm trong những ứng dụng thực tế là một nhiệm vụ khó khăn, nhưng nó là cần thiết để giảm bớt công sức phát triển và bảo đảm chất lượng phần mềm cao hơn. mẫu thiết kế giúp cho việc sử dụng lại trong các pha thiết kế, bởi vì nó cung cấp một bảng từ vựng chung cho thiết kế. Nó còn cung cấp những phương thức trên để hiểu những thiết kế và nó là những khối xây dựng đã được chứng minh (đã được kiểm chứng) từ những ứng dụng phức tạp hơn đã được xây dựng. Sự tập hợp những bản mẫu thiết kế có thể dùng được một cách rộng rãi đã thúc đẩy nhiều hơn những ý tưởng làm thế nào để sử dụng những giải pháp đúng đắn trong phát triển ứng dụng.
Khi thiết kế những ứng dụng bằng việc triển khai một cách có hệ thống mẫu thiết kế không phải là một quá trình tầm thường. Cách tiếp cận thiết kế sử dụng kỹ thuật cấu thành từ mẫu đã được đề nghị, nhưng từ mục tiêu để ra đi đến một qui trình có tính hệ thống còn là vấn đề không đơn giản.